Video node available but data not streaming

Hello.
We have integrated the a camera made over the OV5693 driver ie with relevant changes made for our requirement, on Jetson Orin NX JP5.1 SoC. This Orin NX SoC is integrated on Xavier NX devkit.
We flashed the OS on USB drive and successfully booted from it by flashing necessary changes on the qspi.

The camera was previously functional on

  • TX2 JP3.1 and JP4.6
  • Xavier NX JP4.6

Video node is present. However, when we try to launch video via the pipeline below we get the following error:

/$ GST_DEBUG=3 gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw, width=640, height=480, framerate=15/1 ! videoconvert ! ximagesink -v


Setting pipeline to PAUSED ...
0:00:00.085565432  2582 0xaaab1666c300 WARN              ximagepool ximagepool.c:500:gst_x_image_sink_check_xshm_calls: MIT-SHM extension check failed at XShmAttach. Not using shared memory.
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
0:00:00.092198484  2582 0xaaab1665cd80 WARN                 basesrc gstbasesrc.c:3072:gst_base_src_loop:<v4l2src0> error: Internal data stream error.
0:00:00.092236662  2582 0xaaab1665cd80 WARN                 basesrc gstbasesrc.c:3072:gst_base_src_loop:<v4l2src0> error: streaming stopped, reason not-negotiated (-4)
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming stopped, reason not-negotiated (-4)
Execution ended after 0:00:00.000149604
Setting pipeline to NULL ...
Freeing pipeline ...

Additionally,


/$ sudo dmesg | grep nvcsi

[    8.876465] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: context isolation disabled due to no IOMMU
[    8.886135] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: initialized
[    8.892570] tegra-camrtc-capture-vi tegra-capture-vi: subdev 13e40000.host1x:nvcsi@15a00000- bound
[   67.858553] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
[   67.877615] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 0

We have used e3326 node for the device tree and have verified the following

  1. the i2c bus mapping wrt hardware.
  2. the camera connector

Thank you in advance.

hello sanya.rahman,

is it a bayer sensor? v4l2src only works with usb-camera or YUV sensors.
could you please refer to Approaches for Validating and Testing the V4L2 Driver to test the basic camera function with v4l2 standard utility.
thanks

@JerryChang

Yes it a YUV sensor.

I have followed the documentation and I am encountering the following errors:

