Hi,
We have ported the TI WL1271 driver to the i.MX51 platform and are using it with Android. We can enable and disable the Wi-Fi interface for the first time. On trying to enable the wlan interface for the 2nd time it gives the following error log:
--- start log ---bash-3.2# wl1271_fetch_nvswl1271: loadedwl1271: initializedwl1271_power_onwl1271_io_resetwl1271_io_initwl1271_fw_wakeupwl1271_bootwl1271_boot_upload_nvschip id 0x4030111wl1271_boot_upload_firmwarewl1271_boot_run_firmwarewl1271_boot_run_firmware:chip id after firmware boot: 0x4030111wl1271_boot_run_firmware:wl->chip.id = 0x4030111wl1271: ERROR timeout waiting for the hardware to complete initializationwl1271_boot:run firmware ret -5wl1271_op_add_interface: ret = -5wl1271_power_offwl1271_power_onwl1271_io_resetwl1271_io_initwl1271_fw_wakeupwl1271_bootwl1271_boot_upload_nvschip id 0x4030111wl1271_boot_upload_firmwarewl1271_boot_run_firmwarewl1271_boot_run_firmware:chip id after firmware boot: 0x4030111wl1271_boot_run_firmware:wl->chip.id = 0x4030111wl1271: ERROR timeout waiting for the hardware to complete initializationwl1271_boot:run firmware ret -5wl1271_op_add_interface: ret = -5wl1271_power_offwl1271_power_onwl1271_io_resetwl1271_io_initwl1271_fw_wakeupwl1271_bootwl1271_boot_upload_nvschip id 0x4030111wl1271_boot_upload_firmwarewl1271_boot_run_firmwarewl1271: ERROR sdio read failed (-110)wl1271: ERROR sdio write failed (-84)wl1271: ERROR sdio read failed (-110)wl1271_boot_run_firmware:chip id after firmware boot: 0x101wl1271_boot_run_firmware:wl->chip.id = 0x4030111wl1271: ERROR chip id doesn't match after firmware bootwl1271_boot:run firmware ret -5wl1271_op_add_interface: ret = -5wl1271_power_offwl1271: ERROR firmware boot failed despite 3 retries--- end log ---We are unable to communicate with the device after this.We have tried this on 2 platforms:1. BeagleBoard-xM with Linux 2.6.37 and above2. i.MX51 Android Tablet Platform with Linux 2.6.35In both cases we have the same issue.
This failure is seen either when doing
{
"ifconfig wlan0 up", "ifconfig wlan0 down", "ifconfig wlan0 up"
}
OR
rmmod wl1271_sdio; rmmod wl1271
insmod wl1271.ko
insmod wl1271_sdio.ko
We have tried disabling WLAN_EN between the down and the up of the interface and the unload and load of the driver but it does not seem to make any difference.
Could someone please help in resolving this issue.
Thank you
Divya,
This seems to be SDIO issue. Please upload the complete log - with commands and output. Thanks,
-Saurabh
Hi Divya,
have you verified that the WLAN_EN signal is actually disabled and enabled correctly?
please verify that signal with oscilloscope and not only logs since without disabilng the WLAN_EN signal between “ifconfig wlan0 down” and then “ifconfig wlan0 up”, it will be the exact behavior as you see.
Regards,
Eyal
Hi Eyal,
Thanks for the reply.
We made sure that WLAN_EN pin goes LOW and HIGH between interface down and up. At the end of the post ,contains the detailed log messages for the sequence we followed.
Sequence:
========
ifconfig wlan0 down
WLAN_EN = 0 #verified in the scope that WLAN_EN is zero
WLAN_EN = 1 # verified in the scope that WLAN_EN is HIGH
#ifconfig WLAN0 up
Note that WL1271 is directly connected to iMX MMC1 interface, so there is no option for us to disconnect and connect the module. Here SDIO initialization sequence doesn't happen when we enable the interface for the second time.
Is SDIO initialization required (work done in the mmc_rescan function) when the interface is enabled for the second time ?
Divya
********************START LOG *************************
bash-3.2# ifconfig wlan0 downwl1271_disable_interruptswl1271_power_offSDIO: Disabled device mmc1:0001:2 func->num 2bash-3.2# dmesg -c <7>wl1271: mac80211 configure filter<7>wl1271: waking up chip from elp<7>mmc1: starting CMD52 arg 83fff801 flags 00000195<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 is starting...<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x341a0000.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00000001<7>mmc1: req done (CMD52): 0: 00001001 00000000 00000000 00000000<7>wl1271: sdio write 52 addr 0x1fffc, byte 0x01<7>wl1271: mac80211 configure filter<7>wl1271: IRQ<7>wl1271: wakeup time: 0 ms<7>wl1271: acx group address tbl<7>wl1271: cmd configure<7>wl1271: sdio write 53 addr 0x7b4, 60 bytes<7>wl1271: data: 00000000: 02 00 00 00 14 10 34 00 01 02 00 00 33 33 00 00 ......4.....33..<7>wl1271: data: 00000010: 00 01 01 00 5e 00 00 01 00 00 00 00 00 00 00 00 ....^...........<7>wl1271: data: 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................<7>wl1271: data: 00000030: 00 00 00 00 00 00 00 00 00 00 00 00 ............<7>mmc1: starting CMD53 arg a40f683c flags 000001b5<7>mmc1: blksz 60 blocks 1 flags 00000100 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_TO_DEVICE, len is 0x3c, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xa00708c0<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0003.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00000009<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00000002<7>mmc1: req done (CMD53): 0: 00001000 00000000 00000000 00000000<7>mmc1: 60 bytes transferred: 0<7>wl1271: sdio write 53 addr 0x15434, 4 bytes<7>wl1271: data: 00000000: 01 00 00 00 ....<7>mmc1: starting CMD53 arg a6a86804 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000100 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_TO_DEVICE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaa45ad50<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0003.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00000009<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00000002<7>mmc1: req done (CMD53): 0: 00001000 00000000 00000000 00000000<7>mmc1: 4 bytes transferred: 0<7>mmc1: starting CMD53 arg 26a95004 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000200 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_FROM_DEIVCE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaa45ad50<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0013.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x0000000b<7>mmc1: req done (CMD53): 0: 00001000 00000000 00000000 00000000<7>mmc1: 4 bytes transferred: 0<7>wl1271: sdio read 53 addr 0x154a8, 4 bytes<7>wl1271: data: 00000000: 30 00 00 00 0...<7>mmc1: starting CMD53 arg 240f6804 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000200 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_FROM_DEIVCE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xa00708c0<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0013.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x0000000b<7>mmc1: req done (CMD53): 0: 00001000 00000000 00000000 00000000<7>mmc1: 4 bytes transferred: 0<7>wl1271: sdio read 53 addr 0x7b4, 4 bytes<7>wl1271: data: 00000000: 02 00 01 00 ....<7>wl1271: sdio write 53 addr 0x154b0, 4 bytes<7>wl1271: data: 00000000: 10 00 00 00 ....<7>mmc1: starting CMD53 arg a6a96004 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000100 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_TO_DEVICE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaa45ad50<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0003.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x0000000b<7>mmc1: req done (CMD53): 0: 00001000 00000000 00000000 00000000<7>mmc1: 4 bytes transferred: 0<7>wl1271: IRQ work<7>mmc1: starting CMD53 arg 27df8044 flags 000001b5<7>mmc1: blksz 68 blocks 1 flags 00000200 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_FROM_DEIVCE, len is 0x44, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaabff360<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0013.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x0000000b<7>mmc1: req done (CMD53): 0: 00001000 00000000 00000000 00000000<7>mmc1: 68 bytes transferred: 0<7>wl1271: sdio read 53 addr 0x1efc0, 68 bytes<7>wl1271: data: 00000000: 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...............<7>wl1271: data: 00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................<7>wl1271: data: 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................<7>wl1271: data: 00000030: 00 00 00 00 00 00 00 00 b7 60 5b 02 00 00 00 00 .........`[.....<7>wl1271: data: 00000040: 00 00 00 00 ....<7>wl1271: intr: 0x20 (fw_rx_counter = 0, drv_rx_counter = 0, tx_results_counter = 0)<7>wl1271: WL1271_ACX_INTR_HW_AVAILABLE<7>wl1271: acx group address tbl<7>wl1271: cmd configure<7>wl1271: sdio write 53 addr 0x7b4, 60 bytes<7>wl1271: data: 00000000: 02 00 00 00 14 10 34 00 01 00 00 00 00 00 00 00 ......4.........<7>wl1271: data: 00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................<7>wl1271: data: 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................<7>wl1271: data: 00000030: 00 00 00 00 00 00 00 00 00 00 00 00 ............<7>mmc1: starting CMD53 arg a40f683c flags 000001b5<7>mmc1: blksz 60 blocks 1 flags 00000100 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_TO_DEVICE, len is 0x3c, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xa0070b80<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0003.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00000009<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00000002<7>mmc1: req done (CMD53): 0: 00001000 00000000 00000000 00000000<7>mmc1: 60 bytes transferred: 0<7>wl1271: sdio write 53 addr 0x15434, 4 bytes<7>wl1271: data: 00000000: 01 00 00 00 ....<7>mmc1: starting CMD53 arg a6a86804 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000100 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_TO_DEVICE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaa45ad50<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0003.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x0000000b<7>mmc1: req done (CMD53): 0: 00001000 00000000 00000000 00000000<7>mmc1: 4 bytes transferred: 0<7>mmc1: starting CMD53 arg 26a95004 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000200 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_FROM_DEIVCE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaa45ad50<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0013.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x0000000b<7>mmc1: req done (CMD53): 0: 00001000 00000000 00000000 00000000<7>mmc1: 4 bytes transferred: 0<7>wl1271: sdio read 53 addr 0x154a8, 4 bytes<7>wl1271: data: 00000000: 10 00 00 00 ....<7>mmc1: starting CMD53 arg 240f6804 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000200 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_FROM_DEIVCE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xa0070b80<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0013.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x0000000b<7>mmc1: req done (CMD53): 0: 00001000 00000000 00000000 00000000<7>mmc1: 4 bytes transferred: 0<7>wl1271: sdio read 53 addr 0x7b4, 4 bytes<7>wl1271: data: 00000000: 02 00 01 00 ....<7>wl1271: sdio write 53 addr 0x154b0, 4 bytes<7>wl1271: data: 00000000: 10 00 00 00 ....<7>mmc1: starting CMD53 arg a6a96004 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000100 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_TO_DEVICE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaa45ad50<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0003.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00000009<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00000002<7>mmc1: req done (CMD53): 0: 00001000 00000000 00000000 00000000<7>mmc1: 4 bytes transferred: 0<7>wl1271: mac80211 remove interface<7>wl1271: down<6>wl1271_disable_interrupts<7>wl1271: elp work<7>wl1271: chip to elp<7>mmc1: starting CMD52 arg 83fff800 flags 00000195<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 is starting...<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x341a0000.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00000001<7>mmc1: req done (CMD52): 0: 00001000 00000000 00000000 00000000<7>wl1271: sdio write 52 addr 0x1fffc, byte 0x00<6>wl1271_power_off<7>SDIO: Disabling device mmc1:0001:2...<7>mmc1: starting CMD52 arg 00000400 flags 00000195<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 is starting...<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x341a0000.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00000001<7>mmc1: req done (CMD52): 0: 00001004 00000000 00000000 00000000<7>mmc1: starting CMD52 arg 80000400 flags 00000195<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 is starting...<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x341a0000.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00000001<7>mmc1: req done (CMD52): 0: 00001000 00000000 00000000 00000000<7>SDIO: Disabled device mmc1:0001:2<6>SDIO: Disabled device mmc1:0001:2 func->num 2<7>wl1271: mac80211 stop
bash-3.2# echo 0 > sys/class/gpio/gpio58/value bash-3.2# echo 1 > sys/class/gpio/gpio58/value bash-3.2# ifconfig wlan0 up
wl1271_chip_wakeupwl1271_power_onwl1271_io_resetwl1271_io_initwl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-110)wl1271_fw_wakeupwl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio read failed (-110)wl1271: WARNING unsupported chip id: 0x1wl1271_power_offwl1271_chip_wakeupwl1271_power_onwl1271_io_resetwl1271_io_initwl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-110)wl1271_fw_wakeupwl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio read failed (-110)wl1271: WARNING unsupported chip id: 0x1wl1271_power_offwl1271_chip_wakeupwl1271_power_onwl1271_io_resetwl1271_io_initwl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-110)wl1271_fw_wakeupwl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio read failed (-110)wl1271: WARNING unsupported chip id: 0x1wl1271_power_offwl1271: ERROR firmware boot failed despite 3 retriesifconfig: SIOCSIFFLAGS: No such device
bash-3.2# dmesg -c 000 00000000 00000000 00000000<7>mmc1: 0 bytes transferred: 0<3>wl1271: ERROR sdio write failed (-110)<7>wl1271: sdio write 53 addr 0x1ffd4, 4 bytes<7>wl1271: data: 00000000: 00 00 00 00 ....<7>mmc1: starting CMD53 arg a7ffa804 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000100 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_TO_DEVICE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaa45ad50<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0003.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00010009<7>mmc1: req done (CMD53): -110: 00000000 00000000 00000000 00000000<7>mmc1: 0 bytes transferred: 0<3>wl1271: ERROR sdio write failed (-110)<7>wl1271: sdio write 53 addr 0x1ffd0, 4 bytes<7>wl1271: data: 00000000: 00 00 00 00 ....<7>mmc1: starting CMD53 arg a7ffa004 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000100 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_TO_DEVICE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaa45ad50<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0003.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00010009<7>mmc1: req done (CMD53): -110: 00000000 00000000 00000000 00000000<7>mmc1: 0 bytes transferred: 0<3>wl1271: ERROR sdio write failed (-110)<7>wl1271: sdio write 53 addr 0x1ffd8, 4 bytes<7>wl1271: data: 00000000: 00 00 00 00 ....<7>mmc1: starting CMD53 arg a7ffb004 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000100 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_TO_DEVICE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaa45ad50<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0003.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00000008<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00010001<7>mmc1: req done (CMD53): -110: 00000000 00000000 00000000 00000000<7>mmc1: 0 bytes transferred: 0<3>wl1271: ERROR sdio write failed (-110)<6>wl1271_fw_wakeup<7>mmc1: starting CMD52 arg 83fff801 flags 00000195<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 is starting...<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x341a0000.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00010001<7>mmc1: req done (CMD52): -110: 00000000 00000000 00000000 00000000<7>wl1271: sdio write 52 addr 0x1fffc, byte 0x01<3>wl1271: ERROR sdio write failed (-110)<7>mmc1: starting CMD53 arg 24ace804 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000200 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_FROM_DEIVCE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaa45ad50<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0013.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00010003<7>mmc1: req done (CMD53): -110: 00000000 00000000 00000000 00000000<7>mmc1: 0 bytes transferred: 0<7>wl1271: sdio read 53 addr 0x5674, 4 bytes<7>wl1271: data: 00000000: 01 00 00 00 ....<3>wl1271: ERROR sdio read failed (-110)<4>wl1271: WARNING unsupported chip id: 0x1<6>wl1271_power_off<7>SDIO: Disabling device mmc1:0001:2...<7>mmc1: starting CMD52 arg 00000400 flags 00000195<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 is starting...<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x341a0000.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00010001<7>mmc1: req done (CMD52): -110: 00000000 00000000 00000000 00000000<7>SDIO: Failed to disable device mmc1:0001:2<6>wl1271_chip_wakeup<6>wl1271_power_on<7>SDIO: Enabling device mmc1:0001:2...<7>mmc1: starting CMD52 arg 00000400 flags 00000195<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 is starting...<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x341a0000.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00010001<7>mmc1: req done (CMD52): -110: 00000000 00000000 00000000 00000000<7>SDIO: Failed to enable device mmc1:0001:2<6>wl1271_io_reset<6>wl1271_io_init<7>wl1271: mem_start 00000000 mem_size 00000000<7>wl1271: reg_start 00300000 reg_size 00008800<7>wl1271: mem2_start 00000000 mem2_size 00000000<7>wl1271: mem3_start 00000000 mem3_size 00000000<7>wl1271: sdio write 53 addr 0x1ffc4, 4 bytes<7>wl1271: data: 00000000: 00 00 00 00 ....<7>mmc1: starting CMD53 arg a7ff8804 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000100 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_TO_DEVICE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaa45ad50<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0003.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00010009<7>mmc1: req done (CMD53): -110: 00000000 00000000 00000000 00000000<7>mmc1: 0 bytes transferred: 0<3>wl1271: ERROR sdio write failed (-110)<7>wl1271: sdio write 53 addr 0x1ffc0, 4 bytes<7>wl1271: data: 00000000: 00 00 00 00 ....<7>mmc1: starting CMD53 arg a7ff8004 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000100 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_TO_DEVICE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaa45ad50<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0003.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00010009<7>mmc1: req done (CMD53): -110: 00000000 00000000 00000000 00000000<7>mmc1: 0 bytes transferred: 0<3>wl1271: ERROR sdio write failed (-110)<7>wl1271: sdio write 53 addr 0x1ffcc, 4 bytes<7>wl1271: data: 00000000: 00 00 30 00 ..0.<7>mmc1: starting CMD53 arg a7ff9804 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000100 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_TO_DEVICE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaa45ad50<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0003.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00010009<7>mmc1: req done (CMD53): -110: 00000000 00000000 00000000 00000000<7>mmc1: 0 bytes transferred: 0<3>wl1271: ERROR sdio write failed (-110)<7>wl1271: sdio write 53 addr 0x1ffc8, 4 bytes<7>wl1271: data: 00000000: 00 88 00 00 ....<7>mmc1: starting CMD53 arg a7ff9004 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000100 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_TO_DEVICE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaa45ad50<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0003.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00010009<7>mmc1: req done (CMD53): -110: 00000000 00000000 00000000 00000000<7>mmc1: 0 bytes transferred: 0<3>wl1271: ERROR sdio write failed (-110)<7>wl1271: sdio write 53 addr 0x1ffd4, 4 bytes<7>wl1271: data: 00000000: 00 00 00 00 ....<7>mmc1: starting CMD53 arg a7ffa804 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000100 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_TO_DEVICE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaa45ad50<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0003.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00010009<7>mmc1: req done (CMD53): -110: 00000000 00000000 00000000 00000000<7>mmc1: 0 bytes transferred: 0<3>wl1271: ERROR sdio write failed (-110)<7>wl1271: sdio write 53 addr 0x1ffd0, 4 bytes<7>wl1271: data: 00000000: 00 00 00 00 ....<7>mmc1: starting CMD53 arg a7ffa004 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000100 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_TO_DEVICE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaa45ad50<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0003.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00010009<7>mmc1: req done (CMD53): -110: 00000000 00000000 00000000 00000000<7>mmc1: 0 bytes transferred: 0<3>wl1271: ERROR sdio write failed (-110)<7>wl1271: sdio write 53 addr 0x1ffd8, 4 bytes<7>wl1271: data: 00000000: 00 00 00 00 ....<7>mmc1: starting CMD53 arg a7ffb004 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000100 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_TO_DEVICE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaa45ad50<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0003.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00010009<7>mmc1: req done (CMD53): -110: 00000000 00000000 00000000 00000000<7>mmc1: 0 bytes transferred: 0<3>wl1271: ERROR sdio write failed (-110)<6>wl1271_fw_wakeup<7>mmc1: starting CMD52 arg 83fff801 flags 00000195<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 is starting...<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x341a0000.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00010001<7>mmc1: req done (CMD52): -110: 00000000 00000000 00000000 00000000<7>wl1271: sdio write 52 addr 0x1fffc, byte 0x01<3>wl1271: ERROR sdio write failed (-110)<7>mmc1: starting CMD53 arg 24ace804 flags 000001b5<7>mmc1: blksz 4 blocks 1 flags 00000200 tsac 1000 ms nsac 0<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 is starting...<7>mxsdhci [sdhci_prepare_data()]: <4>mmc1: Too large timeout requested!<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_FROM_DEIVCE, len is 0x4, count is 1<7>mxsdhci [sdhci_prepare_data()]: <3>ADMA addr isn't 4K aligned.<7>mxsdhci [sdhci_prepare_data()]: <3>0xaa45ad50<7>mxsdhci [sdhci_prepare_data()]: <3>Changed to Single DMA mode.<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x353a0013.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00010003<7>mmc1: req done (CMD53): -110: 00000000 00000000 00000000 00000000<7>mmc1: 0 bytes transferred: 0<7>wl1271: sdio read 53 addr 0x5674, 4 bytes<7>wl1271: data: 00000000: 01 00 00 00 ....<3>wl1271: ERROR sdio read failed (-110)<4>wl1271: WARNING unsupported chip id: 0x1<6>wl1271_power_off<7>SDIO: Disabling device mmc1:0001:2...<7>mmc1: starting CMD52 arg 00000400 flags 00000195<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 is starting...<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x341a0000.<7>mxsdhci [sdhci_irq()]: *** mmc1 got interrupt: 0x00010001<7>mmc1: req done (CMD52): -110: 00000000 00000000 00000000 00000000<7>SDIO: Failed to disable device mmc1:0001:2<3>wl1271: ERROR firmware boot failed despite 3 retries<7>wl1271: mac80211 stop<7>mmc0: starting CMD18 arg 00121b48 flags 000000b5<7>mmc0: blksz 512 blocks 128 flags 00000200 tsac 100 ms nsac 0<7>mmc0: CMD12 arg 00000000 flags 0000049d<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x12 is starting...<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_FROM_DEIVCE, len is 0x10000, count is 1<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x123a0033.<7>mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001<7>mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x0000000a<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0xc is starting...<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0xcdb0000.<7>mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001<7>mmc0: req done (CMD18): 0: 00000900 00000000 00000000 00000000<7>mmc0: 65536 bytes transferred: 0<7>mmc0: (CMD12): 0: 00000b00 00000000 00000000 00000000<7>mmc0: starting CMD18 arg 00121bc8 flags 000000b5<7>mmc0: blksz 512 blocks 128 flags 00000200 tsac 100 ms nsac 0<7>mmc0: CMD12 arg 00000000 flags 0000049d<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0x12 is starting...<7>mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, DMA_FROM_DEIVCE, len is 0x10000, count is 1<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0x123a0033.<7>mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001<7>mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x0000000a<7>mxsdhci [sdhci_send_command()]: sdhci_send_command 0xc is starting...<7>mxsdhci [sdhci_send_command()]: Complete sending cmd, transfer mode would be 0xcdb0000.<7>mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001<7>mmc0: req done (CMD18): 0: 00000900 00000000 00000000 00000000<7>mmc0: 65536 bytes transferred: 0<7>mmc0: (CMD12): 0: 00000b00 00000000 00000000 00000000bash-3.2#
************************** END OF LOG *******************************************************
Hi All,
I have attached two files FYI which contains detailed log messages(debug_level enabled) .
The below file provides the log messages when interacting with the WLAN module through Android GUI.
4403.wlan-debug-GUI.txt
The below file provides the log messages when interacting with the WLAN module through command mode.
8551.wlan-debug-CMD.txt
Hi All, We ported the Wl1271 driver to the AM3703 platform. We are also using it with Android. We are facing the same issue as mentioned above. i.e We can enable and disable the Wi-Fi interface for the first time only. The second time enabling is resulting in error. Please find the error logs
************************************LOG START************************wl1271: loadedwl1271: initializedomap_hsmmc omap_hsmmc.1: could not set regulator OCR (-22)omap_hsmmc omap_hsmmc.1: could not set regulator OCR (-22)wl1271: firmware booted (Rev 6.1.5.50.74)ADDRCONF(NETDEV_UP): wlan0: link is not readywl1271: downomap_hsmmc omap_hsmmc.1: could not set regulator OCR (-22)omap_hsmmc omap_hsmmc.1: could not set regulator OCR (-22)wl1271: unloadedomap_hsmmc omap_hsmmc.1: could not set regulator OCR (-22)wl1271: loadedwl1271: initializedomap_hsmmc omap_hsmmc.1: could not set regulator OCR (-22)omap_hsmmc omap_hsmmc.1: could not set regulator OCR (-22)wl1271: ERROR sdio write failed (-110)wl1271: ERROR sdio write failed (-84)wl1271: ERROR sdio write failed (-84)wl1271: ERROR sdio write failed (-84)wl1271: ERROR sdio write failed (-84)wl1271: ERROR sdio write failed (-84)wl1271: ERROR sdio write failed (-84)wl1271: ERROR sdio write failed (-22)************************************LOG END************************
Another post in E2E with the same issue.
http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/t/181765.aspx#655180
Regards
Sandeep S.P
Sandeep,
Based on the error:
omap_hsmmc omap_hsmmc.1: could not set regulator OCR (-22)
It looks like your wlan disable/enable function is not working correctly and the wlan chip is probably not being reset when you do a down/up of the interface.
This is why the driver fail to load on the second time as the firmware was not really reset. Did you verify that the enable line is actually toggling?
Please refer to the following link:
http://processors.wiki.ti.com/index.php/OMAP_Wireless_Connectivity_Hardware_Porting_for_AM37x_Platform
refer to the "Power Control and Platform Data Initialization" section and make sure your board file has a similar intialization.
In case you are doing the same and still have issues, it is possible that the fixed volatage reulator in your kernel is not working correctly (which kernel version are you using?).
You can also refer to the following link:
http://processors.wiki.ti.com/index.php/OMAP_Wireless_Connectivity_Hardware_Porting_for_new_Platform
and refer to the "Power Control – without voltage regulator" section for an alternate method of power control.
Best Regards,
Eyal Reizer
What is the expected behavior of the WL1271 firmware after performing a WLAN_EN Disable and WLAN_EN Enable? Does the firmware have to be downloaded again or is the firmware ready to accept wireless commands and communication.
Ian
the firmware needs to be reloaded after power down
regards
eyal
Does the firmware have to be reloaded even if we do not power down the chip but just disable WLAN_EN and then re-enable it?
Yes, after disabling the WLAN_EN signal, the firmware has to be reloaded.
@Divya,
Did you happenned to resolve this issue?
if yes, please share the steps with us
Yes you need to intialize the SDIO on every WLAN enable.It's of course a system configuratio, but in our refernce design we turn off the SDIO bus when we turn off the WLAN.
Thanks,Alon.S
Hi Alon,
We are having the exact issue as described above. In our design VBAT and VIO are hardware wired and can't be powered down. As such we cannot power down the chip but instead simply toggle WL_EN low on power down and toggle WL_EN high on power up. We experience SDIO timeouts (-110). I see in your previous posts that you turn off the SDIO bus. Is there a way to turn off the SDIO without invoking MMC/SDIO power management and voltage regulation. We do not have our board startup configure PM/regulators because the chip's power (VIO,VBAT) are hardwired to the PCB.
I did have the same problem
As Eyal described it, my problem was that the Enable pin to the wl1271 was never going to "disable"
so the first "boot" worked but the second one did not
cheers
Bernard