MCUSW
Loading...
Searching...
No Matches
CDD_IPC Configuration

Introduction

Data Structures

struct  Cdd_IpcMpType
 Defines processor identifiers Core on which MCAL/AUTOSAR is hosted and other cores with which IPC is desired. More...
 
struct  Cdd_IpcVertIoType
 Defines Shared Memories for VRING and VRING OBJECT VRING is the shared memory between cores and VRING OBJECT is used implement queue. Please refer design/user guide for details. More...
 
struct  Cdd_IpcChannelType
 Defines logical communication channel between cores. More...
 
struct  Cdd_IpcConfigType
 CDD IPC Configuration type. More...
 
struct  Cdd_IpcRegRbValues
 
struct  Cdd_IpcChannelBufType
 Channel RP Msg buffer type Used to hold the received buffer, before apps can pick it up. More...
 

Variables

uint32 Cdd_IpcMpType::ownProcID
 
uint32 Cdd_IpcMpType::numProcs
 
uint32 Cdd_IpcMpType::remoteProcID [CDD_IPC_CORE_USED]
 
uint32 Cdd_IpcMpType::reserved
 
void * Cdd_IpcVertIoType::vertIoRingAddr
 
uint32 Cdd_IpcVertIoType::vertIoRingSize
 
uint32 Cdd_IpcVertIoType::vertIoObjSize
 
uint32 Cdd_IpcVertIoType::reserved
 
uint32 Cdd_IpcChannelType::id
 
uint32 Cdd_IpcChannelType::localEp
 
uint32 Cdd_IpcChannelType::remoteEp
 
uint32 Cdd_IpcChannelType::remoteProcId
 
uint32 Cdd_IpcChannelType::numMsgQueued
 
uint32 Cdd_IpcChannelType::maxMsgSize
 
Cdd_Ipc_NewMessage Cdd_IpcChannelType::NewMessageNotify
 
uint32 Cdd_IpcChannelType::reserved
 
Cdd_IpcMpType Cdd_IpcConfigType::coreIds
 
Cdd_IpcVertIoType Cdd_IpcConfigType::vertIoCfg
 
uint32 Cdd_IpcConfigType::channelCount
 
const Cdd_IpcChannelTypeCdd_IpcConfigType::pChCfg
 
uint32 Cdd_IpcConfigType::reserved
 
uint32 Cdd_IpcRegRbValues::numRegisters
 
uint32 Cdd_IpcRegRbValues::regValues [CDD_IPC_CORE_ID_MAX]
 
uint32 Cdd_IpcRegRbValues::cddipcRev
 
uint32 Cdd_IpcRegRbValues::cddipcsyscfg
 
uint32 Cdd_IpcRegRbValues::cddipceoi
 
uint32 Cdd_IpcRegRbValues::cddipcmsg
 
uint32 Cdd_IpcRegRbValues::cddipcfifosts
 
uint32 Cdd_IpcRegRbValues::cddipcmsgsts
 
uint32 Cdd_IpcRegRbValues::cddipcirqrawsts
 
uint32 Cdd_IpcRegRbValues::cddipcclrsts
 
uint32 Cdd_IpcRegRbValues::cddipcenbclr
 
uint32 Cdd_IpcRegRbValues::cddipcenbset
 
uint32 Cdd_IpcRegRbValues::reserved
 
uint8 * Cdd_IpcChannelBufType::pBuf
 
uint32 Cdd_IpcChannelBufType::bufSize
 

CDD IPC Error Codes

void Cdd_IpcGetVersionInfo (Std_VersionInfoType *VersionInfoPtr)
 Service for getting CDD version.
 
void Cdd_IpcInit (void)
 Service for CDD Initialization.
 
Std_ReturnType Cdd_IpcDeinit (void)
 Service for deinitializing CDD.
 
Std_ReturnType Cdd_IpcSendMsg (VAR(uint32,) chId, const void *pBuf, VAR(uint32,) bufLen)
 Service for sending an message to remote cores.
 
Std_ReturnType Cdd_IpcReceiveMsg (VAR(uint32,) chId, void *pBuf, uint32 *bufLen)
 Service for reception of N bytes of data from remote cores.
 
