I was reading about DMA , P2040RM chapter-21. While reading, came across several points those are not clear,
1) Does DMA support to all interface like I2C/SPI/eLBC/ PCIe etc??
2) How to enable DMA in driver code?? How to verify is it enabled or not ??
3) How one can do performance testing with and with out DMA?
Help would be highly appreciated ....
1) I2C, SPI - no.
eLBC and PCIe - yes.
Basically the DMA can perform memory-to-memory transfers (where "memory" is an area directly mapped into the local SOC address space).
2-3) Please refer to the Linux SDK documentation:
I didn't understand why DMA support is not available for I2C and SPI??
And another point, according to mentioned link we have to enable DMA in make menuconfig (before kernel compilation ) but which all interfaces will be using DMA?? How kernel will come to know ??
> why DMA support is not available for I2C and SPI??
because these memories ARE NOT directly mapped into the SOC local address space.
> which all interfaces will be using DMA??
it does not matter, because DMA transfer is performed from one memory area directly mapped into the SOC local address space to another similar area.