Hi,
I’m working on porting a sensor driver for Jetson Nano to Jetson AGX Orin with an additional camera expansion board (Auvidea J20).
The sensor is recognized by the driver. However, when I run the following command:
v4l2-ctl --set-fmt-video=width=640,height=480,pixelformat=AR24 --stream-mmap --stream-count=1 -d /dev/video0 --stream-to=capture.raw
It just hangs. And if I inspect the dmesg I see the following:
[ 213.083964] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[ 213.096724] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[ 213.107163] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 213.114887] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=0, csi_port=0
[ 213.125550] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 213.133274] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 0 vc- 0
[ 213.144029] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
The trace log is just filled with lines like this:
rtcpu_nvcsi_intr: tstamp:236153229578 class:GLOBAL type:PHY_INTR0 phy:0 cil:0 st:0 vc:0 status:0x00000044
Any ideas as what could be wrong ? I think it’s likely to be an error in the device tree, but I’m not certain where.
Thanks
hello christian.johansen,
here shows PHY interrupts.
the error code 0x44 indicate there’re more than one bit error has detected on data-lane.
please refer to developer guide, Camera Driver Porting for reference.
BTW, may I also know which Jetpack release version you’re now using.
hello christian.johansen,
please do check porting guide to review camera drivers,
besides, you may also give it a try with below commands to boost all the VI/CSI/ISP clocks.
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
@JerryChang
There seems to be an issue with the driver. In the device tree i’ve specified:
pixel_t = "rgb_rgb88824";
v4l2-ctl gives:
user@jetson:~$ v4l2-ctl -d0 --list-formats
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture
[0]: 'AB24' (32-bit RGBA 8-8-8-8)
But I expect: AR24 (24-bit RGB 8-8-8).
VI did not support RGB888 memory formats due to it’ll need luminance formats.
please also refer to similar discussion thread, Topic 1067424 as see-also.
1 Like
Aha,
I’ve missed that AR24 is 32 BGRA-8-8-8-8. not 24 RGB 8-8-8.
@JerryChang
How come pixel_t = "rgb_rgb88824"; is set to AR24 - BGRA-8-8-8-8 for Jetson Nano, but AB24 - RGBA-8-8-8-8 for AGX Orin?
JerryChang:
hello christian.johansen,
please do check porting guide to review camera drivers,
besides, you may also give it a try with below commands to boost all the VI/CSI/ISP clocks.
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
Boosting the clocks did not help
hello christian.johansen,
it’s due to below update in JP-5.1.2 to revise TEGRA_VIDEO_FORMAT.
diff --git a/drivers/media/platform/tegra/camera/vi/vi5_formats.h b/drivers/media/platform/tegra/camera/vi/vi5_formats.h
*
@@ -118,7 +118,7 @@ static const struct tegra_video_format vi5_video_formats[] = {
/* RGB888 */
TEGRA_VIDEO_FORMAT(RGB888, 24, RGB888_1X24, 4, 1, T_A8R8G8B8,
- RGB888, ABGR32, "BGRA-8-8-8-8"),
+ RGB888, RGBA32, "RGBA-8-8-8-8"),
1 Like
@JerryChang
I’ve talked to the vendor of the camera, and the issue was resolved tweaking the link-frequencies in the device tree.
Many thanks for your help.
I’ve stumbled upon a new issue. But I started a new topic here: VI: Image capture error
system
Closed
May 7, 2024, 4:12am
15
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.