IMX219 DS90UB95x SerDes Setup on Orin NX

You can reference to IMX477 that have 2 lane and 4 lane configure.

Thanks

1 Like

Thanks! I will take a look.

Also, how do I enable debug print messages in the kernel or elsewhere for the nv_imx219 driver?

Add pr_info() to print what your want.

1 Like

Hi @ShaneCCC,

In tegra-camera-platform, the original device tree sets the property max_lane_speed with 0x16e360, or 1500000, which corresponds to 1.5 Gbps.

The datasheet says MIPI D-PHY supports up to 2.5 Gbits/sec per pair.

Do I need to do anything else besides deskew calibration and updating max_lane_speed if I go > 1.5G per lane?

Suppose need to modify it.
Also need sensor send deskew word for it. Below is the NOTE.

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)
1 Like

Thanks Shane,

I got four lanes working with IMX219, thanks for all the help!!

Last couple questions about adding more cameras…

First question - let’s say I have one dual deserializer 2 cameras) hooked up to CSI0 and CSI1 (using all 4 lanes) and then I have another quad deserializer (4 cameras) on CSI2 and CSI3 (using all 4 lanes). If I aggregate the streams on both the quad and dual deserializer, can the Orin NX support 6 cameras?

Second question - I’m confused by the virtual channel information in the Orin NX datasheet. In section 1.6.1, it says Orin NX can support up to eight virtual channels (VC) and supports data type interleaving. And then a little bit further down, it says Supports up to 16 virtual channels per active Pixel parser (PP), which it also says that there are 6 PPs, so 96 total virtual channels? What’s the difference between these two statements? How many virtual channels are actually supported?

Third question - how do the virtual channels work? Each camera can assign a VC ID of 0-3. On the Orin side, is the VC ID a global number or is it per CSI port or per Pixel Parser? If it’s per Pixel Parser, what is the mapping between CSI port and a pixel parser? As a random example, if I have a camera using 4 lanes on CSI0 and CSI1 with VC-ID=1, does this conflict with a camera using 4 lanes on CSI2 and CSI3 with VC-ID=1?

Thanks again for all the help.

Each port support 4 virtual channel.
Suppose below show have the detail information about VC.

Thanks

https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/SD/CameraDevelopment/JetsonVirtualChannelWithGmslCameraFramework.html#

1 Like

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