Xavier connect FDLINK camera

If your board didn’t have EEPROM for implement auto detect you need to disable plugin manager to use main platform device tree for your sensor driver.

Thank you for your reply!
I’m a little confused about what does this have to do with EEPROM?
We designed our carrier board according to OEM design.
If not have EEPROM, how do we disable it?

The sensor board have EEPROM for the auto detect. If your implement didn’t have EEPROM you have to follow the document to disable it by modify the device tree.

Our camera module has the ISP in module,so we don’t use the ISP in Xavier,if this effect the adjust?

So if we do not use ISP of Xavier,how we can disable it?

If your sensor have ISP and output YUV format you can just ignore the gain/frametate/exposure,
And you can only use v4l2 APP for capture the frame data like v4l2-ctl or v4l2src

Hi ShaneCCC,
Thank you very much for your replay!
We have disabled plugin manager by exclude file “tegra194-plugin-manager-p2822-0000.dtsi”, but we found the following mistakes" ep of_device is not enabled /host1x/vi@15c10000/ports/port@0/endpoint .", please help to see where the problem may be.

Thanks,

BR

--------log----

[ 6.732642] tegra194-isp5 14800000.isp: initialized
[ 6.738539] tegra194-vi5 15c10000.vi: using default number of vi channels, 36
[ 6.740853] tegra194-vi5 15c10000.vi: initialized
[ 6.744579] tegra194-vi5 15c10000.vi: ep of_device is not enabled /host1x/vi@15c10000/ports/port@0/endpoint.
[ 6.745287] tegra186-cam-rtcpu bc00000.rtcpu: Trace buffer configured at IOVA=0xbff00000

Dump the device tree to check if it’s exactly as your declaration.

sudo dtc -I fs -O dts -o extracted_dt.dts /proc/device-tree

Hi ShaneCCC,

see attachment file for check,please.
extracted_dt.dts.log (326.7 KB)

Looks like you didn’t include your camera device tree.
The tegra-camera-platform still reference code.
Please go through to sensor programing guide to know much detail.

tegra-camera-platform {
		isp_bw_margin_pct = <0x19>;
		compatible = "nvidia, tegra-camera-platform";
		max_pixel_rate = <0xb71b0>;
		num_csi_lanes = <0x4>;
		vi_peak_byte_per_pixel = <0x2>;
		max_lane_speed = <0x16e360>;
		phandle = <0x1c2>;
		tpg_max_iso = <0x3bc400>;
		vi_bw_margin_pct = <0x19>;
		linux,phandle = <0x1c2>;
		min_bits_per_pixel = <0xa>;
		isp_peak_byte_per_pixel = <0x5>;

		modules {

			module4 {
				badge = "e3333_bottomright_P5V27C";
				status = "disabled";
				phandle = <0x1cf>;
				position = "bottomright";
				linux,phandle = <0x1cf>;
				orientation = [31 00];

				drivernode1 {
					pcl_id = "v4l2_lens";
					status = "disabled";
					proc-device-tree = "/proc/device-tree/e3333_lens_ov5693@P5V27C/";
					phandle = <0x1d1>;
					linux,phandle = <0x1d1>;
				};

				drivernode0 {
					devname = "ov5693 34-0036";
					pcl_id = "v4l2_sensor";
					status = "disabled";
					proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@77/i2c@4/ov5693_e@36";
					phandle = <0x1d0>;
					linux,phandle = <0x1d0>;
				};
			};

			module2 {
				badge = "e3333_centerright_P5V27C";
				status = "disabled";
				phandle = <0x1c9>;
				position = "centerright";
				linux,phandle = <0x1c9>;
				orientation = [31 00];

				drivernode1 {
					pcl_id = "v4l2_lens";
					status = "disabled";
					proc-device-tree = "/proc/device-tree/e3333_lens_ov5693@P5V27C/";
					phandle = <0x1cb>;
					linux,phandle = <0x1cb>;
				};

				drivernode0 {
					devname = "ov5693 32-0036";
					pcl_id = "v4l2_sensor";
					status = "disabled";
					proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@77/i2c@2/ov5693_c@36";
					phandle = <0x1ca>;
					linux,phandle = <0x1ca>;
				};
			};

			module0 {
				badge = "ar231_bottom_atar231";
				status = "disabled";
				phandle = <0x1c3>;
				position = "rear";
				linux,phandle = <0x1c3>;
				orientation = [30 00];

				drivernode1 {
					pcl_id = "v4l2_lens";
					status = "disabled";
					proc-device-tree = "/proc/device-tree/lens_imx274@A6V26/";
					phandle = <0x1c5>;
					linux,phandle = <0x1c5>;
				};

				drivernode0 {
					devname = "ar231 80-0018";
					pcl_id = "v4l2_sensor";
					status = "disabled";
					proc-device-tree = "/proc/device-tree/i2c@31e0000/ar231_a@18";
					phandle = <0x1c4>;
					linux,phandle = <0x1c4>;
				};
			};

			module5 {
				badge = "e3333_topright_P5V27C";
				status = "disabled";
				phandle = <0x1d2>;
				position = "topright";
				linux,phandle = <0x1d2>;
				orientation = [31 00];

				drivernode1 {
					pcl_id = "v4l2_lens";
					status = "disabled";
					proc-device-tree = "/proc/device-tree/e3333_lens_ov5693@P5V27C/";
					phandle = <0x1d4>;
					linux,phandle = <0x1d4>;
				};

				drivernode0 {
					devname = "ov5693 35-0036";
					pcl_id = "v4l2_sensor";
					status = "disabled";
					proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@77/i2c@5/ov5693_g@36";
					phandle = <0x1d3>;
					linux,phandle = <0x1d3>;
				};
			};

			module3 {
				badge = "e3333_topleft_P5V27C";
				status = "disabled";
				phandle = <0x1cc>;
				position = "topleft";
				linux,phandle = <0x1cc>;
				orientation = [31 00];

				drivernode1 {
					pcl_id = "v4l2_lens";
					status = "disabled";
					proc-device-tree = "/proc/device-tree/e3333_lens_ov5693@P5V27C/";
					phandle = <0x1ce>;
					linux,phandle = <0x1ce>;
				};

				drivernode0 {
					devname = "ov5693 33-0036";
					pcl_id = "v4l2_sensor";
					status = "disabled";
					proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@77/i2c@3/ov5693_d@36";
					phandle = <0x1cd>;
					linux,phandle = <0x1cd>;
				};
			};

			module1 {
				badge = "imx390_front";
				status = "disabled";
				phandle = <0x1c6>;
				position = "front";
				linux,phandle = <0x1c6>;
				orientation = [31 00];

				drivernode1 {
					pcl_id = "v4l2_lens";
					status = "disabled";
					proc-device-tree = "/proc/device-tree/lens_imx274@A6V26/";
					phandle = <0x1c8>;
					linux,phandle = <0x1c8>;
				};

				drivernode0 {
					devname = "imx390 30-001c";
					pcl_id = "v4l2_sensor";
					status = "disabled";
					proc-device-tree = "/proc/device-tree/i2c@3180000/tca9546@70/i2c@0/imx390_b@1c";
					phandle = <0x1c7>;
					linux,phandle = <0x1c7>;
				};
			};
		};
	};

