NVCSI Physical Interrupts - Unable to get working video through nvarguscamerasrc

Currently doing bring-up of our custom Xavier board to produce video from a IMX377 sensor. When recording through gstreamer (gst-launch-1.0 nvarguscamerasrc | fakesink) I see the following logs in the trace:

 kworker/0:1-787   [000] ....    70.386619: rtcpu_string: tstamp:2690857768 id:0x04010000 str:"Configuring VI GoS.
"
 kworker/0:1-787   [000] ....    70.386659: rtcpu_string: tstamp:2690857957 id:0x04010000 str:"VM GOS[#0] addr=0xc2100000
"
 kworker/0:1-787   [000] ....    70.386664: rtcpu_string: tstamp:2690858219 id:0x04010000 str:"VM GOS[#1] addr=0xc2101000
"
 kworker/0:1-787   [000] ....    70.386686: rtcpu_string: tstamp:2690858502 id:0x04010000 str:"VM GOS[#2] addr=0xc2102000
"
 kworker/0:1-787   [000] ....    70.386690: rtcpu_string: tstamp:2690858743 id:0x04010000 str:"VM GOS[#3] addr=0xc2103000
"
 kworker/0:1-787   [000] ....    70.386694: rtcpu_string: tstamp:2690858984 id:0x04010000 str:"VM GOS[#4] addr=0xc2104000
"
 kworker/0:1-787   [000] ....    70.386698: rtcpu_string: tstamp:2690859227 id:0x04010000 str:"VM GOS[#5] addr=0xc2105000
"
 kworker/0:1-787   [000] ....    70.386717: rtcpu_string: tstamp:2690867738 id:0x04010000 str:"vi5_hwinit: firmware CL2018101701 protocol versi"
 kworker/0:1-787   [000] ....    70.386729: rtcpu_string: tstamp:2690867869 id:0x04010000 str:"on 2.2
