Hi,
We got a custom board with a Variscite DART-MX8M SOM attached to it. On our custom board there is a camera sensor streaming RAW12 Mipi data at 980 mbps. We verified the image stream with the test pattern and the sensor streams fine. We're on linux kernel 4.14.78, variscite's branch.
But, after some time (anywhere from a few minutes to a couple of hours) streaming from the sensor, the function mx6s_csi_irq_handler reports RX fifo overflow and keeps pumping this same message out continuously. At this point we're not able to receive any more image data.
This problem persists, turning the stream on and off again doesn't change anything. Even removing all the relevant kernel modules (mx6s_capture, mxc_mipi_csi2_yav and our own custom sensor driver) and loading them back in doesn't change anything. The only thing that works is powering the board on and off.
At first I thought it might be a thermal issue, due to the fact that it is hard to reproduce, but we've had RX fifo overflow happen at cpu temperatures as low as 40 degrees
What could be causing this issue? How could we remedy it? If we can't remedy it, is there any way to reset the CSI bridge to get out of this error state without having to powercycle our board?
Thanks,
Twan
Edit:
Added file to output from dmesg, keep in mind that I changed the dev_warn on the RX fifo overflow bug to dev_err_once, such that it doesn't flood all other messages.
Hi Twan
since L4.14.78 many improvements were added, so recommended to try
latest nxp kernels, for example one can look at
mx6s_capture.c\capture\mxc\platform\media\drivers - linux-imx - i.MX Linux kernel
Another reason for such error may be that CSI data format was configured wrongly.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Igor,
I tried upgrading to linux 4.19.35, but haven't been able to boot our board with that yet. Looking at the source code between 4.14.78 and 4.19.35 there doesn't seem to be any (major) changes made to the mx6s_capture and mxc_mipi_csi2_yav source files, so I doubt upgrading linux would have any effect.
I got to a point where I've been able to reliably get the rx fifo overflow. I get it to occur when chromium starts up and receives and displays the image data. Lowering the data rate to 300 mbps makes sure the rx fifo overflow doesn't occur, so it's likely some kind of memory bandwidth or memory contention issue (The variscite SOM has LPDDR4-3200 memory).
We still would like to be able to stream at higher frame rates than 300 mbps allows, so how could we resolve the RX fifo overflow without power cycling our board?
Thanks,
Twan
Hi Twan
this is third party board and issue may be posted on vendor support forum
Best regards
igor