FSI-CCPLEX Communication#

Following is a list of acronyms and abbreviations used in this section:

Acronyms Abbreviations

Definition

CCPLEX

NVIDIA Carmel CPU Complex. Set of Arm cores in NVIDIA Thor for user application running over HLOS

FSI

FSI(Functional Safety Island) core (4 X R52) is for Safety related automotive applications

GOS

Guest OS partition on CCPLEX

IFS

QNX Image File System

Channel

Channel is peer-to-peer communication channel between Peer1

and Peer2

Channel consists of two FIFOs:

  • Fifo12 is written to by Peer1 and read from by Peer2

  • Fifo21 is written to by Peer2 and read from by Peer1

Frames

The elements within the FIFO in shared memory are called “frames”

FSI-CCPLEX-COM Generic use case enables data communication in peer-to-peer mode for SWCs/applications running on FSI and CCPLEX using shared memory (FSI CPU NS DRAM carveout). A distinguishing aspect of this use case is that the raw data is completely transparent to the communication mechanism, and the data is not comprised of a signal or service provided over a vehicle communication bus.

This component provides interfaces to access DRAM carveout, which is used as shared memory for communication between CCPLEX and FSI and Mailbox used to notify the message reception/transmissions.

The use case has two demo apps, which are DemoAppCom (on CCPLEX) and DemoApp (on FSI). Demo apps are positions, as shown in the following image:

image1

NvFsiComLib is an interface library on CCPLEX side for FSI-CCPLEX communication.

NvFsiCom is a daemon that is responsible for notifying when data is available to read.

cddCcplexCom – CDD on FSI to access shared memory and handle data receive notification. This module supports independent FSI-CCPLEX communication on all FSI cores. (Two cores can be configured as notification cores and other two can be configured as polling cores). (FSICOM multi core and multi instance).

DemoAppCom simulates Application on CCPLEX. DemoApp connected to Rte to demonstrate SWC behavior for sending and receiving the data between CCPLEX and FSI. This demo can be used as base for any new development and requirement realization by Customers or for NVIDIA® DRIVE AV.

Shared memory of size 16 MB is available to be used.

Handshake at start-up:

image2

API Header and Datatypes#

Refer to NvFsiCom.h for APIs of NvFsiComLib and NvFsiComTypes.h for datatypes.

Note

For the NvFsiCom library, the NvFsiComHandle_t datatype member element ChId represents zero-based relative index in the array of channels for an application node. (For example, for a node configured to use channels 2, 6, 5. The ChId (in NvFsiComHandle_t handle) for channels is 0,1,2 respectively.)

Note

When FsiCom client on Ccplex calls NvFsiComDeinit(), the memory allocated by the client is reset to 0 before deallocating the memory.