Input signals SDMA_EXT_EVENT0, SDMA_EXT_EVENT1 are used as external
DMA request event signals and are designed to trigger internal DMA transactions.
Please take a look at Table 55-1 (SDMA External Signals) of the i.MX6 DQ RM.
The external request works as an internal request triggered by a FIFO.
We provide (in software) :
- source address of the FIFO (external memory address) ;
- destination address in RAM or wherever ;
- count (total number of bytes to exchange) ;
- burst length (close to the watermark level of the FIFO that triggers the DMA
event).
Then, a DMA event triggers a DMA channel. Depending on the channel priority, but
in most of the case very quickly, an access is done to the external device FIFO
through the WEIM.
Practically the access looks like as usual CPU-related one, at least the
external device cannot distinguish between DMA and CPU ones, because both are
working via the WEIM, and fully defined by WEIM settings.
The selected burst length defines length (duration) of this access.
If the DMA event signal is still asserted, the access will continue with a next
burst, if not - the DMA waits for a next event to do an access.
Indeed, there is no real flow control, but the external peripheral should be
enable to generate some DMA event each time its FIFO has reached a watermark level.
Note, there is no need for external grant / acknowledge signal.
Have a great day,
Yuri
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------