OV10640 Camera on Xavier Nx

Hi Team,

I am trying to bring up the OV10640 camera module in the Xavier Nx board with the FPD Link iii interface (UB954 and UB953).

The SerDes and camera drivers are loading and the /dev/video0 video node is getting registered sucessfully. When I issued the streaming command I got the following error.

$ gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! nvvidconv ! nveglglessink

[ +17.488878] [RCE] WARNING: t194/isp5.c:901 [config_channel] “All error notifications not enabled: correctable=0”

$ v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=BG12 --set-ctrl bypass_mode=0 --stream0

[Jan20 12:19] ov10640 1-0040: mode: 0 linear START
[ +0.000014] ub960 1-003d: ov10640 started a new stream; 1 active streams
[ +0.025328] [RCE] vi5_hwinit: firmware CL2018101701 protocol version 2.2
[ +2.479975] tegra194-vi5 15c10000.vi: no reply from camera processor
[ +0.000151] tegra194-vi5 15c10000.vi: uncorr_err: request timed out after 2500 ms
[ +0.000173] tegra194-vi5 15c10000.vi: err_rec: attempting to reset the capture channel
[ +0.002284] tegra194-vi5 15c10000.vi: err_rec: successfully reset the capture channel

Could you please give any points to debug this issue?

Regards,
Ajith.

Get the trace log to get more information.

Hi @ShaneCCC

Thanks for your response.

I have enabled more logs and I checked the camera preview.
I got the following logs.