Std_ReturnType Cdd_IpcAnnounce (const UCHAR *pBuf, VAR(uint32,) chId)
 Service for broadcasting capabilities of this core to all other cores.
 
Std_ReturnType Cdd_IpcReceiveCtrlMsg (uint32 *pRemoteProcId, uint32 *pRemoteEndPt, void *pBuf, uint32 *bufLen)
 Service for reception of N bytes of control message from remote cores.
 
Std_ReturnType Cdd_IpcRegisterReadBack (uint32 remoteProcId, Cdd_IpcRegRbValues *pRegArgs)
 Service for reading the configuration registers of the MCAL modules.
 
boolean Cdd_IpcIsInitDone (void)
 Service for checking if IPC module is initialized.
 
uint32 Cdd_IpcGetMaxMsgSize (VAR(uint32,) chId)
 Service for checking if IPC module is initialized.
 
uint32 Cdd_IpcGetMailboxStatus (VAR(uint32,) remoteProcId)
 Service to get Mailbox state is FULL or not.
 

Function Documentation

◆ Cdd_IpcGetVersionInfo()

void Cdd_IpcGetVersionInfo ( Std_VersionInfoType * VersionInfoPtr)

Service for getting CDD version.

*  Service name        : Cdd_IpcGetVersionInfo
*  Syntax              : void Cdd_IpcGetVersionInfo(Std_VersionInfoType
*                                                              VersionInfoPtr)
*  Mode                : User Mode (Non-Privileged Mode)
*  Service ID[hex]     : CDD_IPC_SID_GETVERSIONINFO
*  Sync/Async          : Synchronous
*  Reentrancy          : Non Reentrant
*  Parameters (in)     : VersionInfoPtr - Pointer to version info element
*  Parameters (inout)  : None
*  Parameters (out)    : None
*  Return value        : None
*  Description         : Service for getting CDD version.
*  

◆ Cdd_IpcInit()

void Cdd_IpcInit ( void )

Service for CDD Initialization.

*  Service name        : Cdd_IpcInit
*  Syntax              : Std_ReturnType Cdd_IpcInit(void)
*  Mode                : Supervisor Mode (Privileged Mode)
*  Service ID[hex]     : CDD_IPC_SID_INIT
*  Sync/Async          : Synchronous
*  Reentrancy          : Non Reentrant
*  Parameters (in)     : None
*  Parameters (inout)  : None
*  Parameters (out)    : None
*  Return value        : None
*  Description         : Service for  CDD Initialization.
*  

◆ Cdd_IpcDeinit()

Std_ReturnType Cdd_IpcDeinit ( void )

Service for deinitializing CDD.

*  Service name        : Cdd_IpcDeinit
*  Syntax              : Std_ReturnType Cdd_IpcDeinit(void* ConfigPtr)
*  Mode                : Supervisor Mode (Privileged Mode)
*  Service ID[hex]     : CDD_IPC_SID_DEINIT
*  Sync/Async          : Synchronous
*  Reentrancy          : Non-Reentrant
*  Parameters (in)     : ConfigPtr - Not used for now, reserved for future
*  Parameters (inout)  : None
*  Parameters (out)    : None
*  Return value        : Std_ReturnType
*  Description         : Service for deinitializing the CDD and change the
*                          driver state to uninitialized
*  

◆ Cdd_IpcSendMsg()

Std_ReturnType Cdd_IpcSendMsg ( VAR(uint32,) chId,
const void * pBuf,
VAR(uint32,) bufLen )

Service for sending an message to remote cores.

*  Service name        : Cdd_IpcSendMsg
*  Syntax              : Std_ReturnType Cdd_IpcSendMsg(
*                                              uint32  chId,
*                                              void    *pBuf,
*                                              uint32  bufLen)
*  Mode                : Supervisor Mode (Privileged Mode)
*  Service ID[hex]     : CDD_IPC_SID_SEND
*  Sync/Async          : Synchronous
*  Reentrancy          : NonReentrant
*  Parameters (in)     : chId - Communication channel identifier
*                      : pBuf - non NULL_PTR, that describes the message to be
*                                  sent
*                      : bufLen - Length in bytes and cannot exceed
*                                  CDD_IPC_MAX_MSG_LEN
*  Parameters (inout)  : None
*  Parameters (out)    : None
*  Return value        : Std_ReturnType
*  Description         : This API is used to transport N bytes of data across
*                          cores.
*  

