wlcore on 4.19.94-ti-r73 #1buster crashing BBGW Wifi.

I am running a BeagleBone Green Gateway as a … gateway, transferring wifi to ethernet. From time to time the Wifi seems to freeze, and the connection is dead. In dmesg I find these messages:

[Oct18 06:34] wlcore: ERROR Tx stuck (in FW) for 5000 ms. Starting recovery
[ +0.007254] ------------[ cut here ]------------
[ +0.000309] WARNING: CPU: 0 PID: 13652 at drivers/net/wireless/ti/wlcore/main.c:808 wl12xx_queue_recovery_work+0x64/0x68 [wlcore]
[ +0.000010] Modules linked in: aes_arm_bs crypto_simd cryptd wl18xx wlcore mac80211 cfg80211 pru_rproc irq_pruss_intc pruss pm33xx wkup_m3_rproc wkup_m3_ipc remoteproc virtio virtio_ring pruss_soc_bus hci_uart btqca btbcm btintel
[ +0.000101] CPU: 0 PID: 13652 Comm: kworker/u2:1 Not tainted 4.19.94-ti-r73 #1buster
[ +0.000006] Hardware name: Generic AM33XX (Flattened Device Tree)
[ +0.000123] Workqueue: phy0 wl12xx_tx_watchdog_work [wlcore]
[ +0.000046] [] (unwind_backtrace) from [] (show_stack+0x20/0x24)
[ +0.000020] [] (show_stack) from [] (dump_stack+0x8c/0xa0)
[ +0.000018] [] (dump_stack) from [] (__warn.part.3+0xcc/0xe8)
[ +0.000013] [] (__warn.part.3) from [] (warn_slowpath_null+0x54/0x5c)
[ +0.000104] [] (warn_slowpath_null) from [] (wl12xx_queue_recovery_work+0x64/0x68 [wlcore])
[ +0.000207] [] (wl12xx_queue_recovery_work [wlcore]) from [] (wl12xx_tx_watchdog_work+0x140/0x150 [wlcore])
[ +0.000099] [] (wl12xx_tx_watchdog_work [wlcore]) from [] (process_one_work+0x1b4/0x504)
[ +0.000015] [] (process_one_work) from [] (worker_thread+0x60/0x508)
[ +0.000012] [] (worker_thread) from [] (kthread+0x16c/0x174)
[ +0.000014] [] (kthread) from [] (ret_from_fork+0x14/0x2c)
[ +0.000008] Exception stack(0xdb7d3fb0 to 0xdb7d3ff8)
[ +0.000010] 3fa0: 00000000 00000000 00000000 00000000
[ +0.000011] 3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ +0.000010] 3fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ +0.007737] —[ end trace e7cc742e4e785530 ]—
[ +0.000515] wlcore: Hardware recovery in progress. FW ver: Rev 8.9.0.0.88
[ +0.000786] wlcore: pc: 0x0, hint_sts: 0x00000020 count: 1
[ +0.000925] wlcore: down
[ +0.000354] wlcore: down
[ +0.000012] wlcore: down
[ +0.000187] ieee80211 phy0: Hardware restart was requested
[ +0.431541] wlcore: PHY firmware version: Rev 8.2.0.0.245
[ +0.054056] wlcore: firmware booted (Rev 8.9.0.0.88)

It seems that there is something not right.

Any Idee?

You can try a different firmware.
Personally I found that Rev. 8.9.0.0.88 was unstable for my use case and switched to 8.9.0.0.86.
TI has since updated the firmware to Rev 8.9.0.0.90, but I did not tested that version.
You can download wl18xx firmware from wilink8-wlan/wl18xx_fw - WiLink8 WLAN development project..
A firmware changelog is available at changelog - wilink8-wlan/wl18xx_fw - WiLink8 WLAN development project.

Thx, it seems that 8.9.0.0.86 has some security flaws, hence 8.9.0.0.88. I’d like to try 8.9.0.0.90, but the documentation mentions that every version > 8.9.0.0.88 should run a script, see https://git.ti.com/cgit/wilink8-wlan/wl18xx_fw/tree/changelog:

======

Rev 8.9.0.0.89
		- Integrated 105C temp support for WiLink8 COB designs
		( IMPORTANT : All WiLink8 based designs (modules or COB) using this firmware version or later, need to re-run
		configure-device.sh script using updated INI files. Please update repository https://git.ti.com/git/wilink8-wlan/18xx-ti-utils.git )

======

I am not sure how to proceed to do that. RobertCNelson, can you give any clues?