Jetson Orin Nano 8G Module And Two Max96724 Chips

Hello,Sir:

Currently, I am engaged in camera-related function development using the Orin Nano module and MAX96724 deserializer. The hardware development environment is as follows:

  1. One Jetson Orin Nano 8GB module;

  2. Two MAX96724 deserializer chips with 7-bit addresses 0x2e and 0x4f, respectively;

  3. Camera modules (including serializers and sensors), such as Sensing World’s AR0144 and Sensing World’s AR0233 (product URL: https://www.sensing-world.com/GMSL_CAMERA/).

The software development environment is as follows:

  1. JetPack 5.1.1 SDK;

  2. The GMSL framework: GitHub - analogdevicesinc/nvidia at gmsl/main .

The current probolem is:

  1. I can not get image data using this command:
    v4l2-ctl --set-fmt-video=width=1280,height=720 --stream-mmap --stream-count=10 -d /dev/video0

The log:
-stream-mmap --stream-count=10 -d /dev/video0t-fmt-video=width=1280,height=720 -
[ 67.866250] bwmgr API not supported
[ 70.383344] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[ 70.396081] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[ 70.406648] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 70.414381] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=0, csi_port=0
[ 70.425099] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 70.432823] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 0 vc- 0
[ 70.443647] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
[ 73.199531] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[ 73.208673] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[ 73.218661] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 73.226424] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=0, csi_port=0
[ 73.237101] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 73.244834] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 0 vc- 0
[ 73.255623] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
^C[ 75.791336] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[ 75.800475] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[ 75.810813] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 75.818543] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=0, csi_port=0
[ 75.829217] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 75.836944] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 0 vc- 0
[ 75.847732] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel


I provide the current status of the device:

root@lovol-desktop:/home/lovol# media-ctl -p -d /dev/media0
Media controller API version 5.10.104

Media device information

driver tegra-camrtc-ca
model NVIDIA Tegra Video Input Device
serial
bus info
hw revision 0x3
driver version 5.10.104

Device topology

  • entity 1: nvcsi0 (2 pads, 2 links)
    type V4L2 subdev subtype Unknown flags 0
    device node name /dev/v4l-subdev0
    pad0: Sink
    ← “des_0_ch_0”:0 [ENABLED]
    pad1: Source
    → “vi-output, cam_0”:0 [ENABLED]

  • entity 4: cam_0 (1 pad, 1 link)
    type V4L2 subdev subtype Sensor flags 0
    device node name /dev/v4l-subdev1
    pad0: Source
    [fmt:SBGGR12_1X12/1920x1280 field:none colorspace:srgb]
    → “ser_0_ch_0”:1 [ENABLED]

  • entity 6: ser_0_ch_0 (2 pads, 2 links)
    type V4L2 subdev subtype Unknown flags 0
    device node name /dev/v4l-subdev2
    pad0: Source
    [fmt:FIXED/0x0]
    → “des_0_ch_0”:1 [ENABLED]
    pad1: Sink
    ← “cam_0”:0 [ENABLED]

  • entity 9: des_0_ch_0 (2 pads, 2 links)
    type V4L2 subdev subtype Unknown flags 0
    device node name /dev/v4l-subdev3
    pad0: Source
    → “nvcsi0”:0 [ENABLED]
    pad1: Sink
    [fmt:FIXED/0x0]
    ← “ser_0_ch_0”:0 [ENABLED]

  • entity 12: vi-output, cam_0 (1 pad, 1 link)
    type Node subtype V4L flags 0
    device node name /dev/video0
    pad0: Sink
    ← “nvcsi0”:1 [ENABLED]

root@lovol-desktop:/home/lovol#



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

root@lovol-desktop:/home/lovol# cat /sys/kernel/debug/tracing/trace

tracer: nop

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

_-----=> irqs-off

/ _----=> need-resched

| / _—=> hardirq/softirq

|| / _–=> preempt-depth

||| / delay

TASK-PID CPU# |||| TIMESTAMP FUNCTION

