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.

WL1801MOD: WL1801MODGBMOC

Part Number: WL1801MOD
Other Parts Discussed in Thread: WL1801, WL1271

Hi, 

I'm using the WL1801MODGBMOC chip in a custom design aiming at sending video over WiFi. We are using embedded linux as the OS. We succeeded in getting TI's driver up and running but our application did not work well. We realized there was a new firmware version of the WL1801 available and we tried to update it and now the WiFi driver crashes. It seems that we need to recompile the driver with this latest FW version. We thought it was just a matter of telling the driver what binary file to upload but it seems we have to recompile the driver, correct? The documentation in the Git repo to recompile the driver with yocto is not clear enough. I'd appreciate if you could provide me with some documentation on how to update the firmware of the chip and recompiling the device driver. 

Best regards,

Luis Gonzalez 

  • Hi,

    WiLink8 kernel drivers are built as kernel modules - no special instructions .

    There shouldn't be a  need to rebuild WiLink8 kernel driver in order to update firmware binary as long as product is not running very old linux kernel version

    Best

    Saurabh

  • Hello Saurabh,

    Thank you for your response. 

    Here are more details of the issues we are experiencing.

    1) The linux kernel version we are running is 5.4.0

    2) The FW version we were using is 8.9.0.0.79

    3) The new FW version we are trying to load is 8.9.0.0.88

    4) The error messages were see in the logs when we try to load the new firmware are:

    [ 4.102699] wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)
    [ 4.110782] wlcore: loaded
    [ 8.150119] wlcore: ERROR firmware size is not multiple of 32 bits: 4879031
    [ 8.654787] wlcore: ERROR firmware size is not multiple of 32 bits: 4879031
    [ 9.161794] wlcore: ERROR firmware size is not multiple of 32 bits: 4879031
    [ 9.169620] wlcore: ERROR firmware boot failed despite 3 retries

    I hope this could give you an idea of our problem. Any suggestion is very appreciated. 

    Thank you 

    Luis Gonzalez

  • Hello Saurabh,

    I forgot to mention that the source code of the device driver we are using is:

    https://github.com/Xilinx/linux-xlnx/tree/xilinx-v2020.2/drivers/net/wireless/ti 

    Thank you

    Luis Gonzalez

  • Luis,

    I don't believe correct firmware binary file is being loaded

    https://git.ti.com/cgit/wilink8-wlan/wl18xx_fw/tree/

    file size should 734796 bytes

    Best
    Saurabh

  • Hi Saurabh,

    Let me check and I will get back to you.

    Thank you,

    Luis

  • Hi Saurabh,

    We were able to download the binary file correctly and ran some tests. Nevertheless, it seems the driver is still causing problems. Here's a log of what we are seeing in our application.  I'd appreciate if you can take a look and let me know if there is something wrong you detect.

    thanks

    Luis Gonzalez

    root@skyhawk:~# [ 507.933910] mmc1: Timeout waiting for hardware cmd interrupt.
    [ 507.939646] mmc1: sdhci: ============ SDHCI REGISTER DUMP ===========
    [ 507.946069] mmc1: sdhci: Sys addr: 0x00000000 | Version: 0x00001002
    [ 507.952492] mmc1: sdhci: Blk size: 0x000070ec | Blk cnt: 0x00000000
    [ 507.958915] mmc1: sdhci: Argument: 0x83fff800 | Trn mode: 0x00000013
    [ 507.965338] mmc1: sdhci: Present: 0x01f70000 | Host ctl: 0x0000001f
    [ 507.971761] mmc1: sdhci: Power: 0x0000000f | Blk gap: 0x00000080
    [ 507.978184] mmc1: sdhci: Wake-up: 0x00000000 | Clock: 0x00000207
    [ 507.984607] mmc1: sdhci: Timeout: 0x00000007 | Int stat: 0x00000001
    [ 507.991031] mmc1: sdhci: Int enab: 0x03ff008b | Sig enab: 0x03ff008b
    [ 507.997454] mmc1: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000001
    [ 508.003878] mmc1: sdhci: Caps: 0x31e8c881 | Caps_1: 0x00002007
    [ 508.010300] mmc1: sdhci: Cmd: 0x0000341a | Max curr: 0x00000000
    [ 508.016723] mmc1: sdhci: Resp[0]: 0x00001000 | Resp[1]: 0x00000000
    [ 508.023147] mmc1: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
    [ 508.029569] mmc1: sdhci: Host ctl2: 0x00000001
    [ 508.033997] mmc1: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x000000004c08220c
    [ 508.041113] mmc1: sdhci: ============================================
    [ 508.047790] ------------[ cut here ]------------
    [ 508.052409] WARNING: CPU: 2 PID: 32 at drivers/net/wireless/ti/wlcore/sdio.c:131 wl12xx_sdio_raw_write+0xdc/0x158
    [ 508.062657] Modules linked in: a2e_h264(O) mali(O) dpcma(O) dpu(O)
    [ 508.068833] CPU: 2 PID: 32 Comm: kworker/2:1 Tainted: G O 5.4.0-xilinx-v2020.2 #1
    [ 508.077604] Hardware name: xlnx,zynqmp (DT)
    [ 508.081776] Workqueue: pm pm_runtime_work
    [ 508.085774] pstate: 00000005 (nzcv daif -PAN -UAO)
    [ 508.090548] pc : wl12xx_sdio_raw_write+0xdc/0x158
    [ 508.095235] lr : wl12xx_sdio_raw_write+0x90/0x158
    [ 508.099920] sp : ffff80001127bbf0
    [ 508.103219] x29: ffff80001127bbf0 x28: ffff00004de79f00
    [ 508.108513] x27: ffff80001127bd68 x26: 0000000000000000
    [ 508.113808] x25: 0000000000000000 x24: 0000000000000004
    [ 508.119103] x23: ffff00004c183280 x22: ffff00004c184410
    [ 508.124398] x21: ffff00004df0f180 x20: 000000000001fffc
    [ 508.129693] x19: ffff00004c184800 x18: 0000000000000014
    [ 508.134987] x17: 00000000fe259cf1 x16: 00000000dd8916d8
    [ 508.140282] x15: 000000005393745f x14: 00000000000c8000
    [ 508.145577] x13: 0000000000000000 x12: 0000000000000000
    [ 508.150872] x11: 0000000000000000 x10: 00000000000008b0
    [ 508.156167] x9 : ffff80001127b820 x8 : ffff00004df0fa90
    [ 508.161461] x7 : 0000000000000400 x6 : 000000041f8771d5
    [ 508.166756] x5 : 00ffffffffffffff x4 : 0000000000000000
    [ 508.172051] x3 : 0000000000000001 x2 : ffff00004dee8ce4
    [ 508.177346] x1 : 0000000000000000 x0 : 00000000ffffff92
    [ 508.182640] Call trace:
    [ 508.185074] wl12xx_sdio_raw_write+0xdc/0x158
    [ 508.189414] wlcore_runtime_suspend+0xa8/0x138
    [ 508.193850] pm_generic_runtime_suspend+0x28/0x40
    [ 508.198536] __rpm_callback+0xf0/0x170
    [ 508.202268] rpm_callback+0x54/0x80
    [ 508.205740] rpm_suspend+0xe8/0x4a8
    [ 508.209212] pm_runtime_work+0xc8/0xd8
    [ 508.212945] process_one_work+0x1c4/0x338
    [ 508.216937] worker_thread+0x4c/0x488
    [ 508.220584] kthread+0x120/0x128
    [ 508.223796] ret_from_fork+0x10/0x18
    [ 508.227352] ---[ end trace 23cd2428fb632480 ]---
    [ 508.231973] wl1271_sdio mmc1:0001:2: sdio write failed (-110)
    [ 508.237744] ------------[ cut here ]------------
    [ 508.242347] WARNING: CPU: 2 PID: 32 at drivers/net/wireless/ti/wlcore/main.c:794 wl12xx_queue_recovery_work+0x58/0x60
    [ 508.252939] Modules linked in: a2e_h264(O) mali(O) dpcma(O) dpu(O)
    [ 508.259114] CPU: 2 PID: 32 Comm: kworker/2:1 Tainted: G W O 5.4.0-xilinx-v2020.2 #1
    [ 508.267878] Hardware name: xlnx,zynqmp (DT)
    [ 508.272047] Workqueue: pm pm_runtime_work
    [ 508.276048] pstate: 60000005 (nZCv daif -PAN -UAO)
    [ 508.280822] pc : wl12xx_queue_recovery_work+0x58/0x60
    [ 508.285856] lr : wlcore_runtime_suspend+0x120/0x138
    [ 508.290715] sp : ffff80001127bc40
    [ 508.294014] x29: ffff80001127bc40 x28: ffff00004de79f00
    [ 508.299309] x27: ffff80001127bd68 x26: 0000000000000000
    [ 508.304603] x25: 0000000000000008 x24: ffff00004df0f180
    [ 508.309898] x23: 0000000000000000 x22: ffff00004c1844e4
    [ 508.315193] x21: ffff8000106abfb0 x20: 00000000ffffff92
    [ 508.320488] x19: ffff00004d045e40 x18: 0000000000000010
    [ 508.325782] x17: 00000000fe259cf1 x16: 00000000dd8916d8
    [ 508.331077] x15: ffff00004df0f5a8 x14: ffffffffffffffff
    [ 508.336372] x13: ffff80009127b857 x12: ffff80001127b85f
    [ 508.341667] x11: ffff800011054000 x10: 0000000000000000
    [ 508.346962] x9 : ffff8000110ef000 x8 : 000000000000015c
    [ 508.352256] x7 : 0000000000000006 x6 : 0000000000000001
    [ 508.357551] x5 : 0000000000000000 x4 : 0000000000000000
    [ 508.362846] x3 : ffff00004d045ec0 x2 : 0000000000000000
    [ 508.368141] x1 : ffff00004d045e40 x0 : 0000000000002001
    [ 508.373435] Call trace:
    [ 508.375869] wl12xx_queue_recovery_work+0x58/0x60
    [ 508.380555] wlcore_runtime_suspend+0x120/0x138
    [ 508.385069] pm_generic_runtime_suspend+0x28/0x40
    [ 508.389756] __rpm_callback+0xf0/0x170
    [ 508.393488] rpm_callback+0x54/0x80
    [ 508.396960] rpm_suspend+0xe8/0x4a8
    [ 508.400432] pm_runtime_work+0xc8/0xd8
    [ 508.404164] process_one_work+0x1c4/0x338
    [ 508.408157] worker_thread+0x4c/0x488
    [ 508.411804] kthread+0x120/0x128
    [ 508.415015] ret_from_fork+0x10/0x18
    [ 508.418572] ---[ end trace 23cd2428fb632481 ]---
    [ 518.869904] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
    [ 518.875817] rcu: 0-...0: (2 GPs behind) idle=2fa/1/0x4000000000000000 softirq=3694/3694 fqs=2626
    [ 518.884762] (detected by 2, t=5254 jiffies, g=20261, q=655)
    [ 518.890403] Task dump for CPU 0:
    [ 518.893615] live555MediaSer R running task 0 1057 858 0x00000002
    [ 518.900653] Call trace:
    [ 518.903088] __switch_to+0x1c4/0x288
    [ 518.906652] 0xffff00004d78cd00
    [ 581.889908] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
    [ 581.895824] rcu: 0-...0: (2 GPs behind) idle=2fa/1/0x4000000000000000 softirq=3694/3694 fqs=10502
    [ 581.904854] (detected by 3, t=21009 jiffies, g=20261, q=2617)
    [ 581.910668] Task dump for CPU 0:
    [ 581.913881] live555MediaSer R running task 0 1057 858 0x00000002
    [ 581.920919] Call trace:
    [ 581.923358] __switch_to+0x1c4/0x288
    [ 581.926919] 0xffff00004d78cd00

    root@skyhawk:~# [  507.933910] mmc1: Timeout waiting for hardware cmd interrupt.
    [  507.939646] mmc1: sdhci: ============ SDHCI REGISTER DUMP ===========
    [  507.946069] mmc1: sdhci: Sys addr:  0x00000000 | Version:  0x00001002
    [  507.952492] mmc1: sdhci: Blk size:  0x000070ec | Blk cnt:  0x00000000
    [  507.958915] mmc1: sdhci: Argument:  0x83fff800 | Trn mode: 0x00000013
    [  507.965338] mmc1: sdhci: Present:   0x01f70000 | Host ctl: 0x0000001f
    [  507.971761] mmc1: sdhci: Power:     0x0000000f | Blk gap:  0x00000080
    [  507.978184] mmc1: sdhci: Wake-up:   0x00000000 | Clock:    0x00000207
    [  507.984607] mmc1: sdhci: Timeout:   0x00000007 | Int stat: 0x00000001
    [  507.991031] mmc1: sdhci: Int enab:  0x03ff008b | Sig enab: 0x03ff008b
    [  507.997454] mmc1: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000001
    [  508.003878] mmc1: sdhci: Caps:      0x31e8c881 | Caps_1:   0x00002007
    [  508.010300] mmc1: sdhci: Cmd:       0x0000341a | Max curr: 0x00000000
    [  508.016723] mmc1: sdhci: Resp[0]:   0x00001000 | Resp[1]:  0x00000000
    [  508.023147] mmc1: sdhci: Resp[2]:   0x00000000 | Resp[3]:  0x00000000
    [  508.029569] mmc1: sdhci: Host ctl2: 0x00000001
    [  508.033997] mmc1: sdhci: ADMA Err:  0x00000000 | ADMA Ptr: 0x000000004c08220c
    [  508.041113] mmc1: sdhci: ============================================
    [  508.047790] ------------[ cut here ]------------
    [  508.052409] WARNING: CPU: 2 PID: 32 at drivers/net/wireless/ti/wlcore/sdio.c:131 wl12xx_sdio_raw_write+0xdc/0x158
    [  508.062657] Modules linked in: a2e_h264(O) mali(O) dpcma(O) dpu(O)
    [  508.068833] CPU: 2 PID: 32 Comm: kworker/2:1 Tainted: G           O      5.4.0-xilinx-v2020.2 #1
    [  508.077604] Hardware name: xlnx,zynqmp (DT)
    [  508.081776] Workqueue: pm pm_runtime_work
    [  508.085774] pstate: 00000005 (nzcv daif -PAN -UAO)
    [  508.090548] pc : wl12xx_sdio_raw_write+0xdc/0x158
    [  508.095235] lr : wl12xx_sdio_raw_write+0x90/0x158
    [  508.099920] sp : ffff80001127bbf0
    [  508.103219] x29: ffff80001127bbf0 x28: ffff00004de79f00
    [  508.108513] x27: ffff80001127bd68 x26: 0000000000000000
    [  508.113808] x25: 0000000000000000 x24: 0000000000000004
    [  508.119103] x23: ffff00004c183280 x22: ffff00004c184410
    [  508.124398] x21: ffff00004df0f180 x20: 000000000001fffc
    [  508.129693] x19: ffff00004c184800 x18: 0000000000000014
    [  508.134987] x17: 00000000fe259cf1 x16: 00000000dd8916d8
    [  508.140282] x15: 000000005393745f x14: 00000000000c8000
    [  508.145577] x13: 0000000000000000 x12: 0000000000000000
    [  508.150872] x11: 0000000000000000 x10: 00000000000008b0
    [  508.156167] x9 : ffff80001127b820 x8 : ffff00004df0fa90
    [  508.161461] x7 : 0000000000000400 x6 : 000000041f8771d5
    [  508.166756] x5 : 00ffffffffffffff x4 : 0000000000000000
    [  508.172051] x3 : 0000000000000001 x2 : ffff00004dee8ce4
    [  508.177346] x1 : 0000000000000000 x0 : 00000000ffffff92
    [  508.182640] Call trace:
    [  508.185074]  wl12xx_sdio_raw_write+0xdc/0x158
    [  508.189414]  wlcore_runtime_suspend+0xa8/0x138
    [  508.193850]  pm_generic_runtime_suspend+0x28/0x40
    [  508.198536]  __rpm_callback+0xf0/0x170
    [  508.202268]  rpm_callback+0x54/0x80
    [  508.205740]  rpm_suspend+0xe8/0x4a8
    [  508.209212]  pm_runtime_work+0xc8/0xd8
    [  508.212945]  process_one_work+0x1c4/0x338
    [  508.216937]  worker_thread+0x4c/0x488
    [  508.220584]  kthread+0x120/0x128
    [  508.223796]  ret_from_fork+0x10/0x18
    [  508.227352] ---[ end trace 23cd2428fb632480 ]---
    [  508.231973] wl1271_sdio mmc1:0001:2: sdio write failed (-110)
    [  508.237744] ------------[ cut here ]------------
    [  508.242347] WARNING: CPU: 2 PID: 32 at drivers/net/wireless/ti/wlcore/main.c:794 wl12xx_queue_recovery_work+0x58/0x60
    [  508.252939] Modules linked in: a2e_h264(O) mali(O) dpcma(O) dpu(O)
    [  508.259114] CPU: 2 PID: 32 Comm: kworker/2:1 Tainted: G        W  O      5.4.0-xilinx-v2020.2 #1
    [  508.267878] Hardware name: xlnx,zynqmp (DT)
    [  508.272047] Workqueue: pm pm_runtime_work
    [  508.276048] pstate: 60000005 (nZCv daif -PAN -UAO)
    [  508.280822] pc : wl12xx_queue_recovery_work+0x58/0x60
    [  508.285856] lr : wlcore_runtime_suspend+0x120/0x138
    [  508.290715] sp : ffff80001127bc40
    [  508.294014] x29: ffff80001127bc40 x28: ffff00004de79f00
    [  508.299309] x27: ffff80001127bd68 x26: 0000000000000000
    [  508.304603] x25: 0000000000000008 x24: ffff00004df0f180
    [  508.309898] x23: 0000000000000000 x22: ffff00004c1844e4
    [  508.315193] x21: ffff8000106abfb0 x20: 00000000ffffff92
    [  508.320488] x19: ffff00004d045e40 x18: 0000000000000010
    [  508.325782] x17: 00000000fe259cf1 x16: 00000000dd8916d8
    [  508.331077] x15: ffff00004df0f5a8 x14: ffffffffffffffff
    [  508.336372] x13: ffff80009127b857 x12: ffff80001127b85f
    [  508.341667] x11: ffff800011054000 x10: 0000000000000000
    [  508.346962] x9 : ffff8000110ef000 x8 : 000000000000015c
    [  508.352256] x7 : 0000000000000006 x6 : 0000000000000001
    [  508.357551] x5 : 0000000000000000 x4 : 0000000000000000
    [  508.362846] x3 : ffff00004d045ec0 x2 : 0000000000000000
    [  508.368141] x1 : ffff00004d045e40 x0 : 0000000000002001
    [  508.373435] Call trace:
    [  508.375869]  wl12xx_queue_recovery_work+0x58/0x60
    [  508.380555]  wlcore_runtime_suspend+0x120/0x138
    [  508.385069]  pm_generic_runtime_suspend+0x28/0x40
    [  508.389756]  __rpm_callback+0xf0/0x170
    [  508.393488]  rpm_callback+0x54/0x80
    [  508.396960]  rpm_suspend+0xe8/0x4a8
    [  508.400432]  pm_runtime_work+0xc8/0xd8
    [  508.404164]  process_one_work+0x1c4/0x338
    [  508.408157]  worker_thread+0x4c/0x488
    [  508.411804]  kthread+0x120/0x128
    [  508.415015]  ret_from_fork+0x10/0x18
    [  508.418572] ---[ end trace 23cd2428fb632481 ]---
    [  518.869904] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
    [  518.875817] rcu:     0-...0: (2 GPs behind) idle=2fa/1/0x4000000000000000 softirq=3694/3694 fqs=2626
    [  518.884762]  (detected by 2, t=5254 jiffies, g=20261, q=655)
    [  518.890403] Task dump for CPU 0:
    [  518.893615] live555MediaSer R  running task        0  1057    858 0x00000002
    [  518.900653] Call trace:
    [  518.903088]  __switch_to+0x1c4/0x288
    [  518.906652]  0xffff00004d78cd00
    [  581.889908] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
    [  581.895824] rcu:     0-...0: (2 GPs behind) idle=2fa/1/0x4000000000000000 softirq=3694/3694 fqs=10502
    [  581.904854]  (detected by 3, t=21009 jiffies, g=20261, q=2617)
    [  581.910668] Task dump for CPU 0:
    [  581.913881] live555MediaSer R  running task        0  1057    858 0x00000002
    [  581.920919] Call trace:
    [  581.923358]  __switch_to+0x1c4/0x288
    [  581.926919]  0xffff00004d78cd00

  • Hi Luis,

    Saurabh is currently out of office and will return August 30.

    Best regards,

    Jacob

  • Thank you for letting me know Jacob. Must I wait for Saurabh to get back or is there anyone else that can help me? I really am in a hurry and need to get this issue resolved asap. Thank you. Luis

  • Luis,

    I will be able to take a look at this next week . Scanning through the logs , there seems to be some SDIO bus access failures,

    - pls ask customer to check mmc related settings in the  dts file. for reference : https://git.ti.com/cgit/wilink8-wlan/build-utilites/tree/patches/kernel_patches/beaglebone-wilink8-capes/Enable-TI-WiFi-Bluetooth-am335x-boneblack-WL1837.patch?h=r8.8

    - Also , pls ask them to reduce the SDIO freq  ( ex: max 5 Mhz  ) and re-test ,

    Saurabh

  • Hello Saurabh,

    We did not see the frequency limitation in the example. Should we add the following line?

    max-frequency = <5000000>;

    Also, attached you can find the dtsi file we are using to configure the device tree. Could you take a look at the WiFi driver section to confirm we are not doing anything wrong, please?

    Thank you Saurabh.

    /include/ "system-conf.dtsi"
    / {
    	wlan_en_reg: fixedregulator@2 {
    		compatible = "regulator-fixed";
    		regulator-name = "wlan-en-regulator";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		gpio = <&gpio 78 0>;
    		startup-delay-us = <70000>;
    		enable-active-high;
    	};
    	dpu: dpu@80000000 {
    		compatible = "deephi, dpu";
    		reg = <0x0 0x80000000 0x0 0x1000000>;
    		interrupts = <0 89 4>;
    		interrupt-parent = <&gic>;
    		core-num = <0x1>;
    	};
    	dpcma: dpcma {
    	       compatible = "deephi,cma";
    	};
            chosen {
    	       bootargs = "earlycon console=ttyPS0,115200 clk_ignore_unused root=/dev/mmcblk0p2 rw rootwait cma=512M mem=1800M uio_pdrv_genirq.of_id=generic-uio";
    	};
    	sf_mipi_0 {
    	       compatible = "generic-uio"; /* MIPI */
    	       reg = <0x0 0xa0000000 0x0 0x2000>;
    	       interrupts = <0 95 4>;
    	       interrupt-parent = <&gic>;
    	};
    	sf_vdma_0 {
    	       compatible = "generic-uio";
    	       reg = <0x0 0xa0070000 0x0 0x10000>;
    	       interrupts = <0 105 4>;
    	       interrupt-parent = <&gic>;
    	};
    	sf_vdma_1 {
    	       compatible = "generic-uio"; /* VDMA1 */
    	       reg = <0x0 0xa0010000 0x0 0x10000>;
    	       interrupts = <0 90 4>;
    	       interrupt-parent = <&gic>;
    	};
    	sf_vdma_2 {
    	       compatible = "generic-uio"; /* VDMA2 */
    	       reg = <0x0 0xa0020000 0x0 0x10000>;
    	       interrupts = <0 91 4>;
    	       interrupt-parent = <&gic>;
    	};
    	sf_vdma_3 {
    	       compatible = "generic-uio"; /* VDMA3 */
    	       reg = <0x0 0xa0030000 0x0 0x10000>;
    	       interrupts = <0 92 4>;
    	       interrupt-parent = <&gic>;
    	};
    	sf_vdma_4 {
    	       compatible = "generic-uio"; /* VDMA4 */
    	       reg = <0x0 0xa0040000 0x0 0x10000>;
    	       interrupts = <0 93 4>;
    	       interrupt-parent = <&gic>;
    	};
    	sf_vdma_5 {
    	       compatible = "generic-uio"; /* VDMA5 */
    	       reg = <0x0 0xa0090000 0x0 0x10000>;
    	       interrupts = <0 94 4>;
    	       interrupt-parent = <&gic>;
    	};
    	sf_vdma_6 {
    	       compatible = "generic-uio";
    	       reg = <0x0 0xa0050000 0x0 0x10000>;
    	       interrupts = <0 96 4>;
    	       interrupt-parent = <&gic>;
    	};
    };
    
    &sdhci0 {
    	status = "okay";
    	no-1-8-v;
    	disable-wp;
    };
    
    &sdhci1 {
    	status = "okay";
    	vmmc-supply = <&wlan_en_reg>;
    	bus-width = <4>;
    	ti,non-removable;
    	ti,needs-special-hs-handling;
    	cap-power-off-card;
    	keep-power-in-suspend;
    
    	#address-cells = <1>;
    	#size-cells = <0>;
    	wlcore:wlcore@0 {
    		compatible = "ti,wl1801";
    		reg = <2>;
    		interrupt-parent = <&gpio>;
    		interrupts = <79 0x4>;
    	};
    };
    
    &axi_vdma_0 {
         status = "disabled";
    };
    
    &axi_vdma_1 {
         status = "disabled";
    };
    
    &axi_vdma_2 {
         status = "disabled";
    };
    
    &axi_vdma_3 {
         status = "disabled";
    };
    
    &axi_vdma_4 {
         status = "disabled";
    };
    
    &axi_vdma_5 {
         status = "disabled";
    };
    
    &axi_vdma_6 {
         status = "disabled";
    };
    
    &mipi_csi2_rx_subsyst_0 {
         status = "disabled";
    };
    
    &tpg_axi_wrapper_0 {
         status = "disabled";
    };
    
    &h264_axis_core_0 {
         compatible = "a2e,h264-axis";
         interrupts = <0 104 1>;
         interrupt-parent = <&gic>;
    };
    
    

  • Luis,

    Yes, they can add max-frequency variable in dts file and check

    We have already provided our reference dts file. Pls ask customer to consult it. We can only do limited review of their dts file since it is platform dependent . We will let you know if we have any comments in next few days.

    Best

    Saurabh

  • Thank you Saurabh. In the example you sent we did not see the line for setting the max frequency. This is why I wanted to confirm if the settting is 

    max-frequency = <5000000>;

    We will add the line and will get back to you. Also, if you have any comments, please let me know.

    Regards,

    Luis

  • Hi Saurabh,

    Just to confirm I have the latest reference dts file, could you re-share the link where I can download it, please?

    Thanks

    Luis

  • Luis,

    The patch that i had shared has WiLink8 related dts mods that we tested on our latest WiLink8 R8.8 release. You may download the patch if needed. It will create new dts file when you apply it.

    Best,

    Saurabh

  • Thank you Saurabh. We applied the max-frequency = <5000000> line to the driver but still can't make the modem work.

    Here's what we are getting:

    [ 288.797975] wlcore: ERROR Tx stuck (in FW) for 5000 ms. Starting recovery
    [ 288.804793] ------------[ cut here ]------------
    [ 288.809402] WARNING: CPU: 0 PID: 7 at drivers/net/wireless/ti/wlcore/main.c:794 wl12xx_queue_recovery_work+0x58/0x60
    [ 288.819903] Modules linked in: a2e_h264(O) mali(O) dpcma(O) dpu(O)
    [ 288.826079] CPU: 0 PID: 7 Comm: kworker/u8:0 Tainted: G O 5.4.0-xilinx-v2020.2 #1
    [ 288.834850] Hardware name: xlnx,zynqmp (DT)
    [ 288.839020] Workqueue: phy0 wl12xx_tx_watchdog_work
    [ 288.843888] pstate: 60000005 (nZCv daif -PAN -UAO)
    [ 288.848662] pc : wl12xx_queue_recovery_work+0x58/0x60
    [ 288.853696] lr : wl12xx_tx_watchdog_work+0x104/0x120
    [ 288.858642] sp : ffff80001118bd60
    [ 288.861940] x29: ffff80001118bd60 x28: ffff00004dc54200
    [ 288.867235] x27: ffff00004dc09000 x26: 0000000000000000
    [ 288.872530] x25: 0000000000000000 x24: ffff00004c0c70b8
    [ 288.877825] x23: ffff00004d7ab000 x22: ffff00004c0c6640
    [ 288.883119] x21: ffff00004c0c5ea0 x20: ffff00004c0c5e40
    [ 288.888414] x19: ffff00004c0c5e40 x18: 0000000000000010
    [ 288.893709] x17: 0000000000000000 x16: 0000000000000000
    [ 288.899004] x15: ffff00004dcc7228 x14: ffffffffffffffff
    [ 288.904299] x13: ffff80009118bae7 x12: ffff80001118baef
    [ 288.909594] x11: ffff800011054000 x10: 0000000000000000
    [ 288.914888] x9 : ffff8000110ef000 x8 : 0000000000000138
    [ 288.920183] x7 : 0000000000000006 x6 : ffff8000110ef0ec
    [ 288.925478] x5 : 000000000000000f x4 : 0000000000000000
    [ 288.930773] x3 : 0000000000000000 x2 : 9645392904d5dc00
    [ 288.936067] x1 : ffff00004c0c5e40 x0 : 0000000000000001
    [ 288.941362] Call trace:
    [ 288.943795] wl12xx_queue_recovery_work+0x58/0x60
    [ 288.948482] wl12xx_tx_watchdog_work+0x104/0x120
    [ 288.953083] process_one_work+0x1c4/0x338
    [ 288.957074] worker_thread+0x4c/0x488
    [ 288.960721] kthread+0x120/0x128
    [ 288.963933] ret_from_fork+0x10/0x18
    [ 288.967490] ---[ end trace b38c50ac32b18ad2 ]---
    [ 288.972137] wlcore: Hardware recovery in progress. FW ver: Rev 8.9.0.0.88
    [ 288.979450] wlcore: pc: 0x0, hint_sts: 0x00000048 count: 1
    [ 288.985367] wlcore: down

    Any suggestions are very welcome.

    Thank you Saurabh.

  • Luis,

    It seems like they are getting SDIO failures even at 5 MHz. They can try to reduce the frequency even further . Also , pls ask customer to confirm there are no SDIO signal integrity issues on the board

    Saurabh

  • Hello Saurabh,

    I think signal integrity validation was done on the SDIO but I will check to confirm. We will also reduce the frequency some more. I'll get back to you with news shortly.

    Thank you

    Luis

  • Luis, Thanks for the update.