Agx orin i2c mux-tca9546 ,dser max9296 ,sensor ar0234,but ar0234 not work



The max9296a is connected to two ar0234 and a serial encoder. One is corresponding to CSI_0, and the other to CSI_4.

root@tegra-ubuntu:/system/lib/modules# i2cdetect -l
i2c-3 i2c 3190000.i2c I2C adapter
i2c-1 i2c c240000.i2c I2C adapter
i2c-8 i2c 31e0000.i2c I2C adapter
i2c-35 i2c i2c-2-mux (chan_id 3) I2C adapter
i2c-6 i2c 31c0000.i2c I2C adapter
i2c-33 i2c i2c-2-mux (chan_id 1) I2C adapter
i2c-4 i2c Tegra BPMP I2C adapter I2C adapter
i2c-2 i2c 3180000.i2c I2C adapter
i2c-0 i2c 3160000.i2c I2C adapter
i2c-7 i2c c250000.i2c I2C adapter
i2c-34 i2c i2c-2-mux (chan_id 2) I2C adapter
i2c-5 i2c 31b0000.i2c I2C adapter
i2c-32 i2c i2c-2-mux (chan_id 0) I2C adapter

Select channel 2 of TCA9546

root@tegra-ubuntu:/system/lib/modules# i2cset -y -f 2 0x70 0x04
root@tegra-ubuntu:/system/lib/modules# i2cdump -y -f 32 0x48
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 90 88 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ???..
10: 00 00 00 00 c9 19 91 00 91 00 00 02 00 40 43 ff …???.?..?.@C.
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
40: 00 00 00 00 00 18 00 00 00 00 00 00 00 00 00 00 …?..
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …

root@tegra-ubuntu:/system/lib/modules# insmod i2c-mux-pca954x.ko
[ 27.265855] clarify anchor pca954x_probe:458:
[ 27.266017] clarify anchor pca954x_probe:468:
[ 27.266152] clarify anchor pca954x_probe:472:
[ 27.267127] clarify anchor pca954x_probe:483:
[ 27.267648] clarify anchor pca954x_probe:508:
[ 27.267792] clarify anchor pca954x_probe:512:
[ 27.267954] clarify anchor pca954x_probe:568:
[ 27.268590] clarify anchor pca954x_probe:587:
[ 27.269418] ar0234 32-0018: Failed to find matching dt id
[ 27.269574] ar0234 32-0018: unable to get platform data
[ 27.269712] ar0234 32-0018: tegra camera driver registration failed
[ 27.269937] ar0234: probe of 32-0018 failed with error -14
[ 27.270377] ar0234 32-0010: Failed to find matching dt id
[ 27.270535] ar0234 32-0010: unable to get platform data
[ 27.270676] ar0234 32-0010: tegra camera driver registration failed
[ 27.270875] ar0234: probe of 32-0010 failed with error -14
[ 27.271200] max9296 32-0048: reset-gpios not found 0
[ 27.274186] clarify anchor pca954x_probe:640:
root@tegra-ubuntu:/system/lib/modules# [ 27.289235] Error: Driver ‘ar0234’ is already registered, aborting…

root@tegra-ubuntu:/system/lib/modules# i2cget -y -f 32 0x48 0x4A

0x00

However, it was impossible to recognize ar0234,

I hope help me solve the problem. Thank you

agx_orin_boot_log_20251215.txt (99.6 KB)
tegra234-p3701-0005-p3737-0000.dtb.dts.tmp.txt (466.1 KB)
tegra234-p3737-0000-camera-ar0234-a00.dtsi.txt (3.2 KB)
tegra234-p3737-camera-modules.dtsi.txt (13.5 KB)

It could be your device tree have probelm.

[ 27.269418] ar0234 32-0018: Failed to find matching dt id
[ 27.269574] ar0234 32-0018: unable to get platform data

ar0234->max9295->max9296(i2c mux-tca9546)->csi_2

ar0234 30-001a: Detected AR0234 sensor,
However, the /dev/video node did not appear. Could you please check if there is any configuration issue?

boot_log_20260104.txt (184.8 KB)
tegra234-p3737-0000-dser-max9296-camera-ar0234-a00_20260104.dtsi.txt (2.8 KB)
tegra234-camera-ar0234-a00_20260104.dtsi.txt (25.3 KB)

