Verdin imx8mp V1.0D wifi dies with mmc0: Timeout waiting for hardware interrupt

We’re running a custom yocto build so I understand support will be very limited, but we’re having issues with the WiFi dying about once a week (range from daily to less often) on a particular board.

This is the console output when it happens
[ 4513.844028] mmc0: Timeout waiting for hardware interrupt. retries left=0 opcode=0
[ 4513.851512] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 4513.857952] mmc0: sdhci: Sys addr: 0xe64f2000 | Version: 0x00000002
[ 4513.864389] mmc0: sdhci: Blk size: 0x000000c4 | Blk cnt: 0x00000001
[ 4513.870829] mmc0: sdhci: Argument: 0x100000c4 | Trn mode: 0x00000013
[ 4513.877268] mmc0: sdhci: Present: 0x01f8820e | Host ctl: 0x00000013
[ 4513.883706] mmc0: sdhci: Power: 0x00000002 | Blk gap: 0x00000080
[ 4513.890145] mmc0: sdhci: Wake-up: 0x00000008 | Clock: 0x0000003f
[ 4513.896582] mmc0: sdhci: Timeout: 0x0000008f | Int stat: 0x00000000
[ 4513.903019] mmc0: sdhci: Int enab: 0x117f100b | Sig enab: 0x117f100b
[ 4513.909456] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000502
[ 4513.915894] mmc0: sdhci: Caps: 0x07eb0000 | Caps_1: 0x8000b407
[ 4513.922331] mmc0: sdhci: Cmd: 0x0000353a | Max curr: 0x00ffffff
[ 4513.928768] mmc0: sdhci: Resp[0]: 0x00002000 | Resp[1]: 0x00000000
[ 4513.935205] mmc0: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
[ 4513.941642] mmc0: sdhci: Host ctl2: 0x00000088
[ 4513.946083] mmc0: sdhci: ADMA Err: 0x00000003 | ADMA Ptr: 0xa4447204
[ 4513.952520] mmc0: sdhci-esdhc-imx: ========= ESDHC IMX DEBUG STATUS DUMP =========
[ 4513.960086] mmc0: sdhci-esdhc-imx: cmd debug status: 0x3100
[ 4513.965742] mmc0: sdhci-esdhc-imx: data debug status: 0x32a0
[ 4513.971484] mmc0: sdhci-esdhc-imx: trans debug status: 0x33a1
[ 4513.977314] mmc0: sdhci-esdhc-imx: dma debug status: 0x3400
[ 4513.982970] mmc0: sdhci-esdhc-imx: adma debug status: 0x35b4
[ 4513.988712] mmc0: sdhci-esdhc-imx: fifo debug status: 0x3680
[ 4513.994455] mmc0: sdhci-esdhc-imx: async fifo debug status: 0x3750
[ 4514.000718] mmc0: sdhci: ============================================

The dmesg buffer gets filled up with errors after that so I’m not able to get any messages from right before it happens (I’ve never caught it in time).

Here’s the output from a newly restarted system relating to mmc0/mwifiex:

[ 0.633892] mmc0: SDHCI controller on 30b40000.mmc [30b40000.mmc] using ADMA
[ 0.692678] mmc0: new ultra high speed SDR104 SDIO card at address 0001
[ 3.161700] mwifiex_sdio mmc0:0001:1: info: FW download over, size 623240 bytes
[ 4.100473] mwifiex_sdio mmc0:0001:1: WLAN FW is active
[ 4.100879] btmrvl_sdio mmc0:0001:2: sdio device tree data not available
[ 4.141294] mwifiex_sdio mmc0:0001:1: Unknown api_id: 3
[ 4.141303] mwifiex_sdio mmc0:0001:1: Unknown api_id: 4
[ 4.141307] mwifiex_sdio mmc0:0001:1: Unknown GET_HW_SPEC TLV type: 0x217
[ 4.171792] mwifiex_sdio mmc0:0001:1: info: MWIFIEX VERSION: mwifiex 1.0 (16.68.1.p197)
[ 4.171800] mwifiex_sdio mmc0:0001:1: driver_version = mwifiex 1.0 (16.68.1.p197)
[ 5.090946] mwifiex_sdio mmc0:0001:1: info: trying to associate to ‘XXXXXX’ bssid d0:21:f9:6d:e5:23
[ 5.117179] mwifiex_sdio mmc0:0001:1: info: associated to bssid d0:21:f9:6d:e5:23 successfully

