Wlcore, wl18xx firmware seems not loaded

Hi Robert,

On my board, only one line of the messages from dmesg | grep wl
[ 2.107412] wlan-en-regulator: disabling
The wl18xx-fw.bin is in the lib folder.
wlcore seems not loaded.
Is the kernel booting message disabled or at higher level? anyway to turn on all messages, including debugging, information, etc.
Any suggestions that why wlan-en-regulartor disabling?

Thank you,
David

That’s actually just noise… (and misleading…)

Dump this instead:

journalctl | grep wl
debian@beaglebone:~$ journalctl | grep wl
Jul 07 14:17:03 beaglebone kernel: wlan-en-regulator: disabling
Jul 07 14:17:07 beaglebone systemd[1]: Starting BB WL18xx wlan0 Service...
Jul 07 14:17:08 beaglebone bb-wl18xx-wlan0[578]: wlan_0_mac=[00:00:00:00:00:00], this forces internal wl18xx mac address...
Jul 07 14:17:10 beaglebone bb-wl18xx-wlan0[578]: /lib/firmware/ti-connectivity/wl1271-nvs.bin=[00:00:00:00:00:00]
Jul 07 14:17:12 beaglebone connmand[571]: lo {newlink} index 1 address 00:00:00:00:00:00 mtu 65536
Jul 07 14:17:12 beaglebone connmand[571]: lo {newlink} index 1 operstate 0 <UNKNOWN>
Jul 07 14:17:14 beaglebone connmand[571]: usb0 {newlink} index 2 address 00:00:00:00:00:00 mtu 1500
Jul 07 14:17:14 beaglebone connmand[571]: usb0 {newlink} index 2 operstate 2 <DOWN>
Jul 07 14:17:14 beaglebone connmand[571]: usb0 {newlink} index 2 address 50:65:83:D0:E0:D6 mtu 1500
Jul 07 14:17:14 beaglebone connmand[571]: usb0 {newlink} index 2 operstate 2 <DOWN>
Jul 07 14:17:14 beaglebone connmand[571]: usb1 {newlink} index 3 address 00:00:00:00:00:00 mtu 1500
Jul 07 14:17:14 beaglebone connmand[571]: usb1 {newlink} index 3 operstate 2 <DOWN>
Jul 07 14:17:14 beaglebone connmand[571]: usb1 {newlink} index 3 address 50:65:83:D0:E0:D9 mtu 1500
Jul 07 14:17:14 beaglebone connmand[571]: usb1 {newlink} index 3 operstate 2 <DOWN>
Jul 07 14:17:15 beaglebone connmand[571]: usb0 {newlink} index 2 address 50:65:83:D0:E0:D6 mtu 1500
Jul 07 14:17:15 beaglebone connmand[571]: usb0 {newlink} index 2 operstate 2 <DOWN>
Jul 07 14:17:16 beaglebone connmand[571]: usb1 {newlink} index 3 address 50:65:83:D0:E0:D9 mtu 1500
Jul 07 14:17:16 beaglebone connmand[571]: usb1 {newlink} index 3 operstate 2 <DOWN>
Jul 07 14:17:17 beaglebone bb-wl18xx-wlan0[578]: wl18xx:tether waiting for /sys/class/net/wlan0
Jul 07 14:17:22 beaglebone bb-wl18xx-wlan0[578]: wl18xx:tether waiting for /sys/class/net/wlan0
Jul 07 14:17:27 beaglebone bb-wl18xx-wlan0[578]: wl18xx:tether waiting for /sys/class/net/wlan0
Jul 07 14:17:27 beaglebone connmand[571]: can0 {newlink} index 4 address 00:00:00:00:00:00 mtu 16
Jul 07 14:17:27 beaglebone connmand[571]: can0 {newlink} index 4 operstate 2 <DOWN>
Jul 07 14:17:27 beaglebone connmand[571]: can1 {newlink} index 5 address 00:00:00:00:00:00 mtu 16
Jul 07 14:17:27 beaglebone connmand[571]: can1 {newlink} index 5 operstate 2 <DOWN>
Jul 07 14:17:32 beaglebone bb-wl18xx-wlan0[578]: wl18xx:tether waiting for /sys/class/net/wlan0
Jul 07 14:17:37 beaglebone bb-wl18xx-wlan0[578]: wl18xx:tether waiting for /sys/class/net/wlan0
Jul 07 14:17:42 beaglebone bb-wl18xx-wlan0[578]: wl18xx:tether waiting for /sys/class/net/wlan0
Jul 07 14:17:43 beaglebone bb-wl18xx-bluetooth[1144]: Found a Texas Instruments' chip!
Jul 07 14:17:43 beaglebone bb-wl18xx-bluetooth[1144]: Firmware file : /lib/firmware/ti-connectivity/TIInit_11.8.32.bts
Jul 07 14:17:43 beaglebone bb-wl18xx-bluetooth[1144]: Loaded BTS script version 1
Jul 07 14:17:43 beaglebone bb-wl18xx-bluetooth[1144]: texas: changing baud rate to 3000000, flow control to 1
Jul 07 14:17:45 beaglebone bb-wl18xx-bluetooth[1144]: Device setup complete
Jul 07 14:17:47 beaglebone bb-wl18xx-wlan0[578]: wl18xx:tether waiting for /sys/class/net/wlan0
Jul 07 14:17:48 beaglebone kernel: wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
Jul 07 14:17:48 beaglebone connmand[571]: wlan0 {create} index 6 type 1 <ETHER>
Jul 07 14:17:48 beaglebone kernel: wlcore: loaded
Jul 07 14:17:48 beaglebone connmand[571]: wlan0 {update} flags 4098 <DOWN>
Jul 07 14:17:48 beaglebone connmand[571]: wlan0 {newlink} index 6 address 80:30:DC:F8:30:22 mtu 1500
Jul 07 14:17:48 beaglebone connmand[571]: wlan0 {newlink} index 6 operstate 2 <DOWN>
Jul 07 14:17:49 beaglebone kernel: wlcore: PHY firmware version: Rev 8.2.0.0.242
Jul 07 14:17:49 beaglebone kernel: wlcore: firmware booted (Rev 8.9.0.0.79)
Jul 07 14:17:49 beaglebone kernel: IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
Jul 07 14:17:49 beaglebone connmand[571]: Adding interface wlan0 [ wifi ]
Jul 07 14:17:49 beaglebone connmand[571]: wlan0 {update} flags 36931 <UP,RUNNING>
Jul 07 14:17:49 beaglebone connmand[571]: wlan0 {newlink} index 6 address 80:30:DC:F8:30:22 mtu 1500
Jul 07 14:17:49 beaglebone connmand[571]: wlan0 {newlink} index 6 operstate 0 <UNKNOWN>
Jul 07 14:17:49 beaglebone connmand[571]: wlan0 {update} flags 36867 <UP>
Jul 07 14:17:49 beaglebone connmand[571]: wlan0 {newlink} index 6 address 80:30:DC:F8:30:22 mtu 1500
Jul 07 14:17:49 beaglebone connmand[571]: wlan0 {newlink} index 6 operstate 2 <DOWN>
Jul 07 14:17:49 beaglebone connmand[571]: wlan0 {newlink} index 6 address 80:30:DC:F8:30:22 mtu 1500
Jul 07 14:17:49 beaglebone connmand[571]: wlan0 {newlink} index 6 operstate 2 <DOWN>
Jul 07 14:17:52 beaglebone bb-wl18xx-wlan0[578]: wl18xx:wlan0:Power Management:off
Jul 07 14:17:52 beaglebone bb-wl18xx-wlan0[578]: wl18xx:tether [iw phy phy0 interface add SoftAp0 type managed]
Jul 07 14:17:52 beaglebone connmand[571]: SoftAp0 {newlink} index 7 address 82:30:DC:F8:30:22 mtu 1500
Jul 07 14:17:52 beaglebone connmand[571]: SoftAp0 {newlink} index 7 operstate 2 <DOWN>
Jul 07 14:17:52 beaglebone bb-wl18xx-wlan0[578]: wl18xx:tether [phy0 created]
Jul 07 14:17:52 beaglebone bb-wl18xx-wlan0[578]: wl18xx:tether [ip link set dev SoftAp0 down]
Jul 07 14:17:52 beaglebone bb-wl18xx-wlan0[578]: wl18xx:tether [ip link set dev SoftAp0 address 50:65:83:D0:E0:D7]
Jul 07 14:17:52 beaglebone connmand[571]: SoftAp0 {newlink} index 7 address 50:65:83:D0:E0:D7 mtu 1500
Jul 07 14:17:52 beaglebone connmand[571]: SoftAp0 {newlink} index 7 operstate 2 <DOWN>
Jul 07 14:17:52 beaglebone bb-wl18xx-wlan0[578]: wl18xx:tether [ip link set dev SoftAp0 up]
Jul 07 14:17:52 beaglebone connmand[571]: SoftAp0 {newlink} index 7 address 50:65:83:D0:E0:D7 mtu 1500
Jul 07 14:17:52 beaglebone connmand[571]: SoftAp0 {newlink} index 7 operstate 0 <UNKNOWN>
Jul 07 14:17:52 beaglebone connmand[571]: SoftAp0 {newlink} index 7 address 50:65:83:D0:E0:D7 mtu 1500
Jul 07 14:17:52 beaglebone connmand[571]: SoftAp0 {newlink} index 7 operstate 2 <DOWN>
Jul 07 14:17:53 beaglebone bb-wl18xx-wlan0[578]: wl18xx:tether [ip addr add 192.168.8.1/24 broadcast 192.168.8.255 dev SoftAp0]
Jul 07 14:17:53 beaglebone bb-wl18xx-wlan0[578]: wl18xx:tether [iptables -w -t nat -A POSTROUTING -o wlan0 -j MASQUERADE]
Jul 07 14:17:53 beaglebone bb-wl18xx-wlan0[578]: wl18xx:tether [iptables -w -A FORWARD -i wlan0 -o SoftAp0 -m state --state RELATED,ESTABLISHED -j ACCEPT]
Jul 07 14:17:53 beaglebone bb-wl18xx-wlan0[578]: wl18xx:tether [iptables -w -A FORWARD -i SoftAp0 -o wlan0 -j ACCEPT]
Jul 07 14:17:55 beaglebone bb-wl18xx-wlan0[578]: Configuration file: /tmp/hostapd-wl18xx.conf
Jul 07 14:17:55 beaglebone kernel: wlcore: down
Jul 07 14:17:55 beaglebone bb-wl18xx-wlan0[578]: Using interface SoftAp0 with hwaddr 50:65:83:d0:e0:d7 and ssid "BeagleBone-E0D7"
Jul 07 14:17:55 beaglebone connmand[571]: SoftAp0 {newlink} index 7 address 50:65:83:D0:E0:D7 mtu 1500
Jul 07 14:17:55 beaglebone connmand[571]: SoftAp0 {newlink} index 7 operstate 6 <UP>
Jul 07 14:17:55 beaglebone bb-wl18xx-wlan0[578]: SoftAp0: interface state UNINITIALIZED->ENABLED
Jul 07 14:17:55 beaglebone bb-wl18xx-wlan0[578]: SoftAp0: AP-ENABLED
Jul 07 14:17:55 beaglebone systemd[1]: Started BB WL18xx wlan0 Service.

