Hello,
I am currently debugging a RAW capture issue on i.MX93 (FRDM-iMX93) using a Sony IMX219 sensor and would appreciate any guidance on how to further debug or resolve this problem.
Setup:
SoC: i.MX93
Sensor: IMX219
Format: RAW10 (SRGGB10_1X10)
Capture via mxc-isi → /dev/video0
Kernel: 6.12.20 (NXP BSP based)
Media topology:
The media graph looks correct and all links are enabled. The active pipeline is:
Device topology
entity 1: crossbar (3 pads, 3 links, 1 route)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev0
routes:
0/0 to 2/0 [ACTIVE]
pad0: SINK, MUST_CONNECT
stream 0 format SRGGB10_1X10 3280x2464 field none
connected from csidev-4ae00000.csi pad1
pad1: SINK, MUST_CONNECT
connected from mxc_isi.output pad0
pad2: SOURCE
stream 0 format SRGGB10_1X10 3280x2464 field none
connected to mxc_isi.0 pad0
entity 5: mxc_isi.0 (2 pads, 2 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev1
pad0: SINK
stream 0 format SRGGB10_1X10 3280x2464 field none
compose bounds 0,0 3280x2464
compose 0,0 3280x2464
connected from crossbar pad2
pad1: SOURCE
stream 0 format SRGGB10_1X10 3280x2464 field none
crop bounds 0,0 3280x2464
crop 0,0 3280x2464
connected to mxc_isi.0.capture pad0
entity 8: mxc_isi.0.capture (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video0
pad0: SINK
connected from mxc_isi.0 pad1
entity 16: mxc_isi.output (1 pad, 1 link)
type Node subtype V4L flags 0
pad0: SOURCE
connected to crossbar pad1
entity 23: csidev-4ae00000.csi (2 pads, 2 links, 1 route)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev2
routes:
0/0 to 1/0 [ACTIVE]
pad0: SINK
stream 0 format SRGGB10_1X10 3280x2464 field none
connected from imx219 2-0010 pad0
pad1: SOURCE
stream 0 format SRGGB10_1X10 3280x2464 field none
connected to crossbar pad0
entity 28: imx219 2-0010 (1 pad, 1 link, 0 routes)
type V4L2 subdev subtype Sensor flags 0
device node name /dev/v4l-subdev3
pad0: SOURCE
stream 0 format SRGGB10_1X10 3280x2464
colorspace raw, full-range
crop bounds 8,8 3280x2464
crop 8,8 3280x2464
connected to csidev-4ae00000.csi pad0
Streaming starts successfully and runs at about 15 fps.
Capture command used:
v4l2-ctl -d /dev/video0
--set-fmt-video=width=3280,height=2464,pixelformat=RG10
--stream-mmap --stream-count=1 --stream-to=raw10.raw
Streaming to /dev/null also works and reports approximately 15.00 fps.
Issue description:
This is the RAW frame I captured. Although streaming succeeds, the dumped RAW image contains valid data only in the first line. The rest of the frame appears invalid or constant.
This behavior is consistent across multiple captures.
Questions:
Are there any known issues on i.MX93 ISI when capturing RAW formats (especially RAW10) where only the first line is written correctly?
Could this be related to:
Bytes-per-line or stride mismatch?
CSI-2 packet handling such as line length or short packets?
ISI RAW packing or memory write configuration?
Are there recommended debug points such as registers, trace events, or driver logs in:
CSI-2 RX
ISI
Crossbar
that could help identify why only one line is captured correctly?
Any hints, references, or similar experiences would be very helpful.
Thank you in advance for your support.
Best regards,
Minh
Hello,
You're successfully hitting 15 fps, the CSI-2 receiver is seeing the Start and End of Frame packets, but the ISI is likely discarding the rest of the payload because the line length doesn't match the programmed width or the 32-byte alignment requirements of the NXP DMA engine. Check your byte CareCredit com sperline calculation for RAW10—if the ISI is expecting a specific packing format and gets a different byte count, it often stops writing to memory after the first line to prevent buffer corruption. I’d recommend checking the CSI-2 RX error registers for CRC/ECC flags and ensuring the ISI is in full bypass mode, as any attempt at internal color processing on RAW10 will cause the pipeline to stall or misbehave.
it seems you capture resolution bigger than 2k, how about capturing 1080P? if you need capture resolution bigger than 2k, you need change the ISI driver about chain buffer