No reply from camera processor - IMX219 - 180FPS - 4Lane

First of all, @JerryChang forgive me for opening a new thread, but even though I’m using the same camera model used in 120fps with IMX219 and binned modes, I’m using a different carrier board here.

I’m using the Airvolute Dronecore that provides 6 MIPI-CSI and CSI-D is actually capable of 4 lanes.
Plus, I can see modes changing whenever I edit the corresponding dtsi (and replacing Image+dtb) and this helps a lot with debugging. I can even see the dev_dbg() using

sudo bash -c “echo ‘file imx219.c +p’ > /sys/kernel/debug/dynamic_debug/control”

On the other hand it runs a Jetpack 4.6 and its imx219 drivers are different from Jetpack 5.0.2’s nv_imx219.

R32 (release), REVISION: 6.1, GCID: 27863751, BOARD: t186ref, EABI: aarch64, DATE: Mon Jul 26 19:31:13 UTC 2021

Having said this, I’m testing the 180fps mode that SONY IMX219PQH5-C shall provide according to its datasheet.
By default the Dronecore DT has 6 MIPI-CSI ready to work with 2lane, but I texted with the devs to understand how to proceed.
Along with editing num_lanes to 4, they reccomended to omit one of the other 2-lanes port because NX has 12 lane maximum.

I then edited
tegra194-camera-rbpcv2-hexa-imx219.dtsi (62.8 KB)
and
tegra194-camera-jakku-rbpcv2-hexa-imx219.dtsi (3.6 KB)

According to the documentation, GPIO-4 : CSI D (only capable of 4 lane). If I got the DT correctly:
CSI D is cam_module3: module3, devname = “imx219 33-0010” and proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@70/i2c@3.

I also set bus-width = <4> to rbpcv2_imx219_vi_in3, csi_chan3 (csi_chan3_port0: port@0 > rbpcv2_imx219_csi_in3: endpoint@6), imx219_cam3 (port@0), vi_port3: port@3

I then decided to disable cam_module4 that was connected to i2c@4 on GPIO 1.

