Search

Technical Discussion Group Forum

This forum is provided for user discussion. While Beacon EmbeddedWorks support staff and engineers participate, Beacon EmbeddedWorks does not guarantee the accuracy of all information within in the Technical Discussion Group (TDG).

The "Articles" forums provide brief Articles written by Beacon EmbeddedWorks engineers that address the most frequently asked technical questions.

To receive email notifications when updates are posted for a Beacon EmbeddedWorks product download, please subscribe to the TDG Forum of interest.

TDG Forum

PrevPrev Go to previous topic
NextNext Go to next topic
Last Post 20 Oct 2016 08:48 AM by  Adam Ford
Wireless driver wlcore crashing
 8 Replies
Sort:
You are not authorized to post a reply.
Author Messages
Joshua Pagnotta
New Member
New Member
Posts:25


--
19 Oct 2016 01:38 PM

    We periodically get a wlcore hardware recovery restart which is causing issues in our devices that we haven't been able to track down what is causing it. Do you have any knowledge as to what the cause of this crash may be? It seems like its in the backports of the wlcore module.

    DM-37x login: [74050.437744] wlcore: ERROR exceeded max RX BA sessions
    [74053.506866] wlcore: ERROR exceeded max RX BA sessions
    [74054.531921] wlcore: ERROR exceeded max RX BA sessions
    [74066.820861] wlcore: ERROR exceeded max RX BA sessions
    [74066.826934] wlcore: ERROR exceeded max RX BA sessions
    [ 8250.207092] wlcore: ERROR exceeded max RX BA sessions
    [ 8255.990203] wlcore: ERROR exceeded max RX BA sessions
    [ 8280.512390] wlcore: ERROR exceeded max RX BA sessions
    [ 8285.882293] wlcore: ERROR exceeded max RX BA sessions
    [ 8285.888671] wlcore: ERROR exceeded max RX BA sessions
    [ 8303.189636] wlcore: ERROR exceeded max RX BA sessions
    [ 8310.252929] wlcore: ERROR exceeded max RX BA sessions
    [ 8318.906066] wlcore: ERROR exceeded max RX BA sessions
    [ 8344.145904] wlcore: ERROR exceeded max RX BA sessions
    [ 8350.285583] wlcore: ERROR exceeded max RX BA sessions
    [ 8350.291381] wlcore: ERROR exceeded max RX BA sessions
    [ 8368.521392] wlcore: ERROR exceeded max RX BA sessions
    [ 8375.474182] wlcore: ERROR exceeded max RX BA sessions
    [ 8407.115997] wlcore: ERROR exceeded max RX BA sessions
    [ 8415.727905] wlcore: ERROR exceeded max RX BA sessions
    [ 8415.734741] wlcore: ERROR exceeded max RX BA sessions
    [ 8432.762573] wlcore: ERROR exceeded max RX BA sessions
    [ 8438.763824] wlcore: ERROR exceeded max RX BA sessions
    [ 8449.650421] wlcore: WARNING Unable to flush all TX buffers, timed out (timeout 500 ms
    [ 8450.181549] wlcore: WARNING Unable to flush all TX buffers, timed out (timeout 500 ms
    [ 8457.220703] wlcore: ERROR Tx stuck (in FW) for 5000 ms. Starting recovery
    [ 8457.227844] ------------[ cut here ]------------
    [ 8457.232849] WARNING: at /home/logic/logic/Logic_BSPs/Linux_3.0/BSP_2.4-4/1027480_LogicPD_Linux_BSP_2.4-4/rpm/BUILD/backports-4.0.1-1/drivers/net/wireless/ti/wlcore/main.c:804 wl12xx_queue_recovery_work+0x6c/0x74 [wlcore]()
    [ 8457.253540] Modules linked in: xt_tcpudp iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4 iptable_filter ip_tables x_tables wl12xx wlcore mac80211 cfg80211 wlcore_sdio compat g_ether
    [ 8457.272216] [] (unwind_backtrace+0x0/0x138) from [] (warn_slowpath_common+0x4c/0x64)
    [ 8457.282196] [] (warn_slowpath_common+0x4c/0x64) from [] (warn_slowpath_null+0x1c/0x24)
    [ 8457.292663] [] (warn_slowpath_null+0x1c/0x24) from [] (wl12xx_queue_recovery_work+0x6c/0x74 [wlcore])
    [ 8457.304290] [] (wl12xx_queue_recovery_work+0x6c/0x74 [wlcore]) from [] (wl12xx_tx_watchdog_work+0x100/0x154 [wlcore])
    [ 8457.317352] [] (wl12xx_tx_watchdog_work+0x100/0x154 [wlcore]) from [] (process_one_work+0x114/0x360)
    [ 8457.328765] [] (process_one_work+0x114/0x360) from [] (worker_thread+0x174/0x318)
    [ 8457.338531] [] (worker_thread+0x174/0x318) from [] (kthread+0x80/0x88)
    [ 8457.347351] [] (kthread+0x80/0x88) from [] (kernel_thread_exit+0x0/0x8)
    [ 8457.356140] ---[ end trace a34c838a63609482 ]---
    [ 8457.366241] wlcore: Hardware recovery in progress. FW ver: Rev 7.3.10.0.139
    [ 8457.374877] wlcore: pc: 0x0, hint_sts: 0x00000020 count: 1
    [ 8457.382537] wlcore: down
    [ 8457.392913] ieee80211 phy0: Hardware restart was requested
    [ 8457.871582] wlcore: firmware booted (Rev 7.3.10.0.139)
    [ 8798.666564] omap_device: omap_i2c.1: new worst case activate latency 0: 579833

    Adam Ford
    Advanced Member
    Advanced Member
    Posts:794


    --
    19 Oct 2016 01:45 PM
    According to TI, you can ignore it.

    https://e2e.ti.com/support/wireless_connectivity/wilink_wifi_bluetooth/f/307/t/405529

    I would recommend changing the bootargs in u-boot. If you eliminate the 'ignore_loglevel' and replace it with 'quiet' it should reduce the Wireless driver chatter.

    Less chatter should also help reduce driver overhead.

    adam
    Joshua Pagnotta
    New Member
    New Member
    Posts:25


    --
    19 Oct 2016 02:25 PM

    Thanks for the quick response Adam. We're worried about the FW restart and recovery, not the intermitted max RX BA sessions print as it appears the wireless completely turns off and has to restart when this crash occurs.

    [ 8457.220703] wlcore: ERROR Tx stuck (in FW) for 5000 ms. Starting recovery
    [ 8457.227844] ------------[ cut here ]------------
    [ 8457.232849] WARNING: at /home/logic/logic/Logic_BSPs/Linux_3.0/BSP_2.4-4/1027480_LogicPD_Linux_BSP_2.4-4/rpm/BUILD/backports-4.0.1-1/drivers/net/wireless/ti/wlcore/main.c:804 wl12xx_queue_recovery_work+0x6c/0x74 [wlcore]()
    [ 8457.253540] Modules linked in: xt_tcpudp iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4 iptable_filter ip_tables x_tables wl12xx wlcore mac80211 cfg80211 wlcore_sdio compat g_ether
    [ 8457.272216] [] (unwind_backtrace+0x0/0x138) from [] (warn_slowpath_common+0x4c/0x64)
    [ 8457.282196] [] (warn_slowpath_common+0x4c/0x64) from [] (warn_slowpath_null+0x1c/0x24)
    [ 8457.292663] [] (warn_slowpath_null+0x1c/0x24) from [] (wl12xx_queue_recovery_work+0x6c/0x74 [wlcore])
    [ 8457.304290] [] (wl12xx_queue_recovery_work+0x6c/0x74 [wlcore]) from [] (wl12xx_tx_watchdog_work+0x100/0x154 [wlcore])
    [ 8457.317352] [] (wl12xx_tx_watchdog_work+0x100/0x154 [wlcore]) from [] (process_one_work+0x114/0x360)
    [ 8457.328765] [] (process_one_work+0x114/0x360) from [] (worker_thread+0x174/0x318)
    [ 8457.338531] [] (worker_thread+0x174/0x318) from [] (kthread+0x80/0x88)
    [ 8457.347351] [] (kthread+0x80/0x88) from [] (kernel_thread_exit+0x0/0x8)
    [ 8457.356140] ---[ end trace a34c838a63609482 ]---
    [ 8457.366241] wlcore: Hardware recovery in progress. FW ver: Rev 7.3.10.0.139

    Adam Ford
    Advanced Member
    Advanced Member
    Posts:794


    --
    19 Oct 2016 03:11 PM
    I haven't been able to reproduce that, but TI appears to have a simple patch that was never mainlined. Can you try it?

    http://www.spinics.net/li...eless/msg121137.html

    Let me know if it works. If it does, I'll create a bug trackign ticket on my side, and see that it gets evaulated.

    We're working on migrating to kernel 4.4 for our next BSP, so I'll do some testing on that if you think it fixes it.

    adam
    Joshua Pagnotta
    New Member
    New Member
    Posts:25


    --
    19 Oct 2016 03:20 PM
    Thank you Adam. Will give this a try and do some testing on it over the next couple of days and report back.
    Adam Ford
    Advanced Member
    Advanced Member
    Posts:794


    --
    19 Oct 2016 03:36 PM
    There is another e-mail in that same thread that has a patch:

    http://www.spinics.net/li...eless/msg121145.html

    and it appears that others like it.
    Joshua Pagnotta
    New Member
    New Member
    Posts:25


    --
    19 Oct 2016 06:08 PM
    If I open event.c (drivers/net/wireless/ti/wlcore) after extracting backports-4.0.1 which I believe are getting applied to our kernel build it appears this fix is already in the driver code unfortunately.

    void wlcore_event_dummy_packet(struct wl1271 *wl)
    {
    if (wl->plt) {
    wl1271_info("Got DUMMY_PACKET event in PLT mode. FW bug, ignoring.");
    return;
    }

    wl1271_debug(DEBUG_EVENT, "DUMMY_PACKET_ID_EVENT_ID");
    wl1271_tx_dummy_packet(wl);
    }
    Adam Ford
    Advanced Member
    Advanced Member
    Posts:794


    --
    20 Oct 2016 08:07 AM
    I pulled the backports package from 4.1 this morning. The patches we apply to the 3.17 and 4.0.1 didnt' fully apply cleanly. Since this kernel doesn't yet support the device tree, I cannot use too new of a driver, because they removed the platform support and use a device tree, and the 3.0 kernel is just too old.

    I'm going to attempt to use run some small tests, and if the basic functionality works, I'll e-mail you the patched package to try. It won't have gone through any Logic PD quality checks, but the driver has the backing of the Linux community.

    adam
    Adam Ford
    Advanced Member
    Advanced Member
    Posts:794


    --
    20 Oct 2016 08:48 AM
    I pulled in to the 4.1.1 backport driver, but it's been stripped of the platform data in lieu of the device tree which the 3.0 kernel doesn't' support.

    If you want to experiment with it, the documenation is located here: https://backports.wiki.kernel.org/index.php/Main_Page and the downloads are: http://drvbp1.linux-found.../rel-html/backports/


    It appears as if we already have the latest version of the driver available for the 3.0 kernel installed. TI has a support forum where I have gone to search data. I might suggest looking here: https://e2e.ti.com/support/wireless_connectivity/wilink_wifi_bluetooth/f/307 (the WL127x and WL128x are mostly the same)

    You may also want to consider experimenting witih the 4.4 Beta kernel we posted on our site with our kit. It will have newer drivers and firmware, and the device tree support is in there. Our internal focus on testing the Beta kernel has been focused on the non-wireless Torpedo, but I have personally used the Wifi on the 4.4 kernel with decent success, but the testing wasn't exhaustive.

    adam


    You are not authorized to post a reply.