Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Table of Contents
Introduction

This page gives an overview of zdma driver which is available as part of the Xilinx Vivado and Vitis distribution. ZDMA is a general purpose DMA designed to support memory to memory and memory to IO buffer transfers.

...

The source code for the driver is included with the Vitis Unified Software Platform installation, as well as being available in the Xilinx Github repository. 

Driver Name

Path in Vitis

Path in Github

emapcs

<Vitis Install Directory>/data/embedded/XilinxProcessorIPLib/drivers/zdma

https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/zdma


Note: To view the sources for a particular release, use the rel-version tag in github.  For example, for the 2020.1 release, the proper version of the code is: https://github.com/Xilinx/embeddedsw/tree/xilinx_v2021.1/XilinxProcessorIPLib/drivers/zdma


The driver source code is organized into different folders.  The table below shows the ZDMA driver source organization. 

Directory

Description

doc

Provides the API and data structure details

data

Driver .tcl and .mdd file

examples

Example applications that show how to use the driver features

src

Driver source files

Driver Implementation

For a full list of features supported by this IP, please refer to ADMA/GDMA chapter in ZynqMP TRM (UG1085) or Versal TRM (AM011) for respective devices.

...

Examples Path:
https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/zdma/examples

Test Name

Example Source

Description

ZDMA Selftest example

xzdma_selftest_example.c

Basic ZDMA selftest example to check sanity and use core APIs.

ZDMA Write-only example

xzdma_writeonlymode_example.c

ZDMA example demonstrating write-only feature.

ZDMA Read-only example

xzdma_readonlymode_example.c

ZDMA example demonstrating read-only feature.

ZDMA SG Linear example

xzdma_linear_example.c

ZDMA example demonstrating Scatter Gather Linear descriptor mode.

ZDMA SG Linked list example

xzdma_linkedlist_example.c

ZDMA example demonstrating Scatter Gather Linked list descriptor mode.

ZDMA Simple DMA example

xzdma_simple_example.c

ZDMA example demonstrating Simple DMA mode.

Example Application Usage

...

Basic ZDMA selftest example to check sanity and use core APIs.

Expected Output

Successfully ran ZDMA Selftest Example

ZDMA Write-only example

ZDMA example demonstrating write-only feature.

Expected Output

Successfully ran Write Only mode ZDMA Example

ZDMA Read-only example

ZDMA example demonstrating read-only feature.

Expected Output

Successfully ran ZDMA Read Only Example

ZDMA SG Linear example

ZDMA example demonstrating Scatter Gather Linear descriptor mode.

Expected Output

Successfully ran ZDMA Linear mode Example

ZDMA SG Linked list example

ZDMA example demonstrating Scatter Gather Linked list descriptor mode.

Expected Output

Successfully ran ZDMA Linked list Example

ZDMA Simple DMA example

ZDMA example demonstrating Simple DMA mode.

Expected Output

Successfully ran ZDMA Simple Example

Example Design Architecture

NA

Performance

NA

Change Log

2021.2

https://github.com/Xilinx/embeddedsw/blob/xlnx_rel_v2021.2/doc/ChangeLog#L133

2021.1

https://github.com/Xilinx/embeddedsw/blob/xilinx_v2021.1/doc/ChangeLog#L326

...