AM62Ax MCU+ SDK  10.01.00
ipc_notify.h File Reference

Go to the source code of this file.

Data Structures

struct  IpcNotify_Params
 Parameters used by IpcNotify_init. More...
 

Macros

#define IPC_NOTIFY_CLIENT_ID_MAX   (16U)
 Maximum number of clients possible for receiving messages. More...
 
#define IPC_NOTIFY_CLIENT_ID_RPMSG   (0U)
 Client ID used by rpmessage, this client ID should not be used by other users. More...
 
#define IPC_NOTIFY_CLIENT_ID_SYNC   (1U)
 Client ID used for sync messages, this client ID should not be used by other users. More...
 
#define IPC_NOTIFY_CLIENT_ID_RP_MBOX   (0xFU)
 Client ID used for remoteproc (RP_MBOX) related messages, this client ID should not be used by other users. More...
 
#define IPC_NOTIFY_MSG_VALUE_MAX   (0x10000000U)
 Maximum value of message that can be sent and received. More...
 

Typedefs

typedef void(* IpcNotify_FxnCallback) (uint16_t remoteCoreId, uint16_t localClientId, uint32_t msgValue, void *args)
 User callback that is invoked when a message is received from a reote core for a given client ID. More...
 
typedef void(* IpcNotify_NonNotifyCallback) (uint32_t remoteCoreId)
 This is a driver library internal API and is used in certain SOCs by the separate mailbox driver. More...
 

Enumerations

enum  IpcNotify_RP_Mbox_Message {
  IPC_NOTIFY_RP_MBOX_READY = 0x0FFFFF00, IPC_NOTIFY_RP_MBOX_PENDING_MSG = 0x0FFFFF01, IPC_NOTIFY_RP_MBOX_CRASH = 0x0FFFFF02, IPC_NOTIFY_RP_MBOX_ECHO_REQUEST = 0x0FFFFF03,
  IPC_NOTIFY_RP_MBOX_ECHO_REPLY = 0x0FFFFF04, IPC_NOTIFY_RP_MBOX_ABORT_REQUEST = 0x0FFFFF05, IPC_NOTIFY_RP_MBOX_SUSPEND_AUTO = 0x0FFFFF10, IPC_NOTIFY_RP_MBOX_SUSPEND_SYSTEM = 0x0FFFFF11,
  IPC_NOTIFY_RP_MBOX_SUSPEND_ACK = 0x0FFFFF12, IPC_NOTIFY_RP_MBOX_SUSPEND_CANCEL = 0x0FFFFF13, IPC_NOTIFY_RP_MBOX_SHUTDOWN = 0x0FFFFF14, IPC_NOTIFY_RP_MBOX_SHUTDOWN_ACK = 0x0FFFFF15,
  IPC_NOTIFY_RP_MBOX_END_MSG = 0x0FFFFF16
}
 Enum to list the various messages sent by remote proc kernal driver. More...
 

Functions

void IpcNotify_Params_init (IpcNotify_Params *params)
 Set default value to IpcNotify_Params. More...
 
int32_t IpcNotify_init (const IpcNotify_Params *params)
 Initialize IPC Notify module. More...
 
void IpcNotify_deInit (void)
 De-initialize IPC Notify module. More...
 
int32_t IpcNotify_sendMsg (uint32_t remoteCoreId, uint16_t remoteClientId, uint32_t msgValue, uint32_t waitForFifoNotFull)
 Send message to a specific remote core and specific client ID on that remote core. More...
 
int32_t IpcNotify_registerClient (uint16_t localClientId, IpcNotify_FxnCallback msgCallback, void *args)
 Register a callback to handle messages received from a specific remote core and for a specific local client ID. More...
 
int32_t IpcNotify_unregisterClient (uint16_t localClientId)
 Un-register a previously registered callback. More...
 
uint16_t IpcNotify_getSelfCoreId (void)
 Return current core ID. More...
 
uint32_t IpcNotify_isCoreEnabled (uint32_t coreId)
 Check if a core is enabled for IPC. More...
 
int32_t IpcNotify_sendSync (uint32_t remoteCoreId)
 Send a sync message to specific core. More...
 
int32_t IpcNotify_waitSync (uint32_t remoteCoreId, uint32_t timeout)
 Wait for a sync message to be received from the specified core. More...
 
int32_t IpcNotify_syncAll (uint32_t timeout)
 Send a message to all enabled cores and wait for sync message from all enabled cores. More...
 
void IpcNotify_registerNonNotifyCallback (IpcNotify_NonNotifyCallback callback)
 This is a driver library internal API and is used in certain SOCs by the separate mailbox driver. More...