Nvidia thor developer kit can't receive camera sensor images

I am using the NVIDIA THOR developer kit to develop a GMSL camera. The GMSL adapter board was made by myself and works normally. Today I used a GMSL camera to output through the MAX96717F, then received by the MAX96712, and transmitted the data to THOR. The output rate of MAX96712 is 1.5G/lane (register: 0x0418, 0x2f), but THOR cannot receive the image. The camera resolution is 1600x1300/YUV422/30fps. The attachments include dmesg, trace, and dts. Could you help analyze the reason?

tegra264-camera-gmsl.txt (26.2 KB)

trace_log.txt (42.5 KB)

dmesg.txt (129.8 KB)

@ShaneCCC

The log shows doesn’t receive any data from the sensor.

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

Thanks

could you please check the configuration is wrong or not about the dts? how to set the value of serdes_pix_clk_hz, active_w, active_h ,etc..

Check the programing guide for the device tree config.

[ 2360.254833] tegra194-vi5 8181200000.host1x:vi0@8188400000: vi5_get_syncpt_gos_backing: id=110 addr=0x7ffc6e0000 gos_idx=255 gos_offset=0
[ 2360.254843] tegra194-vi5 8181200000.host1x:vi0@8188400000: vi5_get_syncpt_gos_backing: id=111 addr=0x7ffc6f0000 gos_idx=255 gos_offset=0
[ 2360.254847] tegra194-vi5 8181200000.host1x:vi0@8188400000: vi5_get_syncpt_gos_backing: id=112 addr=0x7ffc700000 gos_idx=255 gos_offset=0
[ 2360.270165] [RCE] VM0 deactivating.VM0 activating.VI ch[35] frame configuration: 1600x1300
[ 2360.270173] [RCE] left skip pixels=0 top skip lines=0
[ 2360.270176] [RCE] right crop pixels=1600 bottom crop lines=1300
[ 2360.270178] [RCE] pixel format=VI_PIXFMT_FORMAT_T_Y8_U8__Y8_V8 fmt=16
[ 2360.270180] [RCE] ===== NVCSI Stream Configuration =====
[ 2360.270182] [RCE] stream_id: PP 0, csi_port: PORT A
[ 2360.270184] [RCE] Brick: PHY 0, Mode: D-PHY
[ 2360.270187] [RCE] Partition: CIL A, LP bypass: Enabled, Lanes: 4
[ 2360.270189] [RCE] Clock information:
[ 2360.270192] [RCE] CIL rate: 270000000 Hz
[ 2360.270194] [RCE] MIPI clock rate: 750000 kHz
[ 2360.270196] [RCE] Physical rate: 1500000 Kbps
[ 2360.270198] [RCE] T_HS settle: autoconfigured, T_CLK settle: autoconfigured