"
 kworker/0:1-787   [000] ....    70.386734: rtos_queue_send_from_isr_failed: tstamp:2690883485 queue:0x0bcb41f8
 kworker/0:1-787   [000] ....    70.386735: rtos_queue_send_from_isr_failed: tstamp:2690883651 queue:0x0bcb8a60
 kworker/0:1-787   [000] ....    70.386736: rtos_queue_send_from_isr_failed: tstamp:2690883817 queue:0x0bcba5e0
 kworker/0:1-787   [000] ....    70.386737: rtos_queue_send_from_isr_failed: tstamp:2690883974 queue:0x0bcbb3a0
 kworker/0:1-787   [000] ....    70.386738: rtos_queue_send_from_isr_failed: tstamp:2690884130 queue:0x0bcbc160
 **kworker/0:1-787   [000] ....    70.386740: rtcpu_nvcsi_intr: tstamp:2690886575 class:GLOBAL type:PHY_INTR0 phy:0 cil:0 st:0 vc:0 status:0x00000089**
 **kworker/0:1-787   [000] ....    70.386757: rtcpu_nvcsi_intr: tstamp:2690886575 class:GLOBAL type:PHY_INTR0 phy:0 cil:1 st:0 vc:0 status:0x00000088**
 kworker/0:1-787   [000] ....    70.498706: rtos_queue_peek_from_isr_failed: tstamp:2695440618 queue:0x0bcbcf78
 CaptureSchedule-5478  [001] ....    70.506901: tegra_channel_open: vi-output, IMX377 1-001a
 CaptureSchedule-5478  [001] ....    70.506950: tegra_channel_set_power: IMX377 1-001a : 0x1
 CaptureSchedule-5478  [001] ....    70.506959: camera_common_s_power: status : 0x1
 CaptureSchedule-5478  [001] ....    70.507052: tegra_channel_set_power: 15a00000.nvcsi--4 : 0x1
 CaptureSchedule-5478  [001] ....    70.507055: csi_s_power: enable : 0x1
 CaptureSchedule-5478  [001] ....    70.531721: tegra_channel_set_stream: enable : 0x1
 CaptureSchedule-5478  [001] ....    70.533408: tegra_channel_set_stream: 15a00000.nvcsi--4 : 0x1
 CaptureSchedule-5478  [001] ....    70.533412: csi_s_stream: enable : 0x1
 CaptureSchedule-5478  [001] ....    70.533414: tegra_channel_set_stream: IMX377 1-001a : 0x1
 kworker/0:1-787   [000] ....    70.554721: rtos_queue_send_from_isr_failed: tstamp:2695864456 queue:0x0bcb41f8
 kworker/0:1-787   [000] ....    70.554726: rtos_queue_send_from_isr_failed: tstamp:2695864617 queue:0x0bcb8a60
 kworker/0:1-787   [000] ....    70.554727: rtos_queue_send_from_isr_failed: tstamp:2695864778 queue:0x0bcba5e0
 kworker/0:1-787   [000] ....    70.554751: rtos_queue_send_from_isr_failed: tstamp:2695864935 queue:0x0bcbb3a0
 kworker/0:1-787   [000] ....    70.554752: rtos_queue_send_from_isr_failed: tstamp:2695865091 queue:0x0bcbc160
 kworker/0:1-787   [000] ....    70.554753: rtos_queue_send_from_isr_failed: tstamp:2695865307 queue:0x0bcb4190
 kworker/0:1-787   [000] ....    70.554754: rtos_queue_send_from_isr_failed: tstamp:2695865456 queue:0x0bcb41f8
 kworker/0:1-787   [000] ....    70.554755: rtos_queue_send_from_isr_failed: tstamp:2695865601 queue:0x0bcb89f8
 kworker/0:1-787   [000] ....    70.554756: rtos_queue_send_from_isr_failed: tstamp:2695865747 queue:0x0bcb8a60
 kworker/0:1-787   [000] ....    70.554756: rtos_queue_send_from_isr_failed: tstamp:2695865896 queue:0x0bcba578
 kworker/0:1-787   [000] ....    70.554757: rtos_queue_send_from_isr_failed: tstamp:2695866038 queue:0x0bcba5e0
 kworker/0:1-787   [000] ....    70.554758: rtos_queue_send_from_isr_failed: tstamp:2695866185 queue:0x0bcbb338
 kworker/0:1-787   [000] ....    70.554759: rtos_queue_send_from_isr_failed: tstamp:2695866326 queue:0x0bcbb3a0
 kworker/0:1-787   [000] ....    70.554781: rtos_queue_send_from_isr_failed: tstamp:2695866470 queue:0x0bcbc0f8
 kworker/0:1-787   [000] ....    70.554782: rtos_queue_send_from_isr_failed: tstamp:2695866613 queue:0x0bcbc160
 kworker/0:1-787   [000] ....    70.554783: rtos_queue_send_from_isr_failed: tstamp:2695902192 queue:0x0bcb41f8
 kworker/0:1-787   [000] ....    70.554784: rtos_queue_send_from_isr_failed: tstamp:2695902353 queue:0x0bcb8a60
 kworker/0:1-787   [000] ....    70.554784: rtos_queue_send_from_isr_failed: tstamp:2695902514 queue:0x0bcba5e0
 kworker/0:1-787   [000] ....    70.554785: rtos_queue_send_from_isr_failed: tstamp:2695902670 queue:0x0bcbb3a0
 kworker/0:1-787   [000] ....    70.554786: rtos_queue_send_from_isr_failed: tstamp:2695902825 queue:0x0bcbc160
 kworker/0:1-787   [000] ....    70.554787: rtos_queue_send_from_isr_failed: tstamp:2695906287 queue:0x0bcb41f8
 kworker/0:1-787   [000] ....    70.554788: rtos_queue_send_from_isr_failed: tstamp:2695906444 queue:0x0bcb8a60
 kworker/0:1-787   [000] ....    70.554789: rtos_queue_send_from_isr_failed: tstamp:2695906606 queue:0x0bcba5e0
 kworker/0:1-787   [000] ....    70.554789: rtos_queue_send_from_isr_failed: tstamp:2695906763 queue:0x0bcbb3a0
 kworker/0:1-787   [000] ....    70.554790: rtos_queue_send_from_isr_failed: tstamp:2695906920 queue:0x0bcbc160
 kworker/0:1-787   [000] ....    70.554791: rtos_queue_send_from_isr_failed: tstamp:2696013349 queue:0x0bcb41f8
 kworker/0:1-787   [000] ....    70.554792: rtos_queue_send_from_isr_failed: tstamp:2696013510 queue:0x0bcb8a60
 kworker/0:1-787   [000] ....    70.554793: rtos_queue_send_from_isr_failed: tstamp:2696013671 queue:0x0bcba5e0

