Jetson TX2 NX + SerDes single-link camera: stream starts, then repeated PXL_SOF syncpt timeout / CHANSEL_SHORT_FRAME / CHANSEL_NOMATCH

Hi NVIDIA team,

We are debugging a camera bring-up issue on Jetson TX2 NX in a single-link camera-SerDes setup.

In this setup, the camera is detected successfully, the SerDes link is partially established, and the sensor reaches stream start. We can also see early SOF-related events in the trace/logs. However, shortly after stream start, the capture falls into repeated PXL_SOF timeout and error recovery loops.

We would like to ask for guidance on how to interpret this trace pattern on TX2 NX, and which configuration area should be checked first.

Camera / SerDes Topology

  • Sensor: SC130GS

  • Link configuration: single-link test

  • Active link in this test: link0

  • CSI lane count: 2 lanes

  • Resolution: 1280x1024

  • Pixel format / bit depth: RAW8

  • Sensor output frame rate: 120fps

  • Deser output rate: 1.5Gbps/lane

What works

  • The sensor is detected successfully.
  • The SerDes driver reports link0 connected.
  • The sensor reaches stream start:
    sc130gs_start_streaming: stream started
  • We can see early stream/frame-related events such as:
    • CSIMUX_STREAM
    • FS
    • CHANSEL_PXL_SOF
    • vi4 got SOF syncpt buf[...]

What fails

  • Shortly after stream start, capture does not remain stable.
  • The first clear error is:
    tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
  • After that, the system repeatedly enters:
    • tegra_channel_error_recovery: attempting to reset the capture channel
    • csi4_stop_streaming
    • csi4_stream_check_status
    • csi4_cil_check_status 397
    • csi4_start_streaming
  • Trace also shows:
    • CHANSEL_FAULT_FE
    • CHANSEL_SHORT_FRAME
    • CHANSEL_NOMATCH

The following is a timeline of key events.

