![]() |
zdma
Xilinx SDK Drivers API Documentation
|
ZDMA is a general purpose DMA designed to support memory to memory and memory to IO buffer transfers. ALTO has two instance of general purpose ZDMA. One is located in FPD (full power domain) which is GDMA and other is located in LPD (low power domain) which is ADMA.
GMDA & ADMA are configured each with 8 DMA channels and and each channel can be programmed secure or non-secure. Each channel is divided into two functional sides, Source (Read) and Destination (Write). Each DMA channel can be independently programmed in one of following DMA modes.
Initialization & Configuration
The device driver enables higher layer software (e.g., an application) to communicate to the ZDMA core.
XZDma_CfgInitialize() API is used to initialize the ZDMA core. The user needs to first call the XZDma_LookupConfig() API which returns the Configuration structure pointer which is passed as a parameter to the XZDma_CfgInitialize() API.
Interrupts The driver provides an interrupt handler XZDma_IntrHandler for handling the interrupt from the ZDMA core. The users of this driver have to register this handler with the interrupt system and provide the callback functions by using XZDma_SetCallBack API. In this version Descriptor done option is disabled.
Virtual Memory
This driver supports Virtual Memory. The RTOS is responsible for calculating the correct device base address in Virtual Memory space.
Threads
This driver is not thread safe. Any needs for threads or thread mutual exclusion must be satisfied by the layer above this driver.
Asserts
Asserts are used within all Xilinx drivers to enforce constraints on argument values. Asserts can be turned off on a system-wide basis by defining, at compile time, the NDEBUG identifier. By default, asserts are turned on and it is recommended that users leave asserts on during development.
Building the driver
The XZDma driver is composed of several source files. This allows the user to build and link only those parts of the driver that are necessary.
This header file contains identifiers and register-level driver functions (or macros), range macros, structure typedefs that can be used to access the Xilinx ZDMA core instance.
MODIFICATION HISTORY:
Ver Who Date Changes ----- ------ -------- ------------------------------------------------------ 1.0 vns 2/27/15 First release