This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

wlcore: ERROR timeout waiting for the hardware to complete initialization

Other Parts Discussed in Thread: WL1271

Hi everyone,


We are using a Variscite SOM iMx6q that has a wl1271 wireless module on it. We are able to perform ifup/ifdown only once on the wireless module. Any attempts to do this again causes the wireless module to fail with the error:

wlcore: ERROR timeout waiting for the hardware to complete initialization


We turned on debug options for the driver to see what was going on when it works correctly (the first time) and when it fails. Below is the output.

Working correctly:

wlcore_sdio: Nick wl12xx_set_power_on success with value 0
wlcore: booting firmware ti-connectivity/wl127x-fw-5-sr.bin
clock set to 50000000
clock set to 50000000
wlcore_sdio: Nick wl12xx_fetch_firmware success with value 0
wlcore: Nick wl12xx_chip_wakeup complete with value 0
wlcore: pause1 0xf03
wlcore: clk2 0x0
wlcore: soft reset bootdata 0x0
wlcore: nvs burst write 0x30546c: 0xbeef0000
wlcore: nvs burst write 0x305470: 0xdead
wlcore: ACX_EEPROMLESS_IND_REG
wlcore: chip id 0x4030111
wlcore: firmware chunks to be uploaded: 6
wlcore: chunk 5 addr 0x0 len 196544
wlcore: starting firmware upload
wlcore: fw_data_len 196544 chunk_size 16384
wlcore: uploading fw chunk 0xc0d6600c to 0x0
wlcore: uploading fw chunk 0xc0d6a00c to 0x4000
wlcore: uploading fw chunk 0xc0d6e00c to 0x8000
wlcore: uploading fw chunk 0xc0d7200c to 0xc000
wlcore: uploading fw chunk 0xc0d7600c to 0x10000
wlcore: uploading fw chunk 0xc0d7a00c to 0x14000
wlcore: uploading fw chunk 0xc0d7e00c to 0x18000
wlcore: uploading fw chunk 0xc0d8200c to 0x1c000
wlcore: uploading fw chunk 0xc0d8600c to 0x20000
wlcore: uploading fw chunk 0xc0d8a00c to 0x24000
wlcore: uploading fw chunk 0xc0d8e00c to 0x28000
wlcore: uploading fw last chunk (16320 B) 0xc0d9200c to 0x2c000
wlcore: chunk 4 addr 0x20000000 len 41944
wlcore: starting firmware upload
wlcore: fw_data_len 41944 chunk_size 16384
wlcore: uploading fw chunk 0xc0d95fd4 to 0x20000000
wlcore: uploading fw chunk 0xc0d99fd4 to 0x20004000
wlcore: uploading fw last chunk (9176 B) 0xc0d9dfd4 to 0x20008000
wlcore: chunk 3 addr 0x40000 len 448
wlcore: starting firmware upload
wlcore: fw_data_len 448 chunk_size 16384
wlcore: uploading fw last chunk (448 B) 0xc0da03b4 to 0x40000
wlcore: chunk 2 addr 0x40be0 len 29412
wlcore: starting firmware upload
wlcore: fw_data_len 29412 chunk_size 16384
wlcore: uploading fw chunk 0xc0da057c to 0x40be0
wlcore: uploading fw last chunk (13028 B) 0xc0da457c to 0x44be0
wlcore: chunk 1 addr 0x312000 len 8092
wlcore: starting firmware upload
wlcore: fw_data_len 8092 chunk_size 16384
wlcore: uploading fw last chunk (8092 B) 0xc0da7868 to 0x312000
wlcore: chunk 0 addr 0x316000 len 3784
wlcore: starting firmware upload
wlcore: fw_data_len 3784 chunk_size 16384
wlcore: uploading fw last chunk (3784 B) 0xc0da980c to 0x316000
wlcore: Nick wlcore_boot_upload_firmware complete with value 0
wlcore: chip id after firmware boot: 0x4030111
wlcore: Nick wl->ops->boot(wl) complete with value 0
wlcore: rx start cmd channel 1
wlcore: tx start cmd channel 1
wlcore: firmware booted (Rev 6.3.10.0.133)
wlcore: Nick firmware init complete with value 0

Output when failing:

wlcore_sdio: Nick wl12xx_set_power_on success with value 0
wlcore_sdio: Nick wl12xx_fetch_firmware success with value 0
wlcore: Nick wl12xx_chip_wakeup complete with value 0
wlcore: pause1 0x40f73
wlcore: clk2 0x80316a38
wlcore: soft reset bootdata 0x0
wlcore: nvs burst write 0x30546c: 0xbeef0000
wlcore: nvs burst write 0x305470: 0xdead
wlcore: ACX_EEPROMLESS_IND_REG
wlcore: chip id 0x4030111
wlcore: firmware chunks to be uploaded: 6
wlcore: chunk 5 addr 0x0 len 196544
wlcore: starting firmware upload
wlcore: fw_data_len 196544 chunk_size 16384
wlcore: uploading fw chunk 0xc0d6600c to 0x0
wlcore: uploading fw chunk 0xc0d6a00c to 0x4000
wlcore: uploading fw chunk 0xc0d6e00c to 0x8000
wlcore: uploading fw chunk 0xc0d7200c to 0xc000
wlcore: uploading fw chunk 0xc0d7600c to 0x10000
wlcore: uploading fw chunk 0xc0d7a00c to 0x14000
wlcore: uploading fw chunk 0xc0d7e00c to 0x18000
wlcore: uploading fw chunk 0xc0d8200c to 0x1c000
wlcore: uploading fw chunk 0xc0d8600c to 0x20000
wlcore: uploading fw chunk 0xc0d8a00c to 0x24000
wlcore: uploading fw chunk 0xc0d8e00c to 0x28000
wlcore: uploading fw last chunk (16320 B) 0xc0d9200c to 0x2c000
wlcore: chunk 4 addr 0x20000000 len 41944
wlcore: starting firmware upload
wlcore: fw_data_len 41944 chunk_size 16384
wlcore: uploading fw chunk 0xc0d95fd4 to 0x20000000
wlcore: uploading fw chunk 0xc0d99fd4 to 0x20004000
wlcore: uploading fw last chunk (9176 B) 0xc0d9dfd4 to 0x20008000
wlcore: chunk 3 addr 0x40000 len 448
wlcore: starting firmware upload
wlcore: fw_data_len 448 chunk_size 16384
wlcore: uploading fw last chunk (448 B) 0xc0da03b4 to 0x40000
wlcore: chunk 2 addr 0x40be0 len 29412
wlcore: starting firmware upload
wlcore: fw_data_len 29412 chunk_size 16384
wlcore: uploading fw chunk 0xc0da057c to 0x40be0
wlcore: uploading fw last chunk (13028 B) 0xc0da457c to 0x44be0
wlcore: chunk 1 addr 0x312000 len 8092
wlcore: starting firmware upload
wlcore: fw_data_len 8092 chunk_size 16384
wlcore: uploading fw last chunk (8092 B) 0xc0da7868 to 0x312000
wlcore: chunk 0 addr 0x316000 len 3784
wlcore: starting firmware upload
wlcore: fw_data_len 3784 chunk_size 16384
wlcore: uploading fw last chunk (3784 B) 0xc0da980c to 0x316000
wlcore: Nick wlcore_boot_upload_firmware complete with value 0
wlcore: chip id after firmware boot: 0x4030111
clock set to 50000000
clock set to 50000000
wlcore: ERROR timeout waiting for the hardware to complete initialization

Thanks.

Nick