SPRUHZ7K August 2015 – April 2024 AM5706 , AM5708 , AM5716 , AM5718 , AM5718-HIREL
In a DMA block read operation (single or multiple), the request signal MMCi_DMA_RX is asserted to its active level when a complete block is written in the buffer. The block size transfer is specified in the MMCi.MMCHS_BLK[10:0] BLEN bit field.
MMCi_DMA_RX is deasserted to its inactive level when the a certain device DMA module reads one word from the buffer.
Only one request is sent per block; the DMA controller can make a 1-shot read access or several DMA bursts, in which case the DMA controller must manage the number of burst accesses, according to the BLEN bit field block size.
New DMA requests are internally masked if the DMA has not read exactly BLEN bytes and a new complete block is not ready. Because DMA accesses are 32-bit accesses, the number of DMA reads is Integer(BLEN / 4) + 1.
The receive buffer never overflows. In multiple block transfers for block sizes larger than 512 bytes, when the buffer becomes full, the mmci_clk clock signal (provided to the card) is momentarily stopped until a certain device DMA or the MPU performs a read access, which reads a complete block in the buffer.
To summarize:
Figure 25-18 shows DMA receive mode.