[Jan21 15:59] [RCE] Configuring ISP GoS.
[ +0.000010] [RCE] VM GOS[#0] addr=0xc2100000
[ +0.000006] [RCE] VM GOS[#1] addr=0xc2101000
[ +0.000005] [RCE] VM GOS[#2] addr=0xc2102000
[ +0.000006] [RCE] VM GOS[#3] addr=0xc2103000
[ +0.000005] [RCE] VM GOS[#4] addr=0xc2104000
[ +0.000006] [RCE] VM GOS[#5] addr=0xc2105000
[ +0.000011] [RCE] WARNING: t194/isp5.c:901 [config_channel] “All error notifications not enabled: correctable=0x00 uncorrectable=0x00”

[Jan21 16:00] ov10640 1-0040: mode: 0 linear START
[ +0.000010] ub960 1-003d: ov10640 started a new stream; 1 active streams
[ +0.018461] [RCE] Configuring VI GoS.
[ +0.000010] [RCE] VM GOS[#0] addr=0xc2100000
[ +0.000005] [RCE] VM GOS[#1] addr=0xc2101000
[ +0.000005] [RCE] VM GOS[#2] addr=0xc2102000
[ +0.000005] [RCE] VM GOS[#3] addr=0xc2103000
[ +0.000005] [RCE] VM GOS[#4] addr=0xc2104000
[ +0.000005] [RCE] VM GOS[#5] addr=0xc2105000
[ +0.000008] [RCE] vi5_hwinit: firmware CL2018101701 protocol version 2.2
[ +0.000010] [RCE] VI GOS[#0] set to VM GOS[4] base 0xc2104000
[ +2.591913] tegra194-vi5 15c10000.vi: no reply from camera processor
[ +0.000182] tegra194-vi5 15c10000.vi: uncorr_err: request timed out after 2500 ms
[ +0.000149] tegra194-vi5 15c10000.vi: err_rec: attempting to reset the capture channel
[ +0.004545] tegra194-vi5 15c10000.vi: err_rec: successfully reset the capture channel
[ +0.054288] [RCE] Configuring VI GoS.
[ +0.000011] [RCE] VM GOS[#0] addr=0xc2100000
[ +0.000007] [RCE] VM GOS[#1] addr=0xc2101000
[ +0.000007] [RCE] VM GOS[#2] addr=0xc2102000
[ +0.000006] [RCE] VM GOS[#3] addr=0xc2103000
[ +0.000006] [RCE] VM GOS[#4] addr=0xc2104000
[ +0.000006] [RCE] VM GOS[#5] addr=0xc2105000
[ +0.196830] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 32, err_data 545
[ +0.043418] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 32, err_data 161
[ +0.097282] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 32, err_data 161
[ +0.032474] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 32, err_data 161
[ +0.053798] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 32, err_data 545
[ +0.064830] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 32, err_data 545
[ +0.108287] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 32, err_data 161
[ +0.032453] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 32, err_data 161
[ +0.053833] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 32, err_data 545
[ +0.053820] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 32, err_data 545
[ +0.097305] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 32, err_data 545
[ +0.043376] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 32, err_data 161
[ +2.724458] tegra194-vi5 15c10000.vi: no reply from camera processor
[ +0.000219] tegra194-vi5 15c10000.vi: uncorr_err: request timed out after 2500 ms
[ +0.000205] tegra194-vi5 15c10000.vi: err_rec: attempting to reset the capture channel
[ +0.002679] tegra194-vi5 15c10000.vi: err_rec: successfully reset the capture channel
[ +0.001076] ov10640 1-0040: mode: 0 linear STOP
[ +0.000038] ub960 1-003d: ov10640 stopped a stream; 0 active streams
[ +0.000008] ub960 1-003d: ov10640 notified end-of-stream, performing digital reset
[ +0.031773] [RCE] Configuring VI GoS.
[ +0.000010] [RCE] VM GOS[#0] addr=0xc2100000
[ +0.000006] [RCE] VM GOS[#1] addr=0xc2101000
[ +0.000005] [RCE] VM GOS[#2] addr=0xc2102000
[ +0.000005] [RCE] VM GOS[#3] addr=0xc2103000
[ +0.000005] [RCE] VM GOS[#4] addr=0xc2104000
[ +0.000005] [RCE] VM GOS[#5] addr=0xc2105000

And I have uploaded the trace logs in the following file trace.txt.

Thanks,
Ajith.
trace.txt (116.6 KB)

There’s short frame from the trace log. It tell the output size didn’t as expected.

 kworker/1:2-1146  [001] ....   208.555665: rtcpu_vinotify_event: tstamp:6864067276 tag:CHANSEL_SHORT_FRAME channel:0x02 frame:65429 vi_tstamp:6864062715 data:0x01000000

Hi @ShaneCCC

What does ‘Output size’ mean? Frame size or any other frame properties.
The resolution of the sensor is 1280x1080 and the framerate is 60 fps.
I have attached the devicetree in the following file fpd-ov10640.dtsi
Could you please tell me which Property of the sensor I should look at?

Regards,
Ajith.fpd-ov10640.dtsi (4.4 KB)

Short frame tell the sensor output lines less than 1080, you can reduce the active_h one by one to narrow down until the short frame disappear.

Hi @ShaneCCC

I changed active_w and active_h as 640x480 and tested the sensor. Still, I am getting the same error. I tried with some random active_h also. Do I need to change resolution or active_h in any other place like driver?
logs.txt (22.6 KB) trace.txt (236.7 KB)

Regards,
Ajith.

Maybe need to change the resolution in the table of the .h file,
Have v4l2-ctl --list-formats-ext to confirm your modify is applied.

Hi @ShaneCCC

I had some wrong configurations in the sensor dts file. So I configured it correctly. Now I am not getting the SHORT FRAME error.
Previously When I issued the Camera preview command I got “No camera found” as an output. But now the preview command is running and it doesn’t give any error prints but it gives a blank screen in the preview window.
Could you give some pointers to debug this issue.

I have attached the logs and trace prints in the following files.
trace.txt (159.2 KB) logs.txt (2.2 KB)

Regards,
Ajith.

The trace log show the err_intr_stat_pd_crc_err_vc0 from the REG NVCSI_STREAM_0_INTR_STATUS_VC0_0.
It could be the sensor output package didn’t include the crc package.

kworker/1:0-18 [001] … 58.062165: rtcpu_nvcsi_intr: tstamp:2205405514 class:CORRECTABLE_ERR type:STREAM_VC phy:0 cil:0 st:1 vc:0 status:0x00000004

Hi @ShaneCCC

I did some debugging on the sensor side. I have verified the sensor register configurations and reset/power-on sequences.
But still, I don’t get the sensor preview. I have attached the trace logs in the following file.trace.txt (141.8 KB)

Is there any document/procedure available to analyze the trace logs?
Could you explain how to identify the issue using these trace logs?

Thanks,
Ajith.

The trace log show NVCSI/VI didn’t receive any validate data from the MIPI bus. You may need to probe the MIPI signal to confirm it. Below link have some trace information can be reference.

https://elinux.org/Jetson_TX2_Camera_BringUp

Hi @ShaneCCC

I probed the CSI lines connected between the deserializer and the processor. When I issued the preview commands the CSI clock was going high and data also coming.
I couldn’t probe the serializer to sensor the CSI connection.

Regards,
Ajith.