| | | |||| | |

    v4l2-ctl-2070    [002] ....   996.488393: tegra_channel_open: vi-output, cam_0
    v4l2-ctl-2070    [002] ....   996.494974: tegra_channel_set_power: cam_0 : 0x1
    v4l2-ctl-2070    [002] ....   996.494985: camera_common_s_power: status : 0x1
    v4l2-ctl-2070    [002] ....   996.494996: tegra_channel_set_power: ser_0_ch_0 : 0x1
    v4l2-ctl-2070    [002] ....   996.494997: tegra_channel_set_power: des_0_ch_0 : 0x1
    v4l2-ctl-2070    [002] ....   996.494998: tegra_channel_set_power: nvcsi0 : 0x1
    v4l2-ctl-2070    [002] ....   996.495000: csi_s_power: enable : 0x1
    v4l2-ctl-2070    [002] ....   996.496034: tegra_channel_capture_setup: vnc_id 0 W 1920 H 1280 fmt c4
    v4l2-ctl-2070    [002] ....   996.505521: tegra_channel_set_stream: enable : 0x1
    v4l2-ctl-2070    [002] ....   996.513099: tegra_channel_set_stream: nvcsi0 : 0x1
    v4l2-ctl-2070    [002] ....   996.513101: csi_s_stream: enable : 0x1
    v4l2-ctl-2070    [002] ....   996.513514: tegra_channel_set_stream: des_0_ch_0 : 0x1
    v4l2-ctl-2070    [002] ....   996.514735: tegra_channel_set_stream: ser_0_ch_0 : 0x1
    v4l2-ctl-2070    [002] ....   996.514738: tegra_channel_set_stream: cam_0 : 0x1
 kworker/3:8-144     [003] ....   996.551342: rtcpu_string: tstamp:31846309650 id:0x04010000 str:"VM0 activating."
 kworker/3:8-144     [003] ....   996.551345: rtcpu_vinotify_event: tstamp:31846905376 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:1019086508480 data:0x719d580010000000
 kworker/3:8-144     [003] ....   996.551346: rtcpu_vinotify_event: tstamp:31846905668 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:1019086518272 data:0x0000000031000001
 kworker/3:8-144     [003] ....   996.551346: rtcpu_vinotify_event: tstamp:31846905961 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:1019086571744 data:0x719d550010000000
 kworker/3:8-144     [003] ....   996.551346: rtcpu_vinotify_event: tstamp:31846906202 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:1019086581696 data:0x0000000031000002

