WIFI Script Not working with 13.1 FW and 19.02 Legato

Hi,

We are developing a product based on WP7608 and we have a wifi module form TI (WL1831MOD). when we try to test WIFI module on FW release 10.1 and 9 it works fine but when we try to test the same Hardware on FW13.1 with Legato 19.02 it is not working.

when i tired to check modules availability with “lsmod” command after “wifi client start” we are missing one module.
Release 10.1
root@swi-mdm9x28:~# lsmod
Not tainted
wl18xx 92249 0 - Live 0xbf3b2000
wlcore_sdio 5512 0 - Live 0xbf3ad000
wlcore 202841 1 wl18xx, Live 0xbf36c000
mac80211 437300 2 wl18xx,wlcore, Live 0xbf2dd000
cfg80211 476220 3 wl18xx,wlcore,mac80211, Live 0xbf23c000
arc4 1664 2 - Live 0xbf238000
Release 13.1
root@swi-mdm9x28-wp:~# lsmod
Not tainted
wl18xx 92042 0 - Live 0xbf0ef000
wlcore_sdio 5584 0 - Live 0xbf0ea000
wlcore 202433 1 wl18xx, Live 0xbf0a9000
mac80211 286130 2 wl18xx,wlcore, Live 0xbf051000
cfg80211 258877 3 wl18xx,wlcore,mac80211, Live 0xbf000000
why is the issue arising on 13.1 firmware. also when we run the wifi script even GPIOs are not toggling.

Enclosed the logs for Release 9/10.1
FW9.1 and legato18.3 log ----- log files
FW9.1 and legato18.3 ---- terminal commands used
FW9.1 and legato18.3 log.txt (35.7 KB) FW9.1 and legato18.3 .txt (2.5 KB)

Enclosed the log files for 13.1
FW13.1 and legato19.02 log.txt (4.4 KB) FW13.1 and legato19.02.txt (377 Bytes)

Also enclosing the Script used to test WIFI.
tiwifi (4.8 KB)

I don’t see problem with WP76 R13 to run the wifi start and stop.

