I found mipi data,but soc cann't get these frame

Hello, Nvidai
I am trying to use Max96712 + MAx9295 on Jetson AGX ORin to transmit image data. Now I have measured Mipi signal at the output of Max96712, but SOC seems unable to obtain these image data normally, and the following error will always be reported in dmesg
[ 422.618560] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[ 422.618960] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[ 422.619828] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 422.620121] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=0, csi_port=0
[ 422.620467] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 422.620700] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 0 vc- 0
[ 422.621208] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
I have obtained some trace logs. In the following files, please help analyze the reason why MIPI data cannot be received normally.
log.txt (100.3 KB)

Check if the data rate is >= 1.5Gbps to adjust the pixel_clk_hz in device tree.

For sensor modules that use serializer/deserializer chips (GMSL or FPD link), the frames received by the SoC are output from SerDes and not from the sensors. Therefore, the SerDes pixel clock must be specified correctly to configure the SoC-camera interface correctly and avoid buffer overrun issues.

You can start by checking the deserializer output data rate and ensure it is sufficient to stream all the connected sensors. After you determine the proper data rate, the SerDes pixel clock can be calculated by using the following equation:

* serdes_pix_clk_hz = (deserializer output data rate in hertz) * (number of CSI lanes) / (bits per pixel).


Skew calibration is required if sensor or deserializer is using DPHY, and the output data rate is > 1.5Gbps.

An initiation deskew signal should be sent by sensor or deserializer to perform the skew calibration. If the deskew signals is not sent, the receiver will stall, and the capture will time out.

You can calculate the output data rate with the following equation:

* Output data rate = (sensor or deserializer pixel clock in hertz) * (bits per pixel) / (number of CSI lanes)

thank you quick reply,
I will immediately check my configuration and test again!

hello, Nvidia
I can now get the frame normally because I turned on the Deskew function on the Max96712 side, but I still need to manually turn on the NVCSI enable register, as shown below, I wonder if this means that my device tree configuration is still having problems?

If I don’t go ahead and manually enable the NVCSI register, I get frames that will again display a timeout

Please check the port-index in device tree.

I modified it by imitating the device tree configuration of IMX390. Could you please tell me how to check whether the port-index setting is correct.
my device-tree file in below.
please help me to check.
tegra234-camera-ar0233-a00.dtsi (8.1 KB)

The configure looks like correct. Could you try connect your sensor to CSI-C and modify the port-index to 2 to verify the problem.


thank you quick reply,
I will try test it.

After revision, the situation has not changed. Do you have any other ideas?

Please update the debug camera firmware to collect the log to analysis.
camera-rtcpu-t234-rce.img (527.3 KB)

1. Replace the attached file in ../Linux_for_Tegra/bootloader/

2. sudo ./flash -r -k rce-fw jetson-agx-orin-devkit mmcblk0p1

I followed your steps and got the following results.

OOPS just notice your are stay in r34, could you please update to r35.1(J5.02)

Ok, but I need some time to porting my source code and to flash new version in the agx orin.