Looks like your ar0234.c have problem cause the kernel panic.

[ 4.624497] tegra-camrtc-capture-vi tegra-capture-vi: tegra_channel_csi_init:Fail to parse port info
[ 4.633508] tegra-camrtc-capture-vi tegra-capture-vi: channel init failed
[ 4.640158] tegra-camrtc-capture-vi tegra-capture-vi: all channel init failed
[ 4.647334] tegra-camrtc-capture-vi tegra-capture-vi: Init channel failed
[ 4.653983] clarify anchor tegra_vi_media_controller_init_int:352:
[ 4.660176] tegra-camrtc-capture-vi tegra-capture-vi: tegra_vi_media_controller_init_int: failed
[ 4.668860] tegra-camrtc-capture-vi tegra-capture-vi: media controller init failed

agx_orin_boot_log_20260106.txt (169.3 KB)

agx_orin_boot_log_20260106.txt (169.3 KB)
tegra234-p3737-0000-dser-max9296-camera-ar0234-a00_20260104.dtsi.txt (2.8 KB)

Looks like your device tree(dtsi) didn’t include the nvcsi/tegra-capture-vi … context.

How should I proceed in order to incorporate these changes in the dtsi file into the final dtb?

Checking the programguide.

For example, in the file “tegra234-camera-ar0234-a00.dtsi”, I configured as follows:
However, the actual DTB did not end up using the configuration of this file as the final configuration state. Instead, it still used the corresponding configuration in tegra234-p3737-camera-modules.dtsi as the final configuration (the link you provided is about how to configure). My question is about the issue of the modifications not taking effect.

Do you review the document?

Below tell how to include your sensor device tree to main dtb.

root@tegra-ubuntu:/home/neardi# media-ctl -p -d /dev/media0
Media controller API version 5.10.216

Media device information
------------------------
driver          tegra-camrtc-ca
model           NVIDIA Tegra Video Input Device
serial
bus info
hw revision     0x3
driver version  5.10.216

