Orin-nano_R35.6.0 get rawdata fail

HI nvidia,

When I use the command below on my Orin Nano R35.6.0,dmesg shows errors and sometimes even freezes.

cat /dev/video1

[ 539.904177] bwmgr API not supported
[ 542.427699] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[ 542.440469] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[ 542.450104] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 542.457862] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=0, csi_port=0
[ 542.468571] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 542.476328] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 0 vc- 1
[ 542.487201] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channe

nvidia@tegra-ubuntu:~/ldebug/26_07_14$ v4l2-ctl -d1 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture
[0]: ‘RGGB’ (8-bit Bayer RGRG/GBGB)
Size: Discrete 2025x240

Datalink:

Sensor—raw8—> GMSL2[Max96712+Max96717]—raw8—>OrinNano

dts setting:

			mode0 { 
				mclk_khz = "25000";
				num_lanes = "2";
				tegra_sinterface = "serial_a";
				vc_id = "0";
				phy_mode = "DPHY";
				discontinuous_clk = "no";
				dpcm_enable = "false";
				cil_settletime = "0";
				lane_polarity = "6";

				active_w = "2025";
				active_h = "240";
				mode_type = "bayer";
				pixel_phase = "rggb";
				csi_pixel_bit_depth = "8";
				readout_orientation = "0";
				line_length = "2028";
				inherent_gain = "1";
				mclk_multiplier = "1.1";
				pix_clk_hz = "28080000";
				serdes_pix_clk_hz = "250000000";

				gain_factor = "16";
				framerate_factor = "1000000";
				exposure_factor = "1000000";
				min_gain_val = "16"; /* 1.00x */
				max_gain_val = "16"; /* 1.00x */
				step_gain_val = "1";

dmesg_00.txt (77.7 KB)
tegra234-camera-rbpcv2-tm001_video0_4cam.txt (13.5 KB)

				default_gain = "16"; /* 1.00x */
				min_hdr_ratio = "1";
				max_hdr_ratio = "1";
				min_framerate = "1000000"; /* 1.0 fps */^[Footnotes]
				max_framerate = "10000000"; /* 10.0 fps */
				step_framerate = "1";
				default_framerate = "10000000"; /* 10.0 fps */
				min_exp_time = "13"; /* us */
				max_exp_time = "100000"; /* us */
				step_exp_time = "1";^[Footnotes]
				default_exp_time = "100000"; /* us */

				embedded_metadata_height = "0";
			};

Could you help check my DTS configuration? I’m not sure if the raw8 settings is correct.
The sensor output 2025x240@10fps ,DataType: Raw8.

Jetson camera framework need some parameter input please using v4l2-ctl to access the video like

v4l2-ctl --stream-mmap -c bypass_mode=0 to capture.

Not really.

When I used the “v4l2-ctl -d 1 --stream-mmap -c bypass_mode=0”, dmesg is still the same.

[ 9140.871979] bwmgr API not supported
[ 9143.567894] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[ 9143.580794] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[ 9143.590432] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 9143.598217] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=0, csi_port=0
[ 9143.608900] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 9143.617184] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
[ 9146.127800] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[ 9146.136999] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[ 9146.146646] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 9146.154405] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=0, csi_port=0
[ 9146.165109] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 9147.183818] tegra194-vi5 13e40000.host1x:vi0@15c00000: capture control message timed out
[ 9147.192209] tegra194-vi5 13e40000.host1x:vi0@15c00000: vi_capture_control_send_message: failed to send IVC control message
[ 9148.207776] tegra194-vi5 13e40000.host1x:vi0@15c00000: capture control message timed out
[ 9148.216239] tegra-camrtc-capture-vi tegra-capture-vi: vi capture setup failed
[ 9148.223618] tegra-camrtc-capture-vi tegra-capture-vi: fatal: error recovery failed
[ 9148.235731] bwmgr API not supported
[ 9149.263693] tegra194-vi5 13e40000.host1x:vi0@15c00000: capture control message timed out
[ 9149.275626] tegra194-vi5 13e40000.host1x:vi0@15c00000: csi_stream_release: failed to disable nvcsi tpg on stream 0 virtual channel 1

Get the trace log

sudo su
modprobe rtcpu_debug

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

Looks like NVCSI/VI didn’t receive any validate data from MIPI bus.

You may need have scope to probe the signal to confirm the output follow MIPI spec.

Thanks

I can’t directly measure the signal with either my module or the Orin-nano right now, so I want to first confirm whether there is a problem with my DTS configuration.

You are using devkit or carrier board?

For devkit suggest using CAM1 aka CSI-C to your driver.

I don’t have a devkit or carrier board.
I reconfigured it and changed the lane_number, and now the MIPI output is normal, but I still can’t get the rawData.
The latest trace_log is attached.


trace_log.txt (2.0 MB)

Is it a Line short error issue?
My sensor output is raw8 2025x240@10fps.

