XilMailbox Library API Reference - 2021.1 English

Xilinx Standalone Library Documentation OS and Libraries Document Collection (UG643)

Document ID
UG643
Release Date
2021-06-16
Version
2021.1 English

The XilMailbox library provides the top-level hooks for sending or receiving an inter-processor interrupt (IPI) message using the Zynq® UltraScale+™ MPSoC and Versal ACAP IPI hardware.This library supports Zynq Ultrascale+ MPSoC and Versal platforms. For more details on the IPI interrupts, see the Zynq UltraScale+ MPSoC Technical Reference Manual (UG1085).

The XilMailbox library supports the following features:

  • Triggering an IPI to a remote agent.
  • Sending an IPI message to a remote agent.
  • Callbacks for error and recv IPI events.
  • Reading an IPI message.

The following is a list of software initalization events for a given IPI channel:

  • IPI Initialization using XMailbox_Initalize() function. This step initializes a library instance for the given IPI channel.
  • XMailbox_Send() function triggers an IPI to a remote agent.
  • XMailbox_SendData() function sends an IPI message to a remote agent. Message type should be either XILMBOX_MSG_TYPE_REQ (OR) XILMBOX_MSG_TYPE_RESP.
  • XMailbox_Recv() function reads an IPI message from a specified source agent. Message type should be either XILMBOX_MSG_TYPE_REQ (OR) XILMBOX_MSG_TYPE_RESP.
  • XMailbox_SetCallBack() using this function user can register call backs for recv and error events.
Table 1. Quick Function Reference
Type Name Arguments
u32 XMailbox_Send
  • XMailbox * InstancePtr
  • u32 RemoteId
  • u8 Is_Blocking
u32 XMailbox_SendData
  • XMailbox * InstancePtr
  • u32 RemoteId
  • void * BufferPtr
  • u32 MsgLen
  • u8 BufferType
  • u8 Is_Blocking
u32 XMailbox_Recv
  • XMailbox * InstancePtr
  • u32 SourceId
  • void * BufferPtr
  • u32 MsgLen
  • u8 BufferType
s32 XMailbox_SetCallBack
u32 XMailbox_Initialize
u32 XIpiPs_Init
u32 XIpiPs_Send
u32 XIpiPs_SendData
  • XMailbox * InstancePtr
  • void * MsgBufferPtr
  • u32 MsgLen
  • u8 BufferType
  • u8 Is_Blocking
u32 XIpiPs_PollforDone
u32 XIpiPs_RecvData
  • XMailbox * InstancePtr
  • void * MsgBufferPtr
  • u32 MsgLen
  • u8 BufferType
XStatus XIpiPs_RegisterIrq
  • void
void XIpiPs_ErrorIntrHandler
  • void
void XIpiPs_IntrHandler
  • void