Regards,

Hi Robert,

MNU_journalctl_wl.txt (22.7 KB)

Appreciate for your support.

Regards,

David

Also,
I found that at U-boot BBBw has
Valid Addresses : 24 34 50 70
And our board only:
Valid chip Addresses: 24 50
that may tell us something.
(Both BBBw and our board loaded with the same version of u-boot)

Best Regards,

David

Wow, it’s detected the wl18xx, thus trying to load the module, but wlan0 never comes up… Double check your SDIO bus on the PCB.

Regards,

Hi Robert,

Thank you very much.
David

Hi Robert,

I am little confused with device tree for mmc’s. Please help me clarify some names: (Please ignore previous posting, miss sent)

from dmesg | grep mmc:
mmc1: new high speed MMC card at address 0001
mmc2: new high speed SDIO card at address 0001
But in dts:

//mmc2 shall be the eMMC
&mmc2 {
	vmmc-supply = <&vmmcsd_fixed>;
	pinctrl-names = "default";
	pinctrl-0 = <&emmc_pins>;
	bus-width = <8>;
	status = "okay";
};

mmc3 is the wlcore, wlan as mmc2 in the dmesg. Am I right?

Thank you,
David

Hi @dzhou, the value of “mmc” between the Device Tree and the Kernel is off by one on am335x…

