Other Parts Discussed in Thread: WL1831
Tool/software: Linux
Hello,
We've been using the WL1831MOD for WIFI connectivity, and have been encountering a few performance issues:
- WIFI kernel crashing on scans: We've experienced this crashing consistently when scanning for WIFI access points, but we haven't seen it on all devices. I've attached a log of the error that we see at the end of this post. We are still trying to determine a process for reproducing this error. When a machine shows this error once, it continues to produce it consistently on scans, and across reboots, but we haven’t found a reliable way to trigger the error the first time.
- Low throughput: Occasionally, we've seen throughput around 1-3 Mbits/second. This problem tends to be intermittent as well, and we haven't found a way to reliably reproduce it.
- Slow download speeds: During tests where we saw better throughput, we would see TCP throughput around 40 Mbits/second. With that throughput, we should expect to download a 100 MB file in ~20 seconds. Nevertheless, downloading a 100 MB file over HTTP, we see download times of ~45 seconds or more.
System Details:
- Host platform: Freescale I.MX.6 Quadcore
- Operating system: Custom build on top of Yocto Jethro
- WiLink™ chip flavor: WL1831MOD
- Antenna: Laird Technologies CAF94505
- WL18xx MAC firmware version: 8.9.0.2.55
- WL18xx PHY firmware version: 8.2.0.1.233
- WL18xx software driver version: R8.6_SP1
Any ideas on what's causing these issues, or what we should look into next?
Thank you,
Eric
kernel crash log:
root@var-som-mx6:~# iw dev wlan0 scan
[ 354.734144] wlcore: ERROR SW watchdog interrupt received! starting recovery.
[ 354.741296] ------------[ cut here ]------------
[ 354.746154] WARNING: CPU: 0 PID: 688 at /var/lib/jenkins/jobs/Axe-Develop/workspace/yocto/build/tmp/work/var_som_mx6-poky-linux-gnueabi/ti-compat-wireless-wl18xx/R8.6_SP1-r0/compat-wireless/drivers/net/wireless/ti/wlcore/main.c:797 wl12xx_queue_recovery_work.part.9+0x58/0x5c [wlcore]()
[ 354.771523] Modules linked in: wl18xx(O) wlcore(O) mac80211(O) cfg80211(O) mxc_v4l2_capture wlcore_sdio(O) ipu_bg_overlay_sdc ipu_still ipu_prp_enc ipu_csi_enc ipu_fg_overlay_sdc compat(O) ov7251_camera_mipi_int v4l2_int_device mxc_dcic galcore(O)
[ 354.793784] CPU: 0 PID: 688 Comm: irq/224-wl18xx Tainted: G W O 4.1.15-6QP+g2ea728e #1
[ 354.802689] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[ 354.809279] [<800177ec>] (unwind_backtrace) from [<800133cc>] (show_stack+0x10/0x14)
[ 354.817065] [<800133cc>] (show_stack) from [<807a0f64>] (dump_stack+0x84/0xc4)
[ 354.824313] [<807a0f64>] (dump_stack) from [<800369a0>] (warn_slowpath_common+0x80/0xb0)
[ 354.832439] [<800369a0>] (warn_slowpath_common) from [<80036a6c>] (warn_slowpath_null+0x1c/0x24)
[ 354.841333] [<80036a6c>] (warn_slowpath_null) from [<7f165ffc>] (wl12xx_queue_recovery_work.part.9+0x58/0x5c [wlcore])
[ 354.852161] [<7f165ffc>] (wl12xx_queue_recovery_work.part.9 [wlcore]) from [<7f1662fc>] (wlcore_irq+0x184/0x18c [wlcore])
[ 354.863211] [<7f1662fc>] (wlcore_irq [wlcore]) from [<8006fe68>] (irq_thread_fn+0x1c/0x40)
[ 354.871515] [<8006fe68>] (irq_thread_fn) from [<8007016c>] (irq_thread+0x12c/0x178)
[ 354.879213] [<8007016c>] (irq_thread) from [<8004f0a0>] (kthread+0xdc/0xf4)
[ 354.886213] [<8004f0a0>] (kthread) from [<800101a8>] (ret_from_fork+0x14/0x2c)
[ 354.893447] ---[ end trace f6a4485cb2f51b93 ]---
[ 354.898112] wlcore: Hardware recovery in progress. FW ver: Rev 8.9.0.2.55
[ 354.905666] wlcore: pc: 0x117538, hint_sts: 0x00000000 count: 13
[ 354.912260] wlcore: down
[ 354.914805] wlcore: down
[ 354.918478] ieee80211 phy0: Hardware restart was requested
[ 355.373897] wlcore: PHY firmware version: Rev 8.2.0.1.233
[ 355.529510] wlcore: firmware booted (Rev 8.9.0.2.55)
[ 355.568502] wlcore: Association completed.
scan aborted!