I'm using a BBGW (BeagleBone Green Wireless): TI AM335x with TI WL18xx. I've noticed that when the device is first powered up, the wifi works fine. But if I perform a warm reboot (such as issuing the command "sudo reboot" or "sudo shutdown -r now") then when it boots up, WIFI no longer works.
Instead, after a warm boot, "ifconfig" only shows the loopback interface, and I'm seeing messages such as these on the serial console every few seconds:
[ 612.676285] wlcore: ERROR firmware boot failed despite 3 retries
[ 620.458410] wlcore: ERROR timeout waiting for the hardware to complete initialization
[ 622.558761] wlcore: ERROR timeout waiting for the hardware to complete initialization
[ 624.634344] wlcore: ERROR timeout waiting for the hardware to complete initialization
Syslog also has error messages like this:
beaglebone kernel: [ 32.857933] ------------[ cut here ]------------
beaglebone kernel: [ 32.858199] WARNING: CPU: 0 PID: 1781 at drivers/net/wireless/ti/wlcore/main.c:797 wl12xx_queue_recovery_work.part.8+0x46/0x48 [wlcore]()
beaglebone kernel: [ 32.858207] Modules linked in: arc4 wl18xx wlcore mac80211 snd_soc_evm snd_soc_wilink8_bt omap_aes_driver omap_sham omap_rng rng_core snd_soc_davinci_mcasp snd_soc_edma snd_soc_omap wlcore_sdio snd_soc_core snd_pcm_dmaengine snd_pcm snd_timer snd soundcore evdev uio_pdrv_genirq uio usb_f_acm u_serial usb_f_rndis g_multi usb_f_mass_storage u_ether libcomposite cfg80211 rfkill
beaglebone kernel: [ 32.858314] CPU: 0 PID: 1781 Comm: irq/54-wl18xx Not tainted 4.4.19-ti-r41 #1
beaglebone kernel: [ 32.858321] Hardware name: Generic AM33XX (Flattened Device Tree)
I'm not sure where to go from here. Is this a known issue with the BBGW, that WIFI doesn't work after a warm reboot? If so, where can I find additional information, or is there perhaps a bug ticket I can subscribe to?
The build I'm using is this one: https://rcn-ee.com/rootfs/bb.org/testing/2016-09-04/seeed-iot/BBGW-blank-debian-8.5-seeed-iot-armhf-2016-09-04-4gb.img.xz
If there is a better build or distro I should be using, please let me know.