vi-output, cam_-2072 [005] … 999.211457: tegra_channel_capture_setup: vnc_id 0 W 1920 H 1280 fmt c4
kworker/3:8-144 [003] … 999.239318: rtcpu_vinotify_event: tstamp:31931379318 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:1021792725760 data:0x719d580010000000
kworker/3:8-144 [003] … 999.239319: rtcpu_vinotify_event: tstamp:31931379598 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:1021792777536 data:0x0000000031000001
kworker/3:8-144 [003] … 999.239319: rtcpu_vinotify_event: tstamp:31931379889 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:1021792793472 data:0x719d550010000000
kworker/3:8-144 [003] … 999.239320: rtcpu_vinotify_event: tstamp:31931380131 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:1021792847744 data:0x0000000031000002
vi-output, cam_-2072 [005] … 1002.023386: tegra_channel_capture_setup: vnc_id 0 W 1920 H 1280 fmt c4
kworker/3:8-144 [003] … 1002.039316: rtcpu_vinotify_event: tstamp:32019270433 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:1024604631552 data:0x719d580010000000
kworker/3:8-144 [003] … 1002.039318: rtcpu_vinotify_event: tstamp:32019270690 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:1024604683296 data:0x0000000031000001
kworker/3:8-144 [003] … 1002.039318: rtcpu_vinotify_event: tstamp:32019270994 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:1024604699232 data:0x719d550010000000
kworker/3:8-144 [003] … 1002.039318: rtcpu_vinotify_event: tstamp:32019271241 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:1024604753568 data:0x0000000031000002
vi-output, cam_-2072 [005] … 1004.839388: tegra_channel_capture_setup: vnc_id 0 W 1920 H 1280 fmt c4
kworker/3:8-144 [003] … 1004.895321: rtcpu_vinotify_event: tstamp:32106901306 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:1027420635968 data:0x719d580010000000
kworker/3:8-144 [003] … 1004.895323: rtcpu_vinotify_event: tstamp:32106901565 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:1027420687776 data:0x0000000031000001
kworker/3:8-144 [003] … 1004.895324: rtcpu_vinotify_event: tstamp:32106901853 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:1027420703584 data:0x719d550010000000
kworker/3:8-144 [003] … 1004.895324: rtcpu_vinotify_event: tstamp:32106902100 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:1027420757920 data:0x0000000031000002
v4l2-ctl-2070 [001] … 1005.444109: tegra_channel_close: vi-output, cam_0
vi-output, cam_-2072 [005] … 1007.431387: tegra_channel_capture_setup: vnc_id 0 W 1920 H 1280 fmt c4
v4l2-ctl-2070 [001] … 1007.441215: tegra_channel_set_stream: enable : 0x0
v4l2-ctl-2070 [001] … 1007.441218: tegra_channel_set_stream: cam_0 : 0x0
v4l2-ctl-2070 [001] … 1007.441227: tegra_channel_set_stream: ser_0_ch_0 : 0x0
v4l2-ctl-2070 [001] … 1007.441229: tegra_channel_set_stream: des_0_ch_0 : 0x0
v4l2-ctl-2070 [001] … 1007.443184: tegra_channel_set_stream: nvcsi0 : 0x0
v4l2-ctl-2070 [001] … 1007.443187: csi_s_stream: enable : 0x0
v4l2-ctl-2070 [001] … 1007.448630: tegra_channel_set_power: cam_0 : 0x0
v4l2-ctl-2070 [001] … 1007.448638: camera_common_s_power: status : 0x0
v4l2-ctl-2070 [001] … 1007.448647: tegra_channel_set_power: ser_0_ch_0 : 0x0
v4l2-ctl-2070 [001] … 1007.448648: tegra_channel_set_power: des_0_ch_0 : 0x0
v4l2-ctl-2070 [001] … 1007.448649: tegra_channel_set_power: nvcsi0 : 0x0
v4l2-ctl-2070 [001] … 1007.448650: csi_s_power: enable : 0x0
kworker/3:8-144 [003] … 1012.687572: rtcpu_string: tstamp:32351887752 id:0x04010000 str:“VM0 deactivating.”


dts file is:

tegra234-p3767-0003-p3768-0000-a0-gmsl-lovol-0.dts.txt (462.1 KB)

Please help me find out what caused the failure to retrieve the image. thanks!!

*** Please note that this reply is generated by LLM automatically ***

Based on the provided context, it appears that you are experiencing issues with capturing image data using the v4l2-ctl command on a Jetson Orin Nano module with a MAX96724 deserializer and camera modules. The error messages indicate that there are issues with the capture channel, VI channel, and CSI stream.

Here are some potential causes and suggestions for troubleshooting:

  1. CSI stream not found: The error message “CSI channel not found for stream 0 vc 0” suggests that the CSI stream is not properly configured or not found. Check the CSI configuration and ensure that the stream is properly set up.
  2. VI channel not found: The error message “VI channel not found for stream 0 vc 0” indicates that the VI channel is not properly configured or not found. Check the VI configuration and ensure that the channel is properly set up.
  3. Capture channel reset: The error message “successfully reset the capture channel” suggests that the capture channel is being reset, but it’s not clear why. Check the capture channel configuration and ensure that it’s properly set up.
  4. Timeout errors: The error messages “request timed out after 2500 ms” suggest that there are timeout issues with the capture process. Check the timeout values and adjust them if necessary.
  5. Device tree configuration: The error message “dts file is tegra234-p3767-0000-p3768-0000-a0-gmsl-lovol0.dts” suggests that the device tree configuration may be incorrect. Check the device tree configuration and ensure that it’s properly set up for the MAX96724 deserializer and camera modules.

To troubleshoot the issue, you can try the following:

  1. Check the device tree configuration and ensure that it’s properly set up for the MAX96724 deserializer and camera modules.
  2. Verify that the CSI stream and VI channel are properly configured and set up.
  3. Adjust the timeout values to see if it resolves the issue.
  4. Check the capture channel configuration and ensure that it’s properly set up.
  5. Try using a different camera module or deserializer to see if the issue is specific to the current setup.