root@swi-mdm9x28-wp:~# wifi client start
[ 48.445644] i2c-msm-v2 78b8000.i2c: NACK: slave not responding, ensure its powered: msgs(n:2 cur:0 tx) bc(rx:1 tx:1) mode:FIFO slv_addr:0x70 MSTR_STS:0x0d1300c8 OPER:0x00000010
[ 48.461027] i2c-msm-v2 78b8000.i2c: NACK: slave not responding, ensure its powered: msgs(n:2 cur:0 tx) bc(rx:1 tx:1) mode:FIFO slv_addr:0x70 MSTR_STS:0x0d1300c8 OPER:0x00000010
[ 48.476863] i2c-msm-v2 78b8000.i2c: NACK: slave not responding, ensure its powered: msgs(n:2 cur:0 tx) bc(rx:1 tx:1) mode:FIFO slv_addr:0x70 MSTR_STS:0x0d1300c8 OPER:0x00000010
[ 48.493343] i2c-msm-v2 78b8000.i2c: NACK: slave not responding, ensure its powered: msgs(n:2 cur:0 tx) bc(rx:1 tx:1) mode:FIFO slv_addr:0x70 MSTR_STS:0x0d1300c8 OPER:0x00000010
[ 48.508646] i2c-msm-v2 78b8000.i2c: NACK: slave not responding, ensure its powered: msgs(n:2 cur:0 tx) bc(rx:1 tx:1) mode:FIFO slv_addr:0x70 MSTR_STS:0x0d1300c8 OPER:0x00000010
[ 48.524290] i2c-msm-v2 78b8000.i2c: NACK: slave not responding, ensure its powered: msgs(n:2 cur:0 tx) bc(rx:1 tx:1) mode:FIFO slv_addr:0x70 MSTR_STS:0x0d1300c8 OPER:0x00000010
successfully called start.
root@swi-mdm9x28-wp:~# lsmod
Not tainted
wl18xx 92042 0 - Live 0xbf1c1000
wlcore_sdio 5584 0 - Live 0xbf1bc000
wlcore 202433 1 wl18xx, Live 0xbf17b000
arc4 1636 2 - Live 0xbf110000
mac80211 286130 2 wl18xx,wlcore, Live 0xbf051000
cfg80211 258877 3 wl18xx,wlcore,mac80211, Live 0xbf000000
root@swi-mdm9x28-wp:~# wifi client stop
[ 59.406297] [RMNET:HI] rmnet_config_notify_cb(): Kernel is trying to unregister wlan0
[ 59.520238] [RMNET:HI] rmnet_config_notify_cb(): Kernel is trying to unregister wlan0
[ 59.661941] i2c-msm-v2 78b8000.i2c: NACK: slave not responding, ensure its powered: msgs(n:2 cur:0 tx) bc(rx:1 tx:1) mode:FIFO slv_addr:0x70 MSTR_STS:0x011363c8 OPER:0x00000010
[ 59.680209] i2c-msm-v2 78b8000.i2c: NACK: slave not responding, ensure its powered: msgs(n:2 cur:0 tx) bc(rx:1 tx:1) mode:FIFO slv_addr:0x70 MSTR_STS:0x011363c8 OPER:0x00000010
[ 59.710624] i2c-msm-v2 78b8000.i2c: NACK: slave not responding, ensure its powered: msgs(n:2 cur:0 tx) bc(rx:1 tx:1) mode:FIFO slv_addr:0x70 MSTR_STS:0x011363c8 OPER:0x00000010
[ 59.725520] i2c-msm-v2 78b8000.i2c: NACK: slave not responding, ensure its powered: msgs(n:2 cur:0 tx) bc(rx:1 tx:1) mode:FIFO slv_addr:0x70 MSTR_STS:0x011363c8 OPER:0x00000010
[ 59.758646] i2c-msm-v2 78b8000.i2c: NACK: slave not responding, ensure its powered: msgs(n:2 cur:0 tx) bc(rx:1 tx:1) mode:FIFO slv_addr:0x70 MSTR_STS:0x011363c8 OPER:0x00000010
[ 59.773502] i2c-msm-v2 78b8000.i2c: NACK: slave not responding, ensure its powered: msgs(n:2 cur:0 tx) bc(rx:1 tx:1) mode:FIFO slv_addr:0x70 MSTR_STS:0x011363c8 OPER:0x00000010
le_wifiClient_Stop returns OK.
root@swi-mdm9x28-wp:~# cm info
Device: WP7607-1
IMEI: 359780080500170
IMEISV: 6
FSN: V2842570321010
Firmware Version: SWI9X07Y_02.28.03.05 000000 jenki[ 63.283311] i2c-msm-v2 78b8000.i2c: NACK: slave not responding, ensure its powered: msgs(n:1 cur:0 tx) bc(rx:0 tx:2) mode:FIFO slv_addr:0x3a MSTR_STS:0x0c1300c8 OPER:0x00000090
ns 2019/07/08 11:04:16
Bootloader Version: SWI9X07Y_[ 63.303686] i2c-msm-v2 78b8000.i2c: NACK: slave not responding, ensure its powered: msgs(n:1 cur:0 tx) bc(rx:0 tx:2) mode:FIFO slv_addr:0x3a MSTR_STS:0x0c1300c8 OPER:0x00000090
02.28.03.05 000000 jenkins 2019/07/08 11:04:16
MCU Version: 002.011
PRI Part Number (PN): 9908645
PRI Revision: 001.001
Carrier PRI Name: GENERIC
Carrier PRI Revision: 002.073_000
SKU: 1104186
Last Reset Cause: Power Down
Resets Count: Expected: 98 Unexpected: 0

root@swi-mdm9x28-wp:~# legato version
19.02.0_4cb954265427b8c2c668a010ff5be274_modified

HI Jyi,

even we tried on Mangoh red board and it was working fine, but on our custom board its not working with 13.1. i tried with different Firmwares from 9, 10.1, 12 and 13.1 it works fine in 9 and 10.1 but not on 12 and 13.1
if required i have the set up ready, i can share the screen to debug.