DTS | KERNEL - What it is...
mmc1 | mmc0 - microSD
mmc2 | mmc1 - eMMC
mmc3 | mmc2 - SDIO -WLAN

It’s kinda odd, as on am335x most IP blocks start at “0” (uart/i2c/pwm/etc) whereas the mmc starts at “1”…

Regards,

Thank you for your clarification.

So, this is our problem:
mmc2: error -84 whilst initialising SDIO card

David

voodoo@hestia:~$ errno 84
EILSEQ 84 Invalid or incomplete multibyte or wide character

Do you have the sdio line’s swapped??

One quick hack, try moving the mmc to “1-bit” mode vs “4-bit” mode…

Change the 4 -> 1 like so:

Then you only need 3 pins for the bus:

Careful, those are for the “BeagleBone Green”, here’s the 3 pins on the Black Wireless:

We don’t do a one bit hack on the black wireless, as the pin’s are not on the header like the green…

This is assuming, dat0, cmd, clk are in the correct spot on the design…

Regards,

From am335x_evm.dts
&mmc3 {
/* these are on the crossbar and are outlined in the
xbar-event-map element */
dmas = <&edma 12 0
&edma 13 0>;
dma-names = “tx”, “rx”;
status = “okay”;
vmmc-supply = <&wlan_en_reg>;
bus-width = <4>;
pinctrl-names = “default”;
pinctrl-0 = <&mmc3_pins &wlan_pins>;
ti,non-removable;
ti,needs-special-hs-handling;
cap-power-off-card;
keep-power-in-suspend;
#address-cells = <1>;
#size-cells = <0>;
wlcore: wlcore@0 {
compatible = “ti,wl1835”;
reg = <2>;
interrupt-parent = <&gpio3>;
interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
};
};
but-width is 4.
is it possible, change to 1 from 4 without recompiling kernel. Is this exported in the /sys?

