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.

wl1271 chip: ERROR watchdog interrupt received

Hello,

I am working on bring-up of WG7311 chip on a custom OMAP4460 board. WG7311 chip is a wl1271-based solution by Jorjin. Board design from WiFi point of view is quite common:  SDMMC5, slow clock and two GPIO's (IRQ and WF_EN). Fast clock is not needed: WG7311 has internal 38.4 XTAL.

I am using Android JB kernel v3.4 from OmapZoom as a starting point (http://www.omappedia.org/wiki/4AJ.2.5P2_OMAP4_Jelly_Bean_Release_Notes). Tested  wl12xx firmware: wl127x-fw-4-sr.bin (Rev 6.3.10.0.117 and Rev 6.3.10.0.125).

On startup everything looks fine. WiFi chip is detected and recognized after WF_EN is enabled. Then NVS and firmware are properly loaded, IRQ line receives interrupts. However any scan attempt immediately results in watchdog interrupt from WiFi chip with subsequent command complete timeout in wl12xx driver:

wl12xx: ERROR watchdog interrupt received! starting recovery.
wl12xx: Reading FW panic log
wl12xx: ERROR command complete timeout

FW panic log is attached to this post. IIUC it means that firmware in WiFi chip hangs and its internal watchdog reboots WiFi chip, and then requests firmware reload.

Any ideas/experience why it may happen  and how to fix it ?

  • After several experiments I detected a working configuration: wl12xx driver in omapzoom kernel v3.4 seems to be working fine with an older firmware. In my case I tried wl127x-fw-4-sr.bin - rev. 6.3.5.0.98 - the latest version available in linux-firmware git. Probably more recent wl12xx firmware versions require more recent (> 3.4) wl12xx upstream driver.

    P.S. Another option should be to use WiLink7 driver from TI which is provided as a part of Android source tree: see hardware/ti/wlan.

    Upd.
    WiLink7 in release http://www.omappedia.org/wiki/4AJ.2.5P2_OMAP4_Jelly_Bean_Release_Notes seems to be working fine with more recent firmware versions: Rev 6.3.10.0.117 and Rev 6.3.10.0.125.