Home/Support/Support Forum/CC6: CAN RX overrun errors
Welcome to Digi Forum, where you can ask questions and receive answers from other members of the community.

CC6: CAN RX overrun errors

0 votes
Setting up a stress test on CAN bus (heavy bus load), I see some RX overrun errors on ConnectCore 6 SBC.

"ip -details -statistics link show can0" shows the following:

RX: bytes packets errors dropped overrun mcast
364405 281 0 281 0

Knowing that flexcan is used, I looked into the sources (I'm using Yocto) and found the related kernel driver at .../tmp/work-shared/ccimx6sbc/kernel-sources/drivers/net/can/flexcan.c.

Comparing it to https://github.com/torvalds/linux/blob/master/drivers/net/can/flexcan.c shows up that Digi Embedded Yocto 2.4 / Kernel 4.9 doesn't contain the latests changes of flexcan.c.

There are some changes that the latest changes solve the RX overrun problem.

Question: Is Digi aware of these CAN overrun errors? Are there plans how to solve it?

asked Feb 25, 2019 in Digi Connect Cellular by Oliver K. New to the Community (3 points)

Please log in or register to answer this question.

1 Answer

0 votes
As already mentioned above the lastest changes in flexcan driver sound promising.

One commit note:
make use of rx-offload's irq_offload_fifo:
"This patch converts the flexcan driver to make use of the rx-offload can_rx_offload_irq_offload_fifo() helper function. The idea is to read the CAN frames already in the interrupt context, as the depth of the flexcan HW FIFO is too shallow, resulting in too many missed frames. During a normal NAPI poll the frames are the pushed into the upper layers."

The statements of https://community.nxp.com/thread/487216 go into the same direction.

Unfortunately, there are too many changes from 4.9 to 4.19. So, a simple patch is not possible.
answered Mar 14, 2019 by Oliver K. New to the Community (3 points)