Device topology
- entity 1: 13e40000.host1x:nvcsi@15a00000- (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
        pad0: Sink
                <- "ar0234 30-001a":0 [ENABLED]
        pad1: Source
                -> "vi-output, ar0234 30-001a":0 [ENABLED]

- entity 4: ar0234 30-001a (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev1
        pad0: Source
[  184.028736] clarify anchor ar0234_open:628:
                [fmt:SGRBG10_1X10/1920x1200 field:none colorspace:srgb]
                -> "13e40000.host1x:nvcsi@15a00000-":0 [ENABLED]

- entity 6: vi-output, ar0234 30-001a (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
        pad0: Sink
                <- "13e40000.host1x:nvcsi@15a00000-":1 [ENABLED]

v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1200,pixelformat=BA10 --stream-mmap=4 --stream-count=1 --stream-to=/root/0.yuv --stream-skip=2

root@tegra-ubuntu:/home/neardi# [ 228.146278] clarify anchor ar0234_power_on:309:
[ 228.162246] bwmgr API not supported
[ 228.173007] clarify anchor ar0234_set_mode:541:
[ 228.173267] clarify anchor ar0234_start_streaming:564:
[ 228.173420] clarify anchor ar0234_start_streaming:570:
[ 228.173574] clarify anchor ar0234_start_streaming:574:
[ 228.173724] clarify anchor ar0234_start_streaming:578:

[ 230.883813] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[ 230.884080] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[ 230.884361] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 230.884586] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
[ 230.884887] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 230.885425] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel

csi2_d1_n/p signal:

ar0234 (2lane)->csi2

tegra-capture-vi {
	 num-channels = <2>;
	ports {
		#address-cells = <1>;
		#size-cells = <0>;
		port@0 {
			status="okay";
			reg = <0>;
			dual_hawk_vi_in0: endpoint {
			status="okay";
				vc-id = <0>;
				port-index = <2>;
				bus-width = <2>;
				remote-endpoint = <&dual_hawk_csi_out0>;
			};
		};

			port@1 {
			status="okay";
				reg = <1>;
				dual_hawk_vi_in1: endpoint {
				status="okay";
					vc-id = <1>;
					port-index = <6>;
					bus-width = <2>;
					remote-endpoint = <&dual_hawk_csi_out1>;
				};
			};
	};
};


host1x@13e00000 {
	nvcsi@15a00000 {
		num-channels = <2>;
		#address-cells = <1>;
		#size-cells = <0>;
		channel@0 {
		status="okay";
			reg = <0>;
			ports {
				#address-cells = <1>;
				#size-cells = <0>;
				port@0 {
				status="okay";
					reg = <0>;
					dual_hawk_csi_in0: endpoint@0 {
					status="okay";
						port-index = <2>;
						bus-width = <2>;
						remote-endpoint = <&dual_hawk_out0>;
					};
				};
				port@1 {
				status="okay";
					reg = <1>;
					dual_hawk_csi_out0: endpoint@1 {
					status="okay";
						remote-endpoint = <&dual_hawk_vi_in0>;
					};
				};
			};
		};
		channel@1 {
		//status="okay";
			reg = <1>;
			ports {
				#address-cells = <1>;
				#size-cells = <0>;
				port@0 {
				//status="okay";
					reg = <0>;
						dual_hawk_csi_in1: endpoint@2 {
						//status="okay";
						port-index = <6>;
						bus-width = <2>;
						remote-endpoint = <&dual_hawk_out1>;
					};
				};
				port@1 {
				//status="okay";
					reg = <1>;
					dual_hawk_csi_out1: endpoint@3 {
					//status="okay";
						remote-endpoint = <&dual_hawk_vi_in1>;
					};
				};
			};
		};
	};
};

This is the configuration. Is there any problem with this configuration?

agx_orin_capture_error_log_20260109.txt (149.7 KB)
tegra234-p3701-0000-p3737-0000_20260109.dts.txt (15.1 KB)

The port-index/bus-width is correct.

Get the trace log to check.

sudo su
echo 1 > /sys/kernel/debug/tracing/tracing_on
echo 30720 > /sys/kernel/debug/tracing/buffer_size_kb
echo 1 > /sys/kernel/debug/tracing/events/tegra_rtcpu/enable
echo 1 > /sys/kernel/debug/tracing/events/freertos/enable
echo 3 > /sys/kernel/debug/camrtc/log-level
echo 1 > /sys/kernel/debug/tracing/events/camera_common/enable
echo > /sys/kernel/debug/tracing/trace

v4l2-ctl --stream-mmap -c bypass_mode=0

cat /sys/kernel/debug/tracing/trace

agx_orin_capture_error_trace_log_20260109.txt (245.7 KB)

err_intr_stat_pd_wc_short_err_vc0

  • Register/Bit: This error is bit 3 in the NVCSI_STREAM_0_CORRECTABLE_ERR_INTR_STATUS_VC0_0 register.

  • Description: “VC y has packet terminate before getting the expected word count data.” In this context, “VC0” means the error occurred on virtual channel 0.

  • Implication: The hardware detected that a packet ended prematurely, i.e., the actual data received was less than what the packet header’s word count field specified. This could be due to transmission errors, sensor issues, or signal integrity problems.

  • Related Errors: Other bits in the same register report CRC errors, ECC errors, and timeouts, which may help in further diagnosis if they are also set.

What to Do

  • Debugging: Check the sensor output and signal quality.

  • Sensor/Link Issues: This error often points to issues with the sensor’s data output or the physical link (e.g., MIPI CSI lanes).

If we judge the “err_intr_stat_pd_wc_short_err_vc0” issue you mentioned based on this log, do you have any corresponding detailed information?

Below error tells it.

     kworker/0:4-121     [000] ....   299.357265: rtcpu_nvcsi_intr: tstamp:9929815789 class:CORRECTABLE_ERR type:STREAM_VC phy:0 cil:0 st:2 vc:8 status:0x0000000a

If I use this command to take a screenshot, the following error will occur. What is the reason for this?

v4l2-ctl --set-fmt-video=width=1280,height=720 --stream-mmap --stream-count=10 -d /dev/video0

root@tegra-ubuntu:~# cat /sys/kernel/debug/tracing/trace
# tracer: nop
#
# entries-in-buffer/entries-written: 26/26   #P:8
#
#                                _-----=> irqs-off
#                               / _----=> need-resched
#                              | / _---=> hardirq/softirq
#                              || / _--=> preempt-depth
#                              ||| /     delay
#           TASK-PID     CPU#  ||||   TIMESTAMP  FUNCTION
#              | |         |   ||||      |         |
     kworker/0:5-414     [000] ....   165.846270: rtcpu_string: tstamp:5757330907 id:0x04010000 str:"VM0 deactivating."
        v4l2-ctl-2457    [004] ....   179.804811: tegra_channel_open: vi-output, ar0234 30-001a
        v4l2-ctl-2457    [004] ....   179.812687: tegra_channel_set_power: ar0234 30-001a : 0x1
        v4l2-ctl-2457    [004] ....   179.812704: camera_common_s_power: status : 0x1
        v4l2-ctl-2457    [000] ....   179.814163: tegra_channel_set_power: 13e40000.host1x:nvcsi@15a00000- : 0x1
        v4l2-ctl-2457    [000] ....   179.814171: csi_s_power: enable : 0x1
        v4l2-ctl-2457    [000] ....   179.815815: tegra_channel_capture_setup: vnc_id 0 W 1920 H 1200 fmt c4
        v4l2-ctl-2457    [001] ....   179.825683: tegra_channel_set_stream: enable : 0x1
        v4l2-ctl-2457    [001] ....   179.840861: tegra_channel_set_stream: 13e40000.host1x:nvcsi@15a00000- : 0x1
        v4l2-ctl-2457    [001] ....   179.840864: csi_s_stream: enable : 0x1
        v4l2-ctl-2457    [001] ....   179.841480: tegra_channel_set_stream: ar0234 30-001a : 0x1
     kworker/0:5-414     [000] ....   179.854167: rtcpu_string: tstamp:6195328189 id:0x04010000 str:"VM0 activating."
     kworker/0:5-414     [000] ....   179.854169: rtcpu_vinotify_event: tstamp:6195979093 cch:0 vi:1 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:198257063552 data:0x359e300010000000
     kworker/0:5-414     [000] ....   179.854169: rtcpu_vinotify_event: tstamp:6195979228 cch:0 vi:1 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:198257070112 data:0x0000000031000001
     kworker/0:5-414     [000] ....   179.854170: rtcpu_vinotify_event: tstamp:6195979381 cch:0 vi:1 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:198257136800 data:0x359e2d0010000000
     kworker/0:5-414     [000] ....   179.854170: rtcpu_vinotify_event: tstamp:6195979512 cch:0 vi:1 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:198257143456 data:0x0000000031000002
 vi-output, ar02-2459    [002] ....   182.483798: tegra_channel_capture_setup: vnc_id 0 W 1920 H 1200 fmt c4
     kworker/0:5-414     [000] ....   182.486169: rtcpu_string: tstamp:6278612440 id:0x04010000 str:"ERROR: camera-ip/vi5/vi5.c:3893 [vi5_update_chan"
     kworker/0:5-414     [000] ....   182.486171: rtcpu_string: tstamp:6278612541 id:0x04010000 str:"nel_match_data] ""
     kworker/0:5-414     [000] ....   182.486172: rtcpu_string: tstamp:6278612912 id:0x04010000 str:"match configuration is already in use by by chan"
     kworker/0:5-414     [000] ....   182.486173: rtcpu_string: tstamp:6278613013 id:0x04010000 str:"nel 35 cannot set channel match configuration"
     kworker/0:5-414     [000] ....   182.486173: rtcpu_string: tstamp:6278613157 id:0x04010000 str:""
"
     kworker/0:5-414     [000] ....   182.486199: rtcpu_string: tstamp:6278613499 id:0x04010000 str:"ERROR: services/capture/capture-scheduler.c:3024"
     kworker/0:5-414     [000] ....   182.486200: rtcpu_string: tstamp:6278613612 id:0x04010000 str:" [capture_scheduler_thread] ""
     kworker/0:5-414     [000] ....   182.486201: rtcpu_string: tstamp:6278613843 id:0x04010000 str:"Error processing event 0x100003"
     kworker/0:5-414     [000] ....   182.486202: rtcpu_string: tstamp:6278613988 id:0x04010000 str:""

hi, Shane

Could you please provide me with some troubleshooting suggestions?