Thank you!
We exclude some irrelevant camera,and catch the dts , help to check attachment file if there is any problem please!

BTW, there is a “video0” in /dev/video0.

Thanks,
BR

extracted_dt.dts.dts.log (246.8 KB)

Check the kernel message to know if the ar231 was loaded and probe normally.

Also below is incorrect even it not relative for the video0 created. Should be 8-0018

devname = “ar231 80-0018”

Thanks!
Let me modify the DTS for this bug,but I’m not sure how to modify it, just change “ar231 80-0018” to“ar231 8-0018” in the dts file ?
BTW,where did the V4l2 test tools (like v4l2-compliance v4l2-ctl, I not find them in nvidia system)in the documentation come from?

Thank you very much!

BR,

You may install package v4l-utils:

sudo apt-get update
sudo apt-get install v4l-utils

Hi Honey_Patouceul,

      Thank you for your replay!
      In follwing log has a "nvcsi--1",but  CSI 2 and 3 are used in our hardware(following picture). How can we modify DTS to send data to CSI 2 and 3?

Our DTS is in the reply above.


==========log============
cheese-20482 [001] … 640.467565: tegra_channel_open: vi-output, ar231 8-0018
cheese-20482 [001] … 640.469815: tegra_channel_set_power: ar231 8-0018 : 0x1
cheese-20482 [001] … 640.469897: camera_common_s_power: status : 0x1
cheese-20482 [001] … 640.470546: tegra_channel_set_power: 15a00000.nvcsi–1 : 0x1
cheese-20482 [001] … 640.470551: csi_s_power: enable : 0x1
cheese-20482 [001] … 640.472201: tegra_channel_close: vi-output, ar231 8-0018
cheese-20482 [001] … 640.472209: tegra_channel_set_power: ar231 8-0018 : 0x0
cheese-20482 [001] … 640.472219: camera_common_s_power: status : 0x0
cheese-20482 [001] … 640.472424: tegra_channel_set_power: 15a00000.nvcsi–1 : 0x0
cheese-20482 [001] … 640.472426: csi_s_power: enable : 0x0
cheese-20488 [003] … 640.478755: tegra_channel_open: vi-output, ar231 8-0018
cheese-20488 [003] … 640.478781: tegra_channel_set_power: ar231 8-0018 : 0x1
cheese-20488 [003] … 640.478798: camera_common_s_power: status : 0x1
cheese-20488 [003] … 640.479714: tegra_channel_set_power: 15a00000.nvcsi–1 : 0x1
cheese-20488 [003] … 640.479720: csi_s_power: enable : 0x1
cheese-20488 [003] … 640.480242: tegra_channel_close: vi-output, ar231 8-0018
cheese-20488 [003] … 640.480250: tegra_channel_set_power: ar231 8-0018 : 0x0
cheese-20488 [003] … 640.480260: camera_common_s_power: status : 0x0
cheese-20488 [003] … 640.480475: tegra_channel_set_power: 15a00000.nvcsi–1 : 0x0
cheese-20488 [003] … 640.480479: csi_s_power: enable : 0x0
cheese-20562 [002] … 884.968616: tegra_channel_open: vi-output, ar231 8-0018
cheese-20562 [002] … 884.970917: tegra_channel_set_power: ar231 8-0018 : 0x1
cheese-20562 [002] … 884.970989: camera_common_s_power: status : 0x1
cheese-20562 [002] … 884.971775: tegra_channel_set_power: 15a00000.nvcsi–1 : 0x1
cheese-20562 [002] … 884.971782: csi_s_power: enable : 0x1
cheese-20562 [002] … 884.973561: tegra_channel_close: vi-output, ar231 8-0018
cheese-20562 [002] … 884.973572: tegra_channel_set_power: ar231 8-0018 : 0x0
cheese-20562 [002] … 884.973593: camera_common_s_power: status : 0x0
cheese-20562 [002] … 884.973942: tegra_channel_set_power: 15a00000.nvcsi–1 : 0x0
cheese-20562 [002] … 884.973948: csi_s_power: enable : 0x0
cheese-20568 [000] … 884.979948: tegra_channel_open: vi-output, ar231 8-0018
cheese-20568 [000] … 884.979965: tegra_channel_set_power: ar231 8-0018 : 0x1
cheese-20568 [000] … 884.979981: camera_common_s_power: status : 0x1
cheese-20568 [000] … 884.980575: tegra_channel_set_power: 15a00000.nvcsi–1 : 0x1
cheese-20568 [000] … 884.980582: csi_s_power: enable : 0x1
cheese-20568 [000] … 884.981181: tegra_channel_close: vi-output, ar231 8-0018
cheese-20568 [000] … 884.981189: tegra_channel_set_power: ar231 8-0018 : 0x0
cheese-20568 [000] … 884.981206: camera_common_s_power: status : 0x0
cheese-20568 [000] … 884.981413: tegra_channel_set_power: 15a00000.nvcsi–1 : 0x0
cheese-20568 [000] … 884.981417: csi_s_power: enable : 0x0
gst-plugin-scan-20614 [000] … 995.395039: tegra_channel_open: vi-output, ar231 8-0018
gst-plugin-scan-20614 [000] … 995.396886: tegra_channel_set_power: ar231 8-0018 : 0x1
gst-plugin-scan-20614 [000] … 995.396908: camera_common_s_power: status : 0x1
gst-plugin-scan-20614 [000] … 995.397651: tegra_channel_set_power: 15a00000.nvcsi–1 : 0x1
gst-plugin-scan-20614 [000] … 995.397658: csi_s_power: enable : 0x1
gst-plugin-scan-20614 [000] … 995.399328: tegra_channel_close: vi-output, ar231 8-0018
gst-plugin-scan-20614 [000] … 995.399336: tegra_channel_set_power: ar231 8-0018 : 0x0
gst-plugin-scan-20614 [000] … 995.399387: camera_common_s_power: status : 0x0
gst-plugin-scan-20614 [000] … 995.399564: tegra_channel_set_power: 15a00000.nvcsi–1 : 0x0
gst-plugin-scan-20614 [000] … 995.399567: csi_s_power: enable : 0x0
gst-launch-1.0-20613 [003] … 996.498756: tegra_channel_open: vi-output, ar231 8-0018
gst-launch-1.0-20613 [000] … 996.500868: tegra_channel_set_power: ar231 8-0018 : 0x1
gst-launch-1.0-20613 [000] … 996.500908: camera_common_s_power: status : 0x1
gst-launch-1.0-20613 [000] … 996.501630: tegra_channel_set_power: 15a00000.nvcsi–1 : 0x1
gst-launch-1.0-20613 [000] … 996.501637: csi_s_power: enable : 0x1
gst-launch-1.0-20613 [000] … 996.503344: tegra_channel_close: vi-output, ar231 8-0018
gst-launch-1.0-20613 [000] … 996.503352: tegra_channel_set_power: ar231 8-0018 : 0x0
gst-launch-1.0-20613 [000] … 996.503368: camera_common_s_power: status : 0x0
gst-launch-1.0-20613 [000] … 996.503584: tegra_channel_set_power: 15a00000.nvcsi–1 : 0x0
gst-launch-1.0-20613 [000] … 996.503587: csi_s_power: enable : 0x0
gst-launch-1.0-20627 [000] … 1012.097542: tegra_channel_open: vi-output, ar231 8-0018
gst-launch-1.0-20627 [000] … 1012.102706: tegra_channel_set_power: ar231 8-0018 : 0x1
gst-launch-1.0-20627 [000] … 1012.102754: camera_common_s_power: status : 0x1
gst-launch-1.0-20627 [000] … 1012.103829: tegra_channel_set_power: 15a00000.nvcsi–1 : 0x1
gst-launch-1.0-20627 [000] … 1012.103842: csi_s_power: enable : 0x1
gst-launch-1.0-20627 [000] … 1012.106020: tegra_channel_close: vi-output, ar231 8-0018
gst-launch-1.0-20627 [000] … 1012.106033: tegra_channel_set_power: ar231 8-0018 : 0x0
gst-launch-1.0-20627 [000] … 1012.106048: camera_common_s_power: status : 0x0
gst-launch-1.0-20627 [000] … 1012.106401: tegra_channel_set_power: 15a00000.nvcsi–1 : 0x0
gst-launch-1.0-20627 [000] … 1012.106404: csi_s_power: enable : 0x0
gst-launch-1.0-20685 [002] … 1052.092141: tegra_channel_open: vi-output, ar231 8-0018
gst-launch-1.0-20685 [000] … 1052.096832: tegra_channel_set_power: ar231 8-0018 : 0x1
gst-launch-1.0-20685 [000] … 1052.096977: camera_common_s_power: status : 0x1
gst-launch-1.0-20685 [000] … 1052.098134: tegra_channel_set_power: 15a00000.nvcsi–1 : 0x1
gst-launch-1.0-20685 [000] … 1052.098147: csi_s_power: enable : 0x1
gst-launch-1.0-20685 [000] … 1052.100621: tegra_channel_close: vi-output, ar231 8-0018
gst-launch-1.0-20685 [000] … 1052.100642: tegra_channel_set_power: ar231 8-0018 : 0x0
gst-launch-1.0-20685 [000] … 1052.100659: camera_common_s_power: status : 0x0
gst-launch-1.0-20685 [000] … 1052.101082: tegra_channel_set_power: 15a00000.nvcsi–1 : 0x0
gst-launch-1.0-20685 [000] … 1052.101086: csi_s_power: enable : 0x0
gst-launch-1.0-20685 [000] … 1052.228096: tegra_channel_open: vi-output, ar231 8-0018
gst-launch-1.0-20685 [000] … 1052.228131: tegra_channel_set_power: ar231 8-0018 : 0x1
gst-launch-1.0-20685 [000] … 1052.228157: camera_common_s_power: status : 0x1
gst-launch-1.0-20685 [000] … 1052.228977: tegra_channel_set_power: 15a00000.nvcsi–1 : 0x1
gst-launch-1.0-20685 [000] … 1052.228983: csi_s_power: enable : 0x1
gst-launch-1.0-20685 [000] … 1052.237227: tegra_channel_close: vi-output, ar231 8-0018
gst-launch-1.0-20685 [000] … 1052.237245: tegra_channel_set_power: ar231 8-0018 : 0x0
gst-launch-1.0-20685 [000] … 1052.237276: camera_common_s_power: status : 0x0
gst-launch-1.0-20685 [000] … 1052.237674: tegra_channel_set_power: 15a00000.nvcsi–1 : 0x0
gst-launch-1.0-20685 [000] … 1052.237681: csi_s_power: enable : 0x0

So how we can change the CSI ID and become to other channel? Thanks

The port-index to configure which CSI lanes.
0 map to CSI-A …

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

                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 = <2>;
                                                        remote-endpoint = <&e3326_ov5693_out0>;
                                                };
                                        };
                                        port@1 {
                                                reg = <1>;
                                                e3326_csi_out0: endpoint@1 {
                                                        remote-endpoint = <&e3326_vi_in0>;
                                                };
                                        };
                                };
                        };
                };
        };
1 Like

Hi ShaneCCC,
Thank you very much for your replay!
I’m going to close the question.
Bellow link in order to describe our intention in more detail,help us to check please!

The Xavier csi inside use 4 lanes ( CSI2+CSI3 combine);so how we can set the CSI2 and CSI3 to one 4lanes gorup?thanks

Set the port-index to 2 and bus-width to 4