[ 2360.270201] [RCE] NVCSI prod write phy: 0 cil: 0 reg=0x00011c1c mask=0x06000000 value=0x04000000 (was 0x04020100)
[ 2360.270204] [RCE] NVCSI prod write phy: 0 cil: 0 reg=0x00011c1c mask=0x06070000 value=0x00020000 (was 0x04020100)
[ 2360.270206] [RCE] NVCSI prod write phy: 0 cil: 0 reg=0x00011c58 mask=0x000f0000 value=0x000f0000 (was 0x000f0002)
[ 2360.270209] [RCE] NVCSI prod write phy: 0 cil: 0 reg=0x00011c68 mask=0xffffffff value=0x84208420 (was 0xa36183d9)
[ 2360.270211] [RCE] NVCSI prod write phy: 0 cil: 0 reg=0x00011c6c mask=0xffffffff value=0x84208420 (was 0x95abcd6f)
[ 2360.270213] [RCE] NVCSI prod write phy: 0 cil: 0 reg=0x00011c90 mask=0x0000f0fc value=0x00002040 (was 0x00000055)
[ 2360.270216] [RCE] NVCSI prod write phy: 0 cil: 0 reg=0x00011c94 mask=0x000000ff value=0x00000011 (was 0x00070000)
[ 2360.270218] [RCE] NVCSI prod write phy: 0 cil: 0 reg=0x00011cb4 mask=0x007f7f7f value=0x00404444 (was 0x00000000)
[ 2360.270220] [RCE] NVCSI prod write phy: 0 cil: 0 reg=0x00011cec mask=0x000000ff value=0x00000027 (was 0x00007411)
[ 2360.270223] [RCE] CSI port AB IDAC calibration result with freqband=0:
[ 2360.270225] [RCE] Trio A0 rxab=16 rxbc=19 rxca=15
[ 2360.270227] [RCE] Trio A1 rxab=20 rxbc=12 rxca=20
[ 2360.270229] [RCE] CSI port AB IDAC calibration result with freqband=0:
[ 2360.270231] [RCE] Trio B0 rxab=24 rxbc=24 rxca=27
[ 2360.270233] [RCE] Trio B1 rxab=23 rxbc=24 rxca=17
[ 2360.270235] [RCE] CSI port AB
[ 2360.270237] [RCE] AFE_HFGAIN_IO0_A=7
[ 2360.270239] [RCE] AFE_HFGAIN_IO1_A=7
[ 2360.270241] [RCE] AFE_HFGAIN_CLK_A=7
[ 2360.270243] [RCE] AFE_HFGAIN_IO0_B=7
[ 2360.270245] [RCE] AFE_HFGAIN_IO1_B=7
[ 2360.270246] [RCE] AFE_HFGAIN_CLK_B=7
[ 2360.271188] gmsl-camera 12-0010: camera_start_streaming: start streaming
[ 2360.731889] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 512, vc: 0
[ 2360.902778] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2360.969494] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2361.069600] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2361.098996] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 512, vc: 0
[ 2361.132411] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2361.169719] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2361.203101] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2361.236626] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2361.265860] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 512, vc: 0
[ 2361.303240] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2361.432829] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2361.470198] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2361.499559] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2361.670447] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2361.703780] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2361.736998] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2361.770530] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2361.803908] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2361.870684] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2361.937429] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2361.970833] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2362.037591] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2362.066925] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 512, vc: 0
[ 2362.100372] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2362.133693] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 512, vc: 0
[ 2362.171079] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2362.204372] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 512, vc: 0
[ 2362.271173] tegra-camrtc-capture-vi tegra-capture-vi: corr_err: discarding frame 0, flags: 0, err_data 131072, vc: 0
[ 2362.272307] gmsl-camera 12-0010: camera_stop_streaming: stop streaming
[ 2362.290170] [RCE] NVCSI prod write phy: 0 cil: 0 reg=0x00011c1c mask=0x06000000 value=0x04000000 (was 0x00020000)
[ 2362.290182] [RCE] NVCSI prod write phy: 0 cil: 0 reg=0x00011c1c mask=0x06070000 value=0x00020000 (was 0x04020000)
[ 2362.290186] [RCE] NVCSI prod write phy: 0 cil: 0 reg=0x00011c58 mask=0x000f0000 value=0x000f0000 (was 0x000f0002)
[ 2362.290189] [RCE] NVCSI prod write phy: 0 cil: 0 reg=0x00011c68 mask=0xffffffff value=0x84208420 (was 0xa3297ce1)
[ 2362.290192] [RCE] NVCSI prod write phy: 0 cil: 0 reg=0x00011c6c mask=0xffffffff value=0x84208420 (was 0x8e2fde31)
[ 2362.290195] [RCE] NVCSI prod write phy: 0 cil: 0 reg=0x00011c90 mask=0x0000f0fc value=0x00002040 (was 0x00002041)
[ 2362.290198] [RCE] NVCSI prod write phy: 0 cil: 0 reg=0x00011c94 mask=0x000000ff value=0x00000011 (was 0x00700011)
[ 2362.290201] [RCE] NVCSI prod write phy: 0 cil: 0 reg=0x00011cb4 mask=0x007f7f7f value=0x00404444 (was 0x00404444)
[ 2362.290203] [RCE] NVCSI prod write phy: 0 cil: 0 reg=0x00011cec mask=0x000000ff value=0x00000027 (was 0x00007427)
what’s the reason,there are two error codes,what should i do,i sure max96712 output the mipi clock

err_data here decodes as:

  • 512 = 0x00000200 = VI5_TD_STATUS_PIXEL_SHORT_LINE.
  • 131072 = 0x00020000 = VI5_TD_STATUS_PIXEL_INCOMPLETE.

So your log means VI is dropping frame 0 because it sees:

  • one frame/line arriving shorter than expected (512), and then
  • subsequent frames with incomplete pixel data (131072).

An older internal case describes 0x20000 as an illegal low-pixel enable pattern caused by corrupted or incomplete CSI byte-level data, which is consistent with the newer PIXEL_INCOMPLETE naming.

So the practical takeaway is: this points more to bad/incomplete incoming CSI payload or frame geometry mismatch.

Most likely places to check:

  • programmed width/height vs actual sensor output,
  • line length / word count,
  • embedded-data / LI handling,
  • CSI signal integrity if it is intermittent.

Can I see in the code exactly how much data was received?

No,

Maybe boost the clocks to try.

sudo su
echo 1 > /sys/kernel/debug/bpmp/debug/clk/vi/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/isp/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/isp/max_rate | tee  /sys/kernel/debug/bpmp/debug/clk/isp/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

If the MIPI signal exists but err_data is 64, what could be the problem?

The err_data 64 is decimal 64, that is 0x40. In VI CHANSEL_FAULT decode, 0x40 = PIXEL_RUNAWAY, meaning VI received more pixel lines than expected/programmed.