The RealSense D457 camera connected to the Orin NX with MAX96724 has no frame input

I use Orin NX + custom board to connected D457 camera (GMSL).
MAX96724 input from Link A, Output MIPI port B (4 lane).
MIPI Port B is connected to CSI-2 and CSI-3 of the Orin NX.
“I used v4l2-ctl for streaming, but the following error occurred. However, the I2C communication is working fine.”
[ 798.947065] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[ 798.947091] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[ 798.948731] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel

Device tree file:
dts.txt (11.4 KB)
Kernel log file:
dmesg.txt (124.6 KB)

hello XuanZZZ,

please give it a try to configure lane_polarity = "0"; for using CSI-2/3 of Orin NX.
BTW,
may I also confirm which Jetpack release version you’re working with.

I am working with JetPack 6.2

The issue still occurs after configuring lane_polarity = "0";

hello XuanZZZ,

is it possible to confirm that SerDes chip is working normally for sending MIPI signaling to CSI channel?
for instance, you may arrange hardware resources to probe the high speed signaling.

or…
is this porting issue? had you verify the camera setup with previous Jetpack release version?

Hello Jerry,

If the deserializer is set to 1500 Mbps per lane, does deskew need to be enabled?

hello XuanZZZ,

it’s 1.5Gbps as deskew threshold.

Hi Jerry,

So, I don’t need to set deskew_initial_enable and deskew_periodic_enable in the device tree when the deserializer is set to 1.5 Gbps per lane?

hello XuanZZZ,

deskew calibration is a must if data-rate > 1.5 Gbps.

you can ignore these DT properties, deskew_initial_enable, deskew_periodic_enable.
when you have data-rate > 1.5 Gbps, it’s the camera firmware to wait for deskew signal from the sensor side continuously.
moreover,
we are only looking for initial deskew calibration; but, it should also be ok to configure the deserializer to send periodic skew calibration bursts. the effect would be that the initial skew calibration can be retried every time the skew calibration burst is sent.

Hi Jerry,

I can receive frames when modifying the deserializer settings, but I can only start one stream at a time.
When I start a second stream, the frames either drop or freeze. Is there any configuration to enable MIPI for multiple streams?

[ 207.323588] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072
[ 207.350593] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 262144
[ 207.351325] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 64
[ 207.356848] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072
[ 207.384091] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 262144
[ 207.384681] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 64

hello XuanZZZ,

may I know what’s the modification you’ve done?

Hi Jerry,

I changed 4 lanes to 2 lanes (Deser to OrinNX).

hello XuanZZZ,

please double check SerDes Pixel Clock to review pixel clock rate settings, it must be set correctly to avoid potential issues.