AM64x MCU+ SDK  08.02.00

Introduction

UDMA event related parameters and API.

Go to the source code of this file.

Data Structures

struct  Udma_EventPrms
 UDMA event related parameters. More...
 
struct  Udma_EventRxFlowIdFwStatus
 UDMAP receive flow id firewall status. More...
 
struct  Udma_EventObject
 Opaque UDMA event object. More...
 

Macros

#define UDMA_EVENT_INVALID   ((uint32_t) 0xFFFFU)
 Macro used to specify that event ID is invalid. More...
 
#define UDMA_INTR_INVALID   ((uint32_t) 0xFFFF0000U)
 Macro used to specify that interrupt number is invalid. More...
 
#define UDMA_CORE_INTR_ANY   ((uint32_t) 0xFFFF0001U)
 Macro used to specify any available free core interrupt while requesting one. Used in the API Udma_eventRegister. More...
 
#define UDMA_MAX_EVENTS_PER_VINTR   (64U)
 Max events per IA VINTR. More...
 
UDMA Event Type

UDMA events supported.

#define UDMA_EVENT_TYPE_DMA_COMPLETION   ((uint32_t) 0x0001U)
 DMA completion event. Incase of TX/RX channel usage through ring, this represents the completion queue ring event and the application can dequeue the descriptor post this event. More...
 
#define UDMA_EVENT_TYPE_TEARDOWN_PACKET   ((uint32_t) 0x0002U)
 DMA teardown completion event. Incase of TX/RX channel usage through ring, this represents the in-complete descriptor queued to the TD CQ ring during teardown operation. Note: This doesn't represent teardown completion of the channel. More...
 
#define UDMA_EVENT_TYPE_TR   ((uint32_t) 0x0003U)
 TR event to IA. More...
 
#define UDMA_EVENT_TYPE_RING   ((uint32_t) 0x0004U)
 Ring event used for getting callback when entries are there to be popped from ring. This is added to support usecases where the user can independently allocate and configure ring and requires callback when hardware occupancy in the ring goes to non-zero. Note: This is not tied to any channel handle. And hence the chHandle in the event params can be set to NULL (Ignored by driver) More...
 
#define UDMA_EVENT_TYPE_MASTER   ((uint32_t) 0x0005U)
 Event type used to register master event without providing source type like ring, DMA etc... This event type can be used to register the master event which reserves the IA and IR interrupt to a core without reserving global event ID and IMAP programming. Post this, the handle can be passed to masterEventHandle for other event registeration to share the same IA and IR. More...
 
#define UDMA_EVENT_TYPE_TEARDOWN_COMPLETION   ((uint32_t) 0x0006U)
 DMA channel teardown completion event. Incase of TX/RX channel usage through ring, this represents the teardown completion of the channel. More...
 
UDMA Event Mode

UDMA event mode.

#define UDMA_EVENT_MODE_EXCLUSIVE   ((uint32_t) 0x0001U)
 Event is exclusively allocated at Interrupt Aggregator. More...
 
#define UDMA_EVENT_MODE_SHARED   ((uint32_t) 0x0002U)
 Event is shared at Interrupt Aggregator and could be shared with any other events. More...
 

Typedefs

typedef void(* Udma_EventCallback) (Udma_EventHandle eventHandle, uint32_t eventType, void *appData)
 UDMA event callback function. More...
 

Functions

int32_t Udma_eventRegister (Udma_DrvHandle drvHandle, Udma_EventHandle eventHandle, Udma_EventPrms *eventPrms)
 UDMA event registration. More...
 
int32_t Udma_eventUnRegister (Udma_EventHandle eventHandle)
 UDMA unregister event. More...
 
uint32_t Udma_eventGetId (Udma_EventHandle eventHandle)
 Returns the event ID allocated for this event. More...
 
int32_t Udma_eventDisable (Udma_EventHandle eventHandle)
 Disable the event at interrupt aggregator. More...
 
int32_t Udma_eventEnable (Udma_EventHandle eventHandle)
 Enable the event at interrupt aggregator. More...
 
Udma_EventHandle Udma_eventGetGlobalHandle (Udma_DrvHandle drvHandle)
 Get the global event handle of the driver handle. More...
 
void UdmaEventPrms_init (Udma_EventPrms *eventPrms)
 Udma_EventPrms structure init function. More...