xilloader
Vitis Drivers API Documentation
XilLoader Mailbox APIs

Macros

#define XILLOADER_MODULE_ID   (7U)
 Module id for xilloader. More...
 
#define PAYLOAD_ARG_CNT   XIPIPSU_MAX_MSG_LEN
 1 for API ID + 5 for API arguments + 1 for reserved + 1 for CRC More...
 
#define RESPONSE_ARG_CNT   XIPIPSU_MAX_MSG_LEN
 1 for status + 3 for values + 3 for reserved + 1 for CRC More...
 
#define XLOADER_TARGET_IPI_INT_MASK   (0x00000002U)
 Target PMC IPI interrupt mask. More...
 
#define XLOADER_MODULE_ID_SHIFT   (8U)
 Module id shift. More...
 
#define XLOADER_PAYLOAD_LEN_SHIFT   (16U)
 Length shift mask. More...
 
#define XILLOADER_MODULE_ID_MASK   ((u32)XILLOADER_MODULE_ID << XLOADER_MODULE_ID_SHIFT)
 Module id mask. More...
 
#define XLOADER_SHARED_MEM_SIZE   (160U)
 Max size of shared memory used to store the CDO command. More...
 

Functions

int XLoader_ProcessMailbox (XLoader_ClientInstance *ClientPtr, u32 *MsgPtr, u32 MsgLen)
 This function sends IPI request to the target module and gets the response from it. More...
 
int XLoader_ClientInit (XLoader_ClientInstance *const InstancePtr, XMailbox *const MailboxPtr)
 This function sets the instance of mailbox. More...
 

Variables

XMailbox * XLoader_ClientInstance::MailboxPtr
 Pointer to mailbox for IPI communication. More...
 
u32 XLoader_ClientInstance::Response [RESPONSE_ARG_CNT]
 Buffer to store the response of the IPI. More...
 
u32 XLoader_ClientInstance::SlrIndex
 SLR index number. More...
 

Macro Definition Documentation

#define PAYLOAD_ARG_CNT   XIPIPSU_MAX_MSG_LEN

1 for API ID + 5 for API arguments + 1 for reserved + 1 for CRC

#define RESPONSE_ARG_CNT   XIPIPSU_MAX_MSG_LEN

1 for status + 3 for values + 3 for reserved + 1 for CRC

Referenced by XLoader_ProcessMailbox().

#define XILLOADER_MODULE_ID   (7U)

Module id for xilloader.

#define XILLOADER_MODULE_ID_MASK   ((u32)XILLOADER_MODULE_ID << XLOADER_MODULE_ID_SHIFT)

Module id mask.

#define XLOADER_MODULE_ID_SHIFT   (8U)

Module id shift.

#define XLOADER_PAYLOAD_LEN_SHIFT   (16U)

Length shift mask.

#define XLOADER_SHARED_MEM_SIZE   (160U)

Max size of shared memory used to store the CDO command.

#define XLOADER_TARGET_IPI_INT_MASK   (0x00000002U)

Target PMC IPI interrupt mask.

Referenced by XLoader_ProcessMailbox().

Function Documentation

int XLoader_ClientInit ( XLoader_ClientInstance *  InstancePtr,
XMailbox *  MailboxPtr 
)

This function sets the instance of mailbox.

Parameters
InstancePtrPointer to the client instance.
MailboxPtrPointer to the mailbox instance.
Returns
  • XST_SUCCESS On successful initialization.
  • XST_FAILURE On failure.
  • Perform input parameter validation on InstancePtr,if not NULL initialize the InstancePtr. Return XST_FAILURE if NULL.

Referenced by main().

int XLoader_ProcessMailbox ( XLoader_ClientInstance *  ClientPtr,
u32 *  MsgPtr,
u32  MsgLen 
)

This function sends IPI request to the target module and gets the response from it.

Parameters
MsgPtrPointer to the payload message.
MsgLenLength of the message.
Returns
  • XST_SUCCESS - If the IPI send and receive is successful.
  • XST_FAILURE - If there is a failure.
Note
Payload consists of API id and call arguments to be written in IPI buffer.

Send IPI CDO to PLM. Return XST_FAILURE if sending data failed

- Wait for IPI response from PLM  with a default timeout of 300 seconds.

If the timeout exceeds then error is returned otherwise it returns the status of the IPI response.

References RESPONSE_ARG_CNT, and XLOADER_TARGET_IPI_INT_MASK.

Referenced by XLoader_AddImageStorePdi(), XLoader_CfiSelectiveReadback(), XLoader_ConfigureJtagState(), XLoader_ExtractMetaheader(), XLoader_GetATFHandOffParams(), XLoader_GetImageInfo(), XLoader_GetImageInfoList(), XLoader_GetOptionalData(), XLoader_LoadImage(), XLoader_LoadPartialPdi(), XLoader_ReadDdrCryptoPerfCounters(), XLoader_RemoveImageStorePdi(), and XLoader_UpdateMultiboot().

Variable Documentation

XMailbox* XLoader_ClientInstance::MailboxPtr

Pointer to mailbox for IPI communication.

u32 XLoader_ClientInstance::Response[RESPONSE_ARG_CNT]

Buffer to store the response of the IPI.

u32 XLoader_ClientInstance::SlrIndex

SLR index number.