i2c@4 {
status = "disabled";
reg = <4>;
i2c-mux,deselect-on-exit;
#address-cells = <1>;
#size-cells = <0>;
rbpcv2_imx219_b@10 {
   status = "disabled";
   reset-gpios = <&tca6408_20 1 GPIO_ACTIVE_HIGH>;

};
};

    i2c@3180000{ 		
      tca9548@70 {			
  	      i2c_0: i2c@0 { ... }
  	      i2c_1: i2c@1 { ... }        
  	      i2c_2: i2c@2 { ... }
  	      i2c_3: i2c@3 { ... }
  	      i2c_4: i2c@4 { 
  	        imx219_cam4: rbpcv2_imx219_b@10 {
  			   status="disabled"; <-------------------
  			   compatible = "nvidia,imx219";
  			   reg = <0x10>;
  			   devnode = "video4";
               ports {
  				#address-cells = <1>;
  				#size-cells = <0>;
  				status="disabled";  <-------------------
  				port@0 {
  					reg = <0>;
  					status="disabled";  <-------------------
  					rbpcv2_imx219_out4: endpoint {
  						status="disabled";
  						port-index = <1>;
  						bus-width = <2>;
  						remote-endpoint = <&rbpcv2_imx219_csi_in4>;
  					};
  				};
  			};
  tcp: tegra-camera-platform {
         compatible = "nvidia, tegra-camera-platform";
         num_csi_lanes = <12>;
         max_lane_speed = <1500000>;
         min_bits_per_pixel = <10>;
         vi_peak_byte_per_pixel = <2>;
         vi_bw_margin_pct = <25>;
         max_pixel_rate = <240000>;
         isp_peak_byte_per_pixel = <5>;
         isp_bw_margin_pct = <25>;
    modules { 
  	status="okay";
  	cam_module0: module0 {
  		badge = "jakku_bottomright_RBP194";
  		position = "bottomright";
  		orientation = "1";
  		status="okay";
  		cam_module0_drivernode0: drivernode0 {
  			status="okay";
  			pcl_id = "v4l2_sensor";
  			devname = "imx219 30-0010";
  			proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@70/i2c@0/rbpcv2_imx219_a@10"; 
  		};
  		cam_module0_drivernode1: drivernode1 {
  			status="okay";
  			pcl_id = "v4l2_lens";
  			proc-device-tree = "/proc/device-tree/lens_imx219@RBPCV2/";
  		};
  	};
                  ................................................
  	cam_module3: module3 {
  		badge = "jakku_centerleft_RBP194";
  		position = "centerleft";
  		orientation = "1";
  		status="okay";
  		cam_module3_drivernode0: drivernode0 {
  			status="okay";
  			pcl_id = "v4l2_sensor";
  			devname = "imx219 33-0010";
  			proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@70/i2c@3/rbpcv2_imx219_e@10";
  		};
  		cam_module3_drivernode1: drivernode1 {
  			status="okay";
  			pcl_id = "v4l2_lens";
  			proc-device-tree = "/proc/device-tree/lens_imx219@RBPCV2/";
  		};
  	};
  	cam_module4: module4 {
  		badge = "jakku_topright_RBP194";
  		position = "topright";
  		orientation = "1";
  		status="disabled"; <-------------------
  		cam_module4_drivernode0: drivernode0 {
  			status="disabled"; <-------------------
  			pcl_id = "v4l2_sensor";
  			devname = "imx219 34-0010";
  			proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@70/i2c@4/rbpcv2_imx219_b@10";
  		};
  		cam_module4_drivernode1: drivernode1 {
  			status="disabled"; <-------------------
  			pcl_id = "v4l2_lens";
  			proc-device-tree = "/proc/device-tree/lens_imx219@RBPCV2/";
  		};
  	};
  	};
  };

};

Then in imx219_cam3: rbpcv2_imx219_e@10 I added the new mode IMX219_MODE_1280x720_180FPS:

       mode3 { /* IMX219_MODE_1280x720_180FPS */
  				mclk_khz = "24000";
  				num_lanes = "4"; <-------------------
  				tegra_sinterface = "serial_e";
  				phy_mode = "DPHY";
  				discontinuous_clk = "yes";
  				dpcm_enable = "false";
  				cil_settletime = "0";

  				active_w = "1280";
  				active_h = "720";
  				pixel_t = "bayer_rggb";
  				readout_orientation = "90";
  				line_length = "3448";
  				inherent_gain = "1";
  				mclk_multiplier = "11.7";  <-------------------
  				pix_clk_hz = "280800000";  <-------------------

  				gain_factor = "16";
  				framerate_factor = "1000000";
  				exposure_factor = "1000000";
  				min_gain_val = "16"; /* 1.00x */
  				max_gain_val = "170"; /* 10.66x */
  				step_gain_val = "1";
  				default_gain = "16"; /* 1.00x */
  				min_hdr_ratio = "1";
  				max_hdr_ratio = "1";
  				min_framerate = "2000000"; /* 2.0 fps */
  				max_framerate = "180000000"; /* 180.0 fps */
  				step_framerate = "1";
  				default_framerate = "180000000"; /* 180.0 fps */
  				min_exp_time = "13"; /* us */
  				max_exp_time = "683709"; /* us */
  				step_exp_time = "1";
  				default_exp_time = "2495"; /* us */

  				embedded_metadata_height = "2";
  			};

Page 82 (datasheet) says:

So I set
pix_clk_hz = “280800000”;
mclk_multiplier = “11.7”; (280800000/24000000)
I’m not sure W and H could be 1280x720 but I guess they are ok.

I eventually added the new mode in my table:
imx219_mode_tbls.h (13.6 KB)
Setting the 2x analog binning (0x0174 and 0x0175 to 0x03) as the table above.

I also edited the reg 0x0114 (D-PHY) in imx219_mode_common to 0x03 (4 lane).

------------ TEST ------------

nvidia@nvidia-desktop:~$ sudo su
root@nvidia-desktop:/home/nvidia# echo 1 > /sys/kernel/debug/bpmp/debug/clk/vi/mrq_rate_locked
root@nvidia-desktop:/home/nvidia# echo 1 > /sys/kernel/debug/bpmp/debug/clk/isp/mrq_rate_locked
root@nvidia-desktop:/home/nvidia# echo 1 > /sys/kernel/debug/bpmp/debug/clk/nvcsi/mrq_rate_locked
root@nvidia-desktop:/home/nvidia# cat /sys/kernel/debug/bpmp/debug/clk/vi/max_rate |tee /sys/kernel/debug/bpmp/debug/clk/vi/rate
460800000
root@nvidia-desktop:/home/nvidia# cat /sys/kernel/debug/bpmp/debug/clk/isp/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/isp/rate
576000000
root@nvidia-desktop:/home/nvidia# cat /sys/kernel/debug/bpmp/debug/clk/nvcsi/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/nvcsi/rate
314000000
root@nvidia-desktop:/home/nvidia# echo 1 > /sys/kernel/debug/tracing/tracing_on
root@nvidia-desktop:/home/nvidia# echo 30720 > /sys/kernel/debug/tracing/buffer_size_kb
root@nvidia-desktop:/home/nvidia# echo 1 > /sys/kernel/debug/tracing/events/tegra_rtcpu/enable
root@nvidia-desktop:/home/nvidia# echo 1 > /sys/kernel/debug/tracing/events/freertos/enable
root@nvidia-desktop:/home/nvidia# echo 2 > /sys/kernel/debug/camrtc/log-level
root@nvidia-desktop:/home/nvidia# echo 1 > /sys/kernel/debug/tracing/events/camera_common/enable
root@nvidia-desktop:/home/nvidia# echo > /sys/kernel/debug/tracing/trace
root@nvidia-desktop:/home/nvidia# cat /sys/kernel/debug/tracing/trace
tracer: nop

entries-in-buffer/entries-written: 6/6 #P:6

                          _-----=> irqs-off
                         / _----=> need-resched
                        | / _---=> hardirq/softirq
                        || / _--=> preempt-depth
                        ||| /     delay
       TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
          | |       |   ||||       |         |
 kworker/0:3-1708  [000] ....    91.472804: rtos_queue_peek_from_isr_failed: tstamp:3514835071 queue:0x0bcbbbb8
 kworker/0:3-1708  [000] ....    91.640802: rtos_queue_peek_from_isr_failed: tstamp:3519835071 queue:0x0bcbbbb8
 kworker/0:3-1708  [000] ....    91.808856: rtos_queue_peek_from_isr_failed: tstamp:3524835070 queue:0x0bcbbbb8
 kworker/0:3-1708  [000] ....    91.920852: rtos_queue_peek_from_isr_failed: tstamp:3529835071 queue:0x0bcbbbb8
 kworker/0:3-1708  [000] ....    92.088817: rtos_queue_peek_from_isr_failed: tstamp:3534835071 queue:0x0bcbbbb8
 kworker/0:3-1708  [000] ....    92.256829: rtos_queue_peek_from_isr_failed: tstamp:3539835070 queue:0x0bcbbbb8

nvidia@nvidia-desktop:~$ sudo bash -c “echo ‘file camera_common.c +p’ > /sys/kernel/debug/dynamic_debug/control”
nvidia@nvidia-desktop:~$ sudo bash -c “echo ‘file imx219.c +p’ > /sys/kernel/debug/dynamic_debug/control”

nvidia@nvidia-desktop:~$ v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: ‘RG10’
Name : 10-bit Bayer RGRG/GBGB
Size: Discrete 3264x2464
Interval: Discrete 0.048s (21.000 fps)
Size: Discrete 3264x1848
Interval: Discrete 0.036s (28.000 fps)
Size: Discrete 1920x1080
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.006s (180.000 fps)

nvidia@nvidia-desktop:~$ sudo media-ctl -p
Media controller API version 0.1.0

Media device information

driver tegra194-vi5
model NVIDIA Tegra Video Input Device
serial
bus info
hw revision 0x3
driver version 0.0.0

Device topology

  • entity 1: 15a00000.nvcsi–6 (2 pads, 0 link)
    type V4L2 subdev subtype Unknown flags 0
    device node name /dev/v4l-subdev0
    pad0: Sink
    pad1: Source

  • entity 4: 15a00000.nvcsi–5 (2 pads, 0 link)
    type V4L2 subdev subtype Unknown flags 0
    device node name /dev/v4l-subdev1
    pad0: Sink
    pad1: Source

  • entity 7: 15a00000.nvcsi–4 (2 pads, 0 link)
    type V4L2 subdev subtype Unknown flags 0
    device node name /dev/v4l-subdev2
    pad0: Sink
    pad1: Source

  • entity 10: imx219 33-0010 (1 pad, 1 link)
    type V4L2 subdev subtype Sensor flags 0
    device node name /dev/v4l-subdev3
    pad0: Source
    [fmt:SRGGB10_1X10/3264x2464 field:none colorspace:srgb]
    → “15a00000.nvcsi–3”:0 [ENABLED]

  • entity 12: 15a00000.nvcsi–3 (2 pads, 2 links)
    type V4L2 subdev subtype Unknown flags 0
    device node name /dev/v4l-subdev4
    pad0: Sink
    ← “imx219 33-0010”:0 [ENABLED]
    pad1: Source
    → “vi-output, imx219 33-0010”:0 [ENABLED]

  • entity 15: vi-output, imx219 33-0010 (1 pad, 1 link)
    type Node subtype V4L flags 0
    device node name /dev/video0
    pad0: Sink
    ← “15a00000.nvcsi–3”:1 [ENABLED]

  • entity 33: 15a00000.nvcsi–1 (2 pads, 0 link)
    type V4L2 subdev subtype Unknown flags 0
    pad0: Sink
    pad1: Source

V4L2 fails with errors:

nvidia@nvidia-desktop:~$ v4l2-ctl -d /dev/video0 --set-fmt-video=width=1280,height=720,pixelformat=RG10 --set-ctrl sensor_mode=4 --set-ctrl bypass_mode=0 --stream-mmap --stream-count=4 --verbose
VIDIOC_QUERYCAP: ok
VIDIOC_S_EXT_CTRLS: ok
VIDIOC_G_FMT: ok
VIDIOC_S_FMT: ok
Format Video Capture:
Width/Height : 1280/720
Pixel Format : ‘RG10’
Field : None
Bytes per Line : 2560
Size Image : 1843200
Colorspace : sRGB
Transfer Function : Default (maps to sRGB)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Full Range)
Flags :
VIDIOC_REQBUFS: ok
VIDIOC_QUERYBUF: ok
VIDIOC_QBUF: ok
VIDIOC_QUERYBUF: ok
VIDIOC_QBUF: ok
VIDIOC_QUERYBUF: ok
VIDIOC_QBUF: ok
VIDIOC_QUERYBUF: ok
VIDIOC_QBUF: ok
VIDIOC_STREAMON: ok
Index : 0
Type : Video Capture
Flags : mapped, error
Field : None
Sequence : 0
Length : 1843200
Bytesused: 1843200
Timestamp: 0.000000s (Monotonic, End-of-Frame)

Index : 0
Type : Video Capture
Flags : mapped, error
Field : None
Sequence : 0
Length : 1843200
Bytesused: 1843200
Timestamp: 0.000000s (Monotonic, End-of-Frame)

Index : 1
Type : Video Capture
Flags : mapped, error
Field : None
Sequence : 1
Length : 1843200
Bytesused: 1843200
Timestamp: 0.000000s (Monotonic, End-of-Frame)

Index : 2
Type : Video Capture
Flags : mapped, error
Field : None
Sequence : 2
Length : 1843200
Bytesused: 1843200
Timestamp: 0.000000s (Monotonic, End-of-Frame)

Index : 3
Type : Video Capture
Flags : mapped, error
Field : None
Sequence : 3
Length : 1843200
Bytesused: 1843200
Timestamp: 0.000000s (Monotonic, End-of-Frame)

Index : 0
Type : Video Capture
Flags : mapped, error
Field : None
Sequence : 0
Length : 1843200
Bytesused: 1843200
Timestamp: 0.000000s (Monotonic, End-of-Frame)

Index : 0
Type : Video Capture
Flags : mapped, error
Field : None
Sequence : 0
Length : 1843200
Bytesused: 1843200
Timestamp: 0.000000s (Monotonic, End-of-Frame)

Index : 1
Type : Video Capture
Flags : mapped, error
Field : None
Sequence : 1
Length : 1843200
Bytesused: 1843200
Timestamp: 0.000000s (Monotonic, End-of-Frame)

Index : 2
Type : Video Capture
Flags : mapped, error
Field : None
Sequence : 2
Length : 1843200
Bytesused: 1843200
Timestamp: 0.000000s (Monotonic, End-of-Frame)

Index : 3
Type : Video Capture
Flags : mapped, error
Field : None
Sequence : 3
Length : 1843200
Bytesused: 1843200
Timestamp: 0.000000s (Monotonic, End-of-Frame)

Index : 0
Type : Video Capture
Flags : mapped, error
Field : None
Sequence : 0
Length : 1843200
Bytesused: 1843200
Timestamp: 0.000000s (Monotonic, End-of-Frame)

Index : 0
Type : Video Capture
Flags : mapped, error
Field : None
Sequence : 0
Length : 1843200
Bytesused: 1843200
Timestamp: 0.000000s (Monotonic, End-of-Frame)

Index : 1
Type : Video Capture
Flags : mapped, error
Field : None
Sequence : 1
Length : 1843200
Bytesused: 1843200
Timestamp: 0.000000s (Monotonic, End-of-Frame)

Index : 2
Type : Video Capture
Flags : mapped, error
Field : None
Sequence : 2
Length : 1843200
Bytesused: 1843200
Timestamp: 0.000000s (Monotonic, End-of-Frame)

Related dmesg:

[ 355.815474] imx219 33-0010: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[ 355.815521] imx219 33-0010: camera_common_dpd_disable: csi 4
[ 355.815553] imx219 33-0010: camera_common_dpd_disable: csi 5
[ 355.815565] imx219 33-0010: imx219_power_on: power on
[ 355.842019] imx219 33-0010: imx219_power_off: power off
[ 355.842241] imx219 33-0010: camera_common_dpd_enable: csi 4
[ 355.842273] imx219 33-0010: camera_common_dpd_enable: csi 5
[ 355.842280] imx219 33-0010: camera_common_mclk_disable: disable MCLK
[ 376.233302] imx219 33-0010: imx219_open:
[ 376.233325] imx219 33-0010: camera_common_g_fmt++
[ 446.855584] imx219 33-0010: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[ 446.855629] imx219 33-0010: camera_common_dpd_disable: csi 4
[ 446.855659] imx219 33-0010: camera_common_dpd_disable: csi 5
[ 446.855668] imx219 33-0010: imx219_power_on: power on
[ 446.881613] imx219 33-0010: camera_common_try_fmt: size 1280 x 720
[ 446.881672] imx219 33-0010: camera_common_s_fmt(12303) size 1280 x 720
[ 446.881683] imx219 33-0010: camera_common_try_fmt: size 1280 x 720
[ 446.904827] [RCE] Configuring VI GoS.
[ 446.904844] [RCE] VM GOS[#0] addr=0xc2100000
[ 446.904855] [RCE] VM GOS[#1] addr=0xc2101000
[ 446.904866] [RCE] VM GOS[#2] addr=0xc2102000
[ 446.904877] [RCE] VM GOS[#3] addr=0xc2103000
[ 446.904887] [RCE] VM GOS[#4] addr=0xc2104000
[ 446.904898] [RCE] VM GOS[#5] addr=0xc2105000
[ 446.904911] [RCE] vi5_hwinit: firmware CL2018101701 protocol version 2.2
[ 446.904927] [RCE] VI GOS[#0] set to VM GOS[4] base 0xc2104000
[ 449.632810] tegra194-vi5 15c10000.vi: no reply from camera processor
[ 449.632965] tegra194-vi5 15c10000.vi: uncorr_err: request timed out after 2500 ms
[ 449.633157] tegra194-vi5 15c10000.vi: err_rec: attempting to reset the capture channel
[ 449.636030] tegra-capture-ivc ivc-bc00000.rtcpu:ivccontrol@3: No callback found for msg id: 0x37
[ 449.636651] tegra194-vi5 15c10000.vi: err_rec: successfully reset the capture channel
[ 449.648880] [RCE] Configuring VI GoS.
[ 449.648897] [RCE] VM GOS[#0] addr=0xc2100000
[ 449.648910] [RCE] VM GOS[#1] addr=0xc2101000
[ 449.648922] [RCE] VM GOS[#2] addr=0xc2102000
[ 449.648934] [RCE] VM GOS[#3] addr=0xc2103000
[ 449.648946] [RCE] VM GOS[#4] addr=0xc2104000
[ 449.648960] [RCE] VM GOS[#5] addr=0xc2105000
[ 452.192848] tegra194-vi5 15c10000.vi: no reply from camera processor
[ 452.193032] tegra194-vi5 15c10000.vi: uncorr_err: request timed out after 2500 ms
[ 452.193176] tegra194-vi5 15c10000.vi: err_rec: attempting to reset the capture channel
[ 452.196544] tegra194-vi5 15c10000.vi: err_rec: successfully reset the capture channel
[ 452.224922] [RCE] Configuring VI GoS.
[ 452.224944] [RCE] VM GOS[#0] addr=0xc2100000
[ 452.224989] [RCE] VM GOS[#1] addr=0xc2101000
[ 452.224997] [RCE] VM GOS[#2] addr=0xc2102000
[ 452.225010] [RCE] VM GOS[#3] addr=0xc2103000
[ 452.225016] [RCE] VM GOS[#4] addr=0xc2104000
[ 452.225049] [RCE] VM GOS[#5] addr=0xc2105000
[ 454.752815] tegra194-vi5 15c10000.vi: no reply from camera processor
[ 454.752981] tegra194-vi5 15c10000.vi: uncorr_err: request timed out after 2500 ms
[ 454.753170] tegra194-vi5 15c10000.vi: err_rec: attempting to reset the capture channel
[ 454.756033] tegra194-vi5 15c10000.vi: err_rec: successfully reset the capture channel
[ 454.800907] [RCE] Configuring VI GoS.
[ 454.800917] [RCE] VM GOS[#0] addr=0xc2100000
[ 454.800924] [RCE] VM GOS[#1] addr=0xc2101000
[ 454.800930] [RCE] VM GOS[#2] addr=0xc2102000
[ 454.800936] [RCE] VM GOS[#3] addr=0xc2103000
[ 454.800942] [RCE] VM GOS[#4] addr=0xc2104000
[ 454.800948] [RCE] VM GOS[#5] addr=0xc2105000
[ 457.280851] tegra194-vi5 15c10000.vi: no reply from camera processor
[ 457.281007] tegra194-vi5 15c10000.vi: uncorr_err: request timed out after 2500 ms
[ 457.281142] tegra194-vi5 15c10000.vi: err_rec: attempting to reset the capture channel
[ 457.284090] tegra194-vi5 15c10000.vi: err_rec: successfully reset the capture channel
[ 457.320917] [RCE] Configuring VI GoS.
[ 457.320928] [RCE] VM GOS[#0] addr=0xc2100000
[ 457.320935] [RCE] VM GOS[#1] addr=0xc2101000
[ 457.320941] [RCE] VM GOS[#2] addr=0xc2102000
[ 457.320947] [RCE] VM GOS[#3] addr=0xc2103000
[ 457.320953] [RCE] VM GOS[#4] addr=0xc2104000
[ 457.320959] [RCE] VM GOS[#5] addr=0xc2105000
[ 457.343729] imx219 33-0010: imx219_power_off: power off
[ 457.343967] imx219 33-0010: camera_common_dpd_enable: csi 4
[ 457.344007] imx219 33-0010: camera_common_dpd_enable: csi 5
[ 457.344016] imx219 33-0010: camera_common_mclk_disable: disable MCLK

I saved the trace here:
nv_trace.log (48.5 KB)

Unfortunately I cannot probe the module :(
Do you see any problem?

hello Gorgo90,

such failure means there’s no signaling coming to Vi engine.

please also refer to Port Index session.
why you disable rbpcv2_imx219_b? you should configure CSI-C/D for using 4-lane configuration.

Hi @JerryChang ,
I guess my diagram (NX) matches the first one (even if NX is not listed).

I disabled rbpcv2_imx219_b because I was told ‘Maximum supported lines for xavier nx are 12 so then you will probably need to omit one of the other 2-lines port’, even if I don’t know what’s the correct way to do it.
I thought any of the unused ports was fine but now I got that I need to disable CSI (port 2) if I want to use CSI-C to provide x4 to CSI-D. Correct?

I’ll renabled rbpcv2_imx219_b and all the ports I disabled before.

It’s rbpcv2_imx219_d that uses CSI-C Port 2.
Shall I disable csi_chan2?

 csi_chan2: channel@2 {
  		reg = <2>;
  		status="okay"; <--------------- to Disabled
  		ports {
  			#address-cells = <1>;
  			#size-cells = <0>;
  			status="okay"; <--------------- to Disabled
  			csi_chan2_port0: port@0 {
  				status="okay"; <--------------- to Disabled
  				reg = <0>;
  				rbpcv2_imx219_csi_in2: endpoint@4 {
  					status="okay"; <--------------- to Disabled
  					port-index = <3>;
  					bus-width = <2>;
  					remote-endpoint = <&rbpcv2_imx219_out2>;
  				};
  			};
  			csi_chan2_port1: port@1 {
  				status="okay"; <--------------- to Disabled
  				reg = <1>;
  				rbpcv2_imx219_csi_out2: endpoint@5 {
  					status="okay"; <--------------- to Disabled
  					remote-endpoint = <&rbpcv2_imx219_vi_in2>;
  				};
  			};
  		};
  	};

Thank you

hello Gorgo90,

okay, I may misunderstand you.
please share your latest port binding,
for example, do you have total 6 cameras for running your use-case?
and, you only need CSI-C/D for 4-lane configuration due to 180-fps requirement?

Sure!
So my goal is to achieve the 180fps mode described in the table above, with ONE imx219 arducam. It requires 4 lanes.

From what I’m learning from many threads here is that 4 lane MIPI-CSI requires both hw and sw capabilities.
I emailed the Dronecore developer asking if there was any in their board and apparently yes. CSI-D shall work with 4 lanes too but it needs me to edit the DT because by default it works with 2 lanes.
Physically, on the board there are 6 camera connectors and I plugged my arducam with a UC-376 ribbon cable to CSI-D port. (There’s a label next to it).

Now, according to the diagram you linked me, I got that x4 (lanes?) is doable if both CSI-C and CSI-D are set to CSI_PORT 3. Correct?

In first dtsi
tegra194-camera-jakku-rbpcv2-hexa-imx219.dtsi (3.6 KB)
I see that tca6408_20’s GPIO-4 corresponds to CSI-D connector.
In fact it’s linked to rbpcv2_imx219_e and i2c@3.

In the second dtsi
tegra194-camera-rbpcv2-hexa-imx219.dtsi (62.7 KB)

rbpcv2_imx219_e is the proc-device-tree for imx219 33-0010 and cam_module3. Its position is centerleft and I can confirm it visually.

In i2c@3180000 > tca9548@70 > i2c_3: i2c@3 > imx219_cam3: rbpcv2_imx219_e@10 I added the new 180fps mode.
In imx219_cam3: rbpcv2_imx219_e@10 ports section, originally port-index was set to 4, but I think it may be wrong. I set it to 3 and bus-width to 4. Its remote-endpoint is rbpcv2_imx219_csi_in3. Correct?

At the beginning of the file I see vi and nvcsi ports configuration:
In NVCSI rbpcv2_imx219_csi_in3 is defined under csi_chan3: channel@3.
csi_chan3: channel@3 has 2 ports: rbpcv2_imx219_csi_in3 and rbpcv2_imx219_csi_out3.
Even here I set port-index to 3 (It was 4). Its remote-endpoint is rbpcv2_imx219_out3 and matches the one defined after the new mode.
On the other hand rbpcv2_imx219_vi_in3 is define under VI’s vi_port3: port@3 that has port-index 3 (fixed by me) and bus-width 4.

You can find a diff here between original and my dtsi: Diff_dronecore - Diff Checker

On dmesg:

[ 3.500024] tegra194-vi5 15c10000.vi: using default number of vi channels, 36
[ 3.503656] tegra194-vi5 15c10000.vi: initialized
[ 3.508176] tegra194-vi5 15c10000.vi: subdev 15a00000.nvcsi–6 bound
[ 3.508273] tegra194-vi5 15c10000.vi: subdev 15a00000.nvcsi–5 bound
[ 3.508339] tegra194-vi5 15c10000.vi: subdev 15a00000.nvcsi–4 bound
[ 3.508418] tegra194-vi5 15c10000.vi: subdev imx219 33-0010 bound
[ 3.508424] tegra194-vi5 15c10000.vi: subdev 15a00000.nvcsi–3 bound
[ 3.509749] tegra194-vi5 15c10000.vi: subdev 15a00000.nvcsi–2 bound
[ 3.509820] tegra194-vi5 15c10000.vi: subdev 15a00000.nvcsi–1 bound

[ 274.850009] imx219 33-0010: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[ 274.850054] imx219 33-0010: camera_common_dpd_disable: csi 3
[ 274.850085] imx219 33-0010: camera_common_dpd_disable: csi 4
[ 274.850092] imx219 33-0010: imx219_power_on: power on
[ 274.873597] t194-nvcsi 15a00000.nvcsi: phy mode unavailable in props, use default
[ 274.874843] t194-nvcsi 15a00000.nvcsi: settle time reading from props
[ 274.876323] imx219 33-0010: camera_common_try_fmt: size 1280 x 720
[ 274.876347] imx219 33-0010: camera_common_s_fmt(12303) size 1280 x 720
[ 274.876358] imx219 33-0010: camera_common_try_fmt: size 1280 x 720
[ 274.895902] t194-nvcsi 15a00000.nvcsi: settle time reading from props
[ 274.895912] t194-nvcsi 15a00000.nvcsi: discontinuous_clk = 1 reading from props
[ 274.903755] [RCE] Configuring VI GoS.
[ 274.903769] [RCE] VM GOS[#0] addr=0xc2100000
[ 274.903780] [RCE] VM GOS[#1] addr=0xc2101000
[ 274.903789] [RCE] VM GOS[#2] addr=0xc2102000
[ 274.903799] [RCE] VM GOS[#3] addr=0xc2103000
[ 274.903808] [RCE] VM GOS[#4] addr=0xc2104000
[ 274.903817] [RCE] VM GOS[#5] addr=0xc2105000
[ 274.903829] [RCE] vi5_hwinit: firmware CL2018101701 protocol version 2.2
[ 274.903879] [RCE] VI GOS[#0] set to VM GOS[4] base 0xc2104000
[ 277.599684] tegra194-vi5 15c10000.vi: no reply from camera processor
[ 277.599846] tegra194-vi5 15c10000.vi: uncorr_err: request timed out after 2500 ms
[ 277.599990] tegra194-vi5 15c10000.vi: err_rec: attempting to reset the capture channel
[ 277.603432] t194-nvcsi 15a00000.nvcsi: settle time reading from props
[ 277.604658] t194-nvcsi 15a00000.nvcsi: discontinuous_clk = 1 reading from props
[ 277.605051] tegra194-vi5 15c10000.vi: err_rec: successfully reset the capture channel
[ 277.647805] [RCE] Configuring VI GoS.
[ 277.647821] [RCE] VM GOS[#0] addr=0xc2100000
[ 277.647832] [RCE] VM GOS[#1] addr=0xc2101000
[ 277.647843] [RCE] VM GOS[#2] addr=0xc2102000
[ 277.647854] [RCE] VM GOS[#3] addr=0xc2103000
[ 277.647864] [RCE] VM GOS[#4] addr=0xc2104000
[ 277.647875] [RCE] VM GOS[#5] addr=0xc2105000
[ 280.127706] tegra194-vi5 15c10000.vi: no reply from camera processor
[ 280.127863] tegra194-vi5 15c10000.vi: uncorr_err: request timed out after 2500 ms
[ 280.128032] tegra194-vi5 15c10000.vi: err_rec: attempting to reset the capture channel
[ 280.131375] t194-nvcsi 15a00000.nvcsi: settle time reading from props
[ 280.131386] t194-nvcsi 15a00000.nvcsi: discontinuous_clk = 1 reading from props
[ 280.131764] tegra194-vi5 15c10000.vi: err_rec: successfully reset the capture channel
[ 280.167797] [RCE] Configuring VI GoS.
[ 280.167840] [RCE] VM GOS[#0] addr=0xc2100000
[ 280.167852] [RCE] VM GOS[#1] addr=0xc2101000
[ 280.167863] [RCE] VM GOS[#2] addr=0xc2102000
[ 280.167874] [RCE] VM GOS[#3] addr=0xc2103000
[ 280.167886] [RCE] VM GOS[#4] addr=0xc2104000
[ 280.167896] [RCE] VM GOS[#5] addr=0xc2105000
[ 280.191259] imx219 33-0010: imx219_power_off: power off
[ 280.191511] imx219 33-0010: camera_common_dpd_enable: csi 3
[ 280.191545] imx219 33-0010: camera_common_dpd_enable: csi 4
[ 280.191552] imx219 33-0010: camera_common_mclk_disable: disable MCLK

Trace:
nv_trace.log (25.1 KB)

Update.
I restored the default (Dronecore’s) pin configuration imx219 dtsi since before my changes it used to work (with 2 lanes 1080p mode) so I think the port-indexes may be correct eventually.

Apparently their diagram is more like this:

This is my current dtsi:
tegra194-camera-rbpcv2-hexa-imx219.dtsi (60.2 KB)

I haven’t disabled anything (should I?).
CSI-D is actually i2c@3, that corresponds to the node rbpcv2_imx219_e@10.
rbpcv2_imx219_e@10 (imx219_cam3)'s port has rbpcv2_imx219_out3 as endpoint, that uses port-index 4.

On TCA9548_70:
I think is

I2C@0 (CSI A): rbpcv2_imx219_a
i2c@1 (CSI C): rbpcv2_imx219_c
i2c@2 (CSI B): rbpcv2_imx219_d
i2c@3 (CSI D): rbpcv2_imx219_e
i2c@4 (CSI F): rbpcv2_imx219_b (position = “topright” but topright has CSI e on the board. Shouldn’t be a problem in my use case)
i2c@5 (CSI E): rbpcv2_imx219_g (position = “topleft” but topleft has CSI F on the board. Shouldn’t be a problem in my use case)

On NVCSI I see 6 channels. Are the channels the dotted lines above? Every channel has 2 ports (in/out) defined by its endpoints:

  • Channel0 has two ports:
    ** rbpcv2_imx219_csi_in0 connected to port-index 0 (CSI A) with rbpcv2_imx219_out0 as endpoint
    ** rbpcv2_imx219_csi_out0 with rbpcv2_imx219_vi_in0 (Stream 0?) as endpoint
  • Channel1 has two ports:
    ** rbpcv2_imx219_csi_in1 connected to port-index 2 (CSI C) with rbpcv2_imx219_out1 as endpoint
    ** rbpcv2_imx219_csi_out1 with rbpcv2_imx219_vi_in1 (Stream 1?) as endpoint
  • Channel2 has two ports:
    ** rbpcv2_imx219_csi_in2 connected to port-index 3 (CSI B) with rbpcv2_imx219_out2 as endpoint
    ** rbpcv2_imx219_csi_out2 with rbpcv2_imx219_vi_in2 (Stream 2?) as endpoint
  • Channel3 has two ports:
    ** rbpcv2_imx219_csi_in3 connected to port-index 4 (CSI D) with rbpcv2_imx219_out3 as endpoint
    ** rbpcv2_imx219_csi_out3 with rbpcv2_imx219_vi_in3 (Stream 3?) as endpoint
  • Channel4 has two ports:
    ** rbpcv2_imx219_csi_in4 connected to port-index 1 (CSI F) with rbpcv2_imx219_out4 as endpoint
    ** rbpcv2_imx219_csi_out4 with rbpcv2_imx219_vi_in4 (Stream 4?) as endpoint
  • Channel5 has two ports:
    ** rbpcv2_imx219_csi_in5 connected to port-index 6 (??!) with rbpcv2_imx219_out5 as endpoint
    ** rbpcv2_imx219_csi_out5 with rbpcv2_imx219_vi_in5 (Stream 5?) as endpoint

On vi@15c10000 I see 6 channels (like in the picture).

  • Stream0 is connected to Port 0 (CSI A)
  • Stream1 is connected to Port 2 (CSI C)
  • Stream2 is connected to Port 3 (CSI B)
  • Stream3 is connected to Port 4 (CSI D)
  • Stream4 is connected to Port 1 (CSI F)
  • Stream5 is connected to Port 6 (?! I guess CSI E)

In order to use lane4 mode3 IMX219_MODE_1280x720_180FPS I changed:

  • bus-width to 4 associated with port-index = <4>.
  • num_lanes = “4” in the mode 180fps along with different mclk_multiplier, pix_clk_hz and max_framerate.
  • In imx219_mode_tbls.h I changed 0x0114 to 0x03 because we want 4-lanes.

imx219_mode_tbls.h (13.6 KB)

It says tegra194-vi5 15c10000.vi: no reply from camera processor with every modes.


I’m trying now to leave bus-width 2, leaving num_lanes to 4 and 0x0114 to 3.

nvidia@nvidia-desktop:~$ v4l2-ctl -d /dev/video0 --set-fmt-video=width=1280,height=720,pixelformat=RG10 --set-ctrl sensor_mode=3 --set-ctrl bypass_mode=0 --stream-mmap --verbose
VIDIOC_QUERYCAP: ok
VIDIOC_S_EXT_CTRLS: ok
VIDIOC_G_FMT: ok
VIDIOC_S_FMT: ok
Format Video Capture:
Width/Height : 1280/720
Pixel Format : ‘RG10’
Field : None
Bytes per Line : 2560
Size Image : 1843200
Colorspace : sRGB
Transfer Function : Default (maps to sRGB)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Full Range)
Flags :
VIDIOC_REQBUFS: ok
VIDIOC_QUERYBUF: ok
VIDIOC_QBUF: ok
VIDIOC_QUERYBUF: ok
VIDIOC_QBUF: ok
VIDIOC_QUERYBUF: ok
VIDIOC_QBUF: ok
VIDIOC_QUERYBUF: ok
VIDIOC_QBUF: ok
VIDIOC_STREAMON: ok

It hangs but it doesn’t print frames with flag errors though.

Dmesg:

[ 254.678516] imx219 33-0010: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[ 254.678564] imx219 33-0010: camera_common_dpd_disable: csi 4
[ 254.678571] imx219 33-0010: imx219_power_on: power on
[ 254.702150] t194-nvcsi 15a00000.nvcsi: phy mode unavailable in props, use default
[ 254.703379] t194-nvcsi 15a00000.nvcsi: settle time reading from props
[ 254.704528] imx219 33-0010: camera_common_try_fmt: size 1280 x 720
[ 254.704538] imx219 33-0010: camera_common_try_fmt: use_sensor_mode_id 1
[ 254.704562] imx219 33-0010: camera_common_s_fmt(12303) size 1280 x 720
[ 254.704614] imx219 33-0010: camera_common_try_fmt: size 1280 x 720
[ 254.704620] imx219 33-0010: camera_common_try_fmt: use_sensor_mode_id 1
[ 254.708064] tegra194-vi5 15c10000.vi: vi_channel_power_on_vi_device
[ 254.723153] t194-nvcsi 15a00000.nvcsi: settle time reading from props
[ 254.723163] t194-nvcsi 15a00000.nvcsi: discontinuous_clk = 1 reading from props
[ 254.723198] imx219 33-0010: v4l2sd_stream++ enable 1
[ 254.773069] [RCE] Configuring VI GoS.
[ 254.773084] [RCE] VM GOS[#0] addr=0xc2100000
[ 254.773094] [RCE] VM GOS[#1] addr=0xc2101000
[ 254.773104] [RCE] VM GOS[#2] addr=0xc2102000
[ 254.773115] [RCE] VM GOS[#3] addr=0xc2103000
[ 254.773124] [RCE] VM GOS[#4] addr=0xc2104000
[ 254.773134] [RCE] VM GOS[#5] addr=0xc2105000
[ 254.773150] [RCE] vi5_hwinit: firmware CL2018101701 protocol version 2.2
[ 254.773163] [RCE] VI GOS[#0] set to VM GOS[4] base 0xc2104000
> [ 255.470918] tegra194-vi5 15c10000.vi: corr_err: discarding frame 61312, flags: 0, err_data 512
> [ 255.476567] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 112, err_data 10486372
> [ 255.504240] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 32, err_data 164
> [ 255.520896] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 160, err_data 164
[ 337.186030] imx219 33-0010: v4l2sd_stream++ enable 0
[ 337.243670] tegra194-vi5 15c10000.vi: vi_channel_power_off_vi_device
[ 337.245759] imx219 33-0010: imx219_power_off: power off
[ 337.245976] imx219 33-0010: camera_common_dpd_enable: csi 4
[ 337.245984] imx219 33-0010: camera_common_mclk_disable: disable MCLK

If bus-width is 2, I have only one camera_common_dpd_enable with value 4.
If bus-width is 4, I have an extra entry with value 5.
I wonder if I have to merge two CSI (D and ??) in order to use 4lanes but I have no idea how.

Even trace seems to have new kind of errors:
nv_trace.log (50.7 MB)

kworker/0:2-1160 [000] … 62.428631: rtcpu_nvcsi_intr: tstamp:2607159724 class:CORRECTABLE_ERR type:STREAM_VC phy:0 cil:0 st:4 vc:0 status:0x0000000a
kworker/0:2-1160 [000] … 62.428631: rtcpu_nvcsi_intr: tstamp:2607160638 class:GLOBAL type:STREAM_NOVC phy:0 cil:0 st:4 vc:0 status:0x00000001
kworker/0:2-1160 [000] … 62.428631: rtcpu_nvcsi_intr: tstamp:2607160638 class:GLOBAL type:STREAM_VC phy:0 cil:0 st:4 vc:0 status:0x0000000a
kworker/0:2-1160 [000] … 62.428631: rtcpu_nvcsi_intr: tstamp:2607160638 class:CORRECTABLE_ERR type:STREAM_NOVC phy:0 cil:0 st:4 vc:0 status:0x00000001
kworker/0:2-1160 [000] … 62.428632: rtcpu_nvcsi_intr: tstamp:2607160638 class:CORRECTABLE_ERR type:STREAM_VC phy:0 cil:0 st:4 vc:0 status:0x0000000a

I checked the TM and they seem timeouts.

hello Gorgo90,

please refer to Jetson Xavier NX Product Design Guide and check [Chapter 9. MIPI CSI Video Input].
it’s possible to have 6-cam configurations with one 4-lane and five 2-lane cameras.
according to [Figure 9-2. CSI Connection Options], in order to achieve your use-case, you should have 4-lane camera for using CSI-E/F, the other 2-lane camera using CSI-A, CSI-B, CSI-C, CSI-D, and CSI-G.

this diagram is incorrect. the left hand side CSI port must following by CSI-A/B/C/D/E/F.
you may have each CSI port for using x1 or x2 lane configuration, but you need two CSIs for the 4-lane configuration. please review product design guide for [Figure 9-2. CSI Connection Options].
for device tree implementation, you may see-also reference driver, tegra194-camera-imx185-a00.dtsi. it’s 4-lane camera sensor that configured to CSI-A/B.

one more thing,
for changing x2 to x4, you should also update the sensor init registers since there’re signal related configurations.
please also review Sensor Pixel Clock to examine sensor CSI lane output rate.

Ok I spoke with the devs and they confirmed that their CSI hardware connectors naming eventually match with the Jetson’s ones and CSI-D connector is actually wired to CSI-E/F (x4 config).

I understood tegra194-camera-imx185-a00.dtsi while mine is more complicated due to the existence of other connectors.

So those are my edits in tegra194-camera-rbpcv2-hexa-imx219.dtsi:

  • host1x > vi@15c10000 > ports > vi_port3: port@3
    I edited bus-width to 4.

  • host1x > nvcsi@15a00000 > csi_chan3: channel@3 > csi_chan3_port0: port@0 > rbpcv2_imx219_csi_in3: endpoint@6
    I edited bus-width to 4.

  • host1x > i2c@3180000 > tca9548@70 > i2c_3: i2c@3 > imx219_cam3: rbpcv2_imx219_e@10
    I added mode4 width num_lanes 4, higher pix_clk_hz and mclk_multiplier (pix_clk_hz/mclk_khz*1000)

mode4{ /* IMX219_MODE_1280x720_180FPS */
  				mclk_khz = "24000";
  				num_lanes = "4";
  				tegra_sinterface = "serial_e";
  				phy_mode = "DPHY";
  				discontinuous_clk = "yes";
  				dpcm_enable = "false";
  				cil_settletime = "0";

  				active_w = "1280";
  				active_h = "720";
  				pixel_t = "bayer_rggb";
  				readout_orientation = "90";
  				line_length = "3448";
  				inherent_gain = "1";
  				mclk_multiplier = "14.53"; 
  				pix_clk_hz = "348800000"; 

  				gain_factor = "16";
  				framerate_factor = "1000000";
  				exposure_factor = "1000000";
  				min_gain_val = "16"; /* 1.00x */
  				max_gain_val = "170"; /* 10.66x */
  				step_gain_val = "1";
  				default_gain = "16"; /* 1.00x */
  				min_hdr_ratio = "1";
  				max_hdr_ratio = "1";
  				min_framerate = "2000000"; /* 2.0 fps */
  				max_framerate = "180000000"; /* 180.0 fps */
  				step_framerate = "1";
  				default_framerate = "180000000"; /* 180.0 fps */
  				min_exp_time = "13"; /* us */
  				max_exp_time = "683709"; /* us */
  				step_exp_time = "1";
  				default_exp_time = "2495"; /* us */

  				embedded_metadata_height = "2";
  			};
  • host1x > i2c@3180000 > tca9548@70 > i2c_3: i2c@3 > imx219_cam3: rbpcv2_imx219_e@10 > ports > port@0 > rbpcv2_imx219_out3: endpoint
    I set bus-width to 4.

  • tcp: tegra-camera-platform
    Here your dtsi has 1 module and num_csi_lanes = <4>;
    Mine, by devs, had 6 modules and num_csi_lanes = <12>;

The camera module associated with the edits above is this one:

cam_module3: module3 {
  		badge = "jakku_centerleft_RBP194";
  		position = "centerleft";
  		orientation = "1";
  		status="okay";
  		cam_module3_drivernode0: drivernode0 {
  			status="okay";
  			pcl_id = "v4l2_sensor";
  			devname = "imx219 33-0010";
  			proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@70/i2c@3/rbpcv2_imx219_e@10";
  		};
  		cam_module3_drivernode1: drivernode1 {
  			status="okay";
  			pcl_id = "v4l2_lens";
  			proc-device-tree = "/proc/device-tree/lens_imx219@RBPCV2/";
  		};
  	};

Is it okay to disable all the others and setting num_csi_lanes = <4> ?

E.g. (Disable cam_module):

 modules { 
  	status="okay";
  	cam_module0: module0 {
  		badge = "jakku_bottomright_RBP194";
  		position = "bottomright";
  		orientation = "1";
  		status="disabled";
  		cam_module0_drivernode0: drivernode0 {
  			status="disabled";
  			pcl_id = "v4l2_sensor";
  			devname = "imx219 30-0010";
  			proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@70/i2c@0/rbpcv2_imx219_a@10"; 
  		};
  		cam_module0_drivernode1: drivernode1 {
  			status="disabled";
  			pcl_id = "v4l2_lens";
  			proc-device-tree = "/proc/device-tree/lens_imx219@RBPCV2/";
  		};
  	};

On camera side (imx219_mode_tbls.h) I guess I just need to edit CSI_LANE_MODE to 3 according to the datasheet, along with the imx219_mode_1280x720_180fps imx219_reg.

What do you think?

Files:
tegra194-camera-rbpcv2-hexa-imx219.dtsi (60.2 KB)
tegra194-camera-jakku-rbpcv2-hexa-imx219.dtsi (3.6 KB)

hello Gorgo90,

are you going to have all Rbpcv2_IMX219 sensor modes, mode0-3 as 2-lane config and mode4 as 4-lane config?
is should be doable, however, please try disable all other 2-lane sensor modes for your bring-up stage.

don’t this should be num_csi_lanes = <14>;?
since you have five 2-lane and one 4-lane camera in the system.

yes, you may roll-back to single camera configuration, and setting num_csi_lanes = <4> in your tegra-camera-platform{...} fields.

honestly, we don’t verify 4-lane configure for this camera board.
you may survey whether this is supported, for example, please see-also raspberrypi’s discussion thread,
difference between 2-lane and 4-lane MIPI CSI camera port? - Raspberry Pi Stack Exchange

Hi @JerryChang sorry for late reply.

So, in imx219_cam3: rbpcv2_imx219_e@10 I left mode0 only IMX219_MODE_1280x720_180FPS as you suggested. I did the same thing in the tables header: I left 180fps mode only.

don’t this should be num_csi_lanes = <14>; ?
since you have five 2-lane and one 4-lane camera in the system.

I don’t know. At the moment I have 6 modules, 1 active (okay) module3 linked to i2c@3/rbpcv2_imx219_e@10 and the others are disabled. I’ll try 14 first and 4 later.

Test with num_csi_lanes = <14>
tegra194-camera-rbpcv2-hexa-imx219.dtsi (68.9 KB)
imx219_mode_tbls.h (14.6 KB)

nvidia@nvidia-desktop:~$ v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: ‘RG10’
Name : 10-bit Bayer RGRG/GBGB
Size: Discrete 1280x720
Interval: Discrete 0.006s (180.000 fps)

nvidia@nvidia-desktop:~$ gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! ‘video/x-raw(memory:NVMM),width=1280, height=720, framerate=180/1, format=NV12’ ! nvvidconv ! ‘video/x-raw(memory:NVMM),format=I420’ ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 -v
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = false
Setting pipeline to PLAYING …
New clock: GstSystemClock
/GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)NV12, framerate=(fraction)180/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)NV12, framerate=(fraction)180/1
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)180/1, format=(string)I420
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)180/1, format=(string)I420
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)180/1, format=(string)I420
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)180/1, format=(string)I420
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)180/1, format=(string)I420
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)180/1, format=(string)I420
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)NV12, framerate=(fraction)180/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)NV12, framerate=(fraction)180/1
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected…
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 1280 x 720 FR = 180.000018 fps Duration = 5555555 ; Analog Gain range min 1.000000, max 10.625000; Exposure Range min 13000, max 683709000;

GST_ARGUS: Running with following settings:
Camera index = 0
Camera mode = 0
Output Stream W = 1280 H = 720
seconds to Run = 0
Frame Rate = 180.000018
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
nvbuf_utils: dmabuf_fd -1 mapped entry NOT found
nvbuf_utils: Can not get HW buffer from FD… Exiting…
CONSUMER: ERROR OCCURRED
ERROR: from element /GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0: CANCELLED
Additional debug info:
Argus Error Status
Execution ended after 0:00:01.777418976
Setting pipeline to PAUSED …
Setting pipeline to READY …
GST_ARGUS: Cleaning up
Setting pipeline to NULL …
Freeing pipeline …

DMESG:

[    2.171074] imx219 33-0010: probing v4l2 sensor at addr 0x10
[    2.171168] imx219 33-0010: mclk name not present, assume sensor driven externally
[    2.171176] imx219 33-0010: avdd, iovdd and/or dvdd reglrs. not present, assume sensor powered independently
[    2.171190] imx219 33-0010: camera_common_parse_ports: port 4 num of lanes 4
[    2.171262] imx219 33-0010: imx219_probe: name imx219_e
[    2.171269] imx219 33-0010: camera_common_create_debugfs imx219_e
[    2.171288] imx219 33-0010: tegracam sensor driver:imx219_v2.0.6
[    2.171295] imx219 33-0010: imx219_power_on: power on
[    2.196454] imx219 33-0010: imx219_power_off: power off
[    2.196669] imx219 33-0010: detected imx219 sensor

....

[  486.212872] [RCE] Configuring ISP GoS.
[  486.212886] [RCE]   VM GOS[#0] addr=0xc2100000
[  486.212894] [RCE]   VM GOS[#1] addr=0xc2101000
[  486.212901] [RCE]   VM GOS[#2] addr=0xc2102000
[  486.212908] [RCE]   VM GOS[#3] addr=0xc2103000
[  486.212916] [RCE]   VM GOS[#4] addr=0xc2104000
[  486.212923] [RCE]   VM GOS[#5] addr=0xc2105000
[  486.219141] imx219 33-0010: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[  486.219210] imx219 33-0010: camera_common_dpd_disable: csi 4
[  486.219247] imx219 33-0010: camera_common_dpd_disable: csi 5
[  486.219256] imx219 33-0010: imx219_power_on: power on
[  486.242905] imx219 33-0010: imx219_power_off: power off
[  486.243187] imx219 33-0010: camera_common_dpd_enable: csi 4
[  486.243222] imx219 33-0010: camera_common_dpd_enable: csi 5
[  486.243229] imx219 33-0010: camera_common_mclk_disable: disable MCLK
[  486.246395] imx219 33-0010: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[  486.246455] imx219 33-0010: camera_common_dpd_disable: csi 4
[  486.246488] imx219 33-0010: camera_common_dpd_disable: csi 5
[  486.246495] imx219 33-0010: imx219_power_on: power on
[  486.270119] imx219 33-0010: imx219_power_off: power off
[  486.270369] imx219 33-0010: camera_common_dpd_enable: csi 4
[  486.270403] imx219 33-0010: camera_common_dpd_enable: csi 5
[  486.270411] imx219 33-0010: camera_common_mclk_disable: disable MCLK
[  486.283448] imx219 33-0010: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[  486.283526] imx219 33-0010: camera_common_dpd_disable: csi 4
[  486.283572] imx219 33-0010: camera_common_dpd_disable: csi 5
[  486.283578] imx219 33-0010: imx219_power_on: power on
[  486.307079] imx219 33-0010: imx219_power_off: power off
[  486.307355] imx219 33-0010: camera_common_dpd_enable: csi 4
[  486.307390] imx219 33-0010: camera_common_dpd_enable: csi 5
[  486.307397] imx219 33-0010: camera_common_mclk_disable: disable MCLK
[  486.308439] imx219 33-0010: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[  486.308478] imx219 33-0010: camera_common_dpd_disable: csi 4
[  486.308536] imx219 33-0010: camera_common_dpd_disable: csi 5
[  486.308543] imx219 33-0010: imx219_power_on: power on
[  486.332438] imx219 33-0010: imx219_power_off: power off
[  486.332704] imx219 33-0010: camera_common_dpd_enable: csi 4
[  486.332879] imx219 33-0010: camera_common_dpd_enable: csi 5
[  486.332888] imx219 33-0010: camera_common_mclk_disable: disable MCLK
[  486.333906] imx219 33-0010: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[  486.333949] imx219 33-0010: camera_common_dpd_disable: csi 4
[  486.333984] imx219 33-0010: camera_common_dpd_disable: csi 5
[  486.333991] imx219 33-0010: imx219_power_on: power on
[  486.357552] imx219 33-0010: imx219_power_off: power off
[  486.357825] imx219 33-0010: camera_common_dpd_enable: csi 4
[  486.357859] imx219 33-0010: camera_common_dpd_enable: csi 5
[  486.357866] imx219 33-0010: camera_common_mclk_disable: disable MCLK
[  486.436824] [RCE] Configuring VI GoS.
[  486.436837] [RCE] VM GOS[#0] addr=0xc2100000
[  486.436845] [RCE] VM GOS[#1] addr=0xc2101000
[  486.436852] [RCE] VM GOS[#2] addr=0xc2102000
[  486.436859] [RCE] VM GOS[#3] addr=0xc2103000
[  486.436866] [RCE] VM GOS[#4] addr=0xc2104000
[  486.436881] [RCE] VM GOS[#5] addr=0xc2105000
[  486.436892] [RCE] vi5_hwinit: firmware CL2018101701 protocol version 2.2
[  486.590379] imx219 33-0010: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[  486.590451] imx219 33-0010: camera_common_dpd_disable: csi 4
[  486.590487] imx219 33-0010: camera_common_dpd_disable: csi 5
[  486.590493] imx219 33-0010: imx219_power_on: power on
[  486.614035] imx219 33-0010: camera_common_try_fmt: size 1280 x 720
[  486.614054] imx219 33-0010: camera_common_try_fmt: use_sensor_mode_id 1
[  486.614096] imx219 33-0010: camera_common_s_fmt(12303) size 1280 x 720
[  486.614110] imx219 33-0010: camera_common_try_fmt: size 1280 x 720
[  486.614117] imx219 33-0010: camera_common_try_fmt: use_sensor_mode_id 1
[  486.614168] imx219 33-0010: imx219_set_gain: val: 16 (/16) [times], gain: 0
[  486.620554] imx219 33-0010: imx219_set_gain: val: 95 (/16) [times], gain: 213
[  486.627598] imx219 33-0010: v4l2sd_stream++ enable 1
[  486.660929] imx219 33-0010: imx219_set_gain: val: 95 (/16) [times], gain: 213
[  486.661312] imx219 33-0010: imx219_set_exposure: exposure limited by frame_length: 558 [lines]
[  486.661322] imx219 33-0010: imx219_set_exposure: val: 5555 [us], coarse_time: 558 [lines]
[  486.662096] imx219 33-0010: imx219_set_frame_rate: val: 180000000e-6 [fps], frame_length: 562 [lines]
[  486.664805] [RCE] Configuring VI GoS.
[  486.664854] [RCE] VM GOS[#0] addr=0xc2100000
[  486.664898] [RCE] VM GOS[#1] addr=0xc2101000
[  486.664910] [RCE] VM GOS[#2] addr=0xc2102000
[  486.664917] [RCE] VM GOS[#3] addr=0xc2103000
[  486.664925] [RCE] VM GOS[#4] addr=0xc2104000
[  486.664946] [RCE] VM GOS[#5] addr=0xc2105000
[  486.720801] [RCE] VI GOS[#0] set to VM GOS[4] base 0xc2104000
[  488.168809] fence timeout on [ffffffc382221480] after 1500ms
[  488.168824] name=[nvhost_sync:36], current value=0 waiting value=1
[  488.168834] ---- mlocks ----
[  488.168860] tegra194-vi5 15c10000.vi: no reply from camera processor

[  488.168884] ---- syncpts ----
[  488.168959] id 17 (gv11b_511) min 7098 max 7098 refs 1 (previous client : )
[  488.168964] id 18 (gv11b_510) min 7 max 7 refs 1 (previous client : )
[  488.168970] id 19 (gv11b_509) min 2708 max 2708 refs 1 (previous client : gv11b_509)
[  488.168986] id 28 (gv11b_507_user) min 27 max 0 refs 1 (previous client : )
[  488.169007] id 40 (gv11b_502) min 15 max 15 refs 1 (previous client : gv11b_501)
[  488.169013] id 41 (gv11b_503) min 16 max 16 refs 1 (previous client : gv11b_500)
[  488.169022] id 42 (gv11b_500) min 15 max 15 refs 1 (previous client : gv11b_499)
[  488.169036] tegra194-vi5 15c10000.vi: vi capture get status failed
[  488.169054] id 43 (gv11b_499) min 15 max 15 refs 1 (previous client : gv11b_503)
[  488.169060] id 44 (gv11b_501) min 15 max 15 refs 1 (previous client : gv11b_502)

[  488.169973] ---- channels ----
[  488.170029] 
               channel 2 - 15820000.se

[  488.170034] NvHost basic channel registers:
[  488.170041] CMDFIFO_STAT_0:  00002040
[  488.170051] CMDFIFO_RDATA_0: 02000220
[  488.170060] CMDP_OFFSET_0:   00000000
[  488.170067] CMDP_CLASS_0:    00000000
[  488.170074] CHANNELSTAT_0:   00000000
[  488.170079] The CDMA sync queue is empty.

[  488.170092] 
               channel 3 - 15830000.se

[  488.170097] NvHost basic channel registers:
[  488.170104] CMDFIFO_STAT_0:  00002040
[  488.170110] CMDFIFO_RDATA_0: 0000c681
[  488.170118] CMDP_OFFSET_0:   00000000
[  488.170125] CMDP_CLASS_0:    00000000
[  488.170130] CHANNELSTAT_0:   00000000
[  488.170135] The CDMA sync queue is empty.

[  488.170148] 
               channel 4 - 15840000.se

[  488.170152] NvHost basic channel registers:
[  488.170158] CMDFIFO_STAT_0:  00002040
[  488.170166] CMDFIFO_RDATA_0: 03040890
[  488.170172] CMDP_OFFSET_0:   00000000
[  488.170178] CMDP_CLASS_0:    00000000
[  488.170184] CHANNELSTAT_0:   00000000
[  488.170189] The CDMA sync queue is empty.

[  488.170206] 
               ---- host general irq ----

[  488.170212] sync_intc0mask = 0x00000001
[  488.170218] sync_intmask = 0x50000003
[  488.170223] 
               ---- host syncpt irq mask ----

[  488.170228] 
               ---- host syncpt irq status ----

[  488.170235] syncpt_thresh_cpu0_int_status(0) = 0x00000000
[  488.170242] syncpt_thresh_cpu0_int_status(1) = 0x00000000
[  488.170249] syncpt_thresh_cpu0_int_status(2) = 0x00000000
[  488.170256] syncpt_thresh_cpu0_int_status(3) = 0x00000000
[  488.170263] syncpt_thresh_cpu0_int_status(4) = 0x00000000
[  488.170269] syncpt_thresh_cpu0_int_status(5) = 0x00000000
[  488.170276] syncpt_thresh_cpu0_int_status(6) = 0x00000000
[  488.170283] syncpt_thresh_cpu0_int_status(7) = 0x00000000
[  488.170289] syncpt_thresh_cpu0_int_status(8) = 0x00000000
[  488.170295] syncpt_thresh_cpu0_int_status(9) = 0x00000000
[  488.170302] syncpt_thresh_cpu0_int_status(10) = 0x00000000
[  488.170308] syncpt_thresh_cpu0_int_status(11) = 0x00000000
[  488.170314] syncpt_thresh_cpu0_int_status(12) = 0x00000000
[  488.170320] syncpt_thresh_cpu0_int_status(13) = 0x00000000
[  488.170326] syncpt_thresh_cpu0_int_status(14) = 0x00000000
[  488.170332] syncpt_thresh_cpu0_int_status(15) = 0x00000000
[  488.170338] syncpt_thresh_cpu0_int_status(16) = 0x00000000
[  488.170344] syncpt_thresh_cpu0_int_status(17) = 0x00000000
[  488.170350] syncpt_thresh_cpu0_int_status(18) = 0x00000000
[  488.170356] syncpt_thresh_cpu0_int_status(19) = 0x00000000
[  488.170362] syncpt_thresh_cpu0_int_status(20) = 0x00000000
[  488.170368] syncpt_thresh_cpu0_int_status(21) = 0x00000000
[  489.704798] fence timeout on [ffffffc37dc7ba80] after 1500ms
[  489.704809] fence timeout on [ffffffc37dc7b480] after 1500ms
[  489.704819] name=[nvhost_sync:36], current value=0 waiting value=10
[  489.704823] name=[nvhost_sync:36], current value=0 waiting value=15
[  489.704831] ---- mlocks ----
[  489.704836] ---- mlocks ----
[  489.704841] tegra194-vi5 15c10000.vi: no reply from camera processor
[  489.704851] tegra194-vi5 15c10000.vi: vi capture get status failed

[  489.704885] ---- syncpts ----
[  489.704923] id 17 (gv11b_511) min 7100 max 7100 refs 1 (previous client : )
[  489.704928] id 18 (gv11b_510) min 7 max 7 refs 1 (previous client : )
[  489.704934] id 19 (gv11b_509) min 2712 max 2712 refs 1 (previous client : gv11b_509)
[  489.704949] id 28 (gv11b_507_user) min 27 max 0 refs 1 (previous client : )
[  489.704968] id 40 (gv11b_502) min 15 max 15 refs 1 (previous client : gv11b_501)
[  489.704973] id 41 (gv11b_503) min 16 max 16 refs 1 (previous client : gv11b_500)
[  489.704978] id 42 (gv11b_500) min 15 max 15 refs 1 (previous client : gv11b_499)
[  489.705016] id 43 (gv11b_499) min 15 max 15 refs 1 (previous client : gv11b_503)
[  489.705022] id 44 (gv11b_501) min 15 max 15 refs 1 (previous client : gv11b_502)

[  489.705157] ---- syncpts ----

[  489.705916] ---- channels ----
[  489.705929] id 17 (gv11b_511) min 7100 max 7100 refs 1 (previous client : )
[  489.705938] id 18 (gv11b_510) min 7 max 7 refs 1 (previous client : )
[  489.705946] id 19 (gv11b_509) min 2712 max 2712 refs 1 (previous client : gv11b_509)
[  489.705963] id 28 (gv11b_507_user) min 27 max 0 refs 1 (previous client : )
[  489.705978] 
               channel 2 - 15820000.se

[  489.705989] NvHost basic channel registers:
[  489.705992] id 40 (gv11b_502) min 15 max 15 refs 1 (previous client : gv11b_501)
[  489.705998] id 41 (gv11b_503) min 16 max 16 refs 1 (previous client : gv11b_500)
[  489.706003] CMDFIFO_STAT_0:  00002040
[  489.706006] id 42 (gv11b_500) min 15 max 15 refs 1 (previous client : gv11b_499)
[  489.706011] id 43 (gv11b_499) min 15 max 15 refs 1 (previous client : gv11b_503)
[  489.706014] CMDFIFO_RDATA_0: 02000220
[  489.706021] id 44 (gv11b_501) min 15 max 15 refs 1 (previous client : gv11b_502)
[  489.706024] CMDP_OFFSET_0:   00000000
[  489.706029] CMDP_CLASS_0:    00000000
[  489.706036] CHANNELSTAT_0:   00000000
[  489.706041] The CDMA sync queue is empty.

[  489.706053] 
               channel 3 - 15830000.se

[  489.706057] NvHost basic channel registers:
[  489.706064] CMDFIFO_STAT_0:  00002040
[  489.706070] CMDFIFO_RDATA_0: 0000c681
[  489.706078] CMDP_OFFSET_0:   00000000
[  489.706083] CMDP_CLASS_0:    00000000
[  489.706089] CHANNELSTAT_0:   00000000
[  489.706093] The CDMA sync queue is empty.

[  489.706106] 
               channel 4 - 15840000.se

[  489.706110] NvHost basic channel registers:
[  489.706116] CMDFIFO_STAT_0:  00002040
[  489.706122] CMDFIFO_RDATA_0: 03040890
[  489.706128] CMDP_OFFSET_0:   00000000
[  489.706133] CMDP_CLASS_0:    00000000
[  489.706139] CHANNELSTAT_0:   00000000
[  489.706143] The CDMA sync queue is empty.

[  489.706159] 
               ---- host general irq ----

[  489.706165] sync_intc0mask = 0x00000001
[  489.706171] sync_intmask = 0x50000003
[  489.706175] 
               ---- host syncpt irq mask ----

[  489.706180] 
               ---- host syncpt irq status ----

[  489.706187] syncpt_thresh_cpu0_int_status(0) = 0x00000000
[  489.706192] syncpt_thresh_cpu0_int_status(1) = 0x00000000
[  489.706198] syncpt_thresh_cpu0_int_status(2) = 0x00000000
[  489.706204] syncpt_thresh_cpu0_int_status(3) = 0x00000000
[  489.706210] syncpt_thresh_cpu0_int_status(4) = 0x00000000
[  489.706215] syncpt_thresh_cpu0_int_status(5) = 0x00000000
[  489.706221] syncpt_thresh_cpu0_int_status(6) = 0x00000000
[  489.706227] syncpt_thresh_cpu0_int_status(7) = 0x00000000
[  489.706233] syncpt_thresh_cpu0_int_status(8) = 0x00000000
[  489.706239] syncpt_thresh_cpu0_int_status(9) = 0x00000000
[  489.706245] syncpt_thresh_cpu0_int_status(10) = 0x00000000
[  489.706251] syncpt_thresh_cpu0_int_status(11) = 0x00000000
[  489.706256] syncpt_thresh_cpu0_int_status(12) = 0x00000000
[  489.706262] syncpt_thresh_cpu0_int_status(13) = 0x00000000
[  489.706268] syncpt_thresh_cpu0_int_status(14) = 0x00000000
[  489.706274] syncpt_thresh_cpu0_int_status(15) = 0x00000000
[  489.706279] syncpt_thresh_cpu0_int_status(16) = 0x00000000
[  489.706285] syncpt_thresh_cpu0_int_status(17) = 0x00000000
[  489.706291] syncpt_thresh_cpu0_int_status(18) = 0x00000000
[  489.706296] syncpt_thresh_cpu0_int_status(19) = 0x00000000
[  489.706302] syncpt_thresh_cpu0_int_status(20) = 0x00000000
[  489.706308] syncpt_thresh_cpu0_int_status(21) = 0x00000000

[  489.706890] ---- channels ----
[  489.706948] 
               channel 2 - 15820000.se

[  489.706954] NvHost basic channel registers:
[  489.706961] CMDFIFO_STAT_0:  00002040
[  489.706967] CMDFIFO_RDATA_0: 02000220
[  489.706975] CMDP_OFFSET_0:   00000000
[  489.706981] CMDP_CLASS_0:    00000000
[  489.706988] CHANNELSTAT_0:   00000000
[  489.706992] The CDMA sync queue is empty.

[  489.707005] 
               channel 3 - 15830000.se

[  489.707009] NvHost basic channel registers:
[  489.707015] CMDFIFO_STAT_0:  00002040
[  489.707022] CMDFIFO_RDATA_0: 0000c681
[  489.707029] CMDP_OFFSET_0:   00000000
[  489.707036] CMDP_CLASS_0:    00000000
[  489.707041] CHANNELSTAT_0:   00000000
[  489.707046] The CDMA sync queue is empty.

[  489.707057] 
               channel 4 - 15840000.se

[  489.707061] NvHost basic channel registers:
[  489.707067] CMDFIFO_STAT_0:  00002040
[  489.707073] CMDFIFO_RDATA_0: 03040890
[  489.707079] CMDP_OFFSET_0:   00000000
[  489.707084] CMDP_CLASS_0:    00000000
[  489.707090] CHANNELSTAT_0:   00000000
[  489.707094] The CDMA sync queue is empty.

[  489.707137] 
               ---- host general irq ----

[  489.707143] sync_intc0mask = 0x00000001
[  489.707149] sync_intmask = 0x50000003
[  489.707153] 
               ---- host syncpt irq mask ----

[  489.707158] 
               ---- host syncpt irq status ----

[  489.707164] syncpt_thresh_cpu0_int_status(0) = 0x00000000
[  489.707171] syncpt_thresh_cpu0_int_status(1) = 0x00000000
[  489.707177] syncpt_thresh_cpu0_int_status(2) = 0x00000000
[  489.707184] syncpt_thresh_cpu0_int_status(3) = 0x00000000
[  489.707190] syncpt_thresh_cpu0_int_status(4) = 0x00000000
[  489.707197] syncpt_thresh_cpu0_int_status(5) = 0x00000000
[  489.707203] syncpt_thresh_cpu0_int_status(6) = 0x00000000
[  489.707210] syncpt_thresh_cpu0_int_status(7) = 0x00000000
[  489.707215] syncpt_thresh_cpu0_int_status(8) = 0x00000000
[  489.707221] syncpt_thresh_cpu0_int_status(9) = 0x00000000
[  489.707227] syncpt_thresh_cpu0_int_status(10) = 0x00000000
[  489.707233] syncpt_thresh_cpu0_int_status(11) = 0x00000000
[  489.707238] syncpt_thresh_cpu0_int_status(12) = 0x00000000
[  489.707244] syncpt_thresh_cpu0_int_status(13) = 0x00000000
[  489.707250] syncpt_thresh_cpu0_int_status(14) = 0x00000000
[  489.707255] syncpt_thresh_cpu0_int_status(15) = 0x00000000
[  489.707261] syncpt_thresh_cpu0_int_status(16) = 0x00000000
[  489.707267] syncpt_thresh_cpu0_int_status(17) = 0x00000000
[  489.707272] syncpt_thresh_cpu0_int_status(18) = 0x00000000
[  489.707300] syncpt_thresh_cpu0_int_status(19) = 0x00000000
[  489.707306] syncpt_thresh_cpu0_int_status(20) = 0x00000000
[  489.707311] syncpt_thresh_cpu0_int_status(21) = 0x00000000
[  489.707560] imx219 33-0010: v4l2sd_stream++ enable 0
[  489.769389] imx219 33-0010: v4l2sd_stream++ enable 1
[  489.801245] imx219 33-0010: imx219_set_gain: val: 95 (/16) [times], gain: 213
[  489.801610] imx219 33-0010: imx219_set_exposure: exposure limited by frame_length: 558 [lines]
[  489.801619] imx219 33-0010: imx219_set_exposure: val: 5555 [us], coarse_time: 558 [lines]
[  489.802329] imx219 33-0010: imx219_set_frame_rate: val: 180000000e-6 [fps], frame_length: 562 [lines]
[  491.336791] fence timeout on [ffffffc37dc7b540] after 1500ms
[  491.336803] fence timeout on [ffffffc37dc7ba80] after 1500ms
[  491.336806] tegra194-vi5 15c10000.vi: no reply from camera processor
[  491.336819] name=[nvhost_sync:36], current value=0 waiting value=16
[  491.336822] tegra194-vi5 15c10000.vi: vi capture get status failed
[  491.336827] ---- mlocks ----

[  491.336872] ---- syncpts ----
[  491.336903] id 17 (gv11b_511) min 7103 max 7103 refs 1 (previous client : )
[  491.336908] id 18 (gv11b_510) min 7 max 7 refs 1 (previous client : )
[  491.336913] id 19 (gv11b_509) min 2718 max 2718 refs 1 (previous client : gv11b_509)
[  491.336928] id 28 (gv11b_507_user) min 27 max 0 refs 1 (previous client : )
[  491.336948] id 40 (gv11b_502) min 15 max 15 refs 1 (previous client : gv11b_501)
[  491.336953] id 41 (gv11b_503) min 16 max 16 refs 1 (previous client : gv11b_500)
[  491.336959] id 42 (gv11b_500) min 15 max 15 refs 1 (previous client : gv11b_499)
[  491.336963] id 43 (gv11b_499) min 15 max 15 refs 1 (previous client : gv11b_503)
[  491.337001] id 44 (gv11b_501) min 15 max 15 refs 1 (previous client : gv11b_502)
[  491.337087] name=[nvhost_sync:36], current value=0 waiting value=21
[  491.337096] ---- mlocks ----

[  491.337174] ---- syncpts ----

[  491.337892] ---- channels ----
[  491.337915] id 17 (gv11b_511) min 7103 max 7103 refs 1 (previous client : )
[  491.337924] id 18 (gv11b_510) min 7 max 7 refs 1 (previous client : )
[  491.337932] id 19 (gv11b_509) min 2718 max 2718 refs 1 (previous client : gv11b_509)
[  491.337936] 
               channel 2 - 15820000.se

[  491.337942] NvHost basic channel registers:
[  491.337949] id 28 (gv11b_507_user) min 27 max 0 refs 1 (previous client : )
[  491.337954] CMDFIFO_STAT_0:  00002040
[  491.337960] CMDFIFO_RDATA_0: 02000220
[  491.337968] CMDP_OFFSET_0:   00000000
[  491.337974] CMDP_CLASS_0:    00000000
[  491.337979] id 40 (gv11b_502) min 15 max 15 refs 1 (previous client : gv11b_501)
[  491.337986] CHANNELSTAT_0:   00000000
[  491.337992] The CDMA sync queue is empty.

[  491.338003] 
               channel 3 - 15830000.se

[  491.338012] NvHost basic channel registers:
[  491.338017] CMDFIFO_STAT_0:  00002040
[  491.338026] id 41 (gv11b_503) min 16 max 16 refs 1 (previous client : gv11b_500)
[  491.338032] id 42 (gv11b_500) min 15 max 15 refs 1 (previous client : gv11b_499)
[  491.338034] CMDFIFO_RDATA_0: 0000c681
[  491.338041] CMDP_OFFSET_0:   00000000
[  491.338048] CMDP_CLASS_0:    00000000
[  491.338050] id 43 (gv11b_499) min 15 max 15 refs 1 (previous client : gv11b_503)
[  491.338056] id 44 (gv11b_501) min 15 max 15 refs 1 (previous client : gv11b_502)
[  491.338057] CHANNELSTAT_0:   00000000
[  491.338060] The CDMA sync queue is empty.

[  491.338073] 
               channel 4 - 15840000.se

[  491.338077] NvHost basic channel registers:
[  491.338083] CMDFIFO_STAT_0:  00002040
[  491.338089] CMDFIFO_RDATA_0: 03040890
[  491.338095] CMDP_OFFSET_0:   00000000
[  491.338101] CMDP_CLASS_0:    00000000
[  491.338106] CHANNELSTAT_0:   00000000
[  491.338111] The CDMA sync queue is empty.

[  491.338123] 
               ---- host general irq ----

[  491.338129] sync_intc0mask = 0x00000001
[  491.338135] sync_intmask = 0x50000003
[  491.338140] 
               ---- host syncpt irq mask ----

[  491.338144] 
               ---- host syncpt irq status ----

[  491.338151] syncpt_thresh_cpu0_int_status(0) = 0x00000000
[  491.338157] syncpt_thresh_cpu0_int_status(1) = 0x00000000
[  491.338163] syncpt_thresh_cpu0_int_status(2) = 0x00000000
[  491.338169] syncpt_thresh_cpu0_int_status(3) = 0x00000000
[  491.338174] syncpt_thresh_cpu0_int_status(4) = 0x00000000
[  491.338180] syncpt_thresh_cpu0_int_status(5) = 0x00000000
[  491.338186] syncpt_thresh_cpu0_int_status(6) = 0x00000000
[  491.338192] syncpt_thresh_cpu0_int_status(7) = 0x00000000
[  491.338197] syncpt_thresh_cpu0_int_status(8) = 0x00000000
[  491.338203] syncpt_thresh_cpu0_int_status(9) = 0x00000000
[  491.338209] syncpt_thresh_cpu0_int_status(10) = 0x00000000
[  491.338215] syncpt_thresh_cpu0_int_status(11) = 0x00000000
[  491.338220] syncpt_thresh_cpu0_int_status(12) = 0x00000000
[  491.338226] syncpt_thresh_cpu0_int_status(13) = 0x00000000
[  491.338232] syncpt_thresh_cpu0_int_status(14) = 0x00000000
[  491.338237] syncpt_thresh_cpu0_int_status(15) = 0x00000000
[  491.338243] syncpt_thresh_cpu0_int_status(16) = 0x00000000
[  491.338249] syncpt_thresh_cpu0_int_status(17) = 0x00000000
[  491.338255] syncpt_thresh_cpu0_int_status(18) = 0x00000000
[  491.338260] syncpt_thresh_cpu0_int_status(19) = 0x00000000
[  491.338266] syncpt_thresh_cpu0_int_status(20) = 0x00000000
[  491.338271] syncpt_thresh_cpu0_int_status(21) = 0x00000000

[  491.338942] ---- channels ----
[  491.338968] 
               channel 2 - 15820000.se

[  491.338974] NvHost basic channel registers:
[  491.338982] CMDFIFO_STAT_0:  00002040
[  491.338989] CMDFIFO_RDATA_0: 02000220
[  491.338997] CMDP_OFFSET_0:   00000000
[  491.339003] CMDP_CLASS_0:    00000000
[  491.339010] CHANNELSTAT_0:   00000000
[  491.339016] The CDMA sync queue is empty.

[  491.339027] 
               channel 3 - 15830000.se

[  491.339031] NvHost basic channel registers:
[  491.339038] CMDFIFO_STAT_0:  00002040
[  491.339044] CMDFIFO_RDATA_0: 0000c681
[  491.339052] CMDP_OFFSET_0:   00000000
[  491.339058] CMDP_CLASS_0:    00000000
[  491.339063] CHANNELSTAT_0:   00000000
[  491.339068] The CDMA sync queue is empty.

[  491.339079] 
               channel 4 - 15840000.se

[  491.339084] NvHost basic channel registers:
[  491.339090] CMDFIFO_STAT_0:  00002040
[  491.339096] CMDFIFO_RDATA_0: 03040890
[  491.339102] CMDP_OFFSET_0:   00000000
[  491.339108] CMDP_CLASS_0:    00000000
[  491.339114] CHANNELSTAT_0:   00000000
[  491.339119] The CDMA sync queue is empty.

[  491.339131] 
               ---- host general irq ----

[  491.339137] sync_intc0mask = 0x00000001
[  491.339143] sync_intmask = 0x50000003
[  491.339148] 
               ---- host syncpt irq mask ----

[  491.339152] 
               ---- host syncpt irq status ----

[  491.339159] syncpt_thresh_cpu0_int_status(0) = 0x00000000
[  491.339166] syncpt_thresh_cpu0_int_status(1) = 0x00000000
[  491.339172] syncpt_thresh_cpu0_int_status(2) = 0x00000000
[  491.339178] syncpt_thresh_cpu0_int_status(3) = 0x00000000
[  491.339184] syncpt_thresh_cpu0_int_status(4) = 0x00000000
[  491.339190] syncpt_thresh_cpu0_int_status(5) = 0x00000000
[  491.339196] syncpt_thresh_cpu0_int_status(6) = 0x00000000
[  491.339202] syncpt_thresh_cpu0_int_status(7) = 0x00000000
[  491.339208] syncpt_thresh_cpu0_int_status(8) = 0x00000000
[  491.339214] syncpt_thresh_cpu0_int_status(9) = 0x00000000
[  491.339221] syncpt_thresh_cpu0_int_status(10) = 0x00000000
[  491.339227] syncpt_thresh_cpu0_int_status(11) = 0x00000000
[  491.339233] syncpt_thresh_cpu0_int_status(12) = 0x00000000
[  491.339239] syncpt_thresh_cpu0_int_status(13) = 0x00000000
[  491.339244] syncpt_thresh_cpu0_int_status(14) = 0x00000000
[  491.339250] syncpt_thresh_cpu0_int_status(15) = 0x00000000
[  491.339256] syncpt_thresh_cpu0_int_status(16) = 0x00000000
[  491.339262] syncpt_thresh_cpu0_int_status(17) = 0x00000000
[  491.339268] syncpt_thresh_cpu0_int_status(18) = 0x00000000
[  491.339274] syncpt_thresh_cpu0_int_status(19) = 0x00000000
[  491.339280] syncpt_thresh_cpu0_int_status(20) = 0x00000000
[  491.339285] syncpt_thresh_cpu0_int_status(21) = 0x00000000
[  491.340196] imx219 33-0010: v4l2sd_stream++ enable 0
[  491.408312] imx219 33-0010: imx219_power_off: power off
[  491.408609] imx219 33-0010: camera_common_dpd_enable: csi 4
[  491.408644] imx219 33-0010: camera_common_dpd_enable: csi 5
[  491.408652] imx219 33-0010: camera_common_mclk_disable: disable MCLK

TRACE:
Trace1.log (70.2 KB)




Test with num_csi_lanes = <4>

nvidia@nvidia-desktop:~$ gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM),width=1280, height=720, framerate=180/1, format=NV12' ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 -v
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = false
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)NV12, framerate=(fraction)180/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)NV12, framerate=(fraction)180/1
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)180/1, format=(string)I420
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)180/1, format=(string)I420
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)180/1, format=(string)I420
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)180/1, format=(string)I420
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)180/1, format=(string)I420
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)180/1, format=(string)I420
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)NV12, framerate=(fraction)180/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)NV12, framerate=(fraction)180/1
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected...
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 1280 x 720 FR = 180.000018 fps Duration = 5555555 ; Analog Gain range min 1.000000, max 10.625000; Exposure Range min 13000, max 683709000;

GST_ARGUS: Running with following settings:
   Camera index = 0 
   Camera mode  = 0 
   Output Stream W = 1280 H = 720 
   seconds to Run    = 0 
   Frame Rate = 180.000018 
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
nvbuf_utils: dmabuf_fd -1 mapped entry NOT found
nvbuf_utils: Can not get HW buffer from FD... Exiting...
CONSUMER: ERROR OCCURRED
ERROR: from element /GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0: CANCELLED
Additional debug info:
Argus Error Status
Execution ended after 0:00:01.902179776
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
GST_ARGUS: Cleaning up
Setting pipeline to NULL ...
Freeing pipeline ...

DMESG

[   58.183580] imx219 33-0010: imx219_open:
[   58.185615] imx219 33-0010: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[   58.185663] imx219 33-0010: camera_common_dpd_disable: csi 4
[   58.185705] imx219 33-0010: camera_common_dpd_disable: csi 5
[   58.185712] imx219 33-0010: imx219_power_on: power on
[   58.210849] imx219 33-0010: imx219_power_off: power off
[   58.211092] imx219 33-0010: camera_common_dpd_enable: csi 4
[   58.211127] imx219 33-0010: camera_common_dpd_enable: csi 5
[   58.211134] imx219 33-0010: camera_common_mclk_disable: disable MCLK
[   58.597261] [RCE] Configuring ISP GoS.
[   58.597308] [RCE]   VM GOS[#0] addr=0xc2100000
[   58.597322] [RCE]   VM GOS[#1] addr=0xc2101000
[   58.597335] [RCE]   VM GOS[#2] addr=0xc2102000
[   58.597351] [RCE]   VM GOS[#3] addr=0xc2103000
[   58.597363] [RCE]   VM GOS[#4] addr=0xc2104000
[   58.597375] [RCE]   VM GOS[#5] addr=0xc2105000
[   58.597425] [RCE] WARNING: t194/isp5.c:901 [config_channel] "All error notifications not enabled: correctable=0x00 uncorrectable=0x00"
[   58.772876] imx219 33-0010: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[   58.772955] imx219 33-0010: camera_common_dpd_disable: csi 4
[   58.772996] imx219 33-0010: camera_common_dpd_disable: csi 5
[   58.773003] imx219 33-0010: imx219_power_on: power on
[   58.796989] imx219 33-0010: imx219_power_off: power off
[   58.797492] imx219 33-0010: camera_common_dpd_enable: csi 4
[   58.797531] imx219 33-0010: camera_common_dpd_enable: csi 5
[   58.797538] imx219 33-0010: camera_common_mclk_disable: disable MCLK
[   58.801893] imx219 33-0010: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[   58.801946] imx219 33-0010: camera_common_dpd_disable: csi 4
[   58.801987] imx219 33-0010: camera_common_dpd_disable: csi 5
[   58.801994] imx219 33-0010: imx219_power_on: power on
[   58.825603] imx219 33-0010: imx219_power_off: power off
[   58.825831] imx219 33-0010: camera_common_dpd_enable: csi 4
[   58.825889] imx219 33-0010: camera_common_dpd_enable: csi 5
[   58.825897] imx219 33-0010: camera_common_mclk_disable: disable MCLK
[   58.847084] imx219 33-0010: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[   58.847142] imx219 33-0010: camera_common_dpd_disable: csi 4
[   58.847176] imx219 33-0010: camera_common_dpd_disable: csi 5
[   58.847182] imx219 33-0010: imx219_power_on: power on
[   58.870671] imx219 33-0010: imx219_power_off: power off
[   58.870926] imx219 33-0010: camera_common_dpd_enable: csi 4
[   58.870960] imx219 33-0010: camera_common_dpd_enable: csi 5
[   58.870967] imx219 33-0010: camera_common_mclk_disable: disable MCLK
[   58.871972] imx219 33-0010: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[   58.872011] imx219 33-0010: camera_common_dpd_disable: csi 4
[   58.872044] imx219 33-0010: camera_common_dpd_disable: csi 5
[   58.872077] imx219 33-0010: imx219_power_on: power on
[   58.895652] imx219 33-0010: imx219_power_off: power off
[   58.895898] imx219 33-0010: camera_common_dpd_enable: csi 4
[   58.895932] imx219 33-0010: camera_common_dpd_enable: csi 5
[   58.895939] imx219 33-0010: camera_common_mclk_disable: disable MCLK
[   58.897617] imx219 33-0010: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[   58.897659] imx219 33-0010: camera_common_dpd_disable: csi 4
[   58.897692] imx219 33-0010: camera_common_dpd_disable: csi 5
[   58.897698] imx219 33-0010: imx219_power_on: power on
[   58.921312] imx219 33-0010: imx219_power_off: power off
[   58.921546] imx219 33-0010: camera_common_dpd_enable: csi 4
[   58.921582] imx219 33-0010: camera_common_dpd_enable: csi 5
[   58.921588] imx219 33-0010: camera_common_mclk_disable: disable MCLK
[   59.045202] [RCE] Configuring VI GoS.
[   59.045220] [RCE] VM GOS[#0] addr=0xc2100000
[   59.045232] [RCE] VM GOS[#1] addr=0xc2101000
[   59.045244] [RCE] VM GOS[#2] addr=0xc2102000
[   59.045255] [RCE] VM GOS[#3] addr=0xc2103000
[   59.045267] [RCE] VM GOS[#4] addr=0xc2104000
[   59.045278] [RCE] VM GOS[#5] addr=0xc2105000
[   59.045292] [RCE] vi5_hwinit: firmware CL2018101701 protocol version 2.2
[   59.298077] imx219 33-0010: camera_common_mclk_enable: enable MCLK with 24000000 Hz
[   59.298145] imx219 33-0010: camera_common_dpd_disable: csi 4
[   59.298183] imx219 33-0010: camera_common_dpd_disable: csi 5
[   59.298190] imx219 33-0010: imx219_power_on: power on
[   59.321767] imx219 33-0010: camera_common_try_fmt: size 1280 x 720
[   59.321783] imx219 33-0010: camera_common_try_fmt: use_sensor_mode_id 1
[   59.321796] imx219 33-0010: camera_common_s_fmt(12303) size 1280 x 720
[   59.321804] imx219 33-0010: camera_common_try_fmt: size 1280 x 720
[   59.321809] imx219 33-0010: camera_common_try_fmt: use_sensor_mode_id 1
[   59.321876] imx219 33-0010: imx219_set_frame_rate: val: 180000000e-6 [fps], frame_length: 562 [lines]
[   59.325293] [RCE] Configuring VI GoS.
[   59.325314] [RCE] VM GOS[#0] addr=0xc2100000
[   59.325321] [RCE] VM GOS[#1] addr=0xc2101000
[   59.325327] [RCE] VM GOS[#2] addr=0xc2102000
[   59.325332] [RCE] VM GOS[#3] addr=0xc2103000
[   59.325343] [RCE] VM GOS[#4] addr=0xc2104000
[   59.325348] [RCE] VM GOS[#5] addr=0xc2105000
[   59.328420] imx219 33-0010: imx219_set_gain: val: 95 (/16) [times], gain: 213
[   59.330062] imx219 33-0010: imx219_set_exposure: exposure limited by frame_length: 558 [lines]
[   59.330074] imx219 33-0010: imx219_set_exposure: val: 5555 [us], coarse_time: 558 [lines]
[   59.335510] imx219 33-0010: v4l2sd_stream++ enable 1
[   59.367692] imx219 33-0010: imx219_set_gain: val: 95 (/16) [times], gain: 213
[   59.368068] imx219 33-0010: imx219_set_exposure: exposure limited by frame_length: 558 [lines]
[   59.368086] imx219 33-0010: imx219_set_exposure: val: 5555 [us], coarse_time: 558 [lines]
[   59.368849] imx219 33-0010: imx219_set_frame_rate: val: 180000000e-6 [fps], frame_length: 562 [lines]
[   59.381198] [RCE] VI GOS[#0] set to VM GOS[4] base 0xc2104000
[   60.905188] tegra194-vi5 15c10000.vi: no reply from camera processor
[   60.905216] fence timeout on [ffffffc3c2d69240] after 1500ms
[   60.905227] name=[nvhost_sync:36], current value=0 waiting value=1
[   60.905236] ---- mlocks ----

[   60.905282] ---- syncpts ----
[   60.905320] id 17 (gv11b_511) min 5376 max 5376 refs 1 (previous client : )
[   60.905327] id 18 (gv11b_510) min 7 max 7 refs 1 (previous client : )
[   60.905333] id 19 (gv11b_509) min 209 max 209 refs 1 (previous client : gv11b_509)
[   60.905349] tegra194-vi5 15c10000.vi: vi capture get status failed
[   60.905351] id 28 (gv11b_507_user) min 29 max 0 refs 1 (previous client : )
[   60.905372] id 40 (gv11b_503) min 4 max 4 refs 1 (previous client : )
[   60.905407] id 41 (gv11b_502) min 3 max 3 refs 1 (previous client : )
[   60.905413] id 42 (gv11b_501) min 3 max 3 refs 1 (previous client : )
[   60.905419] id 43 (gv11b_500) min 3 max 3 refs 1 (previous client : )
[   60.905424] id 44 (gv11b_499) min 3 max 3 refs 1 (previous client : )

[   60.906321] ---- channels ----
[   60.906372] 
               channel 2 - 15820000.se

[   60.906377] NvHost basic channel registers:
[   60.906387] CMDFIFO_STAT_0:  00002040
[   60.906394] CMDFIFO_RDATA_0: 02000220
[   60.906403] CMDP_OFFSET_0:   00000000
[   60.906409] CMDP_CLASS_0:    00000000
[   60.906415] CHANNELSTAT_0:   00000000
[   60.906420] The CDMA sync queue is empty.

[   60.906433] 
               channel 3 - 15830000.se

[   60.906437] NvHost basic channel registers:
[   60.906444] CMDFIFO_STAT_0:  00002040
[   60.906451] CMDFIFO_RDATA_0: 0000c681
[   60.906459] CMDP_OFFSET_0:   00000000
[   60.906465] CMDP_CLASS_0:    00000000
[   60.906470] CHANNELSTAT_0:   00000000
[   60.906475] The CDMA sync queue is empty.

[   60.906487] 
               channel 4 - 15840000.se

[   60.906491] NvHost basic channel registers:
[   60.906498] CMDFIFO_STAT_0:  00002040
[   60.906504] CMDFIFO_RDATA_0: 03040890
[   60.906511] CMDP_OFFSET_0:   00000000
[   60.906517] CMDP_CLASS_0:    00000000
[   60.906522] CHANNELSTAT_0:   00000000
[   60.906527] The CDMA sync queue is empty.

[   60.906543] 
               ---- host general irq ----

[   60.906549] sync_intc0mask = 0x00000001
[   60.906556] sync_intmask = 0x50000003
[   60.906560] 
               ---- host syncpt irq mask ----

[   60.906565] 
               ---- host syncpt irq status ----

[   60.906572] syncpt_thresh_cpu0_int_status(0) = 0x00000000
[   60.906579] syncpt_thresh_cpu0_int_status(1) = 0x00000000
[   60.906586] syncpt_thresh_cpu0_int_status(2) = 0x00000000
[   60.906592] syncpt_thresh_cpu0_int_status(3) = 0x00000000
[   60.906600] syncpt_thresh_cpu0_int_status(4) = 0x00000000
[   60.906606] syncpt_thresh_cpu0_int_status(5) = 0x00000000
[   60.906613] syncpt_thresh_cpu0_int_status(6) = 0x00000000
[   60.906620] syncpt_thresh_cpu0_int_status(7) = 0x00000000
[   60.906625] syncpt_thresh_cpu0_int_status(8) = 0x00000000
[   60.906631] syncpt_thresh_cpu0_int_status(9) = 0x00000000
[   60.906638] syncpt_thresh_cpu0_int_status(10) = 0x00000000
[   60.906644] syncpt_thresh_cpu0_int_status(11) = 0x00000000
[   60.906650] syncpt_thresh_cpu0_int_status(12) = 0x00000000
[   60.906656] syncpt_thresh_cpu0_int_status(13) = 0x00000000
[   60.906662] syncpt_thresh_cpu0_int_status(14) = 0x00000000
[   60.906669] syncpt_thresh_cpu0_int_status(15) = 0x00000000
[   60.906675] syncpt_thresh_cpu0_int_status(16) = 0x00000000
[   60.906681] syncpt_thresh_cpu0_int_status(17) = 0x00000000
[   60.906687] syncpt_thresh_cpu0_int_status(18) = 0x00000000
[   60.906693] syncpt_thresh_cpu0_int_status(19) = 0x00000000
[   60.906699] syncpt_thresh_cpu0_int_status(20) = 0x00000000
[   60.906705] syncpt_thresh_cpu0_int_status(21) = 0x00000000
[   60.908894] imx219 33-0010: v4l2sd_stream++ enable 0
[   60.972177] imx219 33-0010: v4l2sd_stream++ enable 1
[   61.004050] imx219 33-0010: imx219_set_gain: val: 95 (/16) [times], gain: 213
[   61.004424] imx219 33-0010: imx219_set_exposure: exposure limited by frame_length: 558 [lines]
[   61.004433] imx219 33-0010: imx219_set_exposure: val: 5555 [us], coarse_time: 558 [lines]
[   61.005499] imx219 33-0010: imx219_set_frame_rate: val: 180000000e-6 [fps], frame_length: 562 [lines]
[   62.537165] tegra194-vi5 15c10000.vi: no reply from camera processor
[   62.537198] fence timeout on [ffffffc38417f240] after 1500ms
[   62.537211] name=[nvhost_sync:36], current value=0 waiting value=10
[   62.537249] ---- mlocks ----

[   62.537295] ---- syncpts ----
[   62.537327] tegra194-vi5 15c10000.vi: vi capture get status failed
[   62.537334] id 17 (gv11b_511) min 5379 max 5379 refs 1 (previous client : )
[   62.537340] id 18 (gv11b_510) min 7 max 7 refs 1 (previous client : )
[   62.537346] id 19 (gv11b_509) min 215 max 215 refs 1 (previous client : gv11b_509)
[   62.537361] id 28 (gv11b_507_user) min 29 max 0 refs 1 (previous client : )
[   62.537380] id 40 (gv11b_503) min 4 max 4 refs 1 (previous client : )
[   62.537385] id 41 (gv11b_502) min 3 max 3 refs 1 (previous client : )
[   62.537416] id 42 (gv11b_501) min 3 max 3 refs 1 (previous client : )
[   62.537422] id 43 (gv11b_500) min 3 max 3 refs 1 (previous client : )
[   62.537427] id 44 (gv11b_499) min 3 max 3 refs 1 (previous client : )

[   62.538313] ---- channels ----
[   62.538362] 
               channel 2 - 15820000.se

[   62.538367] NvHost basic channel registers:
[   62.538377] CMDFIFO_STAT_0:  00002040
[   62.538385] CMDFIFO_RDATA_0: 02000220
[   62.538394] CMDP_OFFSET_0:   00000000
[   62.538400] CMDP_CLASS_0:    00000000
[   62.538407] CHANNELSTAT_0:   00000000
[   62.538412] The CDMA sync queue is empty.

[   62.538424] 
               channel 3 - 15830000.se

[   62.538428] NvHost basic channel registers:
[   62.538435] CMDFIFO_STAT_0:  00002040
[   62.538441] CMDFIFO_RDATA_0: 0000c681
[   62.538449] CMDP_OFFSET_0:   00000000
[   62.538455] CMDP_CLASS_0:    00000000
[   62.538461] CHANNELSTAT_0:   00000000
[   62.538466] The CDMA sync queue is empty.

[   62.538477] 
               channel 4 - 15840000.se

[   62.538482] NvHost basic channel registers:
[   62.538488] CMDFIFO_STAT_0:  00002040
[   62.538494] CMDFIFO_RDATA_0: 03040890
[   62.538501] CMDP_OFFSET_0:   00000000
[   62.538507] CMDP_CLASS_0:    00000000
[   62.538513] CHANNELSTAT_0:   00000000
[   62.538517] The CDMA sync queue is empty.

[   62.538533] 
               ---- host general irq ----

[   62.538539] sync_intc0mask = 0x00000001
[   62.538546] sync_intmask = 0x50000003
[   62.538550] 
               ---- host syncpt irq mask ----

[   62.538555] 
               ---- host syncpt irq status ----

[   62.538562] syncpt_thresh_cpu0_int_status(0) = 0x00000000
[   62.538569] syncpt_thresh_cpu0_int_status(1) = 0x00000000
[   62.538576] syncpt_thresh_cpu0_int_status(2) = 0x00000000
[   62.538582] syncpt_thresh_cpu0_int_status(3) = 0x00000000
[   62.538587] syncpt_thresh_cpu0_int_status(4) = 0x00000000
[   62.538593] syncpt_thresh_cpu0_int_status(5) = 0x00000000
[   62.538599] syncpt_thresh_cpu0_int_status(6) = 0x00000000
[   62.538605] syncpt_thresh_cpu0_int_status(7) = 0x00000000
[   62.538611] syncpt_thresh_cpu0_int_status(8) = 0x00000000
[   62.538617] syncpt_thresh_cpu0_int_status(9) = 0x00000000
[   62.538624] syncpt_thresh_cpu0_int_status(10) = 0x00000000
[   62.538630] syncpt_thresh_cpu0_int_status(11) = 0x00000000
[   62.538636] syncpt_thresh_cpu0_int_status(12) = 0x00000000
[   62.538642] syncpt_thresh_cpu0_int_status(13) = 0x00000000
[   62.538648] syncpt_thresh_cpu0_int_status(14) = 0x00000000
[   62.538654] syncpt_thresh_cpu0_int_status(15) = 0x00000000
[   62.538660] syncpt_thresh_cpu0_int_status(16) = 0x00000000
[   62.538667] syncpt_thresh_cpu0_int_status(17) = 0x00000000
[   62.538673] syncpt_thresh_cpu0_int_status(18) = 0x00000000
[   62.538679] syncpt_thresh_cpu0_int_status(19) = 0x00000000
[   62.538685] syncpt_thresh_cpu0_int_status(20) = 0x00000000
[   62.538691] syncpt_thresh_cpu0_int_status(21) = 0x00000000
[   62.539730] imx219 33-0010: v4l2sd_stream++ enable 0
[   62.604144] imx219 33-0010: imx219_power_off: power off
[   62.604411] imx219 33-0010: camera_common_dpd_enable: csi 4
[   62.604449] imx219 33-0010: camera_common_dpd_enable: csi 5
[   62.604456] imx219 33-0010: camera_common_mclk_disable: disable MCLK

TRACE:
Trace2.log (38.5 KB)

hello Gorgo90,

is this sensor mode IMX219_MODE_1280x720_180FPS ever verified?
that error message indicate there’s no camera frames sending to VI engine.

Hi @JerryChang , what do you mean with verified?
It’s not a mode that comes out-of-the box with drivers but something I’m trying to get adding the new mode manually.

The datasheet shows these columns as example, and so far I couldn’t get more than 125/130fps (with 1280x720)

At the moment my mode is this one:

static imx219_reg imx219_mode_1280x720_180fps = {
// capture settings
{0x0157, 0x00}, // ANALOG_GAIN_GLOBAL[7:0]
{0x015A, 0x02}, // COARSE_INTEG_TIME[15:8]
{0x015B, 0x2E}, // 558 COARSE_INTEG_TIME[7:0]
// format settings
{0x0160, 0x02}, // FRM_LENGTH[15:8]
{0x0161, 0x32}, // 562 FRM_LENGTH[7:0] (Binning 3, then unit*2)
{0x0162, 0x0D}, // LINE_LENGTH[15:8]
{0x0163, 0x78}, // 3448 LINE_LENGTH[7:0]
{0x0164, 0x01}, // X_ADD_STA_A[11:8] (x_addr_start; x address of the top left corner of pixel data)
{0x0165, 0x68}, // 360 X_ADD_STA_A[7:0]
{0x0166, 0x0B}, // X_ADD_END_A[11:8] (x_addr_end; x address of the bottom right corner of pixel data)
{0x0167, 0x67}, // 2919 X_ADD_END_A[7:0]
{0x0168, 0x02}, // Y_ADD_STA_A[11:8] (y_addr_start; y address of the top left corner of pixel data)
{0x0169, 0x00}, // 512 Y_ADD_STA_A[7:0]
{0x016A, 0x07}, // Y_ADD_END_A[11:8] (y_addr_end; y address of the bottom right corner of pixel data)
{0x016B, 0x9F}, // 1951 Y_ADD_END_A[7:0]
{0x016C, 0x05}, // x_output_size[11:8] (width of image data output from the sensor module)
{0x016D, 0x00}, // 1280 x_output_size[7:0]
{0x016E, 0x02}, // y_output_size[11:8] (height of image data output from the sensor module)
{0x016F, 0xD0}, // 720 y_output_size[7:0]
{0x0170, 0x01}, // X_ODD_INC_A[2:0] (x_odd_inc; increment for odd pixels; 1 or 3)
{0x0171, 0x01}, // Y_ODD_INC_A[2:0] (y_odd_inc; increment for odd pixels; 1 or 3)
{0x0174, 0x03}, // BINNING_MODE_H_A (horizontal binning) (0 = none, 1 = 2x, 2 = 4x, 3 = 2x analog)
{0x0175, 0x03}, // BINNING_MODE_V_A (vertical binning) (0 = none, 1 = 2x, 2 = 4x, 3 = 2x analog)
{0x018C, 0x0A}, // CSI_DATA_FORMAT_A [15:8] (CSI data format; 0x0A0A = raw 10 bit, 0x0808 = raw 8 bit)
{0x018D, 0x0A}, // CSI_DATA_FORMAT_A [7:0]
// clocks dividers
{0x0301, 0x05}, // VTPXCK_DIV[4:0] (vt_pix_clk_div; video timing pixel clock divider value)
{0x0303, 0x01}, // VTSYCK_DIV[1:0] (vt_sys_clk_div; video timing system clock divider value)
{0x0304, 0x03}, // PREPLLCK_VT_DIV[7:0] (pre_pll_clk_vt_div or prepllck_vt_div; pre-PLL clock video timing system divider; values 1, 2, 3?; should probably be left alone)
{0x0305, 0x03}, // PREPLLCK_OP_DIV[7:0] (pre_pll_clk_op_div or prepllck_vt_div; pre-PLL clock output system divider value; values 1, 2, 3?; should probably be left alone)
{0x0306, 0x00}, // PLL_VT_MPY[10:8] (pll_vt_multiplier; PLL video timing system multiplier value)
{0x0307, 0x6D}, // PLL_VT_MPY[7:0]
{0x0309, 0x0A}, // OPPXCK_DIV[4:0] (op_pix_clk_div; output pixel clock divider value)
{0x030B, 0x01}, // OPSYCK_DIV[1:0] (op_sys_clk_div; output system clock divider value)
{0x030C, 0x00}, // PLL_OP_MPY[10:8] (pll_op_multiplier; PLL output system multiplier value)
{0x030D, 0xDA}, // PLL_OP_MPY[7:0]
{IMX219_TABLE_END, 0x00}
};

Do you see any obvious errors with it?

hello Gorgo90,

I am not a sensor vendor to review those register settings.

there’re two approaches you may try to narrow down the issue.

  1. please check with 2-lane/4-lane configuration. as I mentioned in comment #10. you should also survey whether your camera hardware is supported with 4-lane configuration.

  2. please boost all your clocks to isolate system configuration and test with v4l2 standard ioctl.

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