In comparison to other potential issues, this problem seems to be related to the specific configuration of the Jetson Orin Nano module and the MAX96724 deserializer and camera modules. The error messages suggest that there are issues with the CSI stream, VI channel, and capture channel, which are specific to this setup.

In terms of the provided context, the relevant information is:

  • The Jetson Orin Nano module is being used with a MAX96724 deserializer and camera modules.
  • The v4l2-ctl command is being used to capture image data.
  • The error messages indicate issues with the CSI stream, VI channel, and capture channel.
  • The device tree configuration is mentioned, which suggests that it may be related to the issue.

Overall, the issue seems to be specific to the configuration of the Jetson Orin Nano module and the MAX96724 deserializer and camera modules, and troubleshooting should focus on verifying the configuration and setup of these components.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

hello lixiaodonglove7,

it looks there’s no validate frame packets on the CSI channel.
let me share you VI tracing logs with a success image capture as an example.
here must be one pair of CHANSEL_PXL_SOF/CHANSEL_PXL_EOF to indicate a frame has detected by VI engine.
afterwards, it’s ATOMP_FRAME_DONE to indicate it’s complete writing a frame to memory.
for instance,

rtcpu_vinotify_event: tstamp:4058867917 cch:-1 vi:0 tag:CSIMUX_STREAM channel:0x00 frame:0 vi_tstamp:129874754944 data:0x0000000000000001
rtcpu_vinotify_event: tstamp:4059206674 cch:0 vi:0 tag:ATOMP_FS channel:0x00 frame:1 vi_tstamp:129891804896 data:0x0000000800000000
rtcpu_vinotify_event: tstamp:4059206818 cch:0 vi:0 tag:CHANSEL_PXL_SOF channel:0x23 frame:1 vi_tstamp:129891808928 data:0x0000000000000001
rtcpu_vinotify_event: tstamp:4059206976 cch:0 vi:0 tag:VIFALC_ACTIONLST channel:0x23 frame:1 vi_tstamp:129891815424 data:0x0000000008020001
rtcpu_vinotify_error: tstamp:4060164160 cch:0 vi:0 tag:CSIMUX_FRAME channel:0x00 frame:1 vi_tstamp:129925171392 data:0x00000000000000a0
rtcpu_vinotify_event: tstamp:4060166846 cch:0 vi:0 tag:CHANSEL_PXL_EOF channel:0x23 frame:1 vi_tstamp:129923836800 data:0x0000000004370002
rtcpu_vinotify_event: tstamp:4060167015 cch:0 vi:0 tag:ATOMP_FRAME_DONE channel:0x23 frame:1 vi_tstamp:129923837312 data:0x0000000000000000

please share the disassembler text file, or, please share the original dtsi instead of diff.

tegra234-p3767-0003-p3768-0000-a0-gmsl-lovol-0.dts.txt (420.8 KB)

hello lixiaodonglove7,

it looks you’ve nv,mode-cmd to load the settings in the device tree.
please see-also developer guide, Device Properties, you may try adding set_mode_delay_ms to configure the maximum wait time for the first frame after capture starts, the unit is in milliseconds.

besides..
you may also give it a try with the commands to boost the clocks.
for instance

sudo su
echo 1 > /sys/kernel/debug/bpmp/debug/clk/vi/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/nvcsi/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/emc/mrq_rate_locked
cat /sys/kernel/debug/bpmp/debug/clk/vi/max_rate |tee /sys/kernel/debug/bpmp/debug/clk/vi/rate
cat /sys/kernel/debug/bpmp/debug/clk/nvcsi/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/nvcsi/rate
cat /sys/kernel/debug/bpmp/debug/clk/emc/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/emc/rate

1.Regarding the first suggestion, because we are using an integrated camera module, the sensor does not have an open control interface, so I cannot specifically control the sensor.