uname:
Linux XXXXXX 5.4.193-5.3.0-devel+git.5a24da287b86 #1 SMP PREEMPT Wed Jun 29 16:15:02 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux

Connected with connman, and turned of powersave (/usr/sbin/iw mlan0 get power_save)

Anyone else getting this?

Hi @SvenAlmgren !

Thanks for using Toradex Community!

Could you please share more information about your current setup?

  • Which exact Verdin iMX8M Plus WB are you currently using? Please give us its full name, including the version.
  • Which carrier board are you using? If it is from Toradex, which version?
  • Have you tested on a “vanilla” Reference Image from Toradex? If yes, did you get the same behavior?
    • It is important to test on a BSP 5 LTS Reference Image.

Seems like you are basing your custom image on BSP version 5.3. Is that right? You can see in the issue tracker that some improvements took place after BSP 5.3: Toradex System/Computer on Modules - Linux BSP Release

Could you please carry out your tests on a Reference Image from BSP 5 LTS? (Toradex Download Links (Torizon, Linux BSP, WinCE and Partner Demos) | Toradex Developer Center)

Best regards,

Hi @henrique.tx !

That was on a Verdin iMX8MP Q 4GB WB IT V1.0D. I’m not able to run the reference image because we’re using a custom carrier where we use some of the alternative pin functions.

Our image is based on the reference image but have been altered to suit our needs.

I understand this might not be helpful but here’s at least a list of the layers we use and their git hashes.

meta-clang
commit 3bb001d3f364bbf6588fed04b9ee2c7e74a0beba
Fetch URL: GitHub - kraj/meta-clang: Clang C/C++ cross compiler and runtime for OpenEmbedded/Yocto Project

meta-flutter
commit 4c97c67cc1e81fc3c909a39b13d6f0b799a43b50
Fetch URL: GitHub - meta-flutter/meta-flutter: Google Flutter for Yocto

meta-freescale
commit 3cb29cff92568ea835ef070490f185349d712837
Fetch URL: GitHub - Freescale/meta-freescale: Layer containing NXP hardware support metadata

meta-freescale-3rdparty
commit c52f64973cd4043a5e8be1c7e29bb9690eb4c3e5
Fetch URL: GitHub - Freescale/meta-freescale-3rdparty: OpenEmbedded/Yocto BSP layer for Freescale's ARM based platforms

meta-freescale-distro
commit 5d882cdf079b3bde0bd9869ce3ca3db411acbf3b
Fetch URL: GitHub - Freescale/meta-freescale-distro: OpenEmbedded/Yocto BSP layer for Freescale's ARM based platforms

meta-openembedded
commit 8ff12bfffcf0840d5518788a53d88d708ad3aae0
Fetch URL: GitHub - openembedded/meta-openembedded

meta-python2
commit b901080cf57d9a7f5476ab4d96e56c30db8170a8
Fetch URL: meta-python2 - Layer enabling legacy python2 support after EOL

meta-toradex-bsp-common
commit 029a663150449a5e71b84dd4000476754d525c8c
Fetch URL: Index of /meta-toradex-bsp-common.git

meta-toradex-distro
commit cbde0286cb85bc445e70210b8df38f29b4784c08
Fetch URL: Index of /meta-toradex-distro.git

meta-toradex-nxp
commit a609f5749a905e176094bea82593a5e55f3fcaa3
Fetch URL: Index of /meta-toradex-nxp.git

meta-yocto
commit 7e0063a8546250c4c5b9454cfa89fff451a280ee
Fetch URL: https://git.yoctoproject.org/git/meta-yocto

openembedded-core
commit add860e1a69f848097bbc511137a62d5746e5019
Fetch URL: GitHub - openembedded/openembedded-core: The official Git repository is at https://git.openembedded.org/openembedded-core/.

And our own internal layers but that’s not relevant for this :stuck_out_tongue:

As stated on the original, I understand that this won’t be very helpful, but it’s more of a shot in the dark if anyone else have had this same issue.

Cheers! / Sven

Hi @SvenAlmgren !

Thanks for the information.

I understand. But, I would like to ask you to “slice down” by trying to perform simple tests with only Wi-Fi. This way you will be able to use Toradex’s Carrier Board. This would be very helpful to better understand the issue. Actually, you could do the same first with your carrier board.

Which antennas are you using? Are you using two antennas?

Best regards,