This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

WL18xx Driver crashes

Other Parts Discussed in Thread: WL1835, WL1271

Hello Friends,

I am running WL1835 with iMX28 host processor. It works normally but it crashes around 10 min after bringing up the wifi interface each time. Find the below information:

Boot log snap:

[    7.827417] udevd[59]: starting version 182
[   14.578483] compat-drivers backport release:
[   14.582900] Backport based on  ol_r8.a8.10
[   14.587202] compat.git:

Inserting MMC module:

root@imx28evk:~# insmod mxs-mmc.ko
[   31.538485] mxs-mmc 80010000.ssp: initialized
root@imx28evk:~# [   31.569683] mmc0: card claims to support voltages below the defined range. These will be ignored.
[   31.597732] mmc0: queuing unknown CIS tuple 0x91 (3 bytes)
[   31.609206] mmc0: new SDIO card at address 0001
[   32.231970] cfg80211: Calling CRDA to update world regulatory domain
[   33.010009] wlcore: wl18xx driver version:
[   33.018766] 190 mxs_gpio_set_wake_irq irq 60 state 1
[   33.337468] wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
[   33.433971] wlcore: loaded
[   33.443042] wlcore: driver version:
[   33.447298] wlcore: compilation time: Thu May  8 14:18:56 2014

Bringing up the wlan0 interface UP:

root@imx28evk:~# ifconfig wlan0 up
[   47.059529] wlcore: PHY firmware version: Rev 8.2.0.0.195
[   47.184795] wlcore: firmware booted (Rev 8.8.0.0.13)

Echoing /proc/interrrupts (While WiFi is working and connected to AP):

root@imx28evk:~# cat /proc/interrupts
           CPU0
 16:       2771         -  MXS Timer Tick
 17:       9160         -  mxs-dma
 21:      12308         -  mxs-dma
 25:          0         -  bch
 26:          5         -  mxs-mmc
 62:      76451  gpio-mxs  wl18xx
197:          0         -  mxs-dma
208:          0         -  RTC alarm
209:          0         -  80058000.i2c
213:          0         -  8006a000.serial
214:          0         -  8006c000.serial
215:          0         -  80070000.serial
216:          0         -  80072000.serial
217:        720         -  uart-pl011
220:       7771         -  800f0000.ethernet
221:          0         -  800f4000.ethernet
Err:          0

Error LOG:

.....<Continous Pinging to AP>.................

