Migrate from TX2 to Xavier NX

Hello.

We’re trying to migrate to Xavier NX from TX2.
We’re using ub954 deserializer, ub953 serializer and ar0233at sensor.
We have D3 board with ub960 for TX2 devkit with our cameras (ub953 and ar0233at) and all works fine (I usually get frames via v4l2-ctl).

But driver on Xavier NX doesn’t give any frames at all.

Related dmesg:
[ 1316.906682] ar0233at 2-0061: mode: 1 linear START
[ 1316.906686] ar0233at 2-0061: set stream via I2C
[ 1316.910146] [RCE] vi5_hwinit: firmware CL2018101701 protocol version 2.2
[ 1317.030093] tegra194-vi5 15c10000.vi: corr_err: discarding frame 1, flags: 32, err_data 160
[ 1317.129738] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 32, err_data 160
[ 1317.229349] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 160, err_data 160
[ 1317.328935] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 160, err_data 160
[ 1317.876566] ar0233at 2-0061: mode: 1 linear STOP
[ 1317.876575] ub960 2-0030: ar0233at notified end-of-stream, performing digital reset
[ 1317.880744] ar0233at 2-0061: set stream via I2C

Then I enabled trace information:
kworker/0:0-7843 [000] … 2374.576217: rtcpu_nvcsi_intr: tstamp:74629397845 class:GLOBAL type:PHY_INTR0 phy:0 cil:1 st:0 vc:0 status:0x00000110
kworker/0:0-7843 [000] … 2374.576217: rtcpu_nvcsi_intr: tstamp:74629397845 class:CORRECTABLE_ERR type:PHY_INTR phy:0 cil:0 st:0 vc:0 status:0x00000110
kworker/0:0-7843 [000] … 2374.576217: rtcpu_nvcsi_intr: tstamp:74629397845 class:CORRECTABLE_ERR type:PHY_INTR phy:0 cil:1 st:0 vc:0 status:0x00000110
kworker/0:0-7843 [000] … 2374.576218: rtcpu_nvcsi_intr: tstamp:74629398827 class:GLOBAL type:PHY_INTR0 phy:0 cil:0 st:0 vc:0 status:0x00000110
kworker/0:0-7843 [000] … 2374.576218: rtcpu_nvcsi_intr: tstamp:74629398827 class:GLOBAL type:PHY_INTR0 phy:0 cil:1 st:0 vc:0 status:0x00000110
kworker/0:0-7843 [000] … 2374.576218: rtcpu_nvcsi_intr: tstamp:74629398827 class:CORRECTABLE_ERR type:PHY_INTR phy:0 cil:0 st:0 vc:0 status:0x00000110
kworker/0:0-7843 [000] … 2374.576218: rtcpu_nvcsi_intr: tstamp:74629398827 class:CORRECTABLE_ERR type:PHY_INTR phy:0 cil:1 st:0 vc:0 status:0x00000110
kworker/0:0-7843 [000] … 2374.576218: rtcpu_nvcsi_intr: tstamp:74629399807 class:GLOBAL type:PHY_INTR0 phy:0 cil:0 st:0 vc:0 status:0x00000110
kworker/0:0-7843 [000] … 2374.576219: rtcpu_vinotify_error: tstamp:74629402782 tag:CSIMUX_FRAME channel:0x00 frame:20 vi_tstamp:74629075210 data:0x000000a0
kworker/0:0-7843 [000] … 2374.576219: rtcpu_vinotify_error: tstamp:74629403447 tag:CHANSEL_NOMATCH channel:0x01 frame:21 vi_tstamp:74629075483 data:0x00000589
kworker/0:0-7843 [000] … 2374.576219: rtcpu_vinotify_event: tstamp:74629486171 tag:CSIMUX_FRAME channel:0x00 frame:20 vi_tstamp:74629075210 data:0x000000a0
kworker/0:0-7843 [000] … 2374.576220: rtcpu_vinotify_event: tstamp:74629486332 tag:FS channel:0x00 frame:21 vi_tstamp:74629075210 data:0x00000010
kworker/0:0-7843 [000] … 2374.576220: rtcpu_vinotify_event: tstamp:74629486470 tag:CHANSEL_NOMATCH channel:0x01 frame:21 vi_tstamp:74629075483 data:0x00000589
kworker/0:0-7843 [000] … 2374.632048: rtos_queue_peek_from_isr_failed: tstamp:74630054947 queue:0x0bcbb8b8

Do I understand correctly that:

  1. rtcpu_nvcsi_intr: status:0x00000110 means FIFO overflow?
  2. CSIMUX_FRAME data:0x000000a0 means FS_FAULT?

And I couldn’t figure it out what exatly CHANSEL_NOMATCH 0x00000589 means.

Could you help me please?

Check below wiki for the error code.
And I would suggest consult with D3 to get the driver would be great.

https://elinux.org/Jetson/l4t/Camera_BringUp

Thank you for response!

This was the first resource I used, but I can’t find what “0x00000589” specifically means.
Also, I have the driver sources both nvidia and D3.
And I looked through Xavier NX TRM and nvidia sources for VI5, NVCSI/CSI5, rtcpu, etc.

UPD: We tried to move from TX2 devkit with D3 board to our Xavier NX board.

It could be the embedded_metadata_height incorrect in the device tree cause the problem.

The Camera and its settings haven’t changed, and the camera doesn’t send any embedded data.
Also, embedded_metadata_height=0 on TX2 and all works fine, and I can’t find that deserializer can add extra embedded data.

Is there a chance that Xavier NX and TX2 use this option differently?
And could you tell me what do these lines mean?
kworker/0:3-1740 [000] … 41.000370: rtcpu_nvcsi_intr: tstamp:1703327884 class:GLOBAL type:PHY_INTR0 phy:0 cil:0 st:0 vc:0 status:0x00000110
kworker/0:3-1740 [000] … 41.000374: rtcpu_nvcsi_intr: tstamp:1703327884 class:GLOBAL type:PHY_INTR0 phy:0 cil:1 st:0 vc:0 status:0x00000110
kworker/0:3-1740 [000] … 41.000375: rtcpu_nvcsi_intr: tstamp:1703327884 class:CORRECTABLE_ERR type:PHY_INTR phy:0 cil:0 st:0 vc:0 status:0x00000110
kworker/0:3-1740 [000] … 41.000376: rtcpu_nvcsi_intr: tstamp:1703327884 class:CORRECTABLE_ERR type:PHY_INTR phy:0 cil:1 st:0 vc:0 status:0x00000110

These lines appear too much frequently. It’s about 800 of them per frame.

It’s FIFO error could be the NVCSI/VI bandwidth cause the problem.
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
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

I did it and it works. Thank you!

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