Functional Description
•
DRAEm and DRAEHm: One register pair exists for each of the shadow regions. The number of bits in
each register pair matches the number of DMA channels (64 DMA channels). These registers need to
be programmed to assign ownership of DMA channels and interrupt (or TCC codes) to the respective
region. Accesses to DMA and interrupt registers via the shadow region address view are filtered
through the DRAE/DRAEH pair. A value of 1 in the corresponding DRAE(H) bit implies that the
corresponding DMA/interrupt channel is accessible; a value of 0 in the corresponding DRAE(H) bit
forces writes to be discarded and returns a value of 0 for reads.
•
QRAEn: One register exists for every region. The number of bits in each register matches the number
of QDMA channels (4 QDMA channels). These registers must be programmed to assign ownership of
QDMA channels to the respective region. To enable a channel in a shadow region using shadow
region 0 QEER, the respective bit in QRAE must be set or writing into QEESR will not have the desired
effect.
•
MPPAn and MPPAG: One register exists for every region. This register defines the privilege level,
requestor, and types of accesses allowed to a region's memory-mapped registers.
It is typical for an application to have a unique assignment of QDMA/DMA channels (and, therefore, a
given bit position) to a given region.
The use of shadow regions allows for restricted access to EDMA3 resources (DMA channels, QDMA
channels, TCC, interrupts) by tasks in a system by setting or clearing bits in the DRAE/ORAE registers. If
exclusive access to any given channel / TCC code is required for a region, then only that region's
DRAE/ORAE should have the associated bit set.
Example 11-1. Resource Pool Division Across Two Regions
This example illustrates a judicious resource pool division across two regions, assuming region 0 must be
allocated 16 DMA channels (0-15) and 1 QDMA channel (0) and 32 TCC codes (0-15 and 48-63). Region 1
needs to be allocated 16 DMA channels (16-32) and the remaining 7 QDMA channels (1-7) and TCC codes
(16-47). DRAE should be equal to the OR of the bits that are required for the DMA channels and the TCC
codes:
Region 0: DRAEH, DRAE = 0xFFFF0000, 0x0000FFFF QRAE = 0x0000001
Region 1: DRAEH, DRAE = 0x0000FFFF, 0xFFFF0000 QRAE = 0x00000FE
11.3.7.3 Region Interrupts
In addition to the EDMA3CC global completion interrupt, there is an additional completion interrupt line
that is associated with every shadow region. Along with the interrupt enable register (IER), DRAE acts as
a secondary interrupt enable for the respective shadow region interrupts. See
for more
information.
11.3.8 Chaining EDMA3 Channels
The channel chaining capability for the EDMA3 allows the completion of an EDMA3 channel transfer to
trigger another EDMA3 channel transfer. The purpose is to allow you the ability to chain several events
through one event occurrence.
Chaining is different from linking (
). The EDMA3 link feature reloads the current channel
parameter set with the linked parameter set. The EDMA3 chaining feature does not modify or update any
channel parameter set; it provides a synchronization event to the chained channel (see
for chain-triggered transfer requests).
Chaining is achieved at either final transfer completion or intermediate transfer completion, or both, of the
current channel. Consider a channel m (DMA/QDMA) required to chain to channel n. Channel number n
(0-63) needs to be programmed into the TCC bit of channel m channel options parameter (OPT) set.
•
If final transfer completion chaining (TCCHEN = 1 in OPT) is enabled, the chain-triggered event occurs
after the submission of the last transfer request of channel m is either submitted or completed
(depending on early or normal completion).
•
If intermediate transfer completion chaining (ITCCHEN = 1 in OPT) is enabled, the chain-triggered
event occurs after every transfer request, except the last of channel m is either submitted or completed
901
SPRUH73H – October 2011 – Revised April 2013
Enhanced Direct Memory Access (EDMA)
Copyright © 2011–2013, Texas Instruments Incorporated