2.root@lovol-desktop:/# echo 1 > /sys/kernel/debug/bpmp/debug/clk/vi/mrq_rate_locked
root@lovol-desktop:/# echo 1 > /sys/kernel/debug/bpmp/debug/clk/nvcsi/mrq_rate_locked
root@lovol-desktop:/# echo 1 > /sys/kernel/debug/bpmp/debug/clk/emc/mrq_rate_locked
root@lovol-desktop:/# cat /sys/kernel/debug/bpmp/debug/clk/vi/max_rate |tee/sys/kernel/debug/bpmp/debug/clk/vi/rate
550400000
root@lovol-desktop:/# cat /sys/kernel/debug/bpmp/debug/clk/nvcsi/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/nvcsi/rate
214300000
root@lovol-desktop:/# cat /sys/kernel/debug/bpmp/debug/clk/emc/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/emc/rate
2133000000

hello lixiaodonglove7,

I’m also curious about your hardware connections,
it looks you’re using 2 SerDes chips for sending the sensor stream?
for instance
proc-device-tree = "/proc/device-tree/cam_i2cmux/i2c@0/gmsl-deserializer@0x2E/i2c-atr/i2c@0/gmsl-serializer@0x40/i2c-atr/i2c@0/lovol@0x10";

This is hardware connect block diagram.

In the block diagram above, the sensor in the camera module does not provide external interfaces and i2c addresses, so we do not need to handle it. The configuration related to the sensor part is retained in the dts, and I do not know if it will have an impact.

hello lixiaodonglove7,

I see.. please revise the port bindings, the node should be CAM0 → Max96724-0 → CSIA (vc=0)
you may see-also developer guide, Jetson Virtual Channel with GMSL Camera Framework for reference.

hello, JerryChang,

Currently, I can measure the MIPI signals of the max96724, but I can’t measure the MIPI clock signal. There seems to be a configuration issue on the SOC side. Could you provide some key modification assistance?

hello lixiaodonglove7,

you may see-also Orin’s reference driver which enable VC supports.
for instance,
$public_sources/kernel_src/hardware/nvidia/t23x/nv-public/overlay/tegra234-camera-p3762-a00.dtsi

hello,JerryChang,

We are currently using the 8Gb module of Jetson Orin Nano, and we have been using a 4-channel mode when developing the camera function.

I currently have a question that I don’t understand, and I hope you can help me answer it. I

n 4-channel mode:

4 lane(CSI0_D0_N/P, CSI0_D1_N/P,CSI1_D0_N/P,CSI1_D1_N/P)

2 CLK(CSI0_CLK_N/P, CSI1_CLK_N/P)

Which set is the clock using?


4 lane(CSI2_D0_N/P, CSI2_D1_N/P,CSI3_D0_N/P,CSI3_D1_N/P)

2 CLK(CSI2_CLK_N/P, CSI3_CLK_N/P)

Which set is the clock using?

thanks!

hello lixiaodonglove7,

please see-also Jetson Orin NX Series and Orin Nano Series Design Guide,
you may check [Table 10-3. CSI Configurations] for details.

Hello,JerryChange,

Currently, I want to start debugging a camera module, but after I have configured it, I found that there is no nvcsi entity when using the media-ctl command to view the corresponding topology, as shown below:

lovol@lovol-desktop:~$ media-ctl -p -d /dev/media0
Media controller API version 5.10.104

Media device information

driver tegra-camrtc-ca
model NVIDIA Tegra Video Input Device
serial
bus info
hw revision 0x3
driver version 5.10.104

Device topology

  • entity 1: nvcsi0 (2 pads, 2 links)
    type V4L2 subdev subtype Unknown flags 0
    device node name /dev/v4l-subdev0
    pad0: Sink
    ← “des_0_ch_0”:0 [ENABLED]
    pad1: Source
    → “vi-output, cam_0”:0 [ENABLED]

  • entity 4: cam_0 (1 pad, 1 link)
    type V4L2 subdev subtype Sensor flags 0
    device node name /dev/v4l-subdev1
    pad0: Source
    [fmt:UYVY8_1X16/1280x720 field:none colorspace:srgb]
    → “ser_0_ch_0”:1 [ENABLED]

  • entity 6: ser_0_ch_0 (2 pads, 2 links)
    type V4L2 subdev subtype Unknown flags 0
    device node name /dev/v4l-subdev2
    pad0: Source
    [fmt:FIXED/0x0]
    → “des_0_ch_0”:1 [ENABLED]
    pad1: Sink
    ← “cam_0”:0 [ENABLED]

  • entity 9: des_0_ch_0 (2 pads, 2 links)
    type V4L2 subdev subtype Unknown flags 0
    device node name /dev/v4l-subdev3
    pad0: Source
    → “nvcsi0”:0 [ENABLED]
    pad1: Sink
    [fmt:FIXED/0x0]
    ← “ser_0_ch_0”:0 [ENABLED]

  • entity 12: vi-output, cam_0 (1 pad, 1 link)
    type Node subtype V4L flags 0
    device node name /dev/video0
    pad0: Sink
    ← “nvcsi0”:1 [ENABLED]

