Integration of new camera sensor - No cameras available issue

Hello ,
we are developing a new driver for OMNI MIPI camera sensor so we planned to modify and use the existing ov5693 driver

we have read this documentation

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fcamera_sensor_prog.html%23

New sensor uses I2c@c240000
the input is through serial_a ,so we changed port index to 0 in csi and vi nodes in tegra194-camera-e3326-a00.dtsi.

Issue -1:
when flashed and executed gst-launch command it is showing no cameras available.

Issue -2 :
when “v4l2-ctl --stream-mmap --stream-count=3 -device /dev/video0” command is executed the device i getting restarted. When port index is changed to 2 then device is not getting restarted after executing the above command

Doubt -1 :
In tegra194-camera-e3326-a00.dtsi. file What is the difference between port @0 and portindex in vi@15c10000 node
and what is difference channel@0 and portindex in nvcsi@15a00000 node.

The port-index are the real CSI lane configure. The port@x and channel@x should be start from 0 for multiple cameras. Have a check for the programing guide.

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fcamera_sensor_prog.html%23

when this command is executed we are receiving a clock pulse from the camera module , after receiving the pulse the os is getting rebooted.

For this we used portindex = 0.(since we are connecting through serial_a we made port index = 0)

Any kernel error before restart?

No kernel errors are shown.

when “v4l2-ctl --stream-mmap --stream-count=3 -device /dev/video0” command is executed the os got freezed and restarted.(It is getting restarted after getting a clock pulse from the camera module)

Enabled tracelogs as well and it is empty after restarting.

Try if don’t configure the sensor streaming on to confirm if the bad MIPI signal cause the system reboot.
Maybe need probe the sensor output signal to make sure it’s match the MIPI spec.

Yeah will work on that and will update.

what about this issue

command is “gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! xvimagesink”

What might be the possible reason for this?

No camera should be the context of the tegra_camera_platform have problem.
Like maybe the devmane not match the driver bus or name.

modules {
module0 {
badge = “e3326_front_P5V27C”;
position = “rear”;
orientation = “1”;
drivernode0 {
/* Declare PCL support driver (classically known as guid) /
pcl_id = “v4l2_sensor”;
/
Driver v4l2 device name /
devname = “ov5693 2-0036”;
/
Declare the device-tree hierarchy to driver instance /
proc-device-tree = “/proc/device-tree/i2c@3180000/ov5693_c@36”;
};
drivernode1 {
/
Declare PCL support driver (classically known as guid) */
pcl_id = “v4l2_lens”;
proc-device-tree = “/proc/device-tree/e3326_lens_ov5693@P5V27C/”;
};
};
};

In devname it is written ov5693 2-0036

what does ‘2’ represent here?

It’s bus number.

We solved the No cameras Issue.

But we are not able to get the image from the camera.

V4l2 compliance test showed 1 Failed case before “Gst-launch-1.0 …” command
but after executing the Gst launch command it showed 4 Failed cases.
test VIDIOC_G/S_PARM: FAIL was the failed case before executing gst command.
I have attached the v4l2 compliance report.v4l2_compliance.txt (3.2 KB)

I have attached the tracelogs file as well.
tracelogs.txt (98.1 KB)

According to

tag:CSIMUX_FRAME channel:0x00 frame:44441 vi_tstamp:37013777639 data:0x000000a0

there’s FS fault in the streaming,
since we’re using different VI driver between TX1 and TX2.
could you please check your FPGA device to make sure there is a pair FS,FE in the MIPI signaling.
for example,
Tegra expect MIPI as below

[FS,FE]... [FS,FE]...

but your tracing messages looks like you had couple of FS in the beginning.

[FSFS,FE]... [FSFS,FE]...

What about the v4l2-report?
What does it say and why is it different before and after executing gst- command?

Don’t know why. Try this command before run the compliance test.

v4l2-ctl --set-ctrl bypass_mode=0

We were able to get the image from the camera but we have a glitch .
i have attached a image---- the rectangular box kind is moving all over the image and it is the glitch.

Could you tell what could be the possibility for that glitch?

Check the raw image if still present that tell the glitch is out from sensor.

We were able to get the image but we have 2 issues.

Issue 1:
After Flashing the xavier when we execute gst command we are getting corrupted image.
But when we remove the ov5693.ko file using rmmod and insert the ov5693 .ko present in the OUT folders after the build we were getting perfect image.

Issue 2:
when v4l2 command is executed the system is not getting rebooted but we are not getting any frames.

Could you please tell what can be the possible reasons for these issues

It’s could be the sensor driver problem but I can’t tell what going on may need more information for it.

here are the trace logs for v4l2- command

entries-in-buffer/entries-written: 18/18 #P:4

                           _-----=> irqs-off
                          / _----=> need-resched
                         | / _---=> hardirq/softirq
                         || / _--=> preempt-depth
                         ||| /     delay
        TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
           | |       |   ||||       |         |
    v4l2-ctl-12125 [003] ....  5110.215663: tegra_channel_open: vi-output, ov5693 1-0036
    v4l2-ctl-12125 [001] ....  5110.219781: tegra_channel_set_power: ov5693 1-0036 : 0x1
    v4l2-ctl-12125 [001] ....  5110.219810: camera_common_s_power: status : 0x1
    v4l2-ctl-12125 [001] ....  5110.221735: tegra_channel_set_power: 15a00000.nvcsi--1 : 0x1
    v4l2-ctl-12125 [001] ....  5110.221745: csi_s_power: enable : 0x1
    v4l2-ctl-12125 [001] ....  5110.236427: tegra_channel_set_stream: enable : 0x1
    v4l2-ctl-12125 [001] ....  5110.242770: tegra_channel_set_stream: 15a00000.nvcsi--1 : 0x1
    v4l2-ctl-12125 [001] ....  5110.242777: csi_s_stream: enable : 0x1
    v4l2-ctl-12125 [001] ....  5110.242780: tegra_channel_set_stream: ov5693 1-0036 : 0x1
    v4l2-ctl-12125 [002] ....  5120.963248: tegra_channel_close: vi-output, ov5693 1-0036
    v4l2-ctl-12125 [002] ....  5120.963259: tegra_channel_set_stream: enable : 0x0
    v4l2-ctl-12125 [002] ....  5120.963261: tegra_channel_set_stream: ov5693 1-0036 : 0x0
    v4l2-ctl-12125 [000] ....  5120.998185: tegra_channel_set_stream: 15a00000.nvcsi--1 : 0x0
    v4l2-ctl-12125 [000] ....  5120.998193: csi_s_stream: enable : 0x0
    v4l2-ctl-12125 [000] ....  5121.008463: tegra_channel_set_power: ov5693 1-0036 : 0x0
    v4l2-ctl-12125 [000] ....  5121.008486: camera_common_s_power: status : 0x0
    v4l2-ctl-12125 [000] ....  5121.008735: tegra_channel_set_power: 15a00000.nvcsi--1 : 0x0
    v4l2-ctl-12125 [000] ....  5121.008741: csi_s_power: enable : 0x0

What’s the v4l2-ctl command? Did --set-ctrl bypass_mode=0 include in the command line?