We don’t get any other interrupts other than these two, and we are not getting any frame starts like I’m expecting.

I checked the TRM and from the status it looks like these are NVCSI_INTR_FLAG_CIL_INTR_DPHY_ERR_CLK_LANE_CTRL, NVCSI_INTR_FLAG_CIL_INTR_DATA_LANE_ERR0_CTRL and
NVCSI_INTR_FLAG_CIL_INTR_DATA_LANE_ERR1_CTRL (for 0x00000089, last two for 0x00000088).


Interestingly enough, when using v4l2-ctl, everything seems to work fine. I have validated a raw dump and it looks good. Commands I used are below:
v4l2-ctl --device /dev/video0 --stream-mmap --stream-to=frame.raw --stream-count=1 --verbose
v4l2-ctl --device /dev/video0 --stream-mmap --stream-count=30

In the trace I see the same statuses, but then it seems to correct them and continue as normal.

 kworker/0:4-1831  [000] ....    67.801574: rtcpu_nvcsi_intr: tstamp:2611551623 class:GLOBAL type:PHY_INTR0 phy:0 cil:0 st:0 vc:0 status:0x00000089
 kworker/0:4-1831  [000] ....    67.801575: rtcpu_nvcsi_intr: tstamp:2611551623 class:GLOBAL type:PHY_INTR0 phy:0 cil:1 st:0 vc:0 status:0x00000088
 kworker/0:4-1831  [000] ....    67.801577: rtcpu_vinotify_error: tstamp:2611558647 tag:CSIMUX_STREAM channel:0x00 frame:0 vi_tstamp:2611555850 data:0x00000001
 kworker/0:4-1831  [000] ....    67.801580: rtcpu_vinotify_event: tstamp:2612011559 tag:RESERVED_18 channel:0x23 frame:0 vi_tstamp:1963135168 data:0x10000000
 kworker/0:4-1831  [000] ....    67.801581: rtcpu_vinotify_event: tstamp:2612011712 tag:RESERVED_18 channel:0x23 frame:0 vi_tstamp:1963143520 data:0x31000001
 kworker/0:4-1831  [000] ....    67.801582: rtcpu_vinotify_event: tstamp:2612011883 tag:RESERVED_19 channel:0x23 frame:0 vi_tstamp:1963145696 data:0x07020001
 kworker/0:4-1831  [000] ....    67.801583: rtcpu_vinotify_event: tstamp:2612012030 tag:RESERVED_18 channel:0x23 frame:0 vi_tstamp:1963186368 data:0x10000000
 kworker/0:4-1831  [000] ....    67.801584: rtcpu_vinotify_event: tstamp:2612012201 tag:RESERVED_18 channel:0x23 frame:0 vi_tstamp:1963194848 data:0x31000002
 kworker/0:4-1831  [000] ....    67.801585: rtcpu_vinotify_event: tstamp:2612012355 tag:CSIMUX_STREAM channel:0x00 frame:0 vi_tstamp:2611555850 data:0x00000001
 kworker/0:4-1831  [000] ....    67.801607: rtcpu_vinotify_event: tstamp:2612554487 tag:FS channel:0x00 frame:0 vi_tstamp:2612432801 data:0x00000010
 kworker/0:4-1831  [000] ....    67.801608: rtcpu_vinotify_event: tstamp:2612554640 tag:ATOMP_FS channel:0x00 frame:0 vi_tstamp:2612432804 data:0x00000000
 kworker/0:4-1831  [000] ....    67.801608: rtcpu_vinotify_event: tstamp:2612554814 tag:CHANSEL_EMBED_SOF channel:0x23 frame:0 vi_tstamp:2612433096 data:0x00000004
 kworker/0:4-1831  [000] ....    67.801609: rtcpu_vinotify_event: tstamp:2612554960 tag:CHANSEL_EMBED_EOF channel:0x23 frame:0 vi_tstamp:2612433441 data:0x00010008
 kworker/0:4-1831  [000] ....    67.801610: rtcpu_vinotify_event: tstamp:2612555130 tag:ATOMP_EMB_DATA_DONE channel:0x23 frame:0 vi_tstamp:2612433468 data:0x00000000
 kworker/0:4-1831  [000] ....    67.801611: rtcpu_vinotify_event: tstamp:2612555279 tag:RESERVED_19 channel:0x23 frame:0 vi_tstamp:1993499360 data:0x03020001
 kworker/0:4-1831  [000] ....    67.801612: rtcpu_vinotify_event: tstamp:2612555453 tag:CHANSEL_NOMATCH channel:0x01 frame:0 vi_tstamp:2612433748 data:0x000006e9
 kworker/0:4-1831  [000] ....    67.801613: rtcpu_vinotify_event: tstamp:2612555600 tag:CHANSEL_PXL_SOF channel:0x23 frame:0 vi_tstamp:2612438956 data:0x00000001
 kworker/0:4-1831  [000] ....    67.801614: rtcpu_vinotify_event: tstamp:2612555772 tag:RESERVED_19 channel:0x23 frame:0 vi_tstamp:1993672224 data:0x08020001
 kworker/0:4-1831  [000] ....    67.857552: rtcpu_vinotify_event: tstamp:2613435353 tag:CHANSEL_PXL_EOF channel:0x23 frame:0 vi_tstamp:2613430409 data:0x0be50002
 kworker/0:4-1831  [000] ....    67.857565: rtcpu_vinotify_event: tstamp:2613488835 tag:ATOMP_FRAME_DONE channel:0x23 frame:0 vi_tstamp:2613430437 data:0x00000000
 kworker/0:4-1831  [000] ....    67.857591: rtcpu_vinotify_event: tstamp:2613488985 tag:RESERVED_19 channel:0x23 frame:0 vi_tstamp:2025408256 data:0x02020001
 kworker/0:4-1831  [000] ....    67.857592: rtcpu_vinotify_event: tstamp:2613489158 tag:FE channel:0x00 frame:0 vi_tstamp:2613430452 data:0x00000020
 kworker/0:4-1831  [000] ....    67.857593: rtcpu_vinotify_event: tstamp:2613489311 tag:ATOMP_FE channel:0x00 frame:0 vi_tstamp:2613430455 data:0x00000000
 kworker/0:4-1831  [000] ....    67.857594: rtcpu_vinotify_event: tstamp:2613489481 tag:RESERVED_19 channel:0x23 frame:0 vi_tstamp:2025433728 data:0x00020001
 kworker/0:4-1831  [000] ....    67.857594: rtcpu_vinotify_event: tstamp:2613489627 tag:RESERVED_19 channel:0x23 frame:0 vi_tstamp:2025456192 data:0x07020002