lovol@lovol-desktop:~$


I don’t know where the problem lies, please help me solve it, thank you!

it’s hard to read the code, could you please share them as single text file for checking.

Hello,JerryChang,

Currently, we are just debugging one camera module, allowing the deserializer and SOC MIPI CSI to use 2-lane mode, with the SOC using CSI1.

this is the dts file。

jetson-gmsl-max96724.txt (6.3 KB)

hello lixiaodonglove7,

you should also adding vc-id to the sensor’s port definition.
for example,

&cam_0_i2c_bus {
	cam_0: sensing_ar0144@0x10 {
		...
		ports {
			port@0 {
				cam_0_out: endpoint {
+					vc-id = <0>;
					port-index = <1>;
					bus-width = <2>;

Hello,JerryChang,

I made changes according to your guidance. It feels like it didn’t achieve the desired effect.


this is the dts file:

jetson-max96724-2lane-model.txt (6.3 KB)


this is the error log:

jetson-gmsl-error-log.txt (3.7 KB)


this is media log:

root@lovol-desktop:/home/lovol# media-ctl -p -d /dev/media0
Media controller API version 5.10.104

Media device information

driver tegra-camrtc-ca
model NVIDIA Tegra Video Input Device
serial
bus info
hw revision 0x3
driver version 5.10.104

Device topology

  • entity 1: nvcsi0 (2 pads, 2 links)
    type V4L2 subdev subtype Unknown flags 0
    device node name /dev/v4l-subdev0
    pad0: Sink
    ← “des_0_ch_0”:0 [ENABLED]
    pad1: Source
    → “vi-output, cam_0”:0 [ENABLED]

  • entity 4: cam_0 (1 pad, 1 link)
    type V4L2 subdev subtype Sensor flags 0
    device node name /dev/v4l-subdev1
    pad0: Source
    [fmt:UYVY8_1X16/1280x720 field:none colorspace:srgb]
    → “ser_0_ch_0”:1 [ENABLED]

  • entity 6: ser_0_ch_0 (2 pads, 2 links)
    type V4L2 subdev subtype Unknown flags 0
    device node name /dev/v4l-subdev2
    pad0: Source
    [fmt:FIXED/0x0]
    → “des_0_ch_0”:1 [ENABLED]
    pad1: Sink
    ← “cam_0”:0 [ENABLED]

  • entity 9: des_0_ch_0 (2 pads, 2 links)
    type V4L2 subdev subtype Unknown flags 0
    device node name /dev/v4l-subdev3
    pad0: Source
    → “nvcsi0”:0 [ENABLED]
    pad1: Sink
    [fmt:FIXED/0x0]
    ← “ser_0_ch_0”:0 [ENABLED]

  • entity 12: vi-output, cam_0 (1 pad, 1 link)
    type Node subtype V4L flags 0
    device node name /dev/video0
    pad0: Sink
    ← “nvcsi0”:1 [ENABLED]

root@lovol-desktop:/home/lovol#


this is the trace log:

root@lovol-desktop:/home/lovol# cat /sys/kernel/debug/tracing/trace

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

_-----=> irqs-off

/ _----=> need-resched

| / _—=> hardirq/softirq

|| / _–=> preempt-depth

||| / delay

TASK-PID CPU# |||| TIMESTAMP FUNCTION

| | | |||| | |

    v4l2-ctl-1932    [004] ....   109.273200: tegra_channel_open: vi-output, cam_0
    v4l2-ctl-1932    [004] ....   109.276132: tegra_channel_set_power: cam_0 : 0x1
    v4l2-ctl-1932    [004] ....   109.276140: camera_common_s_power: status : 0x1
    v4l2-ctl-1932    [004] ....   109.276148: tegra_channel_set_power: ser_0_ch_0 : 0x1
    v4l2-ctl-1932    [004] ....   109.276149: tegra_channel_set_power: des_0_ch_0 : 0x1
    v4l2-ctl-1932    [004] ....   109.276150: tegra_channel_set_power: nvcsi0 : 0x1
    v4l2-ctl-1932    [004] ....   109.276153: csi_s_power: enable : 0x1
    v4l2-ctl-1932    [004] ....   109.276804: tegra_channel_capture_setup: vnc_id 0 W 1280 H 720 fmt 13
    v4l2-ctl-1932    [004] ....   109.283513: tegra_channel_set_stream: enable : 0x1
    v4l2-ctl-1932    [004] ....   109.287469: tegra_channel_set_stream: nvcsi0 : 0x1
    v4l2-ctl-1932    [004] ....   109.287471: csi_s_stream: enable : 0x1
    v4l2-ctl-1932    [004] ....   109.287891: tegra_channel_set_stream: des_0_ch_0 : 0x1
    v4l2-ctl-1932    [004] ....   109.292649: tegra_channel_set_stream: ser_0_ch_0 : 0x1
    v4l2-ctl-1932    [004] ....   109.292652: tegra_channel_set_stream: cam_0 : 0x1
 kworker/3:6-139     [003] ....   109.308949: rtcpu_string: tstamp:4100382740 id:0x04010000 str:"VM0 activating."
 kworker/3:6-139     [003] ....   109.308954: rtcpu_nvcsi_intr: tstamp:4100812414 class:GLOBAL type:PHY_INTR0 phy:0 cil:1 st:0 vc:0 status:0x0e000000
 kworker/3:6-139     [003] ....   109.308956: rtcpu_vinotify_event: tstamp:4101013672 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:131216480544 data:0x719d580010000000
 kworker/3:6-139     [003] ....   109.308956: rtcpu_vinotify_event: tstamp:4101013926 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:131216490304 data:0x0000000031000001
 kworker/3:6-139     [003] ....   109.308956: rtcpu_vinotify_event: tstamp:4101014209 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:131216581344 data:0x719d550010000000
 kworker/3:6-139     [003] ....   109.308957: rtcpu_vinotify_event: tstamp:4101014453 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:131216591232 data:0x0000000031000002

vi-output, cam_-1934 [001] … 111.905366: tegra_channel_capture_setup: vnc_id 0 W 1280 H 720 fmt 13
kworker/3:6-139 [003] … 111.940755: rtcpu_vinotify_event: tstamp:4182937027 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:133838663744 data:0x719d580010000000
kworker/3:6-139 [003] … 111.940756: rtcpu_vinotify_event: tstamp:4182937287 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:133838721280 data:0x0000000031000001
kworker/3:6-139 [003] … 111.940757: rtcpu_vinotify_event: tstamp:4182937579 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:133838738944 data:0x719d550010000000
kworker/3:6-139 [003] … 111.940757: rtcpu_vinotify_event: tstamp:4182937823 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:133838799264 data:0x0000000031000002
vi-output, cam_-1934 [001] … 114.720765: tegra_channel_capture_setup: vnc_id 0 W 1280 H 720 fmt 13
kworker/3:6-139 [003] … 114.740751: rtcpu_vinotify_event: tstamp:4270828710 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:136654106048 data:0x719d580010000000
kworker/3:6-139 [003] … 114.740752: rtcpu_vinotify_event: tstamp:4270828969 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:136654148704 data:0x0000000031000001
kworker/3:6-139 [003] … 114.740752: rtcpu_vinotify_event: tstamp:4270829260 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:136654166336 data:0x719d550010000000
kworker/3:6-139 [003] … 114.740753: rtcpu_vinotify_event: tstamp:4270829509 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:136654226688 data:0x0000000031000002
vi-output, cam_-1934 [001] … 117.536778: tegra_channel_capture_setup: vnc_id 0 W 1280 H 720 fmt 13
kworker/3:6-139 [003] … 117.548756: rtcpu_vinotify_event: tstamp:4358447549 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:139470105984 data:0x719d580010000000
kworker/3:6-139 [003] … 117.548757: rtcpu_vinotify_event: tstamp:4358447809 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:139470148672 data:0x0000000031000001
kworker/3:6-139 [003] … 117.548758: rtcpu_vinotify_event: tstamp:4358448104 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:139470166304 data:0x719d550010000000
kworker/3:6-139 [003] … 117.548758: rtcpu_vinotify_event: tstamp:4358448351 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:139470226656 data:0x0000000031000002
vi-output, cam_-1934 [001] … 120.352791: tegra_channel_capture_setup: vnc_id 0 W 1280 H 720 fmt 13
kworker/3:6-139 [003] … 120.404756: rtcpu_vinotify_event: tstamp:4446449372 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:142286099488 data:0x719d580010000000
kworker/3:6-139 [003] … 120.404757: rtcpu_vinotify_event: tstamp:4446449636 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:142286156992 data:0x0000000031000001
kworker/3:6-139 [003] … 120.404757: rtcpu_vinotify_event: tstamp:4446449924 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:142286174656 data:0x719d550010000000
kworker/3:6-139 [003] … 120.404758: rtcpu_vinotify_event: tstamp:4446450171 cch:0 vi:0 tag:VIFALC_TDSTATE channel:0x23 frame:0 vi_tstamp:142286239680 data:0x0000000031000002
v4l2-ctl-1932 [000] … 121.355300: tegra_channel_close: vi-output, cam_0
vi-output, cam_-1934 [001] … 122.944772: tegra_channel_capture_setup: vnc_id 0 W 1280 H 720 fmt 13
v4l2-ctl-1932 [000] … 122.954407: tegra_channel_set_stream: enable : 0x0
v4l2-ctl-1932 [000] … 122.954409: tegra_channel_set_stream: cam_0 : 0x0
v4l2-ctl-1932 [000] … 122.954418: tegra_channel_set_stream: ser_0_ch_0 : 0x0
v4l2-ctl-1932 [000] … 122.954420: tegra_channel_set_stream: des_0_ch_0 : 0x0
v4l2-ctl-1932 [000] … 122.955689: tegra_channel_set_stream: nvcsi0 : 0x0
v4l2-ctl-1932 [000] … 122.955692: csi_s_stream: enable : 0x0
v4l2-ctl-1932 [000] … 122.960015: tegra_channel_set_power: cam_0 : 0x0
v4l2-ctl-1932 [000] … 122.960021: camera_common_s_power: status : 0x0
v4l2-ctl-1932 [000] … 122.960028: tegra_channel_set_power: ser_0_ch_0 : 0x0
v4l2-ctl-1932 [000] … 122.960029: tegra_channel_set_power: des_0_ch_0 : 0x0
v4l2-ctl-1932 [000] … 122.960030: tegra_channel_set_power: nvcsi0 : 0x0
v4l2-ctl-1932 [000] … 122.960032: csi_s_power: enable : 0x0
kworker/3:6-139 [003] … 122.980772: rtcpu_nvcsi_intr: tstamp:4527763156 class:GLOBAL type:PHY_INTR0 phy:0 cil:1 st:0 vc:0 status:0x0e000000
kworker/3:6-139 [003] … 129.084955: rtcpu_string: tstamp:4717620306 id:0x04010000 str:“VM0 deactivating.”
root@lovol-desktop:/home/lovol#

thanks for your reply!

hello lixiaodonglove7,

here shows PHY interrupts,
this is due to DPHY deskew calibration not complete, it happened when the calibration sequence length is not long enough.
please give it a try to configure cil_settletime, and please also review the serdes_pix_clk_hz settings.

Hi Jerry Chang:

Currently, the CSI output CLK of my max96724 is configured to 800MHZ, data is YUV422@8bit,1280x720@30fps。

pix_clk_hz = 1280x720x30=27,648,000;

serdes_link_freq=800000000x2/8=200000000;

this is right?