Inter chip communication on NVIDIA DRIVE™ Software 10.0 (Linux)

Please provide the following info (check/uncheck the boxes after clicking “+ Create Topic”):
Software Version
DRIVE OS Linux 5.2.0
DRIVE OS Linux 5.2.0 and DriveWorks 3.5
NVIDIA DRIVE™ Software 10.0 (Linux)
NVIDIA DRIVE™ Software 9.0 (Linux)
other DRIVE OS version
other

Target Operating System
Linux

Hardware Platform
NVIDIA DRIVE™ AGX Xavier DevKit (E3550)

SDK Manager Version
1.5.1.7815

Host Machine Version
native Ubuntu 18.04

I have received a drive AGX Xavier DevKit pre-flashed with Linux
I am trying to establish communication between enpoints using NvSciIPC.
Interprocess communication worked fine with already provided channels in nvsciipc.cfg file
Now trying to establish communication between Xavier A and Xavier B using NvSciIPC using same piece of code just by changing the endpoints name with already provided endpoints in nvsciipc.cfg file .

The code is cross compiled on host machine whereas while running on board it gives an error saying “libnvscic2c.so is not available”.

Please find attached the log for reference:

Read: Before Init
Read: NvSciIpcInit success
!err[L:62]:nvsciipc_c2c_open_library: libnvscic2c.so is not available
!err[L:225]:nvsciipc_c2c_open_endpoint: C2C backend is not supported
!err[L:286]:NvSciIpcOpenEndpoint: Failed to open nvsciipc [INTER_CHIP] endpoint: 17
Read: NvSciIpcOpenEndpoint failed nvscic2c_3 :NvSicError = 0x11 (Endpoint creation not supported)
Error in reading from endpoint

As per the log we are getting not supported error while creating an enpoint for inter-chip communication. So is inter-chip communication supported through NvSciIPC as per the doc? If yes can you please point out the doc which details out the inter-chip communication.

Also, please can it be confirmed if the Xavier expected to have “libnvscic2c.so” available after installation or anything extra needs to be done for the same.

Dear @aniruddha.nadgouda,
C2C communication is not supported on Xavier.

@SivaRamaKrishnaNV Thank you for the very prompt reply, providing the clarification.
We have already established socket communication ( Using driveWorks socket API ) to transfer the data between Xavier A and B for now between our two features running on each Xavier. The basic system works fine.
Can you please confirm if this is the best way to establish communication between the 2 Xaviers (Xavier A and Xavier B) else is there any other recommended method to exchange data between them. If there is any alternative method can you please specify where we can refer the documentation for it.
Note: There is a requirement 10MB(total size to be exchanged) of data to be exchanged between Xavier A and Xavier B per frame in 100ms.

Dear @aniruddha.nadgouda,
Currently, As you used, DW socket API is the way to communicate across two xaviers. Do you see any issue?

@SivaRamaKrishnaNV There are no issues observed, just wanted to confirm if this is the best way to establish communication.
Thanks for the confirmation.

1 Like