 |
AM263Px MCU+ SDK
11.00.00
|
|
Go to the documentation of this file.
33 #ifndef SIPC_NOTIFY_MAILBOX_H_
34 #define SIPC_NOTIFY_MAILBOX_H_
45 #define MAILBOX_MAX_SW_QUEUE_STRUCT_SIZE (sizeof(SIPC_SwQueue))
62 typedef struct SIPC_SwQueue_
71 #if defined(__aarch64__) || defined(__arm__)
72 static inline void asm_dsb_memory(
void)
74 __asm__ __volatile__(
"dsb sy" "\n\t": : :
"memory");
77 static inline void asm_isb_memory(
void)
79 __asm__ __volatile__(
"isb" "\n\t": : :
"memory");
88 volatile uint32_t rdIdx = swQ->
rdIdx;
89 volatile uint32_t wrIdx = swQ->
wrIdx;
91 if((rdIdx < swQ->Qlength) && (wrIdx < swQ->Qlength))
105 #
if defined(__aarch64__) || defined(__arm__)
122 volatile uint32_t rdIdx = swQ->
rdIdx;
123 volatile uint32_t wrIdx = swQ->
wrIdx;
125 if((rdIdx < swQ->Qlength) && (wrIdx < swQ->Qlength))
127 if( ( (wrIdx+1)%swQ->
Qlength ) != rdIdx )
129 volatile uint32_t *addr = (uint32_t *)mailboxBaseAddr;
135 wrIdx = (wrIdx+1)%swQ->
Qlength;
141 #
if defined(__aarch64__) || defined(__arm__)
147 *addr = (1U << (wrIntrBitPos));
157 volatile uint32_t *addr = (uint32_t *)mailboxBaseAddr;
163 volatile uint32_t *addr = (uint32_t *)mailboxBaseAddr;
170 volatile uint32_t *addr = ( uint32_t *)mailboxBaseAddr;
176 extern uint32_t gSIPCCoreIntrBitPos[];
178 uint32_t isPending = 0;
179 isPending = pendingIntr & (1 << gSIPCCoreIntrBitPos[coreId]);
static uint32_t SIPC_mailboxIsPendingIntr(uint32_t pendingIntr, uint32_t coreId)
Definition: sipc_notify_mailbox.h:174
uint32_t wrIdx
Definition: sipc_notify_mailbox.h:65
uint32_t rdIdx
Definition: sipc_notify_mailbox.h:64
static int32_t SIPC_mailboxWrite(uint32_t mailboxBaseAddr, uint32_t wrIntrBitPos, SIPC_SwQueue *swQ, uint8_t *Buff)
Definition: sipc_notify_mailbox.h:118
uint8_t * Qfifo
Definition: sipc_notify_mailbox.h:68
static uint32_t SIPC_mailboxGetPendingIntr(uint32_t mailboxBaseAddr)
Definition: sipc_notify_mailbox.h:161
void * SOC_phyToVirt(uint64_t phyAddr)
Physical to Virtual (CPU) address translation function.
uint16_t Qlength
Definition: sipc_notify_mailbox.h:67
SIPC swQ structure which holds the data pointer to a fifo Queue in HSM MBOX memory.
Definition: sipc_notify_mailbox.h:63
#define SystemP_SUCCESS
Return status when the API execution was successful.
Definition: SystemP.h:56
#define SystemP_FAILURE
Return status when the API execution was not successful due to a failure.
Definition: SystemP.h:61
uint16_t EleSize
Definition: sipc_notify_mailbox.h:66
static void SIPC_mailboxClearPendingIntr(uint32_t mailboxBaseAddr, uint32_t pendingIntr)
Definition: sipc_notify_mailbox.h:168
static void SIPC_mailboxClearAllInt(uint32_t mailboxBaseAddr)
Definition: sipc_notify_mailbox.h:155
static int32_t SIPC_mailboxRead(SIPC_SwQueue *swQ, uint8_t *Buff)
Definition: sipc_notify_mailbox.h:84