How??

Suppose you are connect the your sensor to devkit. Reconnect to CSI-C to try.

Okay.
I’m using an integrated box, and to check the signal, it needs to be disassembled.
I’ll try switching to CSI-C first…

Okay.
I’m using an integrated box, and confirming the signal requires disassembly.
I’ll first modify the configuration to CSI-C and give it a try…

Still not working.
BTW ,when i swtiched mode to 1300x2160@10fps raw12,the stream is normal.

I modified the GMSL2 configuration,and the /dev/video port output some data.But I still cannot get rawData.
Here are the latest dmesg and trace_log.


The current DTS configuration:

			mode0 { /* v001_MODE_2024x240_10FPS */
				mclk_khz = "25000";
				num_lanes = "2";
				tegra_sinterface = "serial_a";
				vc_id = "0";
				phy_mode = "DPHY";
				discontinuous_clk = "no";
				dpcm_enable = "false";
				cil_settletime = "0";
				lane_polarity = "6";

				active_w = "2025";
				active_h = "240";
				mode_type = "bayer";
				pixel_phase = "bggr";
				csi_pixel_bit_depth = "8";
				readout_orientation = "0";
				line_length = "2028";
				inherent_gain = "1";
				mclk_multiplier = "1.1";
				pix_clk_hz = "28080000";
				serdes_pix_clk_hz = "375000000";

				gain_factor = "16";
				framerate_factor = "1000000";
				exposure_factor = "1000000";
				min_gain_val = "16"; /* 1.00x */
				max_gain_val = "16"; /* 1.00x */
				step_gain_val = "1";
				default_gain = "16"; /* 1.00x */
				min_hdr_ratio = "1";
				max_hdr_ratio = "1";
				min_framerate = "1000000"; /* 1.0 fps */
				max_framerate = "10000000"; /* 10.0 fps */
				step_framerate = "1";
				default_framerate = "10000000"; /* 10.0 fps */
				min_exp_time = "13"; /* us */
				max_exp_time = "100000"; /* us */
				step_exp_time = "1";
				default_exp_time = "2495"; /* us */

				embedded_metadata_height = "0";
			};

The trace log shows PIXEL_LONG_LINE,

Confirm the size by v4l2-ctl --list-formats-ext and make sure the sensor output size the same by the driver reported.

It’s the same.

			mode0 { /* v001_MODE_2024x240_10FPS */
				mclk_khz = "25000";
				num_lanes = "2";
				tegra_sinterface = "serial_a";
				vc_id = "1";
				phy_mode = "DPHY";
				discontinuous_clk = "no";
				dpcm_enable = "false";
				cil_settletime = "0";
				lane_polarity = "6";

				active_w = "2048";
				active_h = "241";
				mode_type = "bayer";
				pixel_phase = "bggr";
				csi_pixel_bit_depth = "8";
				readout_orientation = "0";
				line_length = "2048";
				inherent_gain = "1";
				mclk_multiplier = "1.1";
				pix_clk_hz = "28080000";
				serdes_pix_clk_hz = "375000000";

				gain_factor = "16";
				framerate_factor = "1000000";
				exposure_factor = "1000000";
				min_gain_val = "16"; /* 1.00x */
				max_gain_val = "16"; /* 1.00x */
				step_gain_val = "1";
				default_gain = "16"; /* 1.00x */
				min_hdr_ratio = "1";
				max_hdr_ratio = "1";
				min_framerate = "1000000"; /* 1.0 fps */
				max_framerate = "10000000"; /* 10.0 fps */
				step_framerate = "1";
				default_framerate = "10000000"; /* 10.0 fps */
				min_exp_time = "13"; /* us */
				max_exp_time = "100000"; /* us */
				step_exp_time = "1";
				default_exp_time = "2495"; /* us */

				embedded_metadata_height = "0";
			};

CHANSEL_FAULT channel:0x23 frame:0 vi_tstamp:167503735648 data:0x0000000000f00202
CHANSEL_FAULT channel:0x23 frame:0 vi_tstamp:167503972192 data:0x0000000000f10240

From the latest trace_log, how should I determine the line number 0xf1 or 0xf0? And for these corresponding issues, how should they be fixed!
I didn’t add the embedded data.

PIXEL_EOF
PIXEL_RUNAWAY
PIXEL_SHORT_LINE

Please copy the trace log here instead of screenshot.

Thanks

trace_log.txt (315.5 KB)
dmesg.txt (107.4 KB)

Because frames are still reaching ATOMP_FRAME_DONE, the recurring fault is more consistent with a format/layout mismatch than with a dead CSI stream:

  • wrong active width/height
  • wrong LI/header interpretation
  • embedded-data presence/length mismatch
  • datatype / packetization mismatch
  • frame ending abnormally so VI has to force/interpret FE around bad data

What suggestions do you have on how I should adjust DTS?
My known information is 2025x240@10fps and data type: raw8.