Late response for timed out cmd 0x200e

We built HaLow in AP mode with connected clients to run traffic for a long-term stability test.

The command timeout log below indicates an issue that causes a restart during testing.

I checked the Morse driver code and found that the “19” command ID is for health checks, but I’m not sure what the “200e” ID represents.

From my observation, the Morse driver becomes unstable after the “200e” timeout occurs. Can you explain what might have happened?

My platform information:

CPU Platform: MT7621
Halow module: MM6108
OS: OpenWrt with Linux version 5.4.284 
Morse Driver: 1_12_4
[ 5297.094859] morse_sdio mmc0:0001:2: Late response for timed out cmd 0x200e:fa90 have 0x0000:0000 0x0fa9
[ 6188.882637] morse_sdio mmc0:0001:2: Late response for timed out cmd 0x200e:2900 have 0x0000:0000 0x0290
[13190.886182] morse_sdio mmc0:0001:2: Command morse_cmd_vendor 200e:95d1 timed out
[13190.914532] morse_sdio mmc0:0001:2: Command 0x000e:95e0 error -22
[13190.920771] morse_sdio mmc0:0001:2: Command morse_cmd_vendor 0e:95e0 failed with rc -22 (0xffffffea)
[20438.915751] morse_sdio mmc0:0001:2: Command morse_cmd_vendor 200e:f71 timed out
[20440.135682] morse_sdio mmc0:0001:2: Command morse_cmd_vendor 0e:f81 timed out
[20441.565668] morse_sdio mmc0:0001:2: Command morse_cmd_vendor 200e:f91 timed out
[20445.665440] morse_sdio mmc0:0001:2: Command morse_cmd_health_check 19:fa1 timed out
[20445.673107] morse_sdio mmc0:0001:2: morse_health_check_work: Failed health check (errno=-145)
[20446.275521] morse_sdio mmc0:0001:2: morse_skbq_tx fail: -19
[20446.281697] morse_sdio mmc0:0001:2: Command morse_cmd_vendor 0e:fb1 failed with rc -19 (0xffffffed)
[20446.291301] morse_sdio mmc0:0001:2: morse_mac_restart: Restarting HW
[20446.321890] morse_sdio mmc0:0001:2: morse_mac_restart: Generating core-dump (reason:health check failure)

From our own experience with the HaLowLink 1, which uses the same processor, there appears to be some issue with DMA transfers in the SDIO driver when multiple CPUs are enabled where data is very occasionally corrupted. My suspicion, without really understanding much at this level, is that this is some cache coherency problem on the CPU, and perhaps some part of the driver is missing DMA noncoherent guards.

We have worked around a few issues like this in the latest version of the driver, so I would strongly recommend switching to 1.16.4 and checking if you still have this problem. Is there a particular reason you’re using 1.12.4?

Thanks for your advice. We’ll upgrade the driver to version 1.16.4 for verification.

The 0x200e ID appears to be a command for MORSE_COMMAND_UPHY_STATS_LOG (reading statistics from the PHY core). However, I can’t find any process that triggers this command. It seems the command might be triggered frequently under heavy network load.

Hi @Owen

Is this an OpenWrt based device? The stats command might be coming from the web interface or a background service polling for information about the link. It shouldn’t be timing out though!

Interestingly -19 and -22 correspond to ENODEV and EINVAL respectively. EINVAL typically indicates an issue with command parameters, and ENODEV likely indicates that we can no longer communicate with the chip.

Are you still seeing the errors with 1.16.4?

Hi @ajudge

Thanks for your replied.

Yes, it is an OpenWrt-based device. You are correct—the command appears to be triggered by the web interface, as I traced.

We will try on version 1.16.4.

We are testing with Morse driver 1.16.4, and the timeout issue occasionally occurs. Could help address or explain what happens when the timeout message appears?

] root@GenericRouter:~# [113816.219430] morse_sdio mmc0:0001:2: Command morse_cmd_vendor 200e:fa71 timed out
[2025-12-03 19:17:58.249] [113816.229121] morse_sdio mmc0:0001:2: Command 0x000e:fa80 error -22
[2025-12-03 19:17:58.249] [113816.237365] morse_sdio mmc0:0001:2: Command morse_cmd_vendor 0e:fa80 failed with rc -22 (0xffffffea)
[2025-12-03 21:37:20.115] [122177.782321] morse_sdio mmc0:0001:2: morse_beacon_tasklet: previous beacon not consumed, dropping req [id:0]
[2025-12-04 01:48:00.150] [137217.240324] morse_sdio mmc0:0001:2: morse_beacon_tasklet: previous beacon not consumed, dropping req [id:0]
[2025-12-04 01:55:44.977] [137682.048553] morse_sdio mmc0:0001:2: Command morse_cmd_health_check 19:d5f1 timed out
[2025-12-04 08:14:28.182] [160404.382859] morse_sdio mmc0:0001:2: Command morse_cmd_vendor 200e:75b1 timed out
[2025-12-04 08:14:28.213] [160404.409856] morse_sdio mmc0:0001:2: Command 0x000e:75c0 error -22
[2025-12-04 08:14:28.213] [160404.416212] morse_sdio mmc0:0001:2: Command morse_cmd_vendor 0e:75c0 failed with rc -22 (0xffffffea)