/$ GST_DEBUG=3 gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw, width=640, height=480, framerate=30/1 ! xvimagesink -ev

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, width=(int)640, height=(int)480, framerate=(fraction)30/1, format=(string)YUY2, colorimetry=(string)2:4:7:1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, width=(int)640, height=(int)480, framerate=(fraction)30/1, format=(string)YUY2, colorimetry=(string)2:4:7:1, interlace-mode=(string)progressive
New clock: GstSystemClock
/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0.GstPad:sink: caps = video/x-raw, width=(int)640, height=(int)480, framerate=(fraction)30/1, format=(string)YUY2, colorimetry=(string)2:4:7:1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, width=(int)640, height=(int)480, framerate=(fraction)30/1, format=(string)YUY2, colorimetry=(string)2:4:7:1, interlace-mode=(string)progressive
0:00:00.033028430  2663 0xaaaacd03a9e0 WARN                 default v4l2-utils.c:189:gst_v4l2_error:<v4l2src0> error: Device '/dev/video0' has no supported format
0:00:00.033112337  2663 0xaaaacd03a9e0 WARN                 default v4l2-utils.c:192:gst_v4l2_error:<v4l2src0> error: Call to S_FMT failed for YUYV @ 640x480: Invalid argument
0:00:00.033195669  2663 0xaaaacd03a9e0 WARN                 basesrc gstbasesrc.c:3292:gst_base_src_prepare_allocation:<v4l2src0> Subclass failed to decide allocation
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Device '/dev/video0' has no supported format
Additional debug info:
gstv4l2object.c(3783): gst_v4l2_object_set_format_full (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Call to S_FMT failed for YUYV @ 640x480: Invalid argument
EOS on shutdown enabled -- waiting for EOS after Error
Waiting for EOS...
0:00:00.033702154  2663 0xaaaacd03a9e0 WARN                 basesrc gstbasesrc.c:3072:gst_base_src_loop:<v4l2src0> error: Internal data stream error.
0:00:00.033717706  2663 0xaaaacd03a9e0 WARN                 basesrc gstbasesrc.c:3072:gst_base_src_loop:<v4l2src0> error: streaming stopped, reason not-negotiated (-4)
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming stopped, reason not-negotiated (-4)
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Interrupt while waiting for EOS - stopping pipeline...
Execution ended after 0:00:04.114905007
Setting pipeline to NULL ...
Freeing pipeline ...
$ GST_DEBUG=3 gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw, width=640, height=480, framerate=15/1 ! videoconvert ! xvimagesink -ev

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:00.030572668  2668 0xaaab08b189e0 WARN                 basesrc gstbasesrc.c:3072:gst_base_src_loop:<v4l2src0> error: Internal data stream error.
0:00:00.030629055  2668 0xaaab08b189e0 WARN                 basesrc gstbasesrc.c:3072:gst_base_src_loop:<v4l2src0> error: streaming stopped, reason not-negotiated (-4)
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming stopped, reason not-negotiated (-4)
EOS on shutdown enabled -- waiting for EOS after Error
Waiting for EOS...
x^Chandling interrupt.
Interrupt: Stopping pipeline ...
Interrupt while waiting for EOS - stopping pipeline...
Execution ended after 0:00:21.553366912
Setting pipeline to NULL ...
Freeing pipeline ...

The mode settings have also been checked in the device tree:

active_w = 640;
active_h = 480;
mode_type = yuv;
pixel_phase = yuyv;

This mode has previously worked on TX2 and Xavier NX as mentioned.

Thank you.

hello sanya.rahman,

since it’s Orin NX, please note that it has polarity swap. i.e. CSI0 D1 and CSI1 D0 P/N will always been swizzled for P/N. you could update lane_polarity property in device tree accordingly.

could you please use V4L2 IOCTL to verify basic functionality.
for example, what’s the format dumps, $ v4l2-ctl -d /dev/video0 --list-formats-ext
you may fetch the stream with v4l pipeline as below for testing. $ v4l2-ctl --set-fmt-video=width=640,height=480,pixelformat=YUYV --stream-mmap --stream-count=300 -d /dev/video0

please also gather the complete kernel messages for dig into the failures. $ dmesg > klogs.txt

Hello @JerryChang ,

I have added the lane polarity property as <0x6> in the device tree.
For V4L2 IOCTL basic functionality:

$ v4l2-ctl -d /dev/video0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
	Type: Video Capture

	[0]: 'YUYV' (YUYV 4:2:2)
		Size: Discrete 1280x720
			Interval: Discrete 0.008s (120.000 fps)
		Size: Discrete 640x480
			Interval: Discrete 0.033s (30.000 fps)
		Size: Discrete 1920x1080
			Interval: Discrete 0.033s (30.000 fps)
		Size: Discrete 1920x1080
			Interval: Discrete 0.033s (30.000 fps)
	[1]: 'YUYV' (YUYV 4:2:2)
		Size: Discrete 1280x720
			Interval: Discrete 0.008s (120.000 fps)
		Size: Discrete 640x480
			Interval: Discrete 0.033s (30.000 fps)
		Size: Discrete 1920x1080
			Interval: Discrete 0.033s (30.000 fps)
		Size: Discrete 1920x1080
			Interval: Discrete 0.033s (30.000 fps)

The formats are supported.

The argument listed is VIDIOC_ENUM_FMT

However when I run the pipeline :
$ v4l2-ctl --set-fmt-video=width=640,height=480,pixelformat=YUYV --stream-mmap --stream-count=300 -d /dev/video0

The error I encounter is :

VIDIOC_S_FMT: failed: Invalid argument
		VIDIOC_STREAMON returned -1 (Invalid argument)

I have attached the kernel messages with this response.

Thank you.
kernel_messages.txt (65.7 KB)

this is VI operation failure.
please refer to Camera Driver Porting to review your driver implementation. since you’re migrate driver to JP-5.x, which is now using kernel version 5.10.

@JerryChang hi,

Previously VI was structured as vi@15c10000 under host1x :


{
	host1x {
		vi@15c10000 {
			num-channels=<1>;
			ports {
				#address-cells = <1>;
				#size-cells = <0>;
				vi_port0: port@0 {
					reg = <0>;
					e3326_vi_in0: endpoint {
						port-index = <2>;
						bus-width = <1>;
						remote-endpoint = <&e3326_csi_out0>;
					};
				};
				
			};
		};

		nvcsi@15a00000 {
			num-channels = <1>;
			#address-cells = <1>;
			#size-cells = <0>;
			csi_chan0: channel@0 {
				reg = <0>;
			ports {
					#address-cells = <1>;
					#size-cells = <0>;					
					csi_chan0_port0: port@0 {
						reg = <0>;
						e3326_csi_in0: endpoint@0 {
							port-index = <2>;
							bus-width = <1>;
							remote-endpoint = <&e3326_ov5693_out0>;
						};
					};
					csi_chan0_port1: port@1 {
						reg = <1>;
						e3326_csi_out0: endpoint@1 {
							remote-endpoint = <&e3326_vi_in0>;
						};
					};
				};
			};
			
		};

Now the VI is structured under tegra-capture-vi:

{
	tegra-capture-vi {
		num-channels = <1>;
		ports {
			#address-cells = <1>;
			#size-cells = <0>;
			port@0 {
				reg = <0>;
				e3326_vi_in0: endpoint {
					port-index = <2>;
					bus-width = <1>;
					remote-endpoint = <&e3326_csi_out0>;
				};
			};
		};
	};
	host1x@13e00000 {
		nvcsi@15a00000 {
			num-channels = <1>;
			#address-cells = <1>;
			#size-cells = <0>;
			channel@0 {
				reg = <0>;
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						reg = <0>;
						e3326_csi_in0: endpoint@0 {
							port-index = <2>;
							bus-width = <1>;
							remote-endpoint = <&e3326_ov5693_out0>;
						};
					};
					port@1 {
						reg = <1>;
						e3326_csi_out0: endpoint@1 {
							remote-endpoint = <&e3326_vi_in0>;
						};
					};
				};
			};

In the final device tree:

tegra-capture-vi {
		compatible = "nvidia,tegra-camrtc-capture-vi";
		nvidia,vi-devices = <0x266 0x268>;
		nvidia,vi-mapping-size = <0x06>;
		nvidia,vi-mapping = <0x00 0x00 0x01 0x00 0x02 0x01 0x03 0x01 0x04 0x00 0x05 0x01>;
		nvidia,vi-mapping-names = "csi-stream-id\0vi-unit-id";
		nvidia,vi-max-channels = <0x48>;
		num-channels = <0x01>;

		ports {
			#address-cells = <0x01>;
			#size-cells = <0x00>;

			port@0 {
				reg = <0x00>;

				endpoint {
					port-index = <0x02>;
					bus-width = <0x01>;
					remote-endpoint = <0x269>;
					phandle = <0x271>;
				};
			};
		};
	};
  1. Is “tegra-camrtc-capture-vi”, the one currently in use for JP5.1, the suitable driver for our use case?
  • For Jetpack 4.5 TX2, the VI equivalent had the compatible tag “tegra194-vi”.
  1. There are several other drivers in the fusa-capture folder, are there any options amongst those?

Have referred to “Camera driver porting”, have verified most changes. Is there anything specific you want me to look at?

Thank you.

hello sanya.rahman,

device tree settings should be okay,
the failure you seen is VI operation failure. there’s a generic driver for sending controls.
what’s the argument you’ve sending to low-level driver?
for example,
$public_sources/kernel_src/kernel/nvidia/drivers/media/platform/tegra/camera/vi/channel.c

static const struct v4l2_ioctl_ops tegra_channel_ioctl_ops = {
...

        .vidioc_streamon                = vb2_ioctl_streamon,
1 Like

@JerryChang Hi,

Continuation to the above problem statement. I am using Orin SoC on Xavier NX carried board, JP5.1.

I get the video node and Gstreamer launches with a green screen. The hardware configuration was verified and we got the output for Xavier NX, however when i work with Orin NX I get a green screen on gst-launch.
The errors i encounter are

/$ sudo dmesg | grep nvcsi

[    8.876465] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: context isolation disabled due to no IOMMU
[    8.886135] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: initialized
[    8.892570] tegra-camrtc-capture-vi tegra-capture-vi: subdev 13e40000.host1x:nvcsi@15a00000- bound
[   67.858553] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
[   67.877615] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 0

Pipeline used:
GST_DEBUG=3 gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw, width=640, height=480, framerate=30/1 ! videoconvert ! ximagesink -v

Please advise. Thank you.

hello san1998,

are you using CSI-A/B? please aware there’s polarity swap for Orin NX.
you may refer to Jetson Orin NX Series and Orin Nano Series Design Guide and see-also [Figure 10-1. CSI 2-Lane Connection Options].

there’s device tree property, lane_polarity to configure this via software,
please also check Orin NX, IMX219 camera device tree for reference,
i.e. $public_sources/kernel_src/hardware/nvidia/platform/t23x/p3768/kernel-dts/cvb/tegra234-camera-rbpcv2-imx219.dtsi

hi @JerryChang
Yes , I have already included the lane polarity property in my device tree. I have referred tegra234-camera-rbpcv2-imx219.dtsi
With lane polarity = 6, i get the video node, but still get a green screen.


mode0 { // OV5693_MODE_640x480
				mclk_khz = "24000";
				num_lanes = "1";
				tegra_sinterface = "serial_c";
				phy_mode = "DPHY";
				discontinuous_clk = "no";
				dpcm_enable = "false";
				cil_settletime = "0";
				lane_polarity = "6";

				active_w = "640";
				active_h = "480";
				mode_type = "yuv";
				pixel_phase = "yuyv";
				csi_pixel_bit_depth = "16";
				readout_orientation = "90";
				line_length = "1280";
				inherent_gain = "1";
				mclk_multiplier = "6.67";
				pix_clk_hz = "54000000";

				gain_factor = "10";
				min_gain_val = "10";/* 1DB*/
				max_gain_val = "160";/* 16DB*/
				step_gain_val = "1";
				default_gain = "10";
				min_hdr_ratio = "1";
				max_hdr_ratio = "1";
				framerate_factor = "1000000";
				min_framerate = "1816577";/*1.816577 */
				max_framerate = "30000000";/*30*/
				step_framerate = "1";
				default_framerate = "30000000";
				exposure_factor = "1000000";
				min_exp_time = "34";/* us */
				max_exp_time = "550385";/* us */
				step_exp_time = "1";
				default_exp_time = "33334";/* us */
				embedded_metadata_height = "0";
			};

@JerryChang ,
We have tried the same configuration with Xavier NX and we were able to get the output on Gstreamer.
Additionally, while launching GST I get the following warnings on Orin (with a green screen).

New clock: GstSystemClock
0:00:02.822617184  2200 0xaaaaf34bf180 WARN                 v4l2src gstv4l2src.c:914:gst_v4l2src_create:<v4l2src0> Timestamp does not correlate with any clock, ignoring driver timestamps
0:00:05.635216288  2200 0xaaaaf34bf180 WARN                 v4l2src gstv4l2src.c:978:gst_v4l2src_create:<v4l2src0> lost frames detected: count = 18446744073709551614 - ts: 0:00:05.514384587
0:00:08.451086816  2200 0xaaaaf34bf180 WARN                 v4l2src gstv4l2src.c:978:gst_v4l2src_create:<v4l2src0> lost frames detected: count = 18446744073709551614 - ts: 0:00:08.330250635
0:00:11.267320832  2200 0xaaaaf34bf180 WARN                 v4l2src gstv4l2src.c:978:gst_v4l2src_create:<v4l2src0> lost frames detected: count = 18446744073709551614 - ts: 0:00:11.146487691
0:00:14.083041984  2200 0xaaaaf34bf180 WARN                 v4l2src gstv4l2src.c:978:gst_v4l2src_create:<v4l2src0> lost frames detected: count = 18446744073709551614 - ts: 0:00:13.962208523
0:00:16.899224832  2200 0xaaaaf34bf180 WARN                 v4l2src gstv4l2src.c:978:gst_v4l2src_create:<v4l2src0> lost frames detected: count = 18446744073709551614 - ts: 0:00:16.778388619

hello san1998,

please check you’ve include this device tree update for Orin NX.
for example,

diff --git a/cvb/tegra234-p3768-0000-a0.dtsi b/cvb/tegra234-p3768-0000-a0.dtsi
index 01f41c8..8a8f204 100644
--- a/cvb/tegra234-p3768-0000-a0.dtsi
+++ b/cvb/tegra234-p3768-0000-a0.dtsi
@@ -273,7 +273,7 @@
 
        host1x@13e00000 {
                nvcsi@15a00000 {
-                       csi_chan0 {
+                       channel@0 {
                                ports {
                                        port@0 {
                                                endpoint@0 {

@JerryChang
Hi, Yes I have structured the device tree in the following way:

tegra-capture-vi {
		num-channels = <1>;
		ports {
			#address-cells = <1>;
			#size-cells = <0>;
			port@0 {
				reg = <0>;
				e3326_vi_in0: endpoint {
					port-index = <2>;
					bus-width = <1>;
					remote-endpoint = <&e3326_csi_out0>;
				};
			};
		};
	};
	host1x@13e00000{
		nvcsi@15a00000 {
			num-channels = <1>;
			#address-cells = <1>;
			#size-cells = <0>;
			channel@0 {
				reg = <0>;
			ports {
					#address-cells = <1>;
					#size-cells = <0>;					
					port@0 {
						reg = <0>;
						e3326_csi_in0: endpoint@0 {
							port-index = <2>;
							bus-width = <1>;
							remote-endpoint = <&e3326_ov5693_out0>;
						};
					};
					port@1 {
						reg = <1>;
						e3326_csi_out0: endpoint@1 {
							remote-endpoint = <&e3326_vi_in0>;
						};
					};
				};
			};
			
		};
	};

Also when i grep nvcsi I get the following:

$ sudo dmesg | grep nvcsi

[    7.669227] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: context isolation disabled due to no IOMMU
[    7.678881] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: initialized

@JerryChang I just checked, in the final compiled device tree, nvcsi is structured under channel@0 and not csi_chan0.

host1x@13e00000 {
		nvcsi@15a00000 {
			channel@0 {
				ports {
					port@0 {
						endpoint@0 {
							port-index = <2>;
						};
					};
				};
			};
		};
	};

hello san1998,

ah… I must overlook that.
there’s polarity swap for CSI-A/B only. i.e. CSI0 D1 and CSI1 D0 P/N will always been swizzled for P/N.
you should set lane_polarity = "0"; since you’ve configure camera for using CSI-C.

please give it a try,
thanks

@JerryChang ,
When i set lane_polarity=0, i do not get the video node. ( /dev/video0).

Also,
$ sudo dmesg | grep NVSCI

[    8.876465] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: context isolation disabled due to no IOMMU
[    8.886135] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: initialized
[   8.892570] t194-nvcsi: probe of 13e40000.host1x:nvcsi@15a00000 failed with error -22]

As per the Xavier NX carrier board diagram, the camera module is connected to CAM0, which is CSI-2, according to the documentation. Hence I have set tegra_sinterface = “serial_c”.
Again, it is an Orin SoC on Xavier NX carried board. So will that cause an issue wrt compatibility?

Also I do not get any dump message from:

cat /dev/video0

v4l2-ctl -d /dev/video0 --set-fmt-video=width=640,height=480 --set-ctrl bypass_mode=0 --stream-mmap

@JerryChang ,

I just now observed that for CSI_2, I do not have to include lane_polarity property at all in the device tree. I get the video node, /dev/video0.

Also,


$ sudo dmesg | grep nvcsi
[    8.850153] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: context isolation disabled due to no IOMMU
[    8.859536] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: initialized
[    8.865969] tegra-camrtc-capture-vi tegra-capture-vi: subdev 13e40000.host1x:nvcsi@15a00000- bound

And I still get a green screen, with warning messages:


New clock: GstSystemClock
0:00:02.689445401  2306 0xaaaaf93f8180 WARN                 v4l2src gstv4l2src.c:914:gst_v4l2src_create:<v4l2src0> Timestamp does not correlate with any clock, ignoring driver timestamps
0:00:05.501706237  2306 0xaaaaf93f8180 WARN                 v4l2src gstv4l2src.c:978:gst_v4l2src_create:<v4l2src0> lost frames detected: count = 18446744073709551614 - ts: 0:00:05.341165996
0:00:08.317696679  2306 0xaaaaf93f8180 WARN                 v4l2src gstv4l2src.c:978:gst_v4l2src_create:<v4l2src0> lost frames detected: count = 18446744073709551614 - ts: 0:00:08.157155605
0:00:11.133920323  2306 0xaaaaf93f8180 WARN                 v4l2src gstv4l2src.c:978:gst_v4l2src_create:<v4l2src0> lost frames detected: count = 18446744073709551614 - ts: 0:00:10.973374737

tracelog (3.9 KB)

hello san1998,

I don’t have a device setup with Orin NX +Xavier NX carrier board (p3509+p3767) at the moment.
however, I have Orin NX devkit (p3768+p3767) for quick checking. there’re two 2-lane camera on CSI-A and CSI-C and they’ve worked normally.

@JerryChang Hi

We tried JP5.1 on Xavier NX SoC on Xavier carrier board and we got the camera output.

Orin JP5.1 has similar device tree structure and drivers are the same.

  1. Gstreamer pipeline output gives a green screen.
  2. Video node (video0) is present and port binding is verified.
  3. We also compared the pin descriptions wrt camera interfaces of Orin NX and Xavier NX and we did not find any mismatch.
  4. We are using CSI -2 , so lane polarity does not come into picture.

Could you please let us know what could be the difference here? Pin compatibility seems fine.
Orin SoC on Xavier NX carrier board.

Thank you.