![]() |
axidma
Xilinx SDK Drivers API Documentation
|
Data Structures | |
struct | XAxiDma |
The XAxiDma driver instance data. More... | |
struct | XAxiDma_Config |
The configuration structure for AXI DMA engine. More... | |
Macros | |
#define | XAxiDma_GetTxRing(InstancePtr) (&((InstancePtr)->TxBdRing)) |
Get Transmit (Tx) Ring ptr. More... | |
#define | XAxiDma_GetRxRing(InstancePtr) (&((InstancePtr)->RxBdRing[0])) |
Get Receive (Rx) Ring ptr. More... | |
#define | XAxiDma_GetRxIndexRing(InstancePtr, RingIndex) (&((InstancePtr)->RxBdRing[RingIndex])) |
Get Receive (Rx) Ring ptr of a Index. More... | |
#define | XAxiDma_HasSg(InstancePtr) ((InstancePtr)->HasSg) ? TRUE : FALSE |
This function checks whether system is configured as Simple or Scatter Gather mode. More... | |
#define | XAxiDma_IntrEnable(InstancePtr, Mask, Direction) |
This function enables interrupts specified by the Mask in specified direction, Interrupts that are not in the mask are not affected. More... | |
#define | XAxiDma_IntrGetEnabled(InstancePtr, Direction) |
This function gets the mask for the interrupts that are currently enabled. More... | |
#define | XAxiDma_IntrDisable(InstancePtr, Mask, Direction) |
This function disables interrupts specified by the Mask. More... | |
#define | XAxiDma_IntrGetIrq(InstancePtr, Direction) |
This function gets the interrupts that are asserted. More... | |
#define | XAxiDma_IntrAckIrq(InstancePtr, Mask, Direction) |
This function acknowledges the interrupts that are specified in Mask. More... | |
Typedefs | |
typedef struct XAxiDma | XAxiDma |
The XAxiDma driver instance data. More... | |
Functions | |
XAxiDma_Config * | XAxiDma_LookupConfig (u32 DeviceId) |
Look up the hardware configuration for a device instance. More... | |
XAxiDma_Config * | XAxiDma_LookupConfigBaseAddr (u32 Baseaddr) |
Look up the hardware configuration for a device instance based on base address. More... | |
int | XAxiDma_CfgInitialize (XAxiDma *InstancePtr, XAxiDma_Config *Config) |
This function initializes a DMA engine. More... | |
void | XAxiDma_Reset (XAxiDma *InstancePtr) |
Reset both TX and RX channels of a DMA engine. More... | |
int | XAxiDma_ResetIsDone (XAxiDma *InstancePtr) |
Check whether reset is done. More... | |
int | XAxiDma_Pause (XAxiDma *InstancePtr) |
Pause DMA transactions on both channels. More... | |
int | XAxiDma_Resume (XAxiDma *InstancePtr) |
Resume DMA transactions on both channels. More... | |
u32 | XAxiDma_Busy (XAxiDma *InstancePtr, int Direction) |
This function checks whether specified DMA channel is busy. More... | |
u32 | XAxiDma_SimpleTransfer (XAxiDma *InstancePtr, UINTPTR BuffAddr, u32 Length, int Direction) |
This function does one simple transfer submission. More... | |
int | XAxiDma_SelectKeyHole (XAxiDma *InstancePtr, int Direction, int Select) |
This function Enable or Disable KeyHole Feature. More... | |
int | XAxiDma_SelectCyclicMode (XAxiDma *InstancePtr, int Direction, int Select) |
This function Enable or Disable Cyclic Mode Feature. More... | |
int | XAxiDma_Selftest (XAxiDma *InstancePtr) |
Runs a self-test on the driver/device. More... | |
#define XAxiDma_GetRxIndexRing | ( | InstancePtr, | |
RingIndex | |||
) | (&((InstancePtr)->RxBdRing[RingIndex])) |
#include <xaxidma.h>
Get Receive (Rx) Ring ptr of a Index.
Warning: This has a different API than the LLDMA driver. It now returns the pointer to the BD ring.
InstancePtr | is a pointer to the DMA engine instance to be worked on. |
RingIndex | is the channel Index. |
Referenced by XAxiDma_Reset().
#define XAxiDma_GetRxRing | ( | InstancePtr | ) | (&((InstancePtr)->RxBdRing[0])) |
#include <xaxidma.h>
Get Receive (Rx) Ring ptr.
Warning: This has a different API than the LLDMA driver. It now returns the pointer to the BD ring.
InstancePtr | is a pointer to the DMA engine instance to be worked on. |
Referenced by XAxiDma_ResetIsDone().
#define XAxiDma_GetTxRing | ( | InstancePtr | ) | (&((InstancePtr)->TxBdRing)) |
#include <xaxidma.h>
Get Transmit (Tx) Ring ptr.
Warning: This has a different API than the LLDMA driver. It now returns the pointer to the BD ring.
InstancePtr | is a pointer to the DMA engine instance to be worked on. |
Referenced by XAxiDma_Pause(), XAxiDma_Reset(), and XAxiDma_ResetIsDone().
#define XAxiDma_HasSg | ( | InstancePtr | ) | ((InstancePtr)->HasSg) ? TRUE : FALSE |
#include <xaxidma.h>
This function checks whether system is configured as Simple or Scatter Gather mode.
InstancePtr | is a pointer to the DMA engine instance to be worked on. |
Referenced by XAxiDma_Pause(), XAxiDma_Reset(), and XAxiDma_SimpleTransfer().
#define XAxiDma_IntrAckIrq | ( | InstancePtr, | |
Mask, | |||
Direction | |||
) |
#include <xaxidma.h>
This function acknowledges the interrupts that are specified in Mask.
InstancePtr | is the driver instance we are working on |
Mask | is the mask for the interrupts to be acknowledge |
Direction | is DMA transfer direction, valid values are
|
#define XAxiDma_IntrDisable | ( | InstancePtr, | |
Mask, | |||
Direction | |||
) |
#include <xaxidma.h>
This function disables interrupts specified by the Mask.
Interrupts that are not in the mask are not affected.
InstancePtr | is the driver instance we are working on |
Mask | is the mask for the interrupts to be disabled |
Direction | is DMA transfer direction, valid values are
|
#define XAxiDma_IntrEnable | ( | InstancePtr, | |
Mask, | |||
Direction | |||
) |
#include <xaxidma.h>
This function enables interrupts specified by the Mask in specified direction, Interrupts that are not in the mask are not affected.
InstancePtr | is the driver instance we are working on |
Mask | is the mask for the interrupts to be enabled |
Direction | is DMA transfer direction, valid values are
|
#define XAxiDma_IntrGetEnabled | ( | InstancePtr, | |
Direction | |||
) |
#include <xaxidma.h>
This function gets the mask for the interrupts that are currently enabled.
InstancePtr | is the driver instance we are working on |
Direction | is DMA transfer direction, valid values are
|
#define XAxiDma_IntrGetIrq | ( | InstancePtr, | |
Direction | |||
) |
#include <xaxidma.h>
This function gets the interrupts that are asserted.
InstancePtr | is the driver instance we are working on |
Direction | is DMA transfer direction, valid values are
|
u32 XAxiDma_Busy | ( | XAxiDma * | InstancePtr, |
int | Direction | ||
) |
#include <xaxidma.h>
This function checks whether specified DMA channel is busy.
InstancePtr | is the driver instance we are working on |
Direction | is DMA transfer direction, valid values are
|
References XAXIDMA_IDLE_MASK, XAxiDma_ReadReg, XAXIDMA_RX_OFFSET, and XAXIDMA_SR_OFFSET.
int XAxiDma_CfgInitialize | ( | XAxiDma * | InstancePtr, |
XAxiDma_Config * | Config | ||
) |
#include <xaxidma.h>
This function initializes a DMA engine.
This function must be called prior to using a DMA engine. Initializing a engine includes setting up the register base address, setting up the instance data, and ensuring the hardware is in a quiescent state.
InstancePtr | is a pointer to the DMA engine instance to be worked on. |
Config | is a pointer to an XAxiDma_Config structure. It contains the information about the hardware build, including base address,and whether status control stream (StsCntrlStrm), MM2S and S2MM are included in the build. |
References XAxiDma::AddrWidth, and XAxiDma_Config::AddrWidth.
Referenced by AxiDMASelfTestExample().
XAxiDma_Config* XAxiDma_LookupConfig | ( | u32 | DeviceId | ) |
#include <xaxidma.h>
Look up the hardware configuration for a device instance.
DeviceId | is the unique device ID of the device to lookup for |
Referenced by AxiDMASelfTestExample().
XAxiDma_Config* XAxiDma_LookupConfigBaseAddr | ( | u32 | Baseaddr | ) |
#include <xaxidma.h>
Look up the hardware configuration for a device instance based on base address.
Baseaddr | is the base address of the device to lookup for |
int XAxiDma_Pause | ( | XAxiDma * | InstancePtr | ) |
#include <xaxidma.h>
Pause DMA transactions on both channels.
If the engine is running and doing transfers, this function does not stop the DMA transactions immediately, because then hardware will throw away our previously queued transfers. All submitted transfers will finish. Transfers submitted after this function will not start until XAxiDma_BdRingStart() or XAxiDma_Resume() is called.
InstancePtr | is a pointer to the DMA engine instance to be worked on. |
References XAxiDma_BdRing::ChanBase, XAxiDma_BdRing::RunState, XAXIDMA_CR_OFFSET, XAXIDMA_CR_RUNSTOP_MASK, XAxiDma_GetTxRing, XAxiDma_HasSg, XAxiDma_ReadReg, and XAxiDma_WriteReg.
void XAxiDma_Reset | ( | XAxiDma * | InstancePtr | ) |
#include <xaxidma.h>
Reset both TX and RX channels of a DMA engine.
Reset one channel resets the whole AXI DMA engine.
Any DMA transaction in progress will finish gracefully before engine starts reset. Any other transactions that have been submitted to hardware will be discarded by the hardware.
InstancePtr | is a pointer to the DMA engine instance to be worked on. |
References XAxiDma_BdRing::RunState, XAxiDma_BdRingSnapShotCurrBd, XAXIDMA_CR_OFFSET, XAXIDMA_CR_RESET_MASK, XAxiDma_GetRxIndexRing, XAxiDma_GetTxRing, XAxiDma_HasSg, XAXIDMA_RX_OFFSET, XAXIDMA_TX_OFFSET, and XAxiDma_WriteReg.
Referenced by XAxiDma_Selftest().
int XAxiDma_ResetIsDone | ( | XAxiDma * | InstancePtr | ) |
#include <xaxidma.h>
Check whether reset is done.
InstancePtr | is a pointer to the DMA engine instance to be worked on. |
References XAxiDma_BdRing::ChanBase, XAXIDMA_CR_OFFSET, XAXIDMA_CR_RESET_MASK, XAxiDma_GetRxRing, XAxiDma_GetTxRing, and XAxiDma_ReadReg.
int XAxiDma_Resume | ( | XAxiDma * | InstancePtr | ) |
#include <xaxidma.h>
Resume DMA transactions on both channels.
InstancePtr | is a pointer to the DMA engine instance to be worked on. |
int XAxiDma_SelectCyclicMode | ( | XAxiDma * | InstancePtr, |
int | Direction, | ||
int | Select | ||
) |
#include <xaxidma.h>
This function Enable or Disable Cyclic Mode Feature.
InstancePtr | is the driver instance we are working on |
Direction | is DMA transfer direction, valid values are
|
References XAXIDMA_CR_CYCLIC_MASK, XAXIDMA_CR_OFFSET, XAxiDma_ReadReg, XAXIDMA_RX_OFFSET, and XAxiDma_WriteReg.
int XAxiDma_SelectKeyHole | ( | XAxiDma * | InstancePtr, |
int | Direction, | ||
int | Select | ||
) |
#include <xaxidma.h>
This function Enable or Disable KeyHole Feature.
InstancePtr | is the driver instance we are working on |
Direction | is DMA transfer direction, valid values are
|
References XAXIDMA_CR_KEYHOLE_MASK, XAXIDMA_CR_OFFSET, XAxiDma_ReadReg, XAXIDMA_RX_OFFSET, and XAxiDma_WriteReg.
int XAxiDma_Selftest | ( | XAxiDma * | InstancePtr | ) |
#include <xaxidma.h>
Runs a self-test on the driver/device.
This test perform a reset of the DMA device and checks the device is coming out of reset or not
InstancePtr | is a pointer to the XAxiDma instance. |
References XAxiDma_Reset().
Referenced by AxiDMASelfTestExample().
u32 XAxiDma_SimpleTransfer | ( | XAxiDma * | InstancePtr, |
UINTPTR | BuffAddr, | ||
u32 | Length, | ||
int | Direction | ||
) |
#include <xaxidma.h>
This function does one simple transfer submission.
It checks in the following sequence:
InstancePtr | is the pointer to the driver instance |
BuffAddr | is the address of the source/destination buffer |
Length | is the length of the transfer |
Direction | is DMA transfer direction, valid values are
|
References XAxiDma_HasSg.