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_nvs
wl1271: loaded
wl1271: initialized
wl1271_power_on
wl1271_io_reset
wl1271_io_init
wl1271_fw_wakeup
wl1271_boot
wl1271_boot_upload_nvs
chip id 0x4030111
wl1271_boot_upload_firmware
wl1271_boot_run_firmware
wl1271_boot_run_firmware:chip id after firmware boot: 0x4030111
wl1271_boot_run_firmware:wl->chip.id = 0x4030111
wl1271: ERROR timeout waiting for the hardware to complete initialization
wl1271_boot:run firmware ret -5
wl1271_op_add_interface: ret = -5
wl1271_power_off
wl1271_power_on
wl1271_io_reset
wl1271_io_init
wl1271_fw_wakeup
wl1271_boot
wl1271_boot_upload_nvs
chip id 0x4030111
wl1271_boot_upload_firmware
wl1271_boot_run_firmware
wl1271_boot_run_firmware:chip id after firmware boot: 0x4030111
wl1271_boot_run_firmware:wl->chip.id = 0x4030111
wl1271: ERROR timeout waiting for the hardware to complete initialization
wl1271_boot:run firmware ret -5
wl1271_op_add_interface: ret = -5
wl1271_power_off
wl1271_power_on
wl1271_io_reset
wl1271_io_init
wl1271_fw_wakeup
wl1271_boot
wl1271_boot_upload_nvs
chip id 0x4030111
wl1271_boot_upload_firmware
wl1271_boot_run_firmware
wl1271: 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: 0x101
wl1271_boot_run_firmware:wl->chip.id = 0x4030111
wl1271: ERROR chip id doesn't match after firmware boot
wl1271_boot:run firmware ret -5
wl1271_op_add_interface: ret = -5
wl1271_power_off
wl1271: 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 above
2. i.MX51 Android Tablet Platform with Linux 2.6.35
In 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