◆ Cdd_IpcReceiveMsg()

Std_ReturnType Cdd_IpcReceiveMsg ( VAR(uint32,) chId,
void * pBuf,
uint32 * bufLen )

Service for reception of N bytes of data from remote cores.

*  Service name        : Cdd_IpcReceiveMsg
*  Syntax              : Std_ReturnType Cdd_IpcReceiveMsg(
*                                              uint32  chId,
*                                              void    *pBuf,
*                                              uint32  bufLen)
*  Mode                : Supervisor Mode (Privileged Mode)
*  Service ID[hex]     : CDD_IPC_SID_RECEIVE
*  Sync/Async          : Synchronous
*  Reentrancy          : NonReentrant
*  Parameters (in)     : chId - Communication channel identifier
*                      : pBuf - non NULL_PTR, that describes the memory space
*                                  that can hold received message. The length
*                                  shall be CDD_IPC_MAX_MSG_LEN
*                      : bufLen - Received message length in bytes and will not
*                                  exceed CDD_IPC_MAX_MSG_LEN.
*  Parameters (inout)  : None
*  Parameters (out)    : None
*  Return value        : Std_ReturnType
*  Description         : This API is used to receive message from remote core
*                          If there are no messages E_NOT_OK shall be
*                          returned.
*
*  

◆ Cdd_IpcAnnounce()

Std_ReturnType Cdd_IpcAnnounce ( const UCHAR * pBuf,
VAR(uint32,) chId )

Service for broadcasting capabilities of this core to all other cores.

*  Service name        : Cdd_IpcAnnounce
*  Syntax              : Std_ReturnType Cdd_IpcAnnounce(
*                                              void    *pBuf,
*                                              uint32  bufLen)
*  Mode                : Supervisor Mode (Privileged Mode)
*  Service ID[hex]     : CDD_IPC_SID_ANNOUNCE
*  Sync/Async          : Synchronous
*  Reentrancy          : NonReentrant
*  Parameters (in)     : pBuf - non NULL_PTR, that describes the message to be
*                                  sent.
*                      : bufLen - Length in bytes and cannot exceed
*                                  CDD_IPC_MAX_MSG_LEN
*  Parameters (inout)  : None
*  Parameters (out)    : None
*  Return value        : Std_ReturnType
*  Description         : This API is used to announce the capability of this
*                          core to all other cores.
*  

◆ Cdd_IpcReceiveCtrlMsg()

Std_ReturnType Cdd_IpcReceiveCtrlMsg ( uint32 * pRemoteProcId,
uint32 * pRemoteEndPt,
void * pBuf,
uint32 * bufLen )

Service for reception of N bytes of control message from remote cores.

*  Service name        : Cdd_IpcReceiveCtrlMsg
*  Syntax              : Std_ReturnType Cdd_IpcReceiveCtrlMsg(
*                                              uint32  pRemoteProcId,
*                                              uint32  pRemoteEndPt,
*                                              void    *pBuf,
*                                              uint32  *bufLen)
*  Mode                : Supervisor Mode (Privileged Mode)
*  Service ID[hex]     : CDD_IPC_SID_CTRL_RECEIVE
*  Sync/Async          : Synchronous
*  Reentrancy          : NonReentrant
*  Parameters (inout)  : pRemoteProcId - Holds the remote processor identifier
*                                          that iniciated this control message
*                      : pRemoteEndPt - Holds remote end point number that
*                                      iniciated this control message
*                      : pBuf - non NULL_PTR, that describes the memory space
*                                  that can hold received message. The length
*                                  shall be CDD_IPC_MAX_MSG_LEN
*                      : bufLen - Received message length in bytes and will not
*                                  exceed CDD_IPC_MAX_MSG_LEN.
*  Parameters (in)     : None
*  Parameters (out)    : None
*  Return value        : Std_ReturnType
*  Description         : This API is used to receive control message from
*                          remote core. If there are no messages E_NOT_OK
*                           shall be returned.
*
*  

