AnsweredAssumed Answered

Using eDMA with SAI module on LS102xA

Question asked by Jason Yagielo on Aug 14, 2017

I am trying to configure the use of eDMA with the SAI module on a bare metal project. I configure the DMAMUX to trigger on SAI1 TX and that seems to work, however any read/write from the CCSR space, which includes the SAI register set does not seem to work.  I have the following TCD structure in order to send 16 bytes of data.

 

source address = RAM location of data to transfer

source offset     = 2

source data size = 16 bits

source last = 0

destination address = SAI_TDR register for SAI1

destination offset= 0

destination data size = 16 bits

destination last = 0

Number of bytes = 16

Number of iterations = 1

CSR = 0xA (disable DMA request on completion & enable interrupt when major iteration completes)

 

When using this TCD I do not see the SAI FIFO pointers change, which tells me that the register write did not work.  I have tried updating the destination address to DCFG_CCSR_SCRATCHRW1 with similar results.  If I update the destination address to a RAM location then the DMA transfer works as expected.  Is there a reason I cannot DMA from/to any of the device memory but DMA from/to RAM works?

Outcomes