Architecture
599
SPRUH82C – April 2013 – Revised September 2016
Copyright © 2013–2016, Texas Instruments Incorporated
Enhanced Direct Memory Access (EDMA3) Controller
17.2.4.2 QDMA Channels
17.2.4.2.1 Autotriggered and Link-Triggered Transfer Request
NOTE:
If OPT, SRC, or DST is the trigger word for a QDMA transfer then it is required to do a 32-bit
access to that field.
QDMA-based transfer requests are issued when a QDMA event gets latched in the QDMA event register
(QER.E
n
= 1). A bit corresponding to a QDMA channel is set in the QDMA event register (QER) when the
following occurs:
•
A CPU (or any EDMA3 programmer) write occurs to a PaRAM address that is defined as a QDMA
channel trigger word (programmed in the QDMA channel
n
mapping register (QCHMAP
n
)) for the
particular QDMA channel and the QDMA channel is enabled via the QDMA event enable register
(QEER.E
n
= 1).
•
EDMA3CC performs a link update on a PaRAM set address that is configured as a QDMA channel
(matches QCHMAP
n
settings) and the corresponding channel is enabled via the QDMA event enable
register (QEER.E
n
= 1).
Once a bit is set in QER, the EDMA3CC prioritizes and queues the event in the appropriate event queue.
When the event reaches the head of the queue, it is evaluated for submission as a transfer request to the
transfer controller.
As in the event-triggered transfers, if the PaRAM set associated with the channel is valid (it is not a null
set) then the TR is submitted to the associated EDMA3TC and the channel can be triggered again.
If a bit is already set in QER (QER.E
n
= 1) and a second QDMA event for the same QDMA channel
occurs prior to the original being cleared, the second QDMA event gets captured in the QDMA event miss
register (QEMR.E
n
= 1).
17.2.4.3 Comparison Between DMA and QDMA Channels
The primary difference between DMA and QDMA channels is the event/channel synchronization. QDMA
events are either autotriggered or link triggered. Autotriggering allows QDMA channels to be triggered by
CPU(s) with a minimum number of linear writes to PaRAM. Link triggering allows a linked list of transfers
to be executed, using a single QDMA PaRAM set and multiple link PaRAM sets.
A QDMA transfer is triggered when a CPU (or other EDMA3 programmer) writes to the trigger word of the
QDMA channel parameter set (autotriggered) or when the EDMA3CC performs a link update on a PaRAM
set that has been mapped to a QDMA channel (link triggered). Note that for CPU triggered (manually
triggered) DMA channels, in addition to writing to the PaRAM set, it is required to write to the event set
register (ESR) to kick-off the transfer.
QDMA channels are typically for cases where a single event will accomplish a complete transfer since the
CPU (or EDMA3 programmer) must reprogram some portion of the QDMA PaRAM set in order to retrigger
the channel. In other words, QDMA transfers are programmed with BCNT = CCNT = 1 for A-synchronized
transfers, and CCNT = 1 for AB-synchronized transfers.
Additionally, since linking is also supported (if STATIC = 0 in OPT) for QDMA transfers, it allows you to
initiate a linked list of QDMAs, so when EDMA3CC copies over a link PaRAM set (including the write to
the trigger word), the current PaRAM set mapped to the QDMA channel will automatically be recognized
as a valid QDMA event and initiate another set of transfers as specified by the linked set.