◆ Cdd_IpcRegisterReadBack()

Std_ReturnType Cdd_IpcRegisterReadBack ( uint32 remoteProcId,
Cdd_IpcRegRbValues * pRegArgs )

Service for reading the configuration registers of the MCAL modules.

*  Service name        : Cdd_RegisterReadBack
*  Syntax              : Std_ReturnType Cdd_RegisterReadBack(uint8* mod_name)
*  Mode                : Supervisor Mode (Privileged Mode)
*  Service ID[hex]     : None
*  Sync/Async          : Synchronous
*  Reentrancy          : Reentrant
*  Parameters (in)     : None
*  Parameters (inout)  : pRegArgs - Pointer to structure that would hold values
*                          of registers read back by this API
*  Parameters (out)    : None
*  Return value        : Std_ReturnType
*  Description         : Service for reading the critical configuration
*                          registers of the Mailbox/IPC
*  

◆ Cdd_IpcIsInitDone()

boolean Cdd_IpcIsInitDone ( void )

Service for checking if IPC module is initialized.

*  Service name        : Cdd_IpcIsInitDone
*  Syntax              : boolean Cdd_IpcIsInitDone(void)
*  Mode                : User Mode (Non-Privileged Mode)
*  Service ID[hex]     : CDD_IPC_SID_IS_INIT_DONE
*  Sync/Async          : Synchronous
*  Reentrancy          : Reentrant
*  Parameters (in)     : None
*  Parameters (inout)  : None
*  Parameters (out)    : None
*  Return value        : boolean
*  Description         : Returns TRUE if Cdd_ipcInit is completed else FALSE
*  

◆ Cdd_IpcGetMaxMsgSize()

uint32 Cdd_IpcGetMaxMsgSize ( VAR(uint32,) chId)

Service for checking if IPC module is initialized.

*  Service name        : Cdd_IpcGetMaxMsgSize
*  Syntax              : uint32 Cdd_IpcGetMaxMsgSize(uint32 chId)
*  Mode                : User Mode (Non-Privileged Mode)
*  Service ID[hex]     : CDD_IPC_SID_GET_MAX_MSG_SIZE
*  Sync/Async          : Synchronous
*  Reentrancy          : Reentrant
*  Parameters (in)     : chId - Communication channel identifier
*  Parameters (inout)  : None
*  Parameters (out)    : None
*  Return value        : uint32
*  Description         : Returns max msg size for the specified channel
*  

◆ Cdd_IpcGetMailboxStatus()

uint32 Cdd_IpcGetMailboxStatus ( VAR(uint32,) remoteProcId)

Service to get Mailbox state is FULL or not.

*  Service name        : Cdd_IpcGetMailboxStatus
*  Syntax              : uint32 Cdd_IpcGetMailboxStatus(uint32 chId)
*  Mode                : User Mode (Non-Privileged Mode)
*  Service ID[hex]     : CDD_IPC_SID_MAILBOX_STATE
*  Sync/Async          : Synchronous
*  Reentrancy          : Reentrant
*  Parameters (in)     : remoteProcId - Remote ID
*  Parameters (inout)  : None
*  Parameters (out)    : None
*  Return value        : uint32
*  Description         : Returns the mailbox state
*  

Variable Documentation

◆ ownProcID

uint32 Cdd_IpcMpType::ownProcID

Defines processor ID on which MCAL/AUTOSAR is being hosted

◆ numProcs

uint32 Cdd_IpcMpType::numProcs

Number of remote processor which with IPC is desired

◆ remoteProcID

uint32 Cdd_IpcMpType::remoteProcID[CDD_IPC_CORE_USED]

Remote processor identifiers

◆ reserved [1/5]

uint32 Cdd_IpcMpType::reserved

Future use if any

◆ vertIoRingAddr