Time Source Original Log
111.145411 ftrace tegra_channel_open: vi-output, sc130gs 9-0025
111.148156 ftrace tegra_channel_set_power: sc130gs 9-0025 : 0x1
111.148163 ftrace camera_common_s_power: status : 0x1
111.148203 dmesg sc130gs 9-0025: sc130gs_power_on: power on
111.157436 dmesg aim946x 9-0048: aim946x_gpio_set_value: GPIO0 set value 0
111.164488 ftrace tegra_channel_set_power: 150c0000.nvcsi--1 : 0x1
111.164493 ftrace csi_s_power: enable : 0x1
111.165710 dmesg nvcsi 150c0000.nvcsi: csi_port: 2
111.166956 ftrace tegra_channel_capture_setup: vnc_id 0 W 1280 H 1024 fmt 10
111.166988 dmesg tegra-vi4 15700000.vi: Create Surface with imgW=1280, imgH=1024, memFmt=16
111.167078 ftrace tegra_channel_set_stream: enable : 0x1
111.168142 ftrace tegra_channel_set_stream: 150c0000.nvcsi--1 : 0x1
111.168145 ftrace csi_s_stream: enable : 0x1
111.168152 dmesg nvcsi 150c0000.nvcsi: csi4_start_streaming port_idx=0, lanes=2
111.168156 dmesg nvcsi 150c0000.nvcsi: csi4_stream_init
111.168166 dmesg nvcsi 150c0000.nvcsi: csi4_stream_config
111.168174 dmesg nvcsi 150c0000.nvcsi: csi4_stream_config (2) read VC0_DPCM_CTRL = 00000000
111.168177 dmesg nvcsi 150c0000.nvcsi: csi4_phy_config
111.168182 dmesg nvcsi 150c0000.nvcsi: NVCSI_CIL_CONFIG = 00000000
111.168188 dmesg nvcsi 150c0000.nvcsi: cil core clock: 204, csi clock: 375
111.168190 dmesg nvcsi 150c0000.nvcsi: csi settle time: 33, cil settle time: 7
111.168196 ftrace tegra_channel_set_stream: sc130gs 9-0025 : 0x1
111.185545 ftrace rtos_queue_peek_from_isr_failed: tstamp:3809535591 queue:0x0b4b4940
111.185549 ftrace rtcpu_start: tstamp:3809536548
111.185551 ftrace rtos_queue_send_from_isr_failed: tstamp:3809543728 queue:0x0b4a7698
111.185556 ftrace rtos_queue_send_failed: tstamp:3809544820 queue:0x0b4a7698
111.333550 dmesg sc130gs 9-0025: sc130gs_start_streaming: stream started
111.353548 ftrace rtcpu_vinotify_event: tstamp:3813954609 tag:CSIMUX_STREAM channel:0xff frame:0 vi_tstamp:3813954219 data:0x00000100
111.353552 ftrace rtcpu_vinotify_event: tstamp:3813955598 tag:CSIMUX_STREAM channel:0xff frame:48 vi_tstamp:3813955185 data:0x00000100
111.529566 dmesg video4linux video0: vi_notify_wait: vi4 got SOF syncpt buf[000000001f451abd]
111.529576 ftrace tegra_channel_capture_frame: sof:111.419959232
111.577548 ftrace rtcpu_vinotify_event: tstamp:3820866083 tag:FS channel:0x00 frame:23 vi_tstamp:3820865699 data:0x00000012
111.577551 ftrace rtcpu_vinotify_event: tstamp:3820877493 tag:CHANSEL_PXL_SOF channel:0x00 frame:23 vi_tstamp:3820876982 data:0x00000001
111.577552 ftrace rtcpu_vinotify_event: tstamp:3820877662 tag:ATOMP_FS channel:0x00 frame:23 vi_tstamp:3820876989 data:0x00000000
111.577552 ftrace rtcpu_vinotify_event: tstamp:3820881526 tag:CHANSEL_LOAD_FRAMED channel:0x04 frame:23 vi_tstamp:3820881152 data:0x08000000
111.733573 dmesg tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
111.739928 dmesg tegra-vi4 15700000.vi: tegra_channel_error_recovery: attempting to reset the capture channel
111.751139 dmesg nvcsi 150c0000.nvcsi: csi4_stop_streaming port_idx=0, lanes=2
111.751151 dmesg nvcsi 150c0000.nvcsi: NVCSI_CIL_CONFIG = 00000002
111.751161 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERROR_STATUS2VI_VC0 = 0x00000006
111.759862 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERROR_STATUS2VI_VC2 = 0x0000000a
111.768552 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) INTR_STATUS 0x0001a006
111.776376 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERR_INTR_STATUS 0x0001a006
111.784547 dmesg nvcsi 150c0000.nvcsi: csi4_cil_check_status 397
111.784554 dmesg nvcsi 150c0000.nvcsi: csi4_start_streaming port_idx=0, lanes=2
111.801560 ftrace rtcpu_vinotify_event: tstamp:3827754351 tag:CHANSEL_LOAD_FRAMED channel:0x04 frame:23 vi_tstamp:3827753333 data:0x08000000
111.801561 ftrace rtcpu_vinotify_event: tstamp:3827799387 tag:CHANSEL_FAULT_FE channel:0x04 frame:23 vi_tstamp:3827775070 data:0x00000001
111.801561 ftrace rtcpu_vinotify_event: tstamp:3827799590 tag:ATOMP_FE channel:0x00 frame:23 vi_tstamp:3827775073 data:0x00000000
112.001640 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERROR_STATUS2VI_VC0 = 0x00000006
112.010337 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERROR_STATUS2VI_VC2 = 0x0000000e
112.019029 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) INTR_STATUS 0x0001e006
112.026857 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERR_INTR_STATUS 0x0001e006
112.035029 dmesg nvcsi 150c0000.nvcsi: csi4_cil_check_status 397
112.035036 dmesg nvcsi 150c0000.nvcsi: csi4_start_streaming port_idx=0, lanes=2
112.081570 ftrace rtcpu_vinotify_event: tstamp:3837788748 tag:FS channel:0x00 frame:17 vi_tstamp:3837788361 data:0x00000012
112.081571 ftrace rtcpu_vinotify_event: tstamp:3837794596 tag:CHANSEL_PXL_SOF channel:0x00 frame:17 vi_tstamp:3837794085 data:0x00000001
112.081571 ftrace rtcpu_vinotify_event: tstamp:3837794764 tag:ATOMP_FS channel:0x00 frame:17 vi_tstamp:3837794094 data:0x00000000
112.081572 ftrace rtcpu_vinotify_event: tstamp:3837797634 tag:CHANSEL_LOAD_FRAMED channel:0x04 frame:17 vi_tstamp:3837797261 data:0x08000000
112.137544 ftrace rtcpu_vinotify_event: tstamp:3838985100 tag:CSIMUX_FRAME channel:0x00 frame:17 vi_tstamp:3838984358 data:0x00600062
112.137548 ftrace rtcpu_vinotify_event: tstamp:3838985309 tag:CHANSEL_SHORT_FRAME channel:0x04 frame:17 vi_tstamp:3838984358 data:0x00000001
112.137548 ftrace rtcpu_vinotify_event: tstamp:3838985449 tag:ATOMP_FE channel:0x00 frame:17 vi_tstamp:3838984361 data:0x00000000
112.273573 to 125.349869 dmesg tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11 / `tegra_channel_error_recovery: attempting to reset
the capture channel/csi4_stop_streaming port_idx=0, lanes=2/csi4_stream_check_status …/csi4_cil_check_status 397/csi4_start_streaming
port_idx=0, lanes=2`
115.893551 ftrace rtcpu_vinotify_event: tstamp:3956147902 tag:CHANSEL_PXL_EOF channel:0x00 frame:14 vi_tstamp:3956147339 data:0x03ff0002
115.893554 ftrace rtcpu_vinotify_event: tstamp:3956148020 tag:ATOMP_FRAME_DONE channel:0x00 frame:14 vi_tstamp:3956147353 data:0x00000000
115.893555 ftrace rtcpu_vinotify_event: tstamp:3956150503 tag:CHANSEL_FAULT channel:0x00 frame:14 vi_tstamp:3956150132 data:0x04000040
117.685582 ftrace rtcpu_vinotify_event: tstamp:4013057196 tag:CHANSEL_NOMATCH channel:0x84 frame:34560 vi_tstamp:4013056812 data:0x078003e9
122.309632 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERROR_STATUS2VI_VC0 = 0x0000000e
122.318329 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERROR_STATUS2VI_VC1 = 0x00000008
122.327024 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERROR_STATUS2VI_VC2 = 0x0000000a
122.335719 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERROR_STATUS2VI_VC2 = 0x0000000e
122.344413 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) INTR_STATUS 0x0001a006
122.352239 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERR_INTR_STATUS 0x0001a006
122.360413 dmesg nvcsi 150c0000.nvcsi: csi4_cil_check_status 397
122.577696 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERROR_STATUS2VI_VC0 = 0x0000000e
122.620289 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERR_INTR_STATUS 0x0001a086
124.342708 dmesg video4linux video0: vi_notify_wait: vi4 got SOF syncpt buf[000000001bd2493a]
125.339982 ftrace tegra_channel_close: vi-output, sc130gs 9-0025
125.417167 ftrace tegra_channel_set_stream: enable : 0x0
125.417168 ftrace tegra_channel_set_stream: sc130gs 9-0025 : 0x0
125.417923 dmesg nvcsi 150c0000.nvcsi: csi4_stop_streaming port_idx=0, lanes=2
125.417946 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERROR_STATUS2VI_VC0 = 0x00000006
125.426644 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERROR_STATUS2VI_VC1 = 0x00000008
125.435337 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERROR_STATUS2VI_VC2 = 0x0000000a
125.444032 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERROR_STATUS2VI_VC2 = 0x0000000e
125.452728 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) INTR_STATUS 0x00010004
125.460630 dmesg nvcsi 150c0000.nvcsi: csi4_stream_check_status (2) ERR_INTR_STATUS 0x00010004
125.468803 dmesg nvcsi 150c0000.nvcsi: csi4_cil_check_status 397
125.469963 ftrace tegra_channel_set_power: sc130gs 9-0025 : 0x0
125.469968 ftrace camera_common_s_power: status : 0x0
125.469972 dmesg sc130gs 9-0025: sc130gs_power_off: power off
125.475286 dmesg aim946x 9-0048: aim946x_gpio_set_value: GPIO0 set value 1
125.482340 ftrace tegra_channel_set_power: 150c0000.nvcsi--1 : 0x0
125.482344 ftrace csi_s_power: enable : 0x0
125.484272 ftrace tracing_mark_write: === STOP_CAMERA_CAPTURE ===

Attachments

Thanks in advance.

When the camera is directly connected to the SoC, the SoC can acquire images normally.

hello crispinashishkova996,

please refer to SerDes Pixel Clock, it’s setting of the frames received by the SoC are output from SerDes, instead from the sensors.

per your comments above, please review the SerDes chip configurations.

Hello JerryChang,

could I retrieve the MIPI packet header content on my TX2 NX, specifically DI (VC+DT), WC, and ECC?

hello crispinashishkova996,

please refer to TRM,
you may read the NVCSI registers, such as.. PF_CRC, PH_WC to obtain more CSI details.
for instance,
NVCSI_STREAM_0_PF_CRC_0, Byte Offset: 0x10084
NVCSI_STREAM_0_PH_WC_0, Byte Offset: 0x10088

according to [Table 2: System Address Map], NVCSI address start with 0x150c0000.
the address of PF_CRC = 0x150c0000 + 0x10084 = 0x150D0084
you should enable the camera stream, and dump its register values for confirmation.