64 bytes from 192.168.1.1: seq=331 ttl=64 time=5.068 ms  //After this it fails
[  603.254717] wlcore: ERROR ELP wakeup timeout!
[  603.259135] ------------[ cut here ]------------
[  603.264042] WARNING: at /home/ankur/radar/hpc/mx28_yocto/mx28_test/tmp/work/imx28evk-poky-linux-gnueabi/ti-compat-wireless-wl18xx/r8.a8.08-r0b/compat-wireless/drivers/net/wireless/ti/wlcore/main.c:802 wl12xx_queue_recovery_work+0x70/0x7c [wlcore]()
[  603.286242] Modules linked in: wl18xx(O) wlcore(O) mac80211(O) cfg80211(O) mxs_mmc wlcore_sdio(O) compat(O)
[  603.296344] CPU: 0 PID: 306 Comm: kworker/u2:2 Tainted: G           O 3.10.32-hpc_1.0 #64
[  603.304886] Workqueue: phy0 wl1271_tx_work [wlcore]
[  603.309911] [<c0013ed4>] (unwind_backtrace+0x0/0xf0) from [<c0011c80>] (show_stack+0x10/0x14)
[  603.318675] [<c0011c80>] (show_stack+0x10/0x14) from [<c001cfec>] (warn_slowpath_common+0x4c/0x68)
[  603.327842] [<c001cfec>] (warn_slowpath_common+0x4c/0x68) from [<c001d024>] (warn_slowpath_null+0x1c/0x24)
[  603.337866] [<c001d024>] (warn_slowpath_null+0x1c/0x24) from [<bf16acb8>] (wl12xx_queue_recovery_work+0x70/0x7c [wlcore])
[  603.349527] [<bf16acb8>] (wl12xx_queue_recovery_work+0x70/0x7c [wlcore]) from [<bf1758d4>] (wl1271_ps_elp_wakeup+0x210/0x244 [wlcore])
[  603.362164] [<bf1758d4>] (wl1271_ps_elp_wakeup+0x210/0x244 [wlcore]) from [<bf174960>] (wl1271_tx_work+0x20/0x54 [wlcore])
[  603.373607] [<bf174960>] (wl1271_tx_work+0x20/0x54 [wlcore]) from [<c0037568>] (process_one_work+0x1c0/0x4a4)
[  603.383751] [<c0037568>] (process_one_work+0x1c0/0x4a4) from [<c0037c20>] (worker_thread+0x138/0x394)
[  603.393168] [<c0037c20>] (worker_thread+0x138/0x394) from [<c003dd3c>] (kthread+0xa4/0xb0)
[  603.401642] [<c003dd3c>] (kthread+0xa4/0xb0) from [<c000ee00>] (ret_from_fork+0x14/0x34)
[  603.409908] ---[ end trace 9532746212716595 ]---
[  603.418403] wlcore: Hardware recovery in progress. FW ver: Rev 8.8.0.0.13
[  603.425820] ------------[ cut here ]------------
[  603.430745] WARNING: at /home/ankur/radar/hpc/mx28_yocto/mx28_test/tmp/work/imx28evk-poky-linux-gnueabi/ti-compat-wireless-wl18xx/r8.a8.08-r0b/compat-wireless/drivers/net/wireless/ti/wlcore/io.h:65 wlcore_set_partition+0x64/0x468 [wlcore]()
[  603.452225] Modules linked in: wl18xx(O) wlcore(O) mac80211(O) cfg80211(O) mxs_mmc wlcore_sdio(O) compat(O)
[  603.462306] CPU: 0 PID: 306 Comm: kworker/u2:2 Tainted: G        W  O 3.10.32-hpc_1.0 #64
[  603.470823] Workqueue: phy0 wl1271_recovery_work [wlcore]
[  603.476511] [<c0013ed4>] (unwind_backtrace+0x0/0xf0) from [<c0011c80>] (show_stack+0x10/0x14)
[  603.485258] [<c0011c80>] (show_stack+0x10/0x14) from [<c001cfec>] (warn_slowpath_common+0x4c/0x68)
[  603.494294] [<c001cfec>] (warn_slowpath_common+0x4c/0x68) from [<c001d024>] (warn_slowpath_null+0x1c/0x24)
[  603.504306] [<c001d024>] (warn_slowpath_null+0x1c/0x24) from [<bf171834>] (wlcore_set_partition+0x64/0x468 [wlcore])
[  603.515429] [<bf171834>] (wlcore_set_partition+0x64/0x468 [wlcore]) from [<bf16b184>] (wl1271_recovery_work+0x70/0x570 [wlcore])
[  603.527385] [<bf16b184>] (wl1271_recovery_work+0x70/0x570 [wlcore]) from [<c0037568>] (process_one_work+0x1c0/0x4a4)
[  603.538135] [<c0037568>] (process_one_work+0x1c0/0x4a4) from [<c0037c20>] (worker_thread+0x138/0x394)
[  603.547565] [<c0037c20>] (worker_thread+0x138/0x394) from [<c003dd3c>] (kthread+0xa4/0xb0)
[  603.556041] [<c003dd3c>] (kthread+0xa4/0xb0) from [<c000ee00>] (ret_from_fork+0x14/0x34)
[  603.564183] ---[ end trace 9532746212716596 ]---
[  603.569293] wlcore: down
[  603.579651] ieee80211 phy0: Hardware restart was requested
[  604.080083] wlcore: PHY firmware version: Rev 8.2.0.0.195
[  604.196483] wlcore: firmware booted (Rev 8.8.0.0.13)
[  604.277791] wlcore: Association completed.
[  604.300047] Unable to handle kernel NULL pointer dereference at virtual address 00000024
[  604.309795] pgd = c0004000
[  604.312556] [00000024] *pgd=00000000
[  604.316361] Internal error: Oops: 17 [#1] ARM
[  604.320754] Modules linked in: wl18xx(O) wlcore(O) mac80211(O) cfg80211(O) mxs_mmc wlcore_sdio(O) compat(O)
[  604.330657] CPU: 0 PID: 306 Comm: kworker/u2:2 Tainted: G        W  O 3.10.32-hpc_1.0 #64
[  604.339120] Workqueue: phy0 wl1271_tx_work [wlcore]
[  604.344043] task: c292c400 ti: c2854000 task.ti: c2854000
[  604.349575] PC is at wl18xx_lnk_high_prio+0x14/0x8c [wl18xx]
[  604.355431] LR is at wlcore_lnk_dequeue_high_prio+0x40/0xc0 [wlcore]
[  604.361818] pc : [<bf1a21c8>]    lr : [<bf172860>]    psr: a0000013
[  604.361818] sp : c2855df8  ip : bf1a21b4  fp : c2839b20
[  604.373318] r10: c2855e63  r9 : c2854000  r8 : 000016b8
[  604.378561] r7 : 00000000  r6 : 00000000  r5 : c283a4c0  r4 : 00000000
[  604.385107] r3 : c2855e00  r2 : c283a4c0  r1 : 00000000  r0 : c2839b20
[  604.391654] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
[  604.398985] Control: 0005317f  Table: 42900000  DAC: 00000017
[  604.404752] Process kworker/u2:2 (pid: 306, stack limit = 0xc28541b8)
[  604.411214] Stack: (0xc2855df8 to 0xc2856000)
[  604.415600] 5de0:                                                       c064aff4 20000013
[  604.423818] 5e00: c2839b20 c283a4c0 c2855e63 c2839b20 00000000 00000000 c2855e63 00000000
[  604.432032] 5e20: c2fc0c00 bf173ab0 ffffffff bf18a584 00000000 00000000 00000000 c2855e3c
[  604.440245] 5e40: c2855e3c 00000000 00000001 00000000 ffffffff ffffffff 00000000 00000000
[  604.448458] 5e60: ff000000 00000000 c2855e3c c2855e3c 00000000 c2839b20 c2839b74 c3456000
[  604.456670] 5e80: c2855ec8 00000000 c2854000 c2fc0c00 c064aff4 bf174970 bf174940 c2839d80
[  604.464882] 5ea0: c28bfcc0 c0037568 00000002 00000000 c00374dc 0000000f c066f224 00000002
[  604.473095] 5ec0: 00000000 00000001 bf18a4c8 c073ce14 00000000 bf182788 c292c400 c28bfcc0
[  604.481308] 5ee0: c3456030 c28bfcd8 c2854000 c2854000 c2854000 c064acd8 c3456000 c0037c20
[  604.489522] 5f00: 00000000 c005ec70 60000013 c3459e44 00000000 c28bfcc0 c0037ae8 00000000
[  604.497735] 5f20: 00000000 00000000 00000000 c003dd3c c292c400 00000000 00000001 c28bfcc0
[  604.505948] 5f40: 00000000 00000001 dead4ead ffffffff ffffffff c066fe88 00000000 00000000
[  604.514161] 5f60: c051725c c2855f64 c2855f64 00000000 00000001 dead4ead ffffffff ffffffff
[  604.522375] 5f80: c066fe88 00000000 00000000 c051725c c2855f90 c2855f90 c2855fac c3459e44
[  604.530588] 5fa0: c003dc98 00000000 00000000 c000ee00 00000000 00000000 00000000 00000000
[  604.538799] 5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[  604.547013] 5fe0: 00000000 00000000 00000000 00000000 00000013 00000000 beb61140 5801a8c0
[  604.555336] [<bf1a21c8>] (wl18xx_lnk_high_prio+0x14/0x8c [wl18xx]) from [<c2855e63>] (0xc2855e63)
[  604.564253] Code: e5903578 e24dd008 e5934030 e28d3008 (e5945024)
[  604.587345] ---[ end trace 9532746212716597 ]---
[  604.592413] Unable to handle kernel paging request at virtual address ffffffd0
[  604.599682] pgd = c0004000
[  604.602414] [ffffffd0] *pgd=43ffd831, *pte=00000000, *ppte=00000000
[  604.608757] Internal error: Oops: 17 [#2] ARM
[  604.613141] Modules linked in: wl18xx(O) wlcore(O) mac80211(O) cfg80211(O) mxs_mmc wlcore_sdio(O) compat(O)
[  604.623037] CPU: 0 PID: 306 Comm: kworker/u2:2 Tainted: G      D W  O 3.10.32-hpc_1.0 #64
[  604.631269] task: c292c400 ti: c2854000 task.ti: c2854000
[  604.636715] PC is at kthread_data+0x4/0xc
[  604.640764] LR is at wq_worker_sleeping+0xc/0xac
[  604.645408] pc : [<c003dfd0>]    lr : [<c0038868>]    psr: 20000093
[  604.645408] sp : c2855b80  ip : c061f588  fp : c2855c04
[  604.656908] r10: c292c400  r9 : c3438000  r8 : c061f588
[  604.662152] r7 : c2854000  r6 : c061f588  r5 : c292c3f8  r4 : 00000000
[  604.668697] r3 : 00000000  r2 : 00002e7b  r1 : 00000000  r0 : c292c400
[  604.675246] Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
[  604.682491] Control: 0005317f  Table: 42894000  DAC: 00000015
[  604.688260] Process kworker/u2:2 (pid: 306, stack limit = 0xc28541b8)
[  604.694720] Stack: (0xc2855b80 to 0xc2856000)
[  604.699120] 5b80: c292c580 c042292c 00000009 c3401780 c2fc8ac0 c0020dcc c0610000 c0020ad0
......

 

Can anyone through some light why I am getting this issue or how to get rid of it? Please share if you need more information?


Regards,

Ankur

  • Hi Ankur,

    I have two suggestions:

    1. Try increasing WL1271_WAKEUP_TIMEOUT to 2000 and see if it helps
    2. Enable more logs in the driver side and please share (http://processors.wiki.ti.com/index.php/WL18xx_Driver_Debug)


    Regards,
    Gigi Joseph.

  • Hello Gigi,


    Thank you for suggestions.
     Based on your reply, I have updated the value of to 2000 and enabled the support for Dynamic Debugging into kernel. Below are the results after inserting the module.

    Steps followed:

    1) Booted the board. Insert the mxs-mmc.ko Module.

    root@imx28evk:~# insmod mxs-mmc.ko
    [   44.918545] mmc0: card claims to support voltages below the defined range. These will be ignored.
    [   44.946844] mmc0: queuing unknown CIS tuple 0x91 (3 bytes)
    [   44.958671] mmc0: new SDIO card at address 0001
    [   48.054659] cfg80211: Calling CRDA to update world regulatory domain
    [   55.827184] wlcore: wl18xx driver version:
    [   56.146725] wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
    [   56.251569] wlcore: loaded
    [   56.256658] wlcore: driver version:
    [   56.260717] wlcore: compilation time: Mon May 12 11:49:53 2014

    2) Enable debugging by executing:

    root@imx28evk:~#echo 8 > /proc/sys/kernel/printk
    root@imx28evk:~#echo 0x8800 > /sys/module/wlcore/parameters/debug_level
    root@imx28evk:~#echo -n 'module wlcore +p' > /sys/kernel/debug/dynamic_debug/control
    root@imx28evk:~#echo -n 'module wl18xx +p' > /sys/kernel/debug/dynamic_debug/control
    root@imx28evk:~#echo -n 'module mac80211 +p' > /sys/kernel/debug/dynamic_debug/control
    root@imx28evk:~#echo -n 'module cfg80211 +p' > /sys/kernel/debug/dynamic_debug/control
    3) Bringing up Wlan0 up

    root@imx28evk:~# ifconfig wlan0 up
    [  239.759032] wlcore: mac80211 start
    [  239.762518] wlcore: mac80211 add interface type 2 mac 84:dd:20:98:92:16
    [  239.772732] wlcore: allocating hw queue base: 0
    [  240.578133] wlcore: PHY firmware version: Rev 8.2.0.0.195
    [  240.706453] wlcore: firmware booted (Rev 8.8.0.0.13)
    [  240.711524] wlcore: 11a is supported
    [  240.751277] wlcore: mac80211 bss info role 0 changed 0xe
    [  240.766374] wlcore: mac80211 conf tx 0
    [  240.772433] wlcore: mac80211 conf tx 1
    [  240.784130] wlcore: mac80211 conf tx 2
    [  240.790683] wlcore: mac80211 conf tx 3
    [  240.798588] wlcore: mac80211 bss info role 0 changed 0x2000
    [  240.810412] wlcore: mac80211 config psm off power 0 in use changed 0xffffff9f
    [  240.821640] wlcore: mac80211 configure filter changed 0 total 80000000
    [  240.833926] wlcore: mac80211 config psm off power 0 in use changed 0x10
    [  240.843106] wlcore: mac80211 configure filter changed 0 total 80000000

    4) Perform below commands:

    Echoing /proc/Interrupts:

                root@imx28evk:~# cat /proc/interrupts
                           CPU0
                 16:       6525         -  MXS Timer Tick
                 17:      33239         -  mxs-dma
                 21:      12308         -  mxs-dma
                 25:          0         -  bch
                 26:          7         -  mxs-mmc
                 62:     302756  gpio-mxs  wl18xx
                197:          0         -  mxs-dma
                208:          0         -  RTC alarm
                209:          0         -  80058000.i2c
                213:          0         -  8006a000.serial
                214:          0         -  8006c000.serial
                215:          0         -  80070000.serial
                216:          0         -  80072000.serial
                217:       1583         -  uart-pl011
                220:      20498         -  800f0000.ethernet
                221:          0         -  800f4000.ethernet
                Err:          0

                 
    Echoing Driver State:

                root@imx28evk:~# cat  /sys/kernel/debug/ieee80211/phy0/wlcore/driver_state
                version =
                timestamp = Mon May 12 11:49:53 2014
                channel = 1 (STA)
                tx_blocks_available = 44
                tx_allocated_blocks = 0
                tx_allocated_pkts[0] = 0
                tx_allocated_pkts[1] = 0
                tx_allocated_pkts[2] = 0
                tx_allocated_pkts[3] = 0
                tx_frames_cnt = 0
                tx_frames_map[0] = 0x0
                tx_queue_count[0] = 0
                tx_queue_count[1] = 0
                tx_queue_count[2] = 0
                tx_queue_count[3] = 0
                tx_packets_count = 2
                tx_results_count = 2
                flags = 0x11
                tx_blocks_freed = 4
                rx_counter = 12
                state = 2
                band = 0
                power_level = 0
                sg_enabled = 1
                enable_11a = 1
                noise = -97
                ap_fw_ps_map = 0x0
                ap_ps_map = 0x0
                quirks = 0xe8c
                irq = 0x3e
                hw_pg_ver = 0x2
                platform_quirks = 0x1
                chip.id = 0x6030111
                chip.fw_ver_str = Rev 8.8.0.0.13
                chip.phy_fw_ver_str = Rev 8.2.0.0.195
                recovery_count = 0

    5) Connect to Un-secure AP (Vaikunth) as below:

    root@imx28evk:~# iw wlan0 connect Vaikunth
    [  248.848084] wlcore: mac80211 config psm off power 0 idle changed 0x100
    [  248.856925] wlcore: mac80211 hw scan
    root@imx28evk:~# [  249.545933] wlcore: mac80211 hw scan
    [  252.511516] wlan0: authenticate with d2:b3:3f:55:f2:50
    [  252.519846] wlcore: mac80211 config psm off power 0 in use changed 0x100
    [  252.530922] wlcore: mac80211 add chanctx 1 (type 1)
    [  252.536101] wlcore: mac80211 assign chanctx (role 0) 1 (type 1)
    [  252.543753] wlcore: mac80211 bss info role 0 changed 0x40000
    [  252.555039] wlcore: mac80211 bss info role 0 changed 0x4000
    [  252.560790] wlcore: mac80211 bss info role 0 changed 0xe0
    [  252.568422] wlcore: changed_bssid: d2:b3:3f:55:f2:50, aid: 0, bcn_int: 100, brates: 0xf sta_rate_set: 0x0
    [  252.589838] wlcore: mac80211 sta 0 state=0->1
    [  252.605121] wlan0: send auth to d2:b3:3f:55:f2:50 (try 1/3)
    [  252.619901] wlan0: authenticated
    [  252.625888] wlcore: mac80211 sta 0 state=1->2
    [  252.636213] wlan0: associate with d2:b3:3f:55:f2:50 (try 1/3)
    [  252.664944] wlan0: RX AssocResp from d2:b3:3f:55:f2:50 (capab=0x401 status=0 aid=1)
    [  252.673231] wlcore: mac80211 sta 0 state=2->3
    [  252.679476] wlcore: mac80211 sta 0 state=3->4
    [  252.693881] wlcore: mac80211 conf tx 2
    [  252.700225] wlcore: mac80211 conf tx 3
    [  252.712468] wlcore: mac80211 conf tx 1
    [  252.720436] wlcore: mac80211 conf tx 0
    [  252.728125] wlcore: mac80211 bss info role 0 changed 0x200d
    [  252.734460] unwind: Index not found bf0fd5ac
    [  252.738825] unwind: Index not found bf0fd5ac
    [  252.743162] unwind: Index not found bf0fd5ac
    [  252.747543] unwind: Index not found bf0fd5ac
    [  252.785223] wlcore: Association completed.
    [  252.793467] unwind: Index not found bf0fd5b8
    [  252.799776] unwind: Index not found bf0fd5e4
    [  252.804519] wlan0: associated
    [  252.811093] wlcore: mac80211 config psm on power 0 in use changed 0x10
    [  252.819450] wlcore: mac80211 bss info role 0 changed 0x20000
    [  252.834979] wlcore: mac80211 bss info role 0 changed 0x100000

    6) Enabled DHCP Client: (It was around 10 min passed b/w inserting module and running below command)

    root@imx28evk:~#  udhcpc -i wlan0
    udhcpc (v1.20.2) started
    Sending discover...
    Sending discover...
    Sending discover...
    [  605.913764] wlcore: ERROR ELP wakeup timeout!
    [  605.918183] ------------[ cut here ]------------
    [  605.923094] WARNING: at /home/ankur/radar/hpc/mx28_yocto/mx28_test/tmp/work/imx28evk-poky-linux-gnueabi/ti-compat-wireless-wl18xx/r8.a8.08-r0b/compat-wireless/drivers/net/wireless/ti/wlcore/main.c:802 wl12xx_queue_recovery_work+0x70/0x7c [wlcore]()
    [  605.945301] Modules linked in: wl18xx(O) wlcore(O) mac80211(O) cfg80211(O) mxs_mmc wlcore_sdio(O) compat(O)
    [  605.955382] CPU: 0 PID: 306 Comm: kworker/u2:2 Tainted: G           O 3.10.32-hpc_1.0 #66
    [  605.963925] Workqueue: phy0 wl1271_tx_work [wlcore]
    [  605.968945] [<c0014110>] (unwind_backtrace+0x0/0x130) from [<c0011cc0>] (show_stack+0x10/0x14)
    [  605.977797] [<c0011cc0>] (show_stack+0x10/0x14) from [<c001cff4>] (warn_slowpath_common+0x4c/0x68)
    [  605.986965] [<c001cff4>] (warn_slowpath_common+0x4c/0x68) from [<c001d02c>] (warn_slowpath_null+0x1c/0x24)
    [  605.996989] [<c001d02c>] (warn_slowpath_null+0x1c/0x24) from [<bf16bcb8>] (wl12xx_queue_recovery_work+0x70/0x7c [wlcore])
    [  606.008644] [<bf16bcb8>] (wl12xx_queue_recovery_work+0x70/0x7c [wlcore]) from [<bf1768d4>] (wl1271_ps_elp_wakeup+0x210/0x248 [wlcore])
    [  606.021276] [<bf1768d4>] (wl1271_ps_elp_wakeup+0x210/0x248 [wlcore]) from [<bf175960>] (wl1271_tx_work+0x20/0x54 [wlcore])
    [  606.032722] [<bf175960>] (wl1271_tx_work+0x20/0x54 [wlcore]) from [<c0037570>] (process_one_work+0x1c0/0x4a4)
    [  606.042870] [<c0037570>] (process_one_work+0x1c0/0x4a4) from [<c0037c28>] (worker_thread+0x138/0x394)
    [  606.052302] [<c0037c28>] (worker_thread+0x138/0x394) from [<c003de00>] (kthread+0xa4/0xb0)
    [  606.060777] [<c003de00>] (kthread+0xa4/0xb0) from [<c000ee40>] (ret_from_fork+0x14/0x34)
    [  606.069033] ---[ end trace 434e73c973a5dfca ]---
    [  606.077529] wlcore: Hardware recovery in progress. FW ver: Rev 8.8.0.0.13
    [  606.084950] ------------[ cut here ]------------
    [  606.089875] WARNING: at /home/ankur/radar/hpc/mx28_yocto/mx28_test/tmp/work/imx28evk-poky-linux-gnueabi/ti-compat-wireless-wl18xx/r8.a8.08-r0b/compat-wireless/drivers/net/wireless/ti/wlcore/io.h:65 wlcore_set_partition+0x64/0x468 [wlcore]()
    [  606.111358] Modules linked in: wl18xx(O) wlcore(O) mac80211(O) cfg80211(O) mxs_mmc wlcore_sdio(O) compat(O)
    [  606.121429] CPU: 0 PID: 306 Comm: kworker/u2:2 Tainted: G        W  O 3.10.32-hpc_1.0 #66
    [  606.129942] Workqueue: phy0 wl1271_recovery_work [wlcore]
    [  606.135677] [<c0014110>] (unwind_backtrace+0x0/0x130) from [<c0011cc0>] (show_stack+0x10/0x14)
    [  606.144518] [<c0011cc0>] (show_stack+0x10/0x14) from [<c001cff4>] (warn_slowpath_common+0x4c/0x68)
    [  606.153691] [<c001cff4>] (warn_slowpath_common+0x4c/0x68) from [<c001d02c>] (warn_slowpath_null+0x1c/0x24)
    [  606.163588] [<c001d02c>] (warn_slowpath_null+0x1c/0x24) from [<bf172834>] (wlcore_set_partition+0x64/0x468 [wlcore])
    [  606.174718] [<bf172834>] (wlcore_set_partition+0x64/0x468 [wlcore]) from [<bf16c184>] (wl1271_recovery_work+0x70/0x570 [wlcore])
    [  606.186673] [<bf16c184>] (wl1271_recovery_work+0x70/0x570 [wlcore]) from [<c0037570>] (process_one_work+0x1c0/0x4a4)
    [  606.197430] [<c0037570>] (process_one_work+0x1c0/0x4a4) from [<c0037c28>] (worker_thread+0x138/0x394)
    [  606.206862] [<c0037c28>] (worker_thread+0x138/0x394) from [<c003de00>] (kthread+0xa4/0xb0)
    [  606.215334] [<c003de00>] (kthread+0xa4/0xb0) from [<c000ee40>] (ret_from_fork+0x14/0x34)
    [  606.223479] ---[ end trace 434e73c973a5dfcb ]---
    [  606.228565] wlcore: mac80211 remove interface
    [  606.232967] wlcore: down
    [  606.242488] ieee80211 phy0: Hardware restart was requested
    [  606.251490] wlcore: mac80211 start
    [  606.255637] wlcore: mac80211 add interface type 2 mac 84:dd:20:98:92:16
    [  606.262510] wlcore: using pre-allocated hw queue base 0
    Sending discover...
    [  606.751116] wlcore: PHY firmware version: Rev 8.2.0.0.195
    [  606.871020] wlcore: firmware booted (Rev 8.8.0.0.13)
    [  606.876217] wlcore: 11a is supported
    [  606.913444] wlcore: mac80211 add chanctx 1 (type 1)
    [  606.919530] wlcore: mac80211 assign chanctx (role 0) 1 (type 1)
    [  606.927138] wlcore: mac80211 sta 0 state=0->1
    [  606.933258] wlcore: mac80211 sta 0 state=1->2
    [  606.939427] wlcore: mac80211 sta 0 state=2->3
    [  606.945079] wlcore: mac80211 sta 0 state=3->4
    [  606.950742] wlcore: mac80211 conf tx 0
    [  606.958556] wlcore: mac80211 conf tx 1
    [  606.965795] wlcore: mac80211 conf tx 2
    [  606.971897] wlcore: mac80211 conf tx 3
    [  606.979723] wlcore: mac80211 config psm on power 0 in use changed 0xffffff9f
    [  606.988222] wlcore: mac80211 configure filter changed 0 total 80000000
    [  606.997445] wlcore: mac80211 bss info role 0 changed 0x1674ff
    [  607.006233] wlcore: changed_bssid: d2:b3:3f:55:f2:50, aid: 1, bcn_int: 100, brates: 0xf sta_rate_set: 0xff0fff
    [  607.046867] wlcore: Association completed.
    [  607.059207] wlcore: mac80211 config psm on power 0 in use changed 0x10
    [  607.072267] Unable to handle kernel NULL pointer dereference at virtual address 00000024
    [  607.080616] pgd = c0004000
    [  607.083369] [00000024] *pgd=00000000
    [  607.087144] Internal error: Oops: 17 [#1] ARM
    [  607.091539] Modules linked in: wl18xx(O) wlcore(O) mac80211(O) cfg80211(O) mxs_mmc wlcore_sdio(O) compat(O)
    [  607.101437] CPU: 0 PID: 370 Comm: kworker/u2:0 Tainted: G        W  O 3.10.32-hpc_1.0 #66
    [  607.109901] Workqueue: phy0 wl1271_tx_work [wlcore]
    [  607.114826] task: c2926600 ti: c3458000 task.ti: c3458000
    [  607.120368] PC is at wl18xx_lnk_high_prio+0x14/0x8c [wl18xx]
    [  607.126230] LR is at wlcore_lnk_dequeue_high_prio+0x40/0xc0 [wlcore]
    [  607.132621] pc : [<bf1a31c8>]    lr : [<bf173860>]    psr: a0000013
    [  607.132621] sp : c3459df8  ip : bf1a31b4  fp : c2d09b20
    [  607.144123] r10: c3459e63  r9 : c3458000  r8 : 000016b8
    [  607.149368] r7 : 00000000  r6 : 00000000  r5 : c2d0a4c0  r4 : 00000000
    [  607.155914] r3 : c3459e00  r2 : c2d0a4c0  r1 : 00000000  r0 : c2d09b20
    [  607.162463] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
    [  607.169793] Control: 0005317f  Table: 428dc000  DAC: 00000017
    [  607.175561] Process kworker/u2:0 (pid: 370, stack limit = 0xc34581b8)
    [  607.182024] Stack: (0xc3459df8 to 0xc345a000)
    [  607.186410] 9de0:                                                       c067d054 20000013
    [  607.194628] 9e00: c2d09b20 c2d0a4c0 c3459e63 c2d09b20 00000000 00000000 c3459e63 00000000
    [  607.202847] 9e20: c28a0500 bf174ab0 ffffffff bf18b588 00000000 00000000 00000000 c3459e3c
    [  607.211062] 9e40: c3459e3c 00000000 00000001 00000000 ffffffff ffffffff 00000000 00000000
    [  607.219280] 9e60: ff000000 00000000 c3459e3c c3459e3c 00000000 c2d09b20 c2d09b74 c3456000
    [  607.227499] 9e80: c3459ec8 00000000 c3458000 c28a0500 c067d054 bf175970 bf175940 c2d09d80
    [  607.235715] 9ea0: c2fe4240 c0037570 00000002 00000000 c00374e4 c343ee80 c343f0fc 00000002
    [  607.243930] 9ec0: 00000000 00000001 bf18b4cc c0776774 00000000 bf18378c c2926600 c2fe4240
    [  607.252148] 9ee0: c3456030 c2fe4258 c3458000 c3458000 c3458000 c067cd38 c3456000 c0037c28
    [  607.260364] 9f00: 00000000 c005edc8 60000013 c351fe44 00000000 c2fe4240 c0037af0 00000000
    [  607.268581] 9f20: 00000000 00000000 00000000 c003de00 c2926600 00000000 00000001 c2fe4240
    [  607.276795] 9f40: 00000000 00000001 dead4ead ffffffff ffffffff c06a93a8 00000000 00000000
    [  607.285010] 9f60: c0533594 c3459f64 c3459f64 00000000 00000001 dead4ead ffffffff ffffffff
    [  607.293227] 9f80: c06a93a8 00000000 00000000 c0533594 c3459f90 c3459f90 c3459fac c351fe44
    [  607.301442] 9fa0: c003dd5c 00000000 00000000 c000ee40 00000000 00000000 00000000 00000000
    [  607.309656] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    [  607.317872] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 110b176d 8657c34f
    [  607.326205] [<bf1a31c8>] (wl18xx_lnk_high_prio+0x14/0x8c [wl18xx]) from [<c3459e63>] (0xc3459e63)
    [  607.335129] Code: e5903578 e24dd008 e5934030 e28d3008 (e5945024)
    [  607.357800] ---[ end trace 434e73c973a5dfcc ]---
    [  607.362802] Unable to handle kernel paging request at virtual address ffffffd0
    [  607.370067] pgd = c0004000
    [  607.372802] [ffffffd0] *pgd=43ffd831, *pte=00000000, *ppte=00000000
    [  607.379151] Internal error: Oops: 17 [#2] ARM
    [  607.383537] Modules linked in: wl18xx(O) wlcore(O) mac80211(O) cfg80211(O) mxs_mmc wlcore_sdio(O) compat(O)
    [  607.393431] CPU: 0 PID: 370 Comm: kworker/u2:0 Tainted: G      D W  O 3.10.32-hpc_1.0 #66
    [  607.401658] task: c2926600 ti: c3458000 task.ti: c3458000
    [  607.407103] PC is at kthread_data+0x4/0xc
    [  607.411157] LR is at wq_worker_sleeping+0xc/0xac
    [  607.415806] pc : [<c003e094>]    lr : [<c0038870>]    psr: 20000093
    [  607.415806] sp : c3459b80  ip : c0651588  fp : c3459c04
    [  607.427306] r10: c2926600  r9 : c3438000  r8 : c0651588
    [  607.432554] r7 : c3458000  r6 : c0651588  r5 : c29265f8  r4 : 00000000
    [  607.439105] r3 : 00000000  r2 : 00002e7b  r1 : 00000000  r0 : c2926600
    [  607.445653] Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
    [  607.452898] Control: 0005317f  Table: 42cec000  DAC: 00000015
    [  607.458664] Process kworker/u2:0 (pid: 370, stack limit = 0xc34581b8)

    Please feel free to share if you need further information.

    Regards,

    Ankur

  • Hello Gigi,


    There is strange thing I notice is after bringing up the wlan0 interface and doing nothing, I can see continous increase on the interrupt count under /proc/interrupts even if I cannot see any interrupts coming on WLAN_IRQ from chip when seen via oscilloscope. When I do some scan activity for instance, I can capture the interrupts on scope for WLAN_IRQ gpio used.

    Just after bringing up Wlan0 interface UP

    root@imx28evk:~# cat /proc/interrupts
               CPU0
     17:      36971         -  mxs-dma
     21:      12308         -  mxs-dma
     26:          7         -  mxs-mmc
     62:     341439  gpio-mxs  wl18xx
    197:          0         -  mxs-dma

    root@imx28evk:~# cat /proc/interrupts
               CPU0
     17:      37385         -  mxs-dma
     21:      12308         -  mxs-dma
     26:          7         -  mxs-mmc
     62:     345403  gpio-mxs  wl18xx
    197:          0         -  mxs-dma

    root@imx28evk:~# cat /proc/interrupts
               CPU0
     17:     185932         -  mxs-dma
     21:      12308         -  mxs-dma
     26:          7         -  mxs-mmc
     62:    1760747  gpio-mxs  wl18xx
    197:          0         -  mxs-dma

    I am not sure if that is expected.

    Regards,

    Ankur

  • Hi Ankur,

    This is very unusual. I suspect something is wrong in your board file(GPIO mapping or pin muxing) relaitng to the WLAN_IRQ line.

    Regards,
    Gigi Joseph.

  • Hello Gigi,


    Appreciate your kind help. I am able to resolve the issue. It was incorrect mapping of the irq.


    Best Wishes,

    Ankur

  • Also it may be physical problem (long wires for example), as in my case (custom setup), i reduce mmc max frequency to 25MHz and problem was gone.