Other things I have tried:

  • I have tried boosting the clocks of the vi/nvcsi/isp, but that didn’t seem to help.
  • We use the same sensor mode settings (pix_clk_hz, etc) as on the TX2, where we did get the same sensor working through gstreamer.

After we have tried to record with gstreamer (which fails), v4l2-ctl stalls.

I’m unsure where to go from here, can you give me some pointers? Its confusing to me that the v4l2-ctl seems to produce valid images (so the MIPI signal seems to be fine?), but through nvarguscamerasrc we don’t seem to get any frame starts.
If you have more information about the DATA_LANE_ERR0_CTRL errors and what causes those, that would be appreciated!

Thanks in advance!

(Jetpack 4.3 -> L4T 32.3.1)

Hi @pesirnl,

If you are getting buffers correctly when using v4l2-ctl, the capture subsystem seems to be working fine as well as the camera streaming and buffer interruptions.

Did you add the tegra-camera-platform node at the device tree with the correct reference to your camera drivers. This is needed by nvarguscamerasrc.

For example you should have something similar to:

tegra-camera-platform {
        compatible = "nvidia, tegra-camera-platform";

        num_csi_lanes = <12>;
        max_lane_speed = <1500000>;
        min_bits_per_pixel = <10>;
        vi_peak_byte_per_pixel = <2>;
        vi_bw_margin_pct = <25>;
        max_pixel_rate = <750000>;
        isp_peak_byte_per_pixel = <5>;
        isp_bw_margin_pct = <25>;

        modules {
            module0 {
                badge = "imx219_topright_A6V26";
                position = "topright";
                orientation = "0";
                status = "okay";
                drivernode0 {
                    status = "okay";
                    pcl_id = "v4l2_sensor";
                    devname = "imx219 30-0010";
                    proc-device-tree = "/proc/device-tree/i2c@3180000/tca9546@70/i2c@0/imx219_a@10";
                };
            };
        };
    };

