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?
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.
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.
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?