DTS Configuration for Wi-Fi on Custom Board

Forums General DTS Configuration for Wi-Fi on Custom Board

Viewing 4 reply threads
  • Author
    Posts
    • #14738
      Apoorva GosaviApoorva Gosavi
      Participant

        We have developed a specialized circuit board featuring the OSD3358-512M-BSM microprocessor. Our setup utilizes Linux Kernel 4.19 and u-boot version 2019.04. Could you provide assistance in configuring the device tree source (DTS) to enable connectivity for the WL1831 module, specifically connected to MMC2 for Wi-Fi functionality?

      • #14739
        Neeraj Dantu
        Moderator

          Apoorva,

          Please take a look at the device tree bindings for WLXX devices here: https://elixir.bootlin.com/linux/v4.19.315/source/Documentation/devicetree/bindings/net/wireless/ti,wlcore.txt

          Beaglebonne Black Wireless uses a similar Wilink modue(WL1835). The schematics are available here: https://github.com/beagleboard/beaglebone-black-wireless/blob/master/BeagleBone_Black_Wireless_SCH.pdf. The device tree for WiFi for Beaglebone Black Wireless is here: https://github.com/RobertCNelson/dtb-rebuilder/blob/4.19-ti/src/arm/am335x-boneblack-wireless.dts#L73. You should be able to use this device tree as a reference.

           

          Additional documentation if you want to dig deeper: https://www.ti.com/lit/ug/swru561a/swru561a.pdf.

          Best,

          Neeraj

        • #14740
          Apoorva GosaviApoorva Gosavi
          Participant

            Thank you for your timely response. We have successfully configured the dts file and the kernel now recognizes the Wi-Fi module as an SDIO device. Despite this progress, we encounter an issue where we are unable to establish communication with the device and bring the network interface up; our attempts have been unsuccessful. Upon examining the SDIO lines, we observed communication activity, but we remain uncertain if the Wi-Fi module is responding appropriately. While we suspect driver issues may be at play, the installed drivers (wlcore, wlcore_sdio, and wl18xx along with supplemental drivers) should theoretically support our setup. Could there be any other underlying reasons contributing to our difficulty? Attached for your review is a relevant kernel log.

          • #14741
            Apoorva GosaviApoorva Gosavi
            Participant

              Dec 20 18:49:46 arm kernel: WARNING: CPU: 0 PID: 194 at drivers/net/wireless/ti/wlcore/sdio.c:145 wl12xx_sdio_raw_write+0x148/0x1b4 [wlcore_sdio]

              Dec 20 18:49:46 arm kernel: Modules linked in: wl18xx wlcore wlcore_sdio evdev uio_pdrv_genirq uio ip_tables x_tables

              Dec 20 18:49:47 arm kernel: CPU: 0 PID: 194 Comm: NetworkManager Not tainted 4.19.280-bone76 #3

              Dec 20 18:49:47 arm kernel: Hardware name: Generic AM33XX (Flattened Device Tree)

              Dec 20 18:49:47 arm kernel: Backtrace:

              Dec 20 18:49:47 arm kernel: [<c0cf8098>] (dump_backtrace) from [<c0cf8454>] (show_stack+0x20/0x24)

              Dec 20 18:49:47 arm kernel:  r7:60010113 r6:c13c43c4 r5:00000000 r4:c13c43c4

              Dec 20 18:49:47 arm kernel: [<c0cf8434>] (show_stack) from [<c0d07944>] (dump_stack+0x8c/0xa0)

              Dec 20 18:49:47 arm kernel: [<c0d078b8>] (dump_stack) from [<c0cf8b80>] (__warn.part.3+0xb0/0xcc)

              Dec 20 18:49:47 arm kernel:  r7:00000091 r6:00000009 r5:00000000 r4:00000000

              Dec 20 18:49:47 arm kernel: [<c0cf8ad0>] (__warn.part.3) from [<c0cf8d1c>] (warn_slowpath_null+0x54/0x74)

              Dec 20 18:49:47 arm kernel:  r7:d9895e10 r6:bf07d3a0 r5:00000091 r4:bf07ebd0

              Dec 20 18:49:47 arm kernel: [<c0cf8cc8>] (warn_slowpath_null) from [<bf07d3a0>] (wl12xx_sdio_raw_write+0x148/0x1b4 [wlcore_sdio])

              Dec 20 18:49:47 arm kernel:  r6:00000000 r5:c1305dc8 r4:dc4ed200

              Dec 20 18:49:47 arm kernel: [<bf07d258>] (wl12xx_sdio_raw_write [wlcore_sdio]) from [<bf0a53b4>] (wlcore_boot_upload_firmware+0x1ec/0x50c [wlcore])

              Dec 20 18:49:47 arm kernel:  r10:d687c000 r9:00014000 r8:bf07d258 r7:d9b48e60 r6:bf0b9600 r5:80900000

              Dec 20 18:49:47 arm kernel:  r4:00000000

              Dec 20 18:49:47 arm kernel: [<bf0a51c8>] (wlcore_boot_upload_firmware [wlcore]) from [<bf0d60f0>] (wl18xx_boot+0x7fc/0xcd4 [wl18xx])

              Dec 20 18:49:47 arm kernel:  r10:00000002 r9:00000014 r8:c10aa518 r7:bf0b9600 r6:c1305dc8 r5:00000000

              Dec 20 18:49:47 arm kernel:  r4:d9b48e60

              Dec 20 18:49:47 arm kernel: [<bf0d58f4>] (wl18xx_boot [wl18xx]) from [<bf09678c>] (wl1271_op_add_interface+0x558/0x99c [wlcore])

              Dec 20 18:49:47 arm kernel:  r9:00000000 r8:d9b48e9c r7:bf0b9600 r6:c1305dc8 r5:d9b48e60 r4:d9fecdf8

              Dec 20 18:49:47 arm kernel: [<bf096234>] (wl1271_op_add_interface [wlcore]) from [<c0c611b4>] (drv_add_interface+0x4c/0x200)

              Dec 20 18:49:47 arm kernel:  r10:00000000 r9:ffffffff r8:d9fec85c r7:d9fec580 r6:d9fec580 r5:d9b48480

              Dec 20 18:49:47 arm kernel:  r4:d9fec588

              Dec 20 18:49:47 arm kernel: [<c0c61168>] (drv_add_interface) from [<c0c79db8>] (ieee80211_do_open+0x484/0x95c)

              Dec 20 18:49:47 arm kernel:  r7:d9fec580 r6:d9b48480 r5:d9fec000 r4:d9fec588

              Dec 20 18:49:47 arm kernel: [<c0c79934>] (ieee80211_do_open) from [<c0c7a2e4>] (ieee80211_open+0x54/0x60)

              Dec 20 18:49:47 arm kernel:  r10:00000000 r9:d9f42b10 r8:d9fec02c r7:c0effca8 r6:00000000 r5:c1305dc8

              Dec 20 18:49:47 arm kernel:  r4:d9fec580

              Dec 20 18:49:47 arm kernel: [<c0c7a290>] (ieee80211_open) from [<c0a8db00>] (__dev_open+0xec/0x188)

              Dec 20 18:49:47 arm kernel:  r5:c1305dc8 r4:d9fec000

              Dec 20 18:49:47 arm kernel: [<c0a8da14>] (__dev_open) from [<c0a8df60>] (__dev_change_flags+0x19c/0x1fc)

              Dec 20 18:49:47 arm kernel:  r8:00001002 r7:c1305dc8 r6:00001003 r5:00000001 r4:d9fec000

              Dec 20 18:49:47 arm kernel: [<c0a8ddc4>] (__dev_change_flags) from [<c0a8dfe8>] (dev_change_flags+0x28/0x58)

              Dec 20 18:49:47 arm kernel:  r9:d9f42b10 r8:d9a63c28 r7:d9fec14c r6:00000000 r5:00001002 r4:d9fec000

              Dec 20 18:49:47 arm kernel: [<c0a8dfc0>] (dev_change_flags) from [<c0aa58d8>] (do_setlink+0x2c0/0xa4c)

              Dec 20 18:49:47 arm kernel:  r9:d9f42b10 r8:d9a63c28 r7:d98803c0 r6:c1305dc8 r5:d9a63b58 r4:d9fec000

              Dec 20 18:49:47 arm kernel: [<c0aa5618>] (do_setlink) from [<c0aa6808>] (rtnl_newlink+0x4e8/0x744)

              Dec 20 18:49:47 arm kernel:  r10:d9a63d04 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:00000000

              Dec 20 18:49:47 arm kernel:  r4:d9fec000

              Dec 20 18:49:47 arm kernel: [<c0aa6320>] (rtnl_newlink) from [<c0aa1f1c>] (rtnetlink_rcv_msg+0x138/0x304)

              Dec 20 18:49:47 arm kernel:  r10:d9f42b00 r9:00000000 r8:00000000 r7:d98803c0 r6:c14533d0 r5:c1305dc8

              Dec 20 18:49:47 arm kernel:  r4:c0aa6320

              Dec 20 18:49:47 arm kernel: [<c0aa1de4>] (rtnetlink_rcv_msg) from [<c0adac88>] (netlink_rcv_skb+0xc8/0x120)

              Dec 20 18:49:47 arm kernel:  r10:00000000 r9:c1305dc8 r8:00000020 r7:d9f42b00 r6:c0aa1de4 r5:c1305dc8

              Dec 20 18:49:47 arm kernel:  r4:d98803c0

              Dec 20 18:49:47 arm kernel: [<c0adabc0>] (netlink_rcv_skb) from [<c0aa1de0>] (rtnetlink_rcv+0x20/0x24)

              Dec 20 18:49:47 arm kernel:  r8:00000000 r7:d98803c0 r6:00000020 r5:d9c71c00 r4:dc19cc00

              Dec 20 18:49:47 arm kernel: [<c0aa1dc0>] (rtnetlink_rcv) from [<c0ada328>] (netlink_unicast+0x194/0x210)

              Dec 20 18:49:47 arm kernel: [<c0ada194>] (netlink_unicast) from [<c0ada6c8>] (netlink_sendmsg+0x210/0x400)

              Dec 20 18:49:47 arm kernel:  r9:d9c71c00 r8:00000020 r7:d98803c0 r6:c1305dc8 r5:d9a63f44 r4:d9f42b00

              Dec 20 18:49:47 arm kernel: [<c0ada4b8>] (netlink_sendmsg) from [<c0a65330>] (sock_sendmsg+0x44/0x54)

              Dec 20 18:49:47 arm kernel:  r10:00000000 r9:d9a63edc r8:daa991c0 r7:00000000 r6:00000040 r5:daa991c0

              Dec 20 18:49:47 arm kernel:  r4:d9a63f44

              Dec 20 18:49:47 arm kernel: [<c0a652ec>] (sock_sendmsg) from [<c0a65d94>] (___sys_sendmsg+0x288/0x29c)

              Dec 20 18:49:47 arm kernel:  r5:c1305dc8 r4:d9a63f44

              Dec 20 18:49:47 arm kernel: [<c0a65b0c>] (___sys_sendmsg) from [<c0a6708c>] (__sys_sendmsg+0x60/0x9c)

              Dec 20 18:49:47 arm kernel:  r10:00000128 r9:d9a62000 r8:c0101264 r7:daa991c0 r6:00000000 r5:bed47d90

              Dec 20 18:49:47 arm kernel:  r4:c1305dc8

              Dec 20 18:49:47 arm kernel: [<c0a6702c>] (__sys_sendmsg) from [<c0a670e4>] (sys_sendmsg+0x1c/0x20)

              Dec 20 18:49:47 arm kernel:  r7:00000128 r6:00000008 r5:bed47d90 r4:00000000

              Dec 20 18:49:47 arm kernel: [<c0a670c8>] (sys_sendmsg) from [<c0101000>] (ret_fast_syscall+0x0/0x54)

              Dec 20 18:49:47 arm kernel: Exception stack(0xd9a63fa8 to 0xd9a63ff0)

              Dec 20 18:49:47 arm kernel: 3fa0:                   00000000 bed47d90 00000008 bed47d90 00000000 00000000

              Dec 20 18:49:47 arm kernel: 3fc0: 00000000 bed47d90 00000008 00000128 bed47ec4 bed47ec8 00000000 0083e500

              Dec 20 18:49:47 arm kernel: 3fe0: 00000128 bed47d68 b69de25d b69df526

              Dec 20 18:49:47 arm kernel: —[ end trace 443da2882a293759 ]—

              Dec 20 18:49:47 arm kernel: wl1271_sdio mmc2:0001:2: sdio write failed (-110)

              Dec 20 18:49:47 arm systemd[1]: getty@tty1.service: Current command vanished from the unit file, execution of the command list won’t be resumed.

              Dec 20 18:49:47 arm systemd[1]: serial-getty@ttyS0.service: Current command vanished from the unit file, execution of the command list won’t be resumed.

              Dec 20 18:49:48 arm systemd[1]: regenerate_ssh_host_keys.service: Succeeded.

              Dec 20 18:49:48 arm systemd[1]: Started Regenerate SSH host keys.

              Dec 20 18:49:48 arm systemd[1]: Starting OpenBSD Secure Shell server…

              Dec 20 18:49:49 arm systemd[1]: NetworkManager-dispatcher.service: Succeeded.

            • #14748
              Neeraj Dantu
              Moderator

                Apporva,

                The above log seems to indicate that there was a kernel panic during initialization of the WiFi module. Here are a few debug inputs:

                First, I suggest making sure the module is powered and enabled. The Beaglebone black sets up an enable signal here: https://github.com/RobertCNelson/dtb-rebuilder/blob/4.19-ti/src/arm/am335x-boneblack-wireless.dts#L20.

                In addition, please check for proper pinmux setup. The MMC interface pinmux for BBWireless is here: https://github.com/RobertCNelson/dtb-rebuilder/blob/4.19-ti/src/arm/am335x-boneblack-wireless.dts#L40. Also verify GPIO control pinmux for the WiFi module here: https://github.com/RobertCNelson/dtb-rebuilder/blob/4.19-ti/src/arm/am335x-boneblack-wireless.dts#L60.

                Please probe the ENABLE signal to the WiFi module to make sure the module is being enabled to respond to probing.

                Best,

                Neeraj

            Viewing 4 reply threads
            • You must be logged in to reply to this topic.