Other Parts Discussed in Thread: WL1837, WL1837MOD, AM4372, WL1271
Hello,
I am evaluating the feasibility of using WL1837 based solution for our requirements.
Typical use case is to extend the range of AP using Mesh + Station mode (as in section 5.3 of Wlink8 WLAN Software document SWAA166).
Configurations Tested
AM437x GP EVM with WL1837MOD
Beagleboard Black Wireless
Beagleboard Green Wireless
Processor SDK 6.0.0.7 for AM437x
3 different images viz
Pre-built images as in the SDK with re-configured kernel using top level makefile
Arago base image using TI SDK / Yocto
Custom distribution using Yocto
Steps to reproduce
Power up the EVM
Connect to an AP using sta_start.sh with AP information in wpa_supplicant.conf
After verifying internet connectivity, create mesh and join it using
/usr/share/wl18xx/mesh_start.sh
/usr/share/wl18xx/mesh_join.sh
Once the mesh connection is successful, ensure IP tables are updated.
Start a ping test to an external IP with a minimum count of 50.
Observations
(Similar to question)
e2e.ti.com/.../691084
Under office environment, observed frequent wlcore resets.
--- www.ti.com ping statistics --- 50 packets transmitted, 24 packets received, 52% packet loss round-trip min/avg/max = 284.033/377.893/924.620 ms BBGW>[ 323.689308] wlcore: Scan completed due to error. [ 323.694010] ------------[ cut here ]------------ [ 323.702040] WARNING: CPU: 0 PID: 7 at drivers/net/wireless/ti/wlcore/main.c:808 wl12xx_queue_recovery_work+0x68/0x6c [wlcore] [ 323.715049] Modules linked in: xfrm_user xfrm4_tunnel ipcomp xfrm_ipcomp esp4 ah4 af_key xfrm_algo ctr aes_arm_bs crypto_simd cryptd ccm usb_f_acm u_serial usb_f_ecm g_multi usb_f_mass_storage usb_f_rndis u_ether libcomposite arc4 wl18xx wlcore mac80211 pru_rproc irq_pruss_intc sha256_generic sha256_arm pruss cfg80211 musb_dsps musb_hdrc udc_core phy_am335x phy_am335x_control phy_generic pm33xx wkup_m3_rproc wkup_m3_ipc remoteproc omap_aes_driver crypto_engine omap_crypto omap_sham pruss_soc_bus ti_emif_sram wlcore_sdio at24 rtc_omap musb_am335x omap_wdt sch_fq_codel uio_module_drv(O) uio ftdi_sio usbserial usbcore usb_common cryptodev(O) [ 323.776364] CPU: 0 PID: 7 Comm: kworker/u2:0 Tainted: G W O 4.19.38-g4dae378bbe #1 [ 323.786800] Hardware name: Generic AM33XX (Flattened Device Tree) [ 323.794945] Workqueue: phy0 wl1271_scan_complete_work [wlcore] [ 323.802309] Backtrace: [ 323.805039] [<c010cb64>] (dump_backtrace) from [<c010ced4>] (show_stack+0x18/0x1c) [ 323.813696] r7:00000009 r6:00000000 r5:bf2e8180 r4:00000000 [ 323.819977] [<c010cebc>] (show_stack) from [<c08a9954>] (dump_stack+0x24/0x28) [ 323.827338] [<c08a9930>] (dump_stack) from [<c012aa60>] (__warn+0xe0/0xf8) [ 323.835108] [<c012a980>] (__warn) from [<c012aac0>] (warn_slowpath_null+0x48/0x50) [ 323.843382] r9:d8eaabd0 r8:d8c18d20 r7:d8c18d58 r6:bf2d269c r5:00000328 r4:bf2e8180 [ 323.851940] [<c012aa78>] (warn_slowpath_null) from [<bf2d269c>] (wl12xx_queue_recovery_work+0x68/0x6c [wlcore]) [ 323.862812] r6:00000000 r5:c0d03048 r4:d8c18d20 [ 323.867702] [<bf2d2634>] (wl12xx_queue_recovery_work [wlcore]) from [<bf2e550c>] (wl1271_scan_complete_work+0x104/0x18c [wlcore]) [ 323.880867] r5:c0d03048 r4:d8c19028 [ 323.884738] [<bf2e5408>] (wl1271_scan_complete_work [wlcore]) from [<c0142480>] (process_one_work+0x210/0x430) [ 323.895965] r9:00000001 r8:dc005000 r7:00000000 r6:db47f200 r5:dc03d200 r4:d8c19028 [ 323.904414] [<c0142270>] (process_one_work) from [<c0142720>] (worker_thread+0x80/0x674) [ 323.913219] r10:dc005000 r9:dc005014 r8:ffffe000 r7:c0d14a20 r6:dc03d214 r5:dc005000 [ 323.921509] r4:dc03d200 [ 323.924073] [<c01426a0>] (worker_thread) from [<c0148798>] (kthread+0x158/0x160) [ 323.932117] r10:dc061e70 r9:c01426a0 r8:dc03d200 r7:dc072000 r6:00000000 r5:dc02ea00 [ 323.940315] r4:dc02eb40 [ 323.942871] [<c0148640>] (kthread) from [<c01010e8>] (ret_from_fork+0x14/0x2c) [ 323.950939] Exception stack(0xdc073fb0 to 0xdc073ff8) [ 323.956022] 3fa0: 00000000 00000000 00000000 00000000 [ 323.964928] 3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 323.973570] 3fe0: 00000000 00000000 00000000 00000000 00000013 00000000 [ 323.980561] r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c0148640 [ 323.988739] r4:dc02ea00 [ 323.992016] ---[ end trace 78f7729a1924f8bb ]--- [ 323.996796] wlcore: Hardware recovery in progress. FW ver: Rev 8.9.0.99.79 [ 324.005059] wlcore: pc: 0x0, hint_sts: 0x00000040 count: 2 [ 324.011452] wlcore: down [ 324.014032] wlcore: down [ 324.016809] ieee80211 phy0: Hardware restart was requested [ 324.506202] wlcore: PHY firmware version: Rev 8.2.0.0.242 [ 324.549866] wlcore: firmware booted (Rev 8.9.0.99.79) [ 324.608028] wlcore: Association completed. BBGW>
Under home environment, could not observe wlcore resets, but ping responses are poor.
--- www.ti.com ping statistics --- 100 packets transmitted, 78 packets received, 22% packet loss round-trip min/avg/max = 6.032/883.139/7027.528 ms
My specific question is,
What are the changes needed to get a stable Mesh + Station mode ?
Looking forward for your help,
Thanks