AXI VDMA Standalone Driver
AXI VDMA Standalone DriverIntroductionThis page gives an overview of axi vdma driver which is available as part of the Xilinx Vivado and SDK distribution.
The Xilinx® LogiCORE™ IP AXI VDMA core is a soft IP core. It provides high-bandwidth direct Memory access between memory and AXI4-Stream video type target peripherals including peripherals which support the AXI4-Stream Video protocol as described in the Video IP:AXI Feature Adoption section of the Vivado AXI Reference Guide (UG1037)Source Path for the driverhttps://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/axivdmaDriver source code is organized into different folders. Below diagram shows the axivdma driver source organizationAXI VDMA
├── doc: Provides the API and data structure details
├── data: Driver tcl and MDD files.
├── examples: Reference application to show how to use the driver APIs and calling sequence
└── src Driver source filesFeatures Supported
- AXI4 Compliant
- Primary AXI4 data width support of 32, 64, 128, 256, 512, and 1,024 bits
- Primary AXI4-Stream data width support of multiples of 8 up to 1,024 bits
- Optional Data Realignment Engine
- Optional Genlock Synchronization
- Independent, asynchronous channel operation
- Dynamic clock frequency change of AXI4-Stream interface clocks
- Optional frame advance or repeat on error
- Supports up to 32 frame buffers
- Supports up to 64-bit address space
Standalone Driver Supported FeaturesThe AXI VDMA Standalone driver supports the below things.
- Supports 64-bit Addressing
- Supports Gen-Lock Synchronization
- Supports up to 32 frame buffers
- Supports frame advance or repeat on error
- Supports Parking Mode
- Supports Circular Buffer Mode
- Refer below pah for testing different examples for each feature of the IP.
This example does a basic reset of the core and checks core is coming out of reset or not.xaxivdma_example_intr.c :
This example demonstrates how to use the AXI Video DMA with other video IP's to do video transfer.This example won't work by itself it needs two other video IP's, One for writing frames to memory and one for reading the video frames from memoryvdma.c and vdma_api.c :
This example demonstrates how to use triple frame buffer feature in the AXI Video DMA
Known issues and Limitations
- When H/w is configured without DRE driver will throw an error if the user sends an unaligned buffer address.
- User application should handle buffer address alignment in case h/w is configured without DRE
- Consolidate debug header files.
- Support parallel make execution.
- Read frame store from user-defined config parameter.
- In example add frame data check support.
257c0d9e3742 BSP: Consolidate and add the drivers xdebug.h data to common xdebug.h
4dc85994d6fb Makefile: Remove realpath command
5736883911ba axivdma: Update Makefile to support parallel make execution
a24706fde355 axivdma: Add workaround to fix the mismatch of frame store value
1bed2b805d3a axivdma: Revert to fix the compilation failure
e6b652880478 axivdma: Make Exiting main as the last print
2639f23b02b1 axivdma: To add frame data check support
0b19e93d8617 axivdma: Fix to read frame store from user-defined config parameter
- Fix xaxivdma_example_intr example failure in release mode
- Clean up old versions for axivdma driver
ca4088c axivdma: Fix xaxivdma_example_intr example failure in release mode
fef351c axivdma: Clean up old versions for axivdma driver
- Add vertical programming support.
9b66e32 examples: Set vertical flip default state
81b08c0 Enable VDMA S2MM vertical flip support
- Fix compilation error in selftest example
- Align default TX/RX framebuffer count with IP configuration
vdma: Align default TX/RX framebuffer count with IP configurationa3d2180
axivdma: Fix compilation error in selftest example2017.42017.32017.22017.1
Commit Id's578c86f :
- Fixed compilation errors in the driver when compiled the driver with C++ compiler
- Modified text file to generate doxygen for examples
Fixed compilation errors in the driver when compiled the driver with C++ compilere9b7aed :
Modified text file to generate doxygen for examples