User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 267
UG585 (v1.11) September 27, 2016
Chapter 9: DMA Controller
The DMAWFP burst instruction should be used when the program thread is required to halt
execution until the PL peripheral request interface receives a burst request. If the head entry request
type in the request FIFO is:
Single: The DMAC removes the entry from the FIFO and program execution remains halted.
Burst: The DMAC pops the entry from the FIFO and continues program execution.
The DMALDP instruction should be used when the DMAC is required to send an acknowledgement
to the PL peripheral when it completes the AXI read transaction. Similarly, the DMASTP instruction
should be used when the DMAC is required to send an acknowledgement to the PL peripheral when
it completes the AXI write transaction. The DMAC uses the DMA{3:0}_DATYPE[1:0] bus to
acknowledge the transaction to the PL peripheral {3:0}.
The DMAC sends an acknowledgement for a read transaction when rvalid and rlast are High and for
a write transaction when bvalid is High. If the system is able to buffer AXI write transactions, it might
be possible for the DMAC to send an acknowledgement to the PL peripheral, but the transaction of
write data to the end destination is still in progress.
The DMAFLUSHP instruction should be used to reset the request FIFO for the PL peripheral request
interface. After the DMAC executes DMAFLUSHP, it ignores PL peripheral requests until the PL
peripheral acknowledges the flush request. This enables the DMAC and PL peripheral to synchronize
with each other.
Refer to section 9.3 Programming Guide for DMA Controller for an example of microcode for DMA
length management.
9.2.10 Events and Interrupts
The DMAC supports 16 events. The first 8 of these events can be interrupt signals, IRQs [7:0]. Each of
the eight interrupts are outputs going to both the PS interrupt controller and the PL at the same
time. The events are used internal to the DMA engine to cross-trigger channel-to-channel or
manager-to-channel.
Table 9-2 shows the mapping between events and interrupts. Refer to the Interrupt Enable register in
Appendix B, Register Details for programming details.
When the DMA engine executes a DMASEV instruction it modifies the event/interrupt that the user
specifies.
If the INTEN register sets the event/interrupt resource to function as an event, the DMAC
generates an event for the specified event/interrupt resource. When the DMAC executes a
DMAWFE instruction for the same event-interrupt resource then it clears the event.
Table 9-2: DMAC Events and Interrupts
DMAC
Event/IRQ #
System IRQ#
(to the PS)
IRQP2F
(to the PL)
DMA Engine
Event#
0 ~ 3 46 ~ 49 20 ~ 23 0 ~ 3
4 ~ 7 72 ~ 75 24 ~ 27 4 ~ 7
8 ~ 15 na na 8 ~ 15