Tegra_nvcsi_stream_set_config no log

jp5.1.1 R35.3.1 Orin Nano 4GB camera_rtcpu_rce_t234 debug fw
Normal can capture image of camerar’s logs


When there is no camera connection:

Both are the same above,

but, when the FPGA is connected, log :

What is the explanation for this phenomenon, the nvcsi stream configuration didn’t work?


This problem occurs only on one mipi cam interface (cam0)

hello gaoming.song,

may I know what’s your pipeline to enable the camera stream.
please review the Port Binding; you may also To verify the port binding result.

BTW,
please see Jetson Orin NX Series and Orin Nano Series Design Guide for [Figure 10-1. CSI 2-Lane Connection Options].

CSI0 D1 and CSI1 D0 P/N will always been swizzled for P/N.

please use device tree property, lane_polarity to configure a polarity swap on any lane.

1 Like

The current validation status:
Same imx390 camera, 2lane mode works on mipi csi port 1 and 2, 4lane mode only works on mipi csi port 2. The dts parameters are the same.


	cam_i2cmux {
		compatible = "i2c-mux-gpio";
		#address-cells = <0x01>;
		#size-cells = <0x00>;
		mux-gpios = <0x66 0x13 0x00>;
		i2c-parent = <0x2c4>;

		i2c@0 {
			reg = <0x00>;
			#address-cells = <0x01>;
			#size-cells = <0x00>;

			artemis@6f {
				compatible = "motorcomm,artemis";
				reg = <0x6f>;
				intr-gpios = <0x5a 0xa6 0x00>;
				podw-gpios = <0x5a 0x31 0x00>;
				bitmap = <0x00000001>;
				serdes_aphy_clk = /bits/ 8 <0x02>;
				drop_ratio_threshold = /bits/ 8 <0x5b>;
				reset_timeout = <0x1e8481>;
				alert_temperature = /bits/ 8 <0x5a>;
				// pwdn-gpios = <0x05 0xa0 0x00>;
				// channel = <0x00>;
			};

			cam_0@20 {
				compatible = "sensing,imx390_0";
				reg = <0x20>;
				devnode = "video0";
				physical_w = "3.680";
				physical_h = "2.760";
				sensor_model = "imx390";
				use_sensor_mode_id = "true";
				reset-gpios = <0x5a 0xa7 0x00>;
				phandle = <0x482>;

				mode0 {
					mclk_khz = "24000";
					num_lanes = [34 00];
					tegra_sinterface = "serial_b";
					phy_mode = "DPHY";
					discontinuous_clk = "no";
					dpcm_enable = "false";
					cil_settletime = [30 00];
					lane_polarity = [36 00];
					active_w = "1920";
					active_h = "1080";
					mode_type = "bayer";
					pixel_phase = "rggb";
					csi_pixel_bit_depth = "12";
					dynamic_pixel_bit_depth = "12";
					readout_orientation = [30 00];
					line_length = "2200";
					inherent_gain = [31 00];
					mclk_multiplier = "6.1875";
					pix_clk_hz = "148500000";
					gain_factor = "10";
					min_gain_val = [30 00];
					max_gain_val = "300";
					step_gain_val = [33 00];
					default_gain = [30 00];
					min_hdr_ratio = [31 00];
					max_hdr_ratio = [31 00];
					framerate_factor = "1000000";
					min_framerate = "30000000";
					max_framerate = "30000000";
					step_framerate = [31 00];
					default_framerate = "30000000";
					exposure_factor = "1000000";
					min_exp_time = "59";
					max_exp_time = "33333";
					step_exp_time = [31 00];
					default_exp_time = "33333";
					embedded_metadata_height = [31 00];
				};

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

					port@0 {
						reg = <0x00>;

						endpoint {
							port-index = <0x01>;
							bus-width = <0x04>;
							remote-endpoint = <0x2c5>;
							phandle = <0x285>;
						};
					};
				};
			};
		};

		i2c@1 {
			reg = <0x01>;
			#address-cells = <0x01>;
			#size-cells = <0x00>;

			cam_1@20 {
				compatible = "sensing,imx390_1";
				reg = <0x20>;
				devnode = "video1";
				physical_w = "3.680";
				physical_h = "2.760";
				sensor_model = "imx390";
				use_sensor_mode_id = "true";
				reset-gpios = <0x5a 0xa6 0x00>;
				phandle = <0x483>;

				mode0 {
					mclk_khz = "24000";
					num_lanes = [34 00];
					tegra_sinterface = "serial_c";
					phy_mode = "DPHY";
					discontinuous_clk = "no";
					dpcm_enable = "false";
					cil_settletime = [30 00];
					lane_polarity = [30 00];
					active_w = "1920";
					active_h = "1080";
					mode_type = "bayer";
					pixel_phase = "rggb";
					csi_pixel_bit_depth = "12";
					dynamic_pixel_bit_depth = "12";
					readout_orientation = [30 00];
					line_length = "2200";
					inherent_gain = [31 00];
					mclk_multiplier = "6.1875";
					pix_clk_hz = "148500000";
					gain_factor = "10";
					min_gain_val = [30 00];
					max_gain_val = "300";
					step_gain_val = [33 00];
					default_gain = [30 00];
					min_hdr_ratio = [31 00];
					max_hdr_ratio = [31 00];
					framerate_factor = "1000000";
					min_framerate = "30000000";
					max_framerate = "30000000";
					step_framerate = [31 00];
					default_framerate = "30000000";
					exposure_factor = "1000000";
					min_exp_time = "59";
					max_exp_time = "33333";
					step_exp_time = [31 00];
					default_exp_time = "33333";
					embedded_metadata_height = [31 00];
				};

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

					port@0 {
						reg = <0x00>;

						endpoint {
							port-index = <0x02>;
							bus-width = <0x04>;
							remote-endpoint = <0x2c6>;
							phandle = <0x287>;
						};
					};
				};
			};
		};
	};

Thank you very much. I’ll try it.

ahh… this should be the reason…

Orin Nano DevKit, (i.e. p3768) it can work with 4-lane camera only on Cam0 slot,
we’re not support CSI-B in 4-lane config because of CSI clock limitations.

Configuration from above:
cam_1, can work in 4-lane mode,
tegra_sinterface = "serial_c";

Can you clarify the relationship between CSI-B/C and dts slot?

you may see Jetson Orin NX Series and Orin Nano Series Design Guide.
you’ll need to enable CSI-A/B starting with serial_a; and CSI-C/D starting with serial_c for using 4-lane camera configure.

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