Regards,
Fabian
www.ridgerun.com

Hey Fabian,

Thanks a lot for your response! I did indeed add this section to the device tree. Perhaps the “position” isn’t right for 4 sensors? I double-checked the devnames and the proc-device-tree locations, those seem to be right.

/ {
tegra-camera-platform {
compatible = “nvidia, tegra-camera-platform”;

    num_csi_lanes = <16>;
    max_lane_speed = <1500000>;
    min_bits_per_pixel = <10>;
    vi_peak_byte_per_pixel = <2>;
    vi_bw_margin_pct = <25>;
    isp_peak_byte_per_pixel = <5>;
    isp_bw_margin_pct = <25>;
    tpg_max_iso = <3916800>;

    modules {
        module0 {
            badge = "imx377_bottomleft_liimx377";
            position = "bottomleft";
            orientation = "0";
            cam_module0_drivernode0: drivernode0 {
                pcl_id = "v4l2_sensor";
                devname = "IMX377 1-001a";
                proc-device-tree = "/proc/device-tree/i2c@c240000/imx377_a@1a";
            };
            cam_module0_drivernode1: drivernode1 {
                status = "disabled";
            };
        };
        module1 {
            badge = "imx377_centerleft_liimx377";
            position = "centerleft";
            orientation = "0";
            cam_module1_drivernode0: drivernode0 {
                pcl_id = "v4l2_sensor";
                devname = "IMX377 2-001a";
                proc-device-tree = "/proc/device-tree/i2c@3180000/imx377_c@1a";
            };
            cam_module1_drivernode1: drivernode1 {
                status = "disabled";
            };
        };
        module2 {
            badge = "imx377_centerright_liimx377";
            position = "centerright";
            orientation = "0";
            cam_module2_drivernode0: drivernode0 {
                pcl_id = "v4l2_sensor";
                devname = "IMX377 3-001a";
                proc-device-tree = "/proc/device-tree/i2c@3190000/imx377_e@1a";
            };
            cam_module2_drivernode1: drivernode1 {
                status = "disabled";
            };
        };
        module3 {
            badge = "imx377_right_liimx377";
            position = "right";
            orientation = "0";
            cam_module3_drivernode0: drivernode0 {
                pcl_id = "v4l2_sensor";
                devname = "IMX377 5-001a";
                proc-device-tree = "/proc/device-tree/i2c@31b0000/imx377_g@1a";
            };
            cam_module3_drivernode1: drivernode1 {
                status = "disabled";
            };
        };
    };
};

};

Can you share the output of the following two commands, it will help to understand how is the video0 device configured

v4l2-ctl -d /dev/video0 --all
media-ctl -d /dev/media0 -p

Do you know what video format is the camera configuring by default? For example nvarguscamerasrc does not support RAW8 format.

Regards,
Fabian
www.ridgerun.com

Thank you for your swift response! Here is the output of those 2 commands.

v4l2-ctl -d /dev/video0 --all

Driver Info (not using libv4l2):
Driver name : tegra-video
Card type : vi-output, IMX377 1-001a
Bus info : platform:15c10000.vi:0
Driver version: 4.9.140
Capabilities : 0x84200001
Video Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Priority: 2
Video input : 0 (Camera 0: ok)
Format Video Capture:
Width/Height : 4104/3046
Pixel Format : ‘RG10’
Field : None
Bytes per Line : 8448
Size Image : 25732608
Colorspace : sRGB
Transfer Function : Default (maps to sRGB)
YCbCr/HSV Encoding: Default (maps to ITU-R 601)
Quantization : Default (maps to Full Range)
Flags :

