This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
I have 2 questions about DMA and caching related to using DMA on SPI, though they are not SPI-specific:
1) Is it valid to DMA from/to memory that is marked as not shared, but is write-through cached? If so is there ever a time to prefer using shared (non-cached) memory with DMA vs write-through cached memory with DMA? The DMA SPI example and this article (https://e2e.ti.com/group/launchyourdesign/m/boosterpackcontest/666341) recommend using a shared (uncached) memory region for DMA buffers. However it is my understanding that the TMS570's Accelerator Coherency Port implementation will keep the cache synced when DMA writes to memory marked as write-through. "Transactions are received on the ACP-S slave port, and transmitted on the memory system via the ACP-M master port. The ACP automatically invalidates the appropriate Level 1 data-cache lines at the appropriate time, allowing software maintenance free cache coherency for data in write-through cache regions, as well as non-cached."
2) Is a DMB needed prior to enabling DMA or is the write to the device type memory (enabling of DMA) enough to ensure that memory will be viewed coherently by DMA? It is my understanding that a write to device type memory will drain all pending write buffers first.
Thanks in advance!