IMXRT1170 <err>eth_mcux: ENET_GetRxFrameSize return: 4001 #94240
Unanswered
danielb-tkjcy3rq
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Hi All, I'm trying to fix the ' eth_mcux: ENET_GetRxFrameSize return: 4001' error on IMXRT1170 but not having much luck. I am running Zephyr 3.6 on a custom board with a crystal supplying ref clock to the PHY. I only see this issue when the board is connected to a busy network (~40,000 broadcast packets/second). Setup on a network this busy is likely for the final product. Increasing ETH_MCUX_RX_BUFFERS to the maximum 16 doesn't solve the issue. My unit is watchdogging unless I disconnect the other devices generating the network traffic. I also turned off the ethernet logging (ETHERNET_LOG_LEVEL_OFF) because I thought printing all the error messages was the cause of the issue, but that didn't help either.
The issue is present in Zephyr 4.1. I also tried a unit where the ref clock is supplied by the processor but the issue is still there. I know the error is coming from the NXP SDK fsl_enet.c but not sure how to fix it. I have looked through #66200 and #51107. The solutions suggested there didn't help.
I did some digging and worked out why I thought the board was crashing. The unit is watchdogging because the ethernet thread (eth_mcux.c:eth_rx_thread) is hogging the CPU quite a bit and not leaving enough time for the application threads to run and tickle the watchdog. Please see attached Saleae capture. I am using CONFIG_TRACING_USER to toggle a pin high when we enter eth_rx_thread and low when we leave. I am connecting the boards which are generating the high network traffic about 8 seconds in. Up to that point the thread was running every 2.5s before returning to idle. The 2.7 gaps between the the busy toggling are when the unit watchdogs and comes back up.
I posted this on discord first but thought I would put it here so it doesn't get buried there. Also thought it would be easier to find for someone else facing similar issues.
Thanks,
Dan
imx1170_eth_rx_thread_analysis.zip
Beta Was this translation helpful? Give feedback.
All reactions