Nvargus daemon errors in JetPack 4.4 with version 1.0 AR0820 device driver

Hello,

We have been working on the bring up of an AR0820 version 1.0 device driver in JetPack 4.4, with support for two cameras. We are currently able to dequeue buffers with both AR0820 through V4L2 directly (v4l2-ctl commands), however running a gst-launch command using the nvarguscamerasrc element seems to be just stuck or frozen, enabling the debugging log (found below) we are getting the following errors:

nvidia@nvidia-desktop:~$ sudo su
root@nvidia-desktop:/home/nvidia# export enableCamPclLogs=5
root@nvidia-desktop:/home/nvidia# export enableCamScfLogs=5
root@nvidia-desktop:/home/nvidia# sudo killall nvargus-daemon
root@nvidia-desktop:/home/nvidia# sudo nvargus-daemon
=== NVIDIA Libargus Camera Service (0.97.3)=== Listening for connections...=== gst-launch-1.0[7108]: Connection established (7F948C81D0)OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module1
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
---- imager: No override file found. ----
LSC: LSC surface is not based on full res!
---- imager: No override file found. ----
LSC: LSC surface is not based on full res!
=== gst-launch-1.0[7108]: CameraProvider initialized (0x7f90bdb590)LSC: LSC surface is not based on full res!
(NvCapture) Error BadParameter: Invalid NULL parameter (in /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture_t19x.c, function NvCaptureConfigEmbeddedSurfaceSetup(), line 942)
(NvCapture) Error BadParameter:  (propagating from /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture_t19x.c, function NvCaptureConfigSetOutputFormatT19x(), line 492)
(NvCapture) Error BadParameter:  (propagating from /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture.c, function NvCaptureRequestSetAttribute(), line 1821)
SCF: Error BadParameter:  (propagating from src/services/capture/NvCaptureViCsiHw.cpp, function startCaptureInternal(), line 680)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureRecord.cpp, function doCSItoMemCapture(), line 517)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureRecord.cpp, function issueCapture(), line 454)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureServiceDevice.cpp, function issueCaptures(), line 1293)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureServiceDevice.cpp, function issueCaptures(), line 1124)
SCF: Error Timeout:  (propagating from src/api/Buffer.cpp, function waitForUnlock(), line 637)
SCF: Error Timeout:  (propagating from src/components/CaptureContainerImpl.cpp, function returnBuffer(), line 358)
SCF: Error BadParameter:  (propagating from src/common/Utils.cpp, function workerThread(), line 116)
SCF: Error BadParameter: Worker thread CaptureScheduler frameStart failed (in src/common/Utils.cpp, function workerThread(), line 133)
SCF: Error Timeout:  (propagating from src/services/capture/CaptureServiceEvent.cpp, function wait(), line 59)
Error: Camera HwEvents wait, this may indicate a hardware timeout occured,abort current/incoming cc

In the past these kind of errors would have been fixed by checking the definition in the “tegra-camera-platform” node in the device tree typically. However we are not sure what else could be missing or badly defined. Could you provide some insight on this aspect?. Below is the current definitions we have in the device tree (decompiled from the file system):

tegra-camera-platform {
    isp_bw_margin_pct = <0x19>;
    compatible = "nvidia, tegra-camera-platform";
    max_pixel_rate = <0xb71b0>;
    num_csi_lanes = <0x8>;
    vi_peak_byte_per_pixel = <0x2>;
    max_lane_speed = <0x16e360>;
    phandle = <0x18e>;
    vi_bw_margin_pct = <0x19>;
    linux,phandle = <0x18e>;
    min_bits_per_pixel = <0xa>;
    isp_peak_byte_per_pixel = <0x5>;

    modules {

        module0 {
            badge = "d3_front_ar0820";
            status = "okay";
            phandle = <0xdc>;
            position = "front";
            linux,phandle = <0xdc>;
            orientation = [31 00];

            drivernode0 {
                devname = "ar0820 40-0010";
                pcl_id = "v4l2_sensor";
                status = "okay";
                proc-device-tree = "/proc/device-tree/i2c@3180000/tca9546@77/i2c@0/max9296@48/link@0/max9295@40/link@0/ar0820@10";
                phandle = <0x18f>;
                linux,phandle = <0x18f>;
            };
        };

        module1 {
            badge = "d3_rear_ar0820";
            status = "okay";
            phandle = <0xe2>;
            position = "rear";
            linux,phandle = <0xe2>;
            orientation = [31 00];

            drivernode0 {
                devname = "ar0820 42-0010";
                pcl_id = "v4l2_sensor";
                status = "okay";
                proc-device-tree = "/proc/device-tree/i2c@3180000/tca9546@77/i2c@1/max9296@48/link@0/max9295@40/link@0/ar0820@10";
                phandle = <0x190>;
                linux,phandle = <0x190>;
            };
        };
    };
};

We have commited so far with the hypothesis that this issue is at device tree level but feel free to point any other information or tips about what could be causing this issue.

Regards,

hello jchaves,

may I confirm what’s the pixel format types of AR0820, thanks

Hello, Jerry

We are currently able to capture 1920x1080@30fps, BG12 with V4L2 directly.

hello jchaves,

here’s NULL parameter that crash the buffer allocation process.

is this your first time to enable AR0820 with Argus?
it usually device tree issue if v4l2 works but not nvarguscamerasrc.

BTW,
according to this… badge = "d3_front_ar0820";
it seems you’re working with D3 Engineering? suggest you should also contact with Jetson Camera Partners directly to support your camera solutions,
thanks

Hi @JerryChang

We have worked with the AR0820 sensor before. This case is new since we are using the Camera Driver Version 1.0 on JP 4.4 and Xavier NX because of some constraints out of our hands. Just to confirm, is the error that my colleague is pointing out is due to buffer allocation failure?

Thanks in advance,
Leon

@JerryChang , do you have any insight about which could be this missing parameter that is causing the failure at nvargus level, is it in the device tree, device driver internals data initialization, etc?

hello jchaves,

this is camera sensor that using SerDes chip, right?
if yes, please check your sensor properties, all virtual channel property value should assign to the respective CSI and VI channel nodes correctly.

in addition,
you may also refer to this thread, Topic 156279 to replace the debug RTCPU firmware for Xavier series on JetPack-4.4 release.
thanks

Thanks for the information, @JerryChang. We actually were able now to make it work and pass around those issues with the V1 version driver by simplifying and porting it to V2 version.

1 Like

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