User manual
Table Of Contents
- Zynq-7000 All Programmable SoC
- Table of Contents
- Ch. 1: Introduction
- Ch. 2: Signals, Interfaces, and Pins
- Ch. 3: Application Processing Unit
- Ch. 4: System Addresses
- Ch. 5: Interconnect
- Ch. 6: Boot and Configuration
- Ch. 7: Interrupts
- Ch. 8: Timers
- Ch. 9: DMA Controller
- Introduction
- Functional Description
- DMA Transfers on the AXI Interconnect
- AXI Transaction Considerations
- DMA Manager
- Multi-channel Data FIFO (MFIFO)
- Memory-to-Memory Transfers
- PL Peripheral AXI Transactions
- PL Peripheral Request Interface
- PL Peripheral - Length Managed by PL Peripheral
- PL Peripheral - Length Managed by DMAC
- Events and Interrupts
- Aborts
- Security
- IP Configuration Options
- Programming Guide for DMA Controller
- Programming Guide for DMA Engine
- Programming Restrictions
- System Functions
- I/O Interface
- Ch. 10: DDR Memory Controller
- Introduction
- AXI Memory Port Interface (DDRI)
- DDR Core and Transaction Scheduler (DDRC)
- DDRC Arbitration
- Controller PHY (DDRP)
- Initialization and Calibration
- DDR Clock Initialization
- DDR IOB Impedance Calibration
- DDR IOB Configuration
- DDR Controller Register Programming
- DRAM Reset and Initialization
- DRAM Input Impedance (ODT) Calibration
- DRAM Output Impedance (RON) Calibration
- DRAM Training
- Write Data Eye Adjustment
- Alternatives to Automatic DRAM Training
- DRAM Write Latency Restriction
- Register Overview
- Error Correction Code (ECC)
- Programming Model
- Ch. 11: Static Memory Controller
- Ch. 12: Quad-SPI Flash Controller
- Ch. 13: SD/SDIO Controller
- Ch. 14: General Purpose I/O (GPIO)
- Ch. 15: USB Host, Device, and OTG Controller
- Introduction
- Functional Description
- Programming Overview and Reference
- Device Mode Control
- Device Endpoint Data Structures
- Device Endpoint Packet Operational Model
- Device Endpoint Descriptor Reference
- Programming Guide for Device Controller
- Programming Guide for Device Endpoint Data Structures
- Host Mode Data Structures
- EHCI Implementation
- Host Data Structures Reference
- Programming Guide for Host Controller
- OTG Description and Reference
- System Functions
- I/O Interfaces
- Ch. 16: Gigabit Ethernet Controller
- Ch. 17: SPI Controller
- Ch. 18: CAN Controller
- Ch. 19: UART Controller
- Ch. 20: I2C Controller
- Ch. 21: Programmable Logic Description
- Ch. 22: Programmable Logic Design Guide
- Ch. 23: Programmable Logic Test and Debug
- Ch. 24: Power Management
- Ch. 25: Clocks
- Ch. 26: Reset System
- Ch. 27: JTAG and DAP Subsystem
- Ch. 28: System Test and Debug
- Ch. 29: On-Chip Memory (OCM)
- Ch. 30: XADC Interface
- Ch. 31: PCI Express
- Ch. 32: Device Secure Boot
- Appx. A: Additional Resources
- Appx. B: Register Details
- Overview
- Acronyms
- Module Summary
- AXI_HP Interface (AFI) (axi_hp)
- CAN Controller (can)
- DDR Memory Controller (ddrc)
- CoreSight Cross Trigger Interface (cti)
- Performance Monitor Unit (cortexa9_pmu)
- CoreSight Program Trace Macrocell (ptm)
- Debug Access Port (dap)
- CoreSight Embedded Trace Buffer (etb)
- PL Fabric Trace Monitor (ftm)
- CoreSight Trace Funnel (funnel)
- CoreSight Intstrumentation Trace Macrocell (itm)
- CoreSight Trace Packet Output (tpiu)
- Device Configuration Interface (devcfg)
- DMA Controller (dmac)
- Gigabit Ethernet Controller (GEM)
- General Purpose I/O (gpio)
- Interconnect QoS (qos301)
- NIC301 Address Region Control (nic301_addr_region_ctrl_registers)
- I2C Controller (IIC)
- L2 Cache (L2Cpl310)
- Application Processing Unit (mpcore)
- On-Chip Memory (ocm)
- Quad-SPI Flash Controller (qspi)
- SD Controller (sdio)
- System Level Control Registers (slcr)
- Static Memory Controller (pl353)
- SPI Controller (SPI)
- System Watchdog Timer (swdt)
- Triple Timer Counter (ttc)
- UART Controller (UART)
- USB Controller (usb)

Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 266
UG585 (v1.11) September 27, 2016
Chapter 9: DMA Controller
DMALDP<B|S>, DMASTP<B|S>
The DMAC executes a DMANOP if the request_type flag does not match the B|S suffix.
DMALPEND
When the nf bit is 0, the DMAC executes a DMANOP if the request_last flag is set.
The DMALDB, DMALDPB, DMASTB and DMASTPB instructions should be used if the DMAC is
required to issue an AXI burst transaction when the DMAC receives a burst request, that is, when
DMA{3:0}_DRTYPE[1:0] = b01. The values in the CCRn register control the amount of data in the DMA
transfer. Refer to the Channel Control registers in Appendix B, Register Details.
The DMALDS, DMALDPS, DMASTS, and DMASTPS instructions should be used if the DMAC is
required to issue a single AXI transaction when the DMAC receives a single request, that is, when
DMA{3:0}_DRTYPE[1:0] = b00. The DMAC ignores the value of the src_burst_len and dst_burst_len
fields in the CCRn register and sets the arlen[3:0] or awlen[3:0] buses to 0x0.
Refer to the Programming Guide for DMA Controller for an example of microcode for PL peripheral
length management.
9.2.9 PL Peripheral - Length Managed by DMAC
DMAC length management is the process by which the DMAC controls the total amount of data to
transfer. Using the PL peripheral request interface, the PL peripheral notifies the DMAC when a
transfer of data in either direction is required. The DMA channel thread controls how the DMAC
responds to the PL peripheral requests.
The following constraints apply to DMAC length management:
• The total quantity of data for all of the single requests from a PL peripheral must be less than
the quantity of data for a burst request for that PL peripheral.
• The CCRn register controls how much data is transferred for a burst request and a single
request. ARM recommends that a CCRn register not be updated while a transfer is in progress
for that channel. Refer to the Channel Control registers in Appendix B, Register Details.
• After the PL peripheral sends a burst request, the PL peripheral must not send a single request
until the DMAC acknowledges that the burst request is complete.
The DMAWFP single instruction should be used when the program thread is required to halt
execution until the PL peripheral request interface receives any request type. If the head entry
request type in the request FIFO is:
Single: The DMAC pops the entry from the FIFO and continues program execution.
Burst: The DMAC leaves the entry in the FIFO and continues program execution.
Note: The burst request entry remains in the request FIFO until the DMAC executes a DMAWFP
burst instruction or a DMAFLUSHP instruction.










