How many cameras can be interfaced to the Jetson AGX?

The Jetson AGX Camera Connector breaks out 8 channels of 2-lane MIPI CSI. This can be seen in the NVIDIA Jetson AGX Xavier Series Camera Module Hardware Design Guide Table 3-1 “Jetson Camera Connector (2x60) Pinout”

Based on this pinout, it appears that the Jetson should be able to ingest camera streams from 8 cameras, each using 2-lane CSI.

However, in section 2.2.2 Multiple Camera Case, the design guide notes that…
’ When multiple camera sensors are used (up to 6), a camera interposer module …’

Which suggests a maximum of 6 cameras can be ingested. Furthermore, the diagram in this section shows the 6 cameras using an odd group of CSI inputs on the Jetson
Channel 1 > CSI_0
Channel 2 > CSI_1
Channel 3 > CSI_2
Channel 4 > CSI_3
Channel 5 > CSI_4
Channel 6 > CSI_6

So CSI_5 is skipped. (And CSI_7 is not used).

Is there a fundamental limitation that only allows ingest on these 6 CSI channels?

One possibility is that NVIDIA does not publish the capability to ingest on CSI_5 and CSI_7 because they use pins on the camera connector that should not be used for differential pairs (Pins 59/61 and pins 60/62 are not differential pairs, but are used as such for CSI_5 and CSI7).

Is this the case? Can all 8 MIPI CSI channels be utilized?

Thanks

hello hwaschura,

it VI engine capability, that only 6 video streams were available at once. please refer to Port Index for the mapping diagram.

however,
you’ll need to enable GMSL Camera and VC Support if you’re looking for enable more than six physical cameras on Jetson-Xavier.
please contact with Jetson Preferred Partners for camera solutions.
thanks

Thanks Jerry,

Can you elaborate on enabling GMSL Camera and VC support for more than six physical cameras?

If I would like to enable 8 physical cameras but can only have 6 video streams, can 2 of the video streams be 4 lane MIPI with 2 virtual channels per stream? How is that handled in the V4L driver? Are there examples of this sort of implementation that you can point me to?

Is there possibly a way to expand the VI engine capability to enable 8 video streams? What is the actual limitation there?

Thanks.

hello hwaschura,

there’re total 16 lanes on Xavier.
suppose you’re working with 8 sensors, each of them should up-to 2-lane configuration.
you’ll also need aggregators to setup connections, which obey the hardware capability.
the software side should also have configuration to enable vc-id to identify video streaming.
anyway, please contact with Jetson Preferred Partners for camera solutions.
thanks

Thanks Jerry,

So to be clear, CSI_5 and CSI_7 can be used, as long as the total number of video streams entering VI is =<6?

Does that mean each of the 8 cameras can have its own 2-lane MIPI configuration, and then the CSI block in the Xavier combines those camera streams into a total of 6 video streams into the VI block? Then VI will decombine those 6 streams back into 8 streams in memory?

Or do the 8 cameras need to be combined on a camera interface board to transmit the data over only 6 MIPI channels (using MIPI virtual channels)?

Thanks for your help,

hello hwaschura,

that’s correct.

if you look into sensor device tree, the port bindings were defined one-by-one.
hence, you’ll need Ser/Des device for your use-case to connect 8 cameras to Xavier. such Ser/Des device were designed for sensor modules that use serializer/deserializer chips, i.e. GMSL or FPD-link.
for example,
if you had two 2-lane sensors connected to Ser/Des chip, and it’s a source for CSI-G/H port. CSI/VI engine would consider it as single 4-lane video sources, then you should have software configuration to separate it into two different streams.

we had reference drivers that enable GMSL Camera and VC Support, it has validated two simultaneous IMX390 sensors using the same CSI port.
you might access L4T sources from download centers, check the imx390 device tree as below.
for example,
$l4t-r32.3.1/public_sources/kernel_src/hardware/nvidia/platform/t19x/common/kernel-dts/t19x-common-modules/tegra194-camera-imx390-a00.dtsi

On possibility if you have the capability is to use something like this to combine multiple cameras: