![]() |
axidma
Vitis Drivers API Documentation
|
Data Structures | |
struct | XAxiDma_BdRing |
Container structure for descriptor storage control. More... | |
Macros | |
#define | XAxiDma_BdRingCntCalc(Alignment, Bytes) (uint32_t)((Bytes)/((sizeof(XAxiDma_Bd)+((Alignment)-1))&~((Alignment)-1))) |
Use this macro at initialization time to determine how many BDs will fit within the given memory constraints. More... | |
#define | XAxiDma_BdRingMemCalc(Alignment, NumBd) (int)((sizeof(XAxiDma_Bd)+((Alignment)-1)) & ~((Alignment)-1))*(NumBd) |
Use this macro at initialization time to determine how many bytes of memory are required to contain a given number of BDs at a given alignment. More... | |
#define | XAxiDma_BdRingGetCnt(RingPtr) ((RingPtr)->AllCnt) |
Return the total number of BDs allocated by this channel with XAxiDma_BdRingCreate(). More... | |
#define | XAxiDma_BdRingGetFreeCnt(RingPtr) ((RingPtr)->FreeCnt) |
Return the number of BDs allocatable with XAxiDma_BdRingAlloc() for pre- processing. More... | |
#define | XAxiDma_BdRingSnapShotCurrBd(RingPtr) |
Snap shot the latest BD a BD ring is processing. More... | |
#define | XAxiDma_BdRingGetCurrBd(RingPtr) |
Get the BD a BD ring is processing. More... | |
#define | XAxiDma_BdRingNext(RingPtr, BdPtr) |
Return the next BD in the ring. More... | |
#define | XAxiDma_BdRingPrev(RingPtr, BdPtr) |
Return the previous BD in the ring. More... | |
#define | XAxiDma_BdRingGetSr(RingPtr) XAxiDma_ReadReg((RingPtr)->ChanBase, XAXIDMA_SR_OFFSET) |
Retrieve the contents of the channel status register. More... | |
#define | XAxiDma_BdRingGetError(RingPtr) |
Get error bits of a DMA channel. More... | |
#define | XAxiDma_BdRingHwIsStarted(RingPtr) |
Check whether a DMA channel is started, meaning the channel is not halted. More... | |
#define | XAxiDma_BdRingBusy(RingPtr) |
Check if the current DMA channel is busy with a DMA operation. More... | |
#define | XAxiDma_BdRingIntEnable(RingPtr, Mask) |
Set interrupt enable bits for a channel. More... | |
#define | XAxiDma_BdRingIntGetEnabled(RingPtr) |
Get enabled interrupts of a channel. More... | |
#define | XAxiDma_BdRingIntDisable(RingPtr, Mask) |
Clear interrupt enable bits for a channel. More... | |
#define | XAxiDma_BdRingGetIrq(RingPtr) |
Retrieve the contents of the channel's IRQ register XAXIDMA_SR_OFFSET. More... | |
#define | XAxiDma_BdRingAckIrq(RingPtr, Mask) |
Acknowledge asserted interrupts. More... | |
#define | XAxiDma_BdRingEnableCyclicDMA(RingPtr) (RingPtr->Cyclic = 1) |
Enable Cyclic DMA Mode. More... | |
Functions | |
int | XAxiDma_StartBdRingHw (XAxiDma_BdRing *RingPtr) |
Start a DMA channel and Allow DMA transactions to commence on a given channel if descriptors are ready to be processed. More... | |
int | XAxiDma_UpdateBdRingCDesc (XAxiDma_BdRing *RingPtr) |
Update Current Descriptor. More... | |
u32 | XAxiDma_BdRingCreate (XAxiDma_BdRing *RingPtr, UINTPTR PhysAddr, UINTPTR VirtAddr, u32 Alignment, int BdCount) |
Using a memory segment allocated by the caller, This fundtion creates and setup the BD ring. More... | |
int | XAxiDma_BdRingClone (XAxiDma_BdRing *RingPtr, XAxiDma_Bd *SrcBdPtr) |
Clone the given BD into every BD in the ring. More... | |
int | XAxiDma_BdRingAlloc (XAxiDma_BdRing *RingPtr, int NumBd, XAxiDma_Bd **BdSetPtr) |
Reserve locations in the BD ring. More... | |
int | XAxiDma_BdRingUnAlloc (XAxiDma_BdRing *RingPtr, int NumBd, XAxiDma_Bd *BdSetPtr) |
Fully or partially undo an XAxiDma_BdRingAlloc() operation. More... | |
int | XAxiDma_BdRingToHw (XAxiDma_BdRing *RingPtr, int NumBd, XAxiDma_Bd *BdSetPtr) |
Enqueue a set of BDs to hardware that were previously allocated by XAxiDma_BdRingAlloc(). More... | |
int | XAxiDma_BdRingFromHw (XAxiDma_BdRing *RingPtr, int BdLimit, XAxiDma_Bd **BdSetPtr) |
Returns a set of BD(s) that have been processed by hardware. More... | |
int | XAxiDma_BdRingFree (XAxiDma_BdRing *RingPtr, int NumBd, XAxiDma_Bd *BdSetPtr) |
Frees a set of BDs that had been previously retrieved with XAxiDma_BdRingFromHw(). More... | |
int | XAxiDma_BdRingStart (XAxiDma_BdRing *RingPtr) |
Start a DMA channel, updates current descriptors and Allow DMA transactions to commence on a given channel if descriptors are ready to be processed. More... | |
int | XAxiDma_BdRingSetCoalesce (XAxiDma_BdRing *RingPtr, u32 Counter, u32 Timer) |
Set interrupt coalescing parameters for the given descriptor ring channel. More... | |
void | XAxiDma_BdRingGetCoalesce (XAxiDma_BdRing *RingPtr, u32 *CounterPtr, u32 *TimerPtr) |
Retrieve current interrupt coalescing parameters from the given descriptor ring channel. More... | |
int | XAxiDma_BdRingCheck (XAxiDma_BdRing *RingPtr) |
Check the internal data structures of the BD ring for the provided channel. More... | |
void | XAxiDma_BdRingDumpRegs (XAxiDma_BdRing *RingPtr) |
Dump the registers for a channel. More... | |