Orin NX如何支援接收 Intel RealSense D457 gmsl camera x4顆16路video

HW:

  • Orin NX 8GB
  • Our Orin NX carrier board
  • Intel D457 GMSL camera x4

SW:
Nvidia L4T 35.4.1

Intel RealSense gitgub 有提供 L4T 35.4.1 Xavier D457 devicetree and driver code:
Intel RealSense camera driver for GMSL interface D457 MIPI on Jetson AGX Xavier

每顆Intel D457輸出4路video:
Depth=1280x720
RGB=1920x1080
Y8=1280x720
IMU=640x480

我們依照Intel RealSense D457 gmsl camera x2顆接我們 Orin NX carrier board,並將L4T 35.4.1 Xavier D457 devicetree (tegra194-camera-d4xx-dual.dtsi
) and driver patch (0001-Porting-dts-to-jetpack-5.1.2.patch) 移植到 Orin NX,透過MIPI CSI 2 lane x1 + gmsl 1x4 + gmsl vc-id接收,用 Realsense viewer 可以看到2路D457影像。

但目前在 Orin NX carrier board 接Intel RealSense D457 gmsl camera x4顆,透過MIPI CSI 2 lane x2 + gmsl 1x4 + gmsl vc-id接收,Realsense無法順利看到4路D457影像。
Orin NX gmsl vc-id、tegra-capture-vi、nvcsi@15a00000 如何支援接收 Intel RealSense D457 gmsl camera x4顆16路video?
.dtsi中vc-id、tegra-capture-vi、nvcsi@15a00000該如何調整?

I don’t this able to support this case.
Suppose each channel support 4 virtual channel. So this HW design only support to 8 channels.

Orin NX可支援接收 16 virtual channel嗎?

我們線路有修改調整成使用2顆MAX9296,所以HW應該可以輸出16 channels

You need 4 MAX9296 4 channel for 16 channel.
Each CSI bricks only support to 4 channels. I can’t tell if Orin able to support 3 bit virtual channel(8) per stream.

MAX9296可以設定成2x4,所以一顆MAX9296可以輸出 8 virtual channels,目前也可以順利收到8 channels。

max9296@48{
 csi-mode= "2x4"
}

所以應該2顆MAX9296就可以輸出16 virtual channels,為何需要4顆?

Do you verify 8 virtual channel on Orin NX?

Yes, I according to tegra194-camera-d4xx-dual.dtsi and it could received 8 virtual channel on Orin NX.

serdes-csi-link = "a";
vc-id = <0>;
vc-id = <1>;
vc-id = <2>;
vc-id = <3>;

serdes-csi-link = "b";
vc-id = <0>;
vc-id = <1>;
vc-id = <2>;
vc-id = <3>;

https://github.com/IntelRealSense/realsense_mipi_platform_driver/blob/master/hardware/realsense/tegra194-camera-d4xx-dual.dtsi

I don’t think this is working.
There have vc-id duplicate would cause problem while launch 8 simultaneously.

	tegra-capture-vi {
		num-channels = <8>;

		ports {
			#address-cells = <0x1>;
			#size-cells = <0x0>;

			port@0 {
				reg = <0>;
				status = "ok";

				vi_in0: endpoint {
					status = "ok";
					port-index = <0>;
					bus-width = <2>;
					vc-id = <0>;
					remote-endpoint = <&csi_out0>;
				};
			};
			port@1 {
				reg = <1>;
				status = "ok";

				vi_in1: endpoint {
					status = "ok";
					vc-id = <1>;
					port-index = <0>;
					bus-width = <2>;
					remote-endpoint = <&csi_out1>;
				};
			};
			port@2 {
				reg = <2>;
				status = "ok";

				vi_in2: endpoint {
					status = "ok";
					port-index = <0>;
					bus-width = <2>;
					vc-id = <2>;
					remote-endpoint = <&csi_out2>;
				};
			};
			port@3 {
				reg = <3>;
				status = "ok";

				vi_in3: endpoint {
					status = "ok";
					port-index = <0>;
					bus-width = <2>;
					vc-id = <3>;
					remote-endpoint = <&csi_out3>;
				};
			};
			port@4 {
				reg = <4>;
				status = "ok";

				vi_in4: endpoint {
					status = "ok";
					port-index = <0>;
					bus-width = <2>;
					vc-id = <2>;
					remote-endpoint = <&csi_out4>;
				};
			};
			port@5 {
				reg = <5>;
				status = "ok";

				vi_in5: endpoint {
					status = "ok";
					port-index = <0>;
					bus-width = <2>;
					vc-id = <3>;
					remote-endpoint = <&csi_out5>;
				};
			};
			port@6 {
				reg = <6>;
				status = "ok";

				vi_in6: endpoint {
					status = "ok";
					port-index = <0>;
					bus-width = <2>;
					vc-id = <0>;
					remote-endpoint = <&csi_out6>;
				};
			};
			port@7 {
				reg = <7>;
				status = "ok";

				vi_in7: endpoint {
					status = "ok";
					port-index = <0>;
					bus-width = <2>;
					vc-id = <1>;
					remote-endpoint = <&csi_out7>;
				};
			};
		};
	};

這也是我不太了解的地方之一,為何Intel D457這樣寫,但的確我是能在 Orion NX上看到2顆D457 cam gmsl的影像

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