axicdma
Xilinx Vitis Drivers API Documentation
xaxicdma.h File Reference

Typedefs

Call Back function

If interrupt is enabled, and the application wants to be notified about the completion of a transfer, the application should register its call back function to the driver.

The call back function is registered through the transfer submission.

Parameters
CallBackRefis the call back reference passed in by application. A NULL pointer is acceptable.
IrqMaskis the interrupt mask regarding this completion
NumBdPtris the pointer to number of BDs this handler should handle, for simple transfer, it is ignored.
typedef void(* XAxiCdma_CallBackFn )(void *CallBackRef, u32 IrqMask, int *NumBdPtr)
 

Functions

XAxiCdma_Config * XAxiCdma_LookupConfig (u32 DeviceId)
 Look up the hardware configuration for a device instance. More...
 
u32 XAxiCdma_CfgInitialize (XAxiCdma *InstancePtr, XAxiCdma_Config *CfgPtr, UINTPTR EffectiveAddr)
 This function initializes the driver. More...
 
void XAxiCdma_Reset (XAxiCdma *InstancePtr)
 This function conducts hardware reset. More...
 
int XAxiCdma_ResetIsDone (XAxiCdma *InstancePtr)
 This function checks whether the hardware reset is done. More...
 
int XAxiCdma_IsBusy (XAxiCdma *InstancePtr)
 This function checks whether the hardware is doing transfer. More...
 
int XAxiCdma_SetCoalesce (XAxiCdma *InstancePtr, u32 Counter, u32 Delay)
 This function tries to set the interrupt coalescing threshold counter and the delay counter. More...
 
void XAxiCdma_GetCoalesce (XAxiCdma *InstancePtr, u32 *CounterPtr, u32 *DelayPtr)
 This function gets the current setting of the interrupt coalescing threshold counter and the delay counter. More...
 
u32 XAxiCdma_GetError (XAxiCdma *InstancePtr)
 This function gets the status on error bits. More...
 
void XAxiCdma_IntrEnable (XAxiCdma *InstancePtr, u32 Mask)
 This function enables interrupts specified by the Mask. More...
 
u32 XAxiCdma_IntrGetEnabled (XAxiCdma *InstancePtr)
 This function gets the mask for the interrupts that are currently enabled. More...
 
void XAxiCdma_IntrDisable (XAxiCdma *InstancePtr, u32 Mask)
 This function disables interrupts specified by the Mask. More...
 
void XAxiCdma_IntrHandler (void *HandlerRef)
 This function is the interrupt handler for the driver, it handles all the interrupts. More...
 
u32 XAxiCdma_SimpleTransfer (XAxiCdma *InstancePtr, UINTPTR SrcAddr, UINTPTR DstAddr, int Length, XAxiCdma_CallBackFn SimpleCallBack, void *CallBackRef)
 This function does one simple transfer submission. More...
 
int XAxiCdma_SelectKeyHole (XAxiCdma *InstancePtr, u32 Direction, u32 Select)
 This function configures KeyHole Write/Read Feature. More...
 
u32 XAxiCdma_BdRingCntCalc (u32 Alignment, u32 Bytes, UINTPTR BdBuffAddr)
 This function calculates how many BDs can be built using given number of bytes of memory, according to alignment provided. More...
 
u32 XAxiCdma_BdRingMemCalc (u32 Alignment, int NumBd)
 This function calculates how much memory is needed to build requested number of BDs. More...
 
u32 XAxiCdma_BdRingGetCnt (XAxiCdma *InstancePtr)
 This function gets the total number of BDs in the BD ring. More...
 
u32 XAxiCdma_BdRingGetFreeCnt (XAxiCdma *InstancePtr)
 This function gets the number of free BDs. More...
 
void XAxiCdma_BdRingSnapShotCurrBd (XAxiCdma *InstancePtr)
 This function grabs a copy of the current BD pointer from the hardware. More...
 
XAxiCdma_BdXAxiCdma_BdRingGetCurrBd (XAxiCdma *InstancePtr)
 This function grabs a copy of the current BD pointer from the hardware. More...
 
XAxiCdma_BdXAxiCdma_BdRingNext (XAxiCdma *InstancePtr, XAxiCdma_Bd *BdPtr)
 This function gets the next BD of the current BD on the BD ring. More...
 
XAxiCdma_BdXAxiCdma_BdRingPrev (XAxiCdma *InstancePtr, XAxiCdma_Bd *BdPtr)
 This function gets the previous BD of the current BD on the BD ring. More...
 
LONG XAxiCdma_BdRingCreate (XAxiCdma *InstancePtr, UINTPTR PhysAddr, UINTPTR VirtAddr, u32 Alignment, int BdCount)
 This function creates the BD ring for the driver instance. More...
 
LONG XAxiCdma_BdRingClone (XAxiCdma *InstancePtr, XAxiCdma_Bd *TemplateBdPtr)
 This function clones all BDs in the BD ring to be the same as the given BD. More...
 
LONG XAxiCdma_BdRingAlloc (XAxiCdma *InstancePtr, int NumBd, XAxiCdma_Bd **BdSetPtr)
 This function requests number of BDs from the BD ring. More...
 
LONG XAxiCdma_BdRingUnAlloc (XAxiCdma *InstancePtr, int NumBd, XAxiCdma_Bd *BdSetPtr)
 This function tries to free the number of BDs back to the ring. More...
 
LONG XAxiCdma_BdRingToHw (XAxiCdma *InstancePtr, int NumBd, XAxiCdma_Bd *BdSetPtr, XAxiCdma_CallBackFn CallBackFn, void *CallBackRef)
 This function tries to enqueue the number of BDs to the hardware. More...
 
u32 XAxiCdma_BdRingFromHw (XAxiCdma *InstancePtr, int BdLimit, XAxiCdma_Bd **BdSetPtr)
 This function tries to retrieve completed BDs from the hardware. More...
 
u32 XAxiCdma_BdRingFree (XAxiCdma *InstancePtr, int NumBd, XAxiCdma_Bd *BdSetPtr)
 This function returns the BDs back to the free pool of the BD ring. More...
 
void XAxiCdma_BdSetCurBdPtr (XAxiCdma *InstancePtr, UINTPTR CurBdPtr)
 This function set the Current BD ptr of a BD. More...
 
void XAxiCdma_BdSetTailBdPtr (XAxiCdma *InstancePtr, UINTPTR TailBdPtr)
 This function set the Tail BD ptr of a BD. More...
 
void XAxiCdma_DumpRegisters (XAxiCdma *InstancePtr)
 This function dumps the registers of this DMA instance. More...