Hi NXP team,
We are using i.MX6Q custom board with WiFi + BT (LBEE5KL1DX-883) module having chipset CYW4343W.
We have used the firmware files as below,
--------------------------------------------------------------------------------------------
# ls -l /lib/firmware/brcm/
-rwxr-x--- 1 root root 386920 Oct 10 2019 brcmfmac43430-sdio.bin
-rwxr-x--- 1 root root 7222 Oct 10 14:53 brcmfmac43430-sdio.clmblob
-rwxr-x--- 1 root root 792 Oct 10 15:10 brcmfmac43430-sdio.txt
--------------------------------------------------------------------------------------------
Still, we are getting below errors while loading the fmac WLAN driver on our custom board.
--------------------------------------------------------------------------------------------
# insmod brcmutil.ko
# insmod brcmfmac.ko
mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
mmc1: queuing unknown CIS tuple 0x80 (6 bytes)
brcmfmac: brcmf_sdio_drivestrengthinit: No SDIO Drive strength init done for chip 43430 rev 1 pmurev 24
nvram fw name = brcm/brcmfmac43430-sdio.txt
fw name = brcm/brcmfmac43430-sdio.bin
brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
brcmfmac: brcmf_c_preinit_dcmds: Retreiving cur_etheraddr failed, -52
brcmfmac: brcmf_bus_start: failed: -52
brcmfmac: brcmf_sdio_firmware_callback: dongle is not responding
# ifconfig wlan0 up
ifconfig: SIOCGIFFLAGS: No such device
--------------------------------------------------------------------------------------------
Also, we tried to enable debug logs and we see failure in getting current ethernet address after upgrading the firmware.
Please see below snippet and the detail logs are also attached.
------------------------------------------------------------------------------------------------------------------------------------------
[ 2098.365765] brcmfmac: brcmf_sdio_readframes processed 1 frames
[ 2098.365776] brcmfmac: brcmf_sdio_tx_ctrlframe Enter
[ 2098.365782] brcmutil: Tx Frame:
[ 2098.365789] 00000000: 30 00 cf ff ff 00 00 0c 00 00 00 00 06 01 00 00 0...............
[ 2098.365802] 00000010: 14 00 00 00 00 00 01 00 00 00 00 00 63 75 72 5f ............cur_
[ 2098.365813] 00000020: 65 74 68 65 72 61 64 64 72 00 00 00 00 00 00 00 etheraddr.......
;
;
;
;
[ 2100.372512] brcmfmac: brcmf_fil_cmd_data Failed: (unknown) (-110)
[ 2100.372529] brcmfmac: brcmf_fil_iovar_data_get ifidx=0, name=cur_etheraddr, len=6
[ 2100.372541] brcmutil: data
[ 2100.372557] 00000000: 00 00 00 00 00 00 ......
[ 2100.372572] brcmf_c_preinit_dcmds: Retreiving cur_etheraddr failed, -52
[ 2100.377975] brcmf_bus_start: failed: -52
------------------------------------------------------------------------------------------------------------------------------------------
Our DTS configurations for Wi-Fi are as below.
--------------------------------------------------------------------------------------------
usdhc2_pwrseq: usdhc2_pwrseq {
compatible = "mmc-pwrseq-simple";
regulator-name = "VSD_3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
reset-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>, /* CPU_WL_REG_ON */
<&gpio5 9 GPIO_ACTIVE_LOW>; /* CPU_WL_HOST_WAKE */
enable-active-high;
};
pinctrl_wifi: wifigrp {
fsl,pins = <
MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059
MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059
MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059
MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x13069 /* CPU_WL_REG_ON */
MX6QDL_PAD_DISP0_DAT15__GPIO5_IO09 0x13069 /* CPU_WL_HOST_WAKE */
>;
};
/* Wi-Fi */
&usdhc2 {
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_wifi>;
bus-width = <4>;
no-1-8-v;
non-removable;
/* cd-post; */
cap-power-off-card;
pm-ignore-notify;
wifi-host;
mmc-pwrseq = <&usdhc2_pwrseq>;
fsl,delay-line = <0>;
status = "okay";
brcmf: bcrmf@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
brcm,drive-strength = <8>;
interrupt-parent = <&gpio5>; /* WL_HOST_WAKE gpio */
interrupts = <9 IRQ_TYPE_LEVEL_HIGH>; /* WL_HOST_WAKE = GPIO5_IO09 active high. Change to IRQ_TYPE_EDGE_RISING for 1BW and SN8000. */
interrupt-names = "host-wake";
status = "okay";
};
};
--------------------------------------------------------------------------------------------
The Bluetooth is working fine but Wi-Fi seems having some issue.
Please let us know, if we are missing something or doing anything wrong.
Thank you.
Regards, |
Hi Pratik
one can check sect.4.13 Wi-Fi attached Linux Manual and murata documentation on
wireless.murata.com/eng/products/rf-modules-1/wi-fi-bluetooth-for-freescale-i-mx.html
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Igor,
Thanks for your help.
We found the actual root cause. Actually, we have done "WL_HOST_WAKE" GPIO pin HIGH during boot-up which is an INPUT pin to the processor and will be driven by brcmfmac driver.
Once, we have released "WL_HOST_WAKE" driven HIGH from DTS, everything is working fine.
Thanks & Regards,
Pratik Manvar