6.0.8 nvsipl_camera fsync option

Please provide the following info (tick the boxes after creating this topic):
Software Version
DRIVE OS 6.0.8.1
DRIVE OS 6.0.6
DRIVE OS 6.0.5
DRIVE OS 6.0.4 (rev. 1)
DRIVE OS 6.0.4 SDK
other

Target Operating System
Linux
QNX
other

Hardware Platform
DRIVE AGX Orin Developer Kit (940-63710-0010-300)
DRIVE AGX Orin Developer Kit (940-63710-0010-200)
DRIVE AGX Orin Developer Kit (940-63710-0010-100)
DRIVE AGX Orin Developer Kit (940-63710-0010-D00)
DRIVE AGX Orin Developer Kit (940-63710-0010-C00)
DRIVE AGX Orin Developer Kit (not sure its number)
other

SDK Manager Version
1.9.3.10904
other

Host Machine Version
native Ubuntu Linux 20.04 Host installed with SDK Manager
native Ubuntu Linux 20.04 Host installed with DRIVE OS Docker Containers
native Ubuntu Linux 18.04 Host installed with DRIVE OS Docker Containers
other

Hello,

I am interested in exploring the camera fsync options listed in the 6.0.8.1 changelog, however, when I pass -F parameter to nvsipl_camera, it fails immediately on initializing FSYNC:

nvidia@tegra-ubuntu:~$ sudo /opt/nvidia/drive-linux/samples/nvmedia/nvsipl/test/camera/nvsipl_camera -c BLAH -m "1 0 0 0" -sR -F '0 10' -v4
Platform configuration name: BLAH
Verbosity level: 4
Raw output: enabled
ISP0 output: enabled
ISP1 output: enabled
ISP2 output: enabled
Enabled FPS logging
Disabled Metadata logging
Disabled automatic recovery
Disabled NvSci
Disabled profiling
Disabled ISP Statistics settings override
Subframe : disabled
Disabled Passive mode
Authentication: controlled by Platform Config
Disabled retrieving/displaying NITO Metadata
nvsipl_camera: Setting up signal handler

nvsipl_camera: Program and start fsync signal for group: 0 with start_time 10

nvsipl_camera: ERROR: Failed to program and start fsync signal for group: 0 with status: 2

Can you please confirm this feature works and that I am using it as expected?

Thanks

Could you please specify the source or location of the changelog you mentioned? Thanks.

Hello,

From the ‘NVIDIA DRIVE OS 6.0.8.1 Now Available’ email sent out at 9AM today (Topic: New Features: DRIVE OS 6.0.8.1 for DRIVE AGX Orin):

We are pleased to announce our DRIVE OS 6.0.8.1 software release (including DriveWorks 5.1.4) for DRIVE AGX Orin.

DRIVE OS 6.0.8.1 includes the following benefits:

  • Improves PKCS #11 security support by providing:
    • Support for key ownership and isolation for different user space applications.
    • ECDSA certificate verification, which enables support for Camera Authentication capabilities.
    • Client-side interface for importing key data under a secure environment.
    • Streamlined search capability while preventing permanent memory leaks in secure storage during new object creation.
  • Enables YUV format transformations via API to provide a lower GPU load by offloading the color transformation function to VIC.
    Provides reduced complexity of sensor (eg: Camera + Lidar / Radar) fusion algorithm by aligning FSYNC with PTP time.
  • Enables PCIe link Error Detection and reporting, to improve latency of error detection and perform recovery operation.

(Bolding mine)

Looking a bit further into it, it seems like fsync grouping is disabled by the device tree by default…

nvidia@tegra-ubuntu:~$ sudo dmesg | grep tsc
[sudo] password for nvidia: 
[    1.379079] nvpps c6a0104.nvpps: tsc_res_ns(32)
[    2.935127] cam_fsync c6a0000.tsc_sig_gen: CAM_FSYNC probing...
[    2.935187] cam_fsync c6a0000.tsc_sig_gen: Grouping disabled
[    2.935189] cam_fsync c6a0000.tsc_sig_gen: Failed to find frame sync group, creating default group
[    2.935192] cam_fsync c6a0000.tsc_sig_gen: Creating default group with id 0
[    2.935224] cam_fsync c6a0000.tsc_sig_gen: Group 0 found

Hello,

Any updates on this? It appears that the default DTB has fsync-groups disabled, and I have found no documentation on how to modify the DTB in 6.0.8.1.

Thank you for your patience. We are currently investigating the fsync feature and its status in DRIVE OS 6.0.8.1 and will update you as soon as we have more details to share.

Please refer to Fsync Signal Generation for modifying the DTB settings. You should set the ‘fsync-groups’ status to ‘okay’ to enable it.

Hello,

Thank you for confirming. Unfortunately, I think I am still missing a step - modifying the dtsi file as that link mentions prior to running flash.py does not result in the desired change showing up in the DT on the newly flashed system. The same occurs if I rebuild the kernel prior to reflashing. Is there some step I should execute to force recompilation of dtb prior to flashing?

Hello,

I did discover how to change the device tree, turns out fsync-groups is in multiple dtsi’s and I was modifying the wrong one. I do also note that in order to use this feature, you must specify a time ahead of the current tsc timestamp, which can be tricky to pull off. Still, I believe this is working - I have yet to determine if the synchronization feature works as advertised, but we can go ahead and close this thread for now.

Thank you for the update and for sharing your progress. It’s great to hear that you found the correct device tree file to modify for the ‘fsync-groups’ feature. Regarding the ‘start_time_in_tsc_ticks,’ you’re correct, and it can indeed be a bit tricky to specify a time ahead of the current tsc timestamp. We appreciate your feedback.

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