if it works on mangoh board, can it be a problem on hardware (e.g. not enough current)?

Another method is that you migrate the FW one by one , so that you can understand why it works on R10.1 but not working on R12:

swi-wp76_2.0.1 │ SDK for WP76 (Release 10.1 + Legato 18.06.3)
│ swi-wp76_2.3.0 │ SDK for WP76 (Release 10.1 + Legato 18.09.0)
│ swi-wp76_2.4.0 │ SDK for WP76 (Release 10.1 + Legato 18.10.0)
│ swi-wp76_2.4.4 │ SDK for WP76 (Release 10.1 + Legato 18.10.1)
│ swi-wp76_2.4.8 │ SDK for WP76 (Release 10.1 + Legato 18.10.2)
│ swi-wp76_2.4.10 │ SDK for WP76 (Release 10.1 + Legato 18.10.3)
│ swi-wp76_2.6.0 │ SDK for WP76 (Release 10.1 + Legato 19.01.0)
│ swi-wp76_3.0.0 │ SDK for WP76 (Release 12 + Legato 18.10.3)

If its problem on Hardware, how does it works on 9 and 10.1 Firmware. and when i try “lsmod” command in 13.1 i could not see " arc4 1664 2 - Live 0xbf238000"

then how could you explain why it works on mangoh red board but not in your hardware on R13?

BTW, I could see that module:
root@swi-mdm9x28-wp:~# lsmod
Not tainted
wl18xx 92042 0 - Live 0xbf1c1000
wlcore_sdio 5584 0 - Live 0xbf1bc000
wlcore 202433 1 wl18xx, Live 0xbf17b000
arc4 1636 2 - Live 0xbf110000
mac80211 286130 2 wl18xx,wlcore, Live 0xbf051000
cfg80211 258877 3 wl18xx,wlcore,mac80211, Live 0xbf000000

in our Hardware i cannot see “arc4 1636 2 - Live 0xbf110000”.

we are using the same Pin config as ManogoH red board. but when i try to toggle GPIOs from terminal commands i could see the GPIOs toggle but when i run the TIWIFI Script GPIOs are not even toggling.

Please let me know if we can connect to check on this issue. if required i wil share SCH and Gerber files for review.

do you mean the hardware change will make the difference in arc4?

I think you should contact distributor for hardware review.

we already got it reviewed from them. they said all looks fine. due to lack of local support, i am writing here in forum.

as you say toggle GPIOs from terminal commands is ok but GPIOs are not even toggling when running the TIWIFI Script , i think this is a good start point for you to debug why the script is not running the GPIO command.

Another method is that you migrate the FW one by one , so that you can understand why it works on R10.1 but not working on R12:

swi-wp76_2.0.1 │ SDK for WP76 (Release 10.1 + Legato 18.06.3)
│ swi-wp76_2.3.0 │ SDK for WP76 (Release 10.1 + Legato 18.09.0)
│ swi-wp76_2.4.0 │ SDK for WP76 (Release 10.1 + Legato 18.10.0)
│ swi-wp76_2.4.4 │ SDK for WP76 (Release 10.1 + Legato 18.10.1)
│ swi-wp76_2.4.8 │ SDK for WP76 (Release 10.1 + Legato 18.10.2)
│ swi-wp76_2.4.10 │ SDK for WP76 (Release 10.1 + Legato 18.10.3)
│ swi-wp76_2.6.0 │ SDK for WP76 (Release 10.1 + Legato 19.01.0)
│ swi-wp76_3.0.0 │ SDK for WP76 (Release 12 + Legato 18.10.3)

HI jyi,

i have another question. the module “arc4 1636 2 - Live 0xbf110000” should be automatically running on the module right? why is it not running on our device?

I have no idea what arc4 module is.
I don’t even know if this is related to wifi command.
Also it is hard to explain why hardware change will have arc4 difference.
Have you compared the dmesg ?

You might also have a look on this thread which is similar to your case:

Hi Jyi,

when i tried to test wifi with 13.1 and legato 19.02 i get this error from dmesg.