David

PS, can you share your WiFi voltage isolation? (aka 3.3v <-> 1.8v)

BBBW is:

Regards,

You just need to rebuild the *.dtb file, it won’t require full kernel compilation.

Regards,

Hi Robert,

Well, it has some differences:
mmc3_pins: pinmux_mmc3_pins {
pinctrl-single,pins = <
0x44 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a1.mmc2_dat0, INPUT_PULLUP | MODE3 /
0x48 (PIN_INPUT_PULLUP | MUX_MODE3) /
gpmc_a2.mmc2_dat1, INPUT_PULLUP | MODE3 /
0x4C (PIN_INPUT_PULLUP | MUX_MODE3) /
gpmc_a3.mmc2_dat2, INPUT_PULLUP | MODE3 /
0x78 (PIN_INPUT_PULLUP | MUX_MODE3) /
gpmc_ben1.mmc2_dat3, INPUT_PULLUP | MODE3 /
0x88 (PIN_INPUT_PULLUP | MUX_MODE3) /
gpmc_csn3.mmc2_cmd, INPUT_PULLUP | MODE3 /
0x8C (PIN_INPUT_PULLUP | MUX_MODE3) /
gpmc_clk.mmc2_clk, INPUT_PULLUP | MODE3 */
>;
};

MUX_Mode3 for all pins. And pin numbers are not the same as your posting.
There are 4 data bus lines.

Regards,

David

Sorry, the am335x_evm.dts file I have may be not the latest. Or to the Buster version. I please ignore my previous post.

Thank you,
David

Hi Robert,

As feedback, our hardware guy figured out that D3 component was not populated on the board, which causes wlcore failed to load.

Regards,
David