Enabling support for MIPI lane rates greater than 1.5 Gbps

I’m trying to configure an AGX Orin to receive data from a GMSL2 deserialiser (MAX9296) with a MIPI lane rate of greater than 1.5 Gbps.

I can successfully receive frames with the lane rate set to 1.5 Gbps (and below). In this configuration, I have serdes_pix_clk_hz set to 375000000 Hz in the device tree. The interface is using all four lanes, and the bits-per-pixel is set to 16 (YUV data from an external ISP). This gives a MIPI lane rate of ((375000000 * 16) / 4) = 1,500,000,000 bits/second.

I understand that I’ll need to enable deskewing to work with lane rates above 1.5 Gbps, but it’s not clear how to do this. I’ve tried adding deskew_initial_enable = "true"; to the device tree, but it looks like this is only used if the serdes_pix_clk_hz is greater than or equal to 750000000 Hz (this check is in the deskew_setup() function in csi.c). For our four lane, 16 bpp configuration, a serdes_pix_clk_hz value of 750000000 equates to a lane rate of 3 Gbps, which is higher than the maximum rate supported by the Orin (2.5 Gbps).

If I change the threshold in csi.c, I get a kernel panic in nvcsi_deskew_setup() as it tries to access a NULL pointer (mc_csi isn’t initialised). It appears that the nvcsi_deskew_platform_setup() function is never called, which is responsible for initialising that variable. This function was called in kernel 4.9, but isn’t called in 5.10.


  1. What is the correct serdes_pix_clk_hz value for a 2.5 Gbps lane rate, assuming that all four lanes are used, and that the bits-per-pixel is 16?
  2. How do I enable deskewing for a given CSI port?
  3. Do I need to add a call to the nvcsi_deskew_platform_setup() function somewhere?

hello paul.thomson,

actually, Orin camera stack did not recognize this device tree property, deskew_initial_enable.
please refer to SerDes Pixel Clock section for the formula to calculate the output data rate.
it’s SerDes chip for sending deskew signal. camera firmware will continue to wait for deskew signal from the sensor side.

Hi Jerry,

Thanks for confirming that the deskew_initial_enable property isn’t required on the Orin platform.

I used the debug firmware for the RCE from this post to verify the behaviour when the MIPI lane rate exceeds 1.5 Gbps, and have been able to capture images at the maximum supported lane rate (2.5 Gbps).

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.