Camera Controls

                 group_hold 0x009a2003 (bool)   : default=0 value=0 flags=execute-on-write
                 hdr_enable 0x009a2004 (intmenu): min=0 max=1 default=0 value=0
                    fuse_id 0x009a2007 (str)    : min=0 max=12 step=2 value='000000000000' flags=read-only, has-payload
                sensor_mode 0x009a2008 (int64)  : min=0 max=0 step=0 default=0 value=0 flags=slider
                       gain 0x009a2009 (int64)  : min=0 max=0 step=0 default=0 value=0 flags=slider
                   exposure 0x009a200a (int64)  : min=0 max=0 step=0 default=0 value=30 flags=slider
                 frame_rate 0x009a200b (int64)  : min=0 max=0 step=0 default=0 value=30 flags=slider
       sensor_configuration 0x009a2032 (u32)    : min=0 max=0 step=0 default=0 flags=read-only, volatile, has-payload
     sensor_mode_i2c_packet 0x009a2033 (u32)    : min=0 max=0 step=0 default=0 flags=read-only, volatile, has-payload
  sensor_control_i2c_packet 0x009a2034 (u32)    : min=0 max=0 step=0 default=0 flags=read-only, volatile, has-payload
                bypass_mode 0x009a2064 (intmenu): min=0 max=1 default=0 value=1
            override_enable 0x009a2065 (intmenu): min=0 max=1 default=0 value=1
               height_align 0x009a2066 (int)    : min=1 max=16 step=1 default=1 value=1
                 size_align 0x009a2067 (intmenu): min=0 max=2 default=0 value=0
           write_isp_format 0x009a2068 (int)    : min=1 max=1 step=1 default=1 value=1
   sensor_signal_properties 0x009a2069 (u32)    : min=0 max=0 step=0 default=0 flags=read-only, has-payload
    sensor_image_properties 0x009a206a (u32)    : min=0 max=0 step=0 default=0 flags=read-only, has-payload
  sensor_control_properties 0x009a206b (u32)    : min=0 max=0 step=0 default=0 flags=read-only, has-payload
          sensor_dv_timings 0x009a206c (u32)    : min=0 max=0 step=0 default=0 flags=read-only, has-payload
           low_latency_mode 0x009a206d (bool)   : default=0 value=0
               sensor_modes 0x009a2082 (int)    : min=0 max=30 step=1 default=30 value=1 flags=read-only

media-ctl -d /dev/media0 -p

Media controller API version 0.1.0

Media device information

driver tegra194-vi5
model NVIDIA Tegra Video Input Device
serial
bus info
hw revision 0x3
driver version 0.0.0