void* Cdd_IpcVertIoType::vertIoRingAddr

Defines address that shall be shared between cores

◆ vertIoRingSize

uint32 Cdd_IpcVertIoType::vertIoRingSize

Size of the shared memory

◆ vertIoObjSize

uint32 Cdd_IpcVertIoType::vertIoObjSize

Size of the vertio Object, used for vertIoRing

◆ reserved [2/5]

uint32 Cdd_IpcVertIoType::reserved

Future use if any

◆ id

uint32 Cdd_IpcChannelType::id

Unique identifiers for a channel

◆ localEp

uint32 Cdd_IpcChannelType::localEp

Local End Point identifier, on which MCAL/AUTOSAR is hosted

◆ remoteEp

uint32 Cdd_IpcChannelType::remoteEp

Remote End Point identifier, on remote cores

◆ remoteProcId

uint32 Cdd_IpcChannelType::remoteProcId

Remote Processor Identifier

◆ numMsgQueued

uint32 Cdd_IpcChannelType::numMsgQueued

Maximum depth of the queue, that holds received messages

◆ maxMsgSize

uint32 Cdd_IpcChannelType::maxMsgSize

Maximum size of the message that could be received

◆ NewMessageNotify

Cdd_Ipc_NewMessage Cdd_IpcChannelType::NewMessageNotify

Function pointer to a new message for specific channel ID

◆ reserved [3/5]

uint32 Cdd_IpcChannelType::reserved

Future use if any

◆ coreIds

Cdd_IpcMpType Cdd_IpcConfigType::coreIds

Core identifier configurations

◆ vertIoCfg

Cdd_IpcVertIoType Cdd_IpcConfigType::vertIoCfg

VertIO configurations

◆ channelCount

uint32 Cdd_IpcConfigType::channelCount

Number of channels configured

◆ pChCfg

const Cdd_IpcChannelType* Cdd_IpcConfigType::pChCfg

Pointer to array of channel conditions

◆ reserved [4/5]

uint32 Cdd_IpcConfigType::reserved

Reserved field

◆ numRegisters

uint32 Cdd_IpcRegRbValues::numRegisters

Will specify number of registers values provided

◆ regValues

uint32 Cdd_IpcRegRbValues::regValues[CDD_IPC_CORE_ID_MAX]

Values of critical registers that's read and provided

◆ cddipcRev

uint32 Cdd_IpcRegRbValues::cddipcRev

MAILBOX_REVISION Register

◆ cddipcsyscfg

uint32 Cdd_IpcRegRbValues::cddipcsyscfg

MAILBOX_SYSCONFIG Register

◆ cddipceoi

uint32 Cdd_IpcRegRbValues::cddipceoi

MAILBOX_EOI Register

◆ cddipcmsg

uint32 Cdd_IpcRegRbValues::cddipcmsg

MAILBOX_MESSAGE_y Register

◆ cddipcfifosts

uint32 Cdd_IpcRegRbValues::cddipcfifosts

MAILBOX_FIFO_STATUS_y Register

◆ cddipcmsgsts

uint32 Cdd_IpcRegRbValues::cddipcmsgsts

MAILBOX_MSG_STATUS_y Register

◆ cddipcirqrawsts

uint32 Cdd_IpcRegRbValues::cddipcirqrawsts

MAILBOX_IRQ_STATUS_RAW_i Register

◆ cddipcclrsts

uint32 Cdd_IpcRegRbValues::cddipcclrsts

MAILBOX_CLR_STATUS_i Register

◆ cddipcenbclr

uint32 Cdd_IpcRegRbValues::cddipcenbclr

MAILBOX_ENABLE_CLR_i Register

◆ cddipcenbset

uint32 Cdd_IpcRegRbValues::cddipcenbset

MAILBOX_ENABLE_SET_i Register

◆ reserved [5/5]

uint32 Cdd_IpcRegRbValues::reserved

Reserved field

◆ pBuf

uint8* Cdd_IpcChannelBufType::pBuf

Pointer to buffer

◆ bufSize

uint32 Cdd_IpcChannelBufType::bufSize

Buffer size, expressed in bytes