User manual

Table Of Contents
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.