My name is Dorien and am the firmware engineer primarily working on the MIPI CSI debugging for the IMX8.
While I probably can't share everything regarding source files and such, I do have a few questions and information that might point to something.
I’m seeing an issue where every 4th byte of pixel data appears corrupted, but only on non-uniform images. White and black test patterns look fine. My first thought is that CRC errors could be the cause, but I don’t understand why CRC would ONLY fail on non-uniform.
From the hardware side we seem to be receiving MIPI control packets correctly since images can still be generated. I’m looking for ideas on what other possible error sources might cause the above artifact behavior, and the best ways to approach debugging it.
Regarding source code, we are using this as our format.
different imx8 processors has different MIPI csi IP, so I need to know which imx8 processor you use? imx8qm? if you use raw10 capture, did you change the mipi csi driver to support it?
We are utilizing the IMx8x Quad Plus.
I didn't make any modifications to the mipi csi driver exactly, but I have been modifying imx8isi-fmt.c and imx8-isi-fmt.c to modify the fourcc value and the output format value for the ISI drivers and confirmed via the output of v4l2.
What modifications would I have to make to the csi driver? Currently, the driver that is seemingly loaded is the imx8-mipi-csi2.c attached below.
do you know which silicon revision of imx8qxp you use? ISI has shift issue for raw data capture, I need to know what silicon revision you use
Hey, thanks for your help.
I will get back to you later today regarding the specific silicon revision, however, I believe we are already accounting for the bit shifting in our image generation post ISI.
We currently utilize a python script to
yes, this is what I'm talking about, since you have this issue, after you capture the raw data, need shift it to get proper data, for raw10, you need shift 4bits to get correct data
firstly, you need confirm that your chip is B0 version or C0 version, for B0 which has shift issue,
Oni.MX8QXP B0, when receiving RAW data from CSI, the data will always be shifted to the left for some RAW formats. Here are some examples: RAW10 {valid_data, 4’b0} . After right shift 4 bits, you will get the correct image.
On i.MX8QXP C0, there is a new bit that can fix this alignment, making all bits from received data align starting from bit 0. The table below shows the register and the new bit [31].
you also can refer to the link for raw data capture on imx8qxp