its not even able to assign GPIO but it works fine when i tired with 10.1 and legato 18.06
attaching the dmesg log for 18.06

what could be the issue. if i suspect the hardware issue, the device should not work with even 18.06 but its working fine. doesn’t it look like some bug on your firmware.

please let us know if we need to do any modifications on the firmware or the wifi script?

What is the value of at+wiocfg?
Fyi,. mdm gpio 58 = WP76 GPIO 8 = IOT0_GPIO4 = external IOT wifi enable, you can try on linux console amd see if you can control gpio8

You need to investigate why mangoh red board can control GPIO8 but your board cannot do so in R13.

Hi,
please find the below response for at+wiocfg?

29-08-2020 17:17:08.713 [TX] - at+wiocfg?

29-08-2020 17:17:14.468 [RX] -
+WIOCFG: 2,16,0,0,1,0,0
+WIOCFG: 4,16,0,0,1,0,0
+WIOCFG: 6,0,0,0,1,0,0
+WIOCFG: 7,16,0,0,1,0,0
+WIOCFG: 8,16,0,0,1,0,0
+WIOCFG: 13,16,0,0,1,0,0
+WIOCFG: 21,16,0,0,1,0,0
+WIOCFG: 22,16,0,0,1,0,0
+WIOCFG: 23,16,0,0,1,0,0
+WIOCFG: 24,16,0,0,1,0,0
+WIOCFG: 25,16,0,0,1,0,0
+WIOCFG: 28,16,0,0,1,0,0
+WIOCFG: 29,16,0,0,1,0,0
+WIOCFG: 30,16,0,0,1,0,0
+WIOCFG: 31,16,0,0,1,0,0
+WIOCFG: 32,16,0,0,1,0,0
+WIOCFG: 33,16,0,0,1,0,0
+WIOCFG: 35,16,0,0,1,0,0
+WIOCFG: 42,16,0,0,1,0,0

OK

when we try to use the command from terminal we could see the GPIO toggle properly but its not working from the script.
we are using below commands to check on terminal
echo 8 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio8/direction
echo 0 > /sys/class/gpio/gpio8/value
echo 1 > /sys/class/gpio/gpio8/value

All we are asking is we could able to see the pins are toggling properly on FW 10.1 and legato 18.06 but when we use legato 19.02, why the same GPIOs are not toggling. we are keeping all the factors (Hardware, tiwifi script, power) unchanged other than Firmware version and legato version. if the device works fine on one version of the Firmware and does not work on other version of the firmware. what could be the issue.?

Have you investigated why the script is not working but command line is ok?

Another method is that you migrate the FW one by one , so that you can understand why it works on R10.1 but not working on R12:

swi-wp76_2.0.1 │ SDK for WP76 (Release 10.1 + Legato 18.06.3)
│ swi-wp76_2.3.0 │ SDK for WP76 (Release 10.1 + Legato 18.09.0)
│ swi-wp76_2.4.0 │ SDK for WP76 (Release 10.1 + Legato 18.10.0)
│ swi-wp76_2.4.4 │ SDK for WP76 (Release 10.1 + Legato 18.10.1)
│ swi-wp76_2.4.8 │ SDK for WP76 (Release 10.1 + Legato 18.10.2)
│ swi-wp76_2.4.10 │ SDK for WP76 (Release 10.1 + Legato 18.10.3)
│ swi-wp76_2.6.0 │ SDK for WP76 (Release 10.1 + Legato 19.01.0)
│ swi-wp76_3.0.0 │ SDK for WP76 (Release 12 + Legato 18.10.3)

Sierra Tech Support team:
can you please look into this issue for us. Our application works fine on one FW version but not on the other version. checking one FW version at a time, as suggested above, is not a practical way to troubleshoot. We have tried to involve local team to help but not much luck.
Please advise if anyone else has faced this issue and if so, what was the resolution? I don’t believe the application we are trying to implement is anything ‘special’?
we can get on a call to demo the problem if there is a Sierra Wireless resource willing to help.
I look forward to hearing back.