Device topology

  • entity 1: IMX377 1-001a (1 pad, 1 link)
    type V4L2 subdev subtype Sensor flags 0
    device node name /dev/v4l-subdev0
    pad0: Source
    [fmt:SRGGB10_1X10/4104x3046 field:none colorspace:srgb]
    -> “15a00000.nvcsi–4”:0 [ENABLED]

  • entity 3: 15a00000.nvcsi–4 (2 pads, 2 links)
    type V4L2 subdev subtype Unknown flags 0
    device node name /dev/v4l-subdev1
    pad0: Sink
    <- “IMX377 1-001a”:0 [ENABLED]
    pad1: Source
    -> “vi-output, IMX377 1-001a”:0 [ENABLED]

  • entity 6: vi-output, IMX377 1-001a (1 pad, 1 link)
    type Node subtype V4L flags 0
    device node name /dev/video0
    pad0: Sink
    <- “15a00000.nvcsi–4”:1 [ENABLED]

  • entity 18: IMX377 2-001a (1 pad, 1 link)
    type V4L2 subdev subtype Sensor flags 0
    device node name /dev/v4l-subdev2
    pad0: Source
    [fmt:SRGGB10_1X10/4104x3046 field:none colorspace:srgb]
    -> “15a00000.nvcsi–3”:0 [ENABLED]

  • entity 20: 15a00000.nvcsi–3 (2 pads, 2 links)
    type V4L2 subdev subtype Unknown flags 0
    device node name /dev/v4l-subdev3
    pad0: Sink
    <- “IMX377 2-001a”:0 [ENABLED]
    pad1: Source
    -> “vi-output, IMX377 2-001a”:0 [ENABLED]

  • entity 23: vi-output, IMX377 2-001a (1 pad, 1 link)
    type Node subtype V4L flags 0
    device node name /dev/video1
    pad0: Sink
    <- “15a00000.nvcsi–3”:1 [ENABLED]

  • entity 35: IMX377 3-001a (1 pad, 1 link)
    type V4L2 subdev subtype Sensor flags 0
    device node name /dev/v4l-subdev4
    pad0: Source
    [fmt:SRGGB10_1X10/4104x3046 field:none colorspace:srgb]
    -> “15a00000.nvcsi–2”:0 [ENABLED]

  • entity 37: 15a00000.nvcsi–2 (2 pads, 2 links)
    type V4L2 subdev subtype Unknown flags 0
    device node name /dev/v4l-subdev5
    pad0: Sink
    <- “IMX377 3-001a”:0 [ENABLED]
    pad1: Source
    -> “vi-output, IMX377 3-001a”:0 [ENABLED]

  • entity 40: vi-output, IMX377 3-001a (1 pad, 1 link)
    type Node subtype V4L flags 0
    device node name /dev/video2
    pad0: Sink
    <- “15a00000.nvcsi–2”:1 [ENABLED]

  • entity 52: IMX377 5-001a (1 pad, 1 link)
    type V4L2 subdev subtype Sensor flags 0
    device node name /dev/v4l-subdev6
    pad0: Source
    [fmt:SRGGB10_1X10/4104x3046 field:none colorspace:srgb]
    -> “15a00000.nvcsi–1”:0 [ENABLED]

  • entity 54: 15a00000.nvcsi–1 (2 pads, 2 links)
    type V4L2 subdev subtype Unknown flags 0
    device node name /dev/v4l-subdev7
    pad0: Sink
    <- “IMX377 5-001a”:0 [ENABLED]
    pad1: Source
    -> “vi-output, IMX377 5-001a”:0 [ENABLED]

  • entity 57: vi-output, IMX377 5-001a (1 pad, 1 link)
    type Node subtype V4L flags 0
    device node name /dev/video3
    pad0: Sink
    <- “15a00000.nvcsi–1”:1 [ENABLED]

The NVCSI_INTR_FLAG_CIL_INTR_DATA_LANE_ERR1_CTRL (for 0x00000089, last two for 0x00000088)
set when LP sequence is not as expect. Adjust the discontinuosu_clk in the device tree may help.

And CSIMUX_STREAM channel:0x00 frame:0 vi_tstamp:2611555850 data:0x00000001
Spurious data means VI sees some other packets before FS packet, as VI alwasy expect the 1st packet to be frame start

Thanks for your answers! On the CSIMUX_STREAM: I’m aware that that isn’t fully working as intended, but I first need to get nvarguscamerasrc working.

Changing the discontinuous_clk did not help with the issue, I’m still getting:

 kworker/0:0-4     [000] ....    49.872053: rtcpu_nvcsi_intr: tstamp:2049131239 class:GLOBAL type:PHY_INTR0 phy:0 cil:0 st:0 vc:0 status:0x00000089
 kworker/0:0-4     [000] ....    49.872054: rtcpu_nvcsi_intr: tstamp:2049131239 class:GLOBAL type:PHY_INTR0 phy:0 cil:1 st:0 vc:0 status:0x00000088

Changing it from “no” to “yes” even made the v4l2 route stop working (with the same error). Do you have any other ideas for things to try?

Can try to configure the sensor output clock mode to continuous/discontinuous mode.

1 Like

Thanks! We’ll give that a shot.

Our sensor isn’t hooked up directly to the board, so that will take some time to try: would there be any way to force the CIL to use HS mode?

Properly implementing LP/HS state transitions and changing the discontinuous_clk to “yes” fixed our issue.

Thanks for the help!