6.9 EDMA
The enhanced direct memory access module, also called EDMA, performs high-performance data transfers between two slave points, memories and peripheral devices without microprocessor unit (MPU) or digital signal processor (DSP) support during transfer. EDMA transfer is programmed through a logical EDMA channel, which allows the transfer to be optimally tailored to the requirements of the application.
The EDMA can also perform transfers between external memories and between device subsystems internal memories, with some performance loss caused by resource sharing between the read and write ports.
EDMA controller is based on two major principal blocks:
- EDMA third-party channel controller (EDMA_TPCC)
- EDMA third-party transfer controller (EDMA_TPTC)
The EDMA_TPCC channel controller has following features:
- Fully orthogonal transfer description:
- Three transfer dimensions.
- A-synchronized transfers: one-dimension serviced per event.
- AB-synchronized transfers: two-dimensions serviced per event.
- Independent indexes on source and destination.
- Chaining feature allows a 3-D transfer based on a single event.
- Flexible transfer definition:
- Increment or FIFO transfer addressing modes.
- Linking mechanism allows automatic PaRAM set update.
- Chaining allows multiple transfers to execute with one event.
- Interrupt generation for the following:
- Transfer completion.
- Error conditions.
- Debug visibility:
- Queue water marking/threshold.
- Error and status recording to facilitate debug.
- 64 DMA request channels:
- Event synchronization.
- Chain synchronization (completion of one transfer triggers another transfer).
- Eight QDMA channels:
- QDMA channels trigger automatically upon writing to a parameter RAM (PaRAM) set entry.
- Support for programmable QDMA channel to PaRAM mapping.
- 512 PaRAM sets:
- Each PaRAM set can be used for a DMA channel, QDMA channel, or link set.
- Two transfer controllers/event queues.
- 16 event entries per event queue.
- Memory protection support:
- Proxy memory protection for TR submission.
- Active memory protection for accesses to PaRAM and registers.
The EDMA_TPTC transfer controller has the following features:
- Two transfer controllers (TC).
- 128-bit wide read and write ports per TC.
- Up to four in-flight transfer requests (TRs).
- Programmable priority level.
- Supports two-dimensional transfers with independent indexes on source and destination (EDMA_TPCC manages the 3rd dimension).
- Support for increment or constant addressing mode transfers.
- Interrupt and error support.
- Memory-Mapped Register (MMR) bit fields are fixed position in 32-bit MMR regardless of endianness.
EDMA controller uses the shared MMU1 module for transfering to and from DSP module. This provides several benefits including:
- Protection of Host CPU memory regions from accidental corruption by EDMA TPTCs.
- Direct allocation of buffers in user space without the need for translation between CPU and DSP applications using EDMA TPTCs.
Accesses by the EDMA TPTCs (both TPTC0 and TPTC1) may optionally be routed through the MMU1.
The TPTC0 and TPTC1 routing allows EDMA transfer controller to be used to perform transfers using only the virtual addresses of the associated buffers.
For more information chapter Enhanced DMA of the device TRM.