From the iMX8M-Plus Reference Manual (chapter 7.2) I read that
The Smart Direct Memory Access (SDMA) controller offers highly-competitive DMA features combined with software-based virtual-DMA flexibility. It enables data transfers between peripheral I/O devices and internal/external memories
I would like using SDMA for UART RX/TX transfer on M7 core side, based on this example from NXP tha uses SDMA-1.
I need to be sure that sdma1 is not used by TorizonOS/U-Boot/ATF and so it’s available for M7 core.
As an example, I see in verdin-imx8mp_hmp_overlay.dts that
&sai3 {
status = "disabled";
};
&sdma3 {
status = "disabled";
};
and I imagine that sdma3 is used for sai audio interface (or something like that) on TorizonOS side.
Can someone from Toradex confirm that sdma1 is not used on A53 at all? And so it can be reserved to M7?
As far as I uderstand, every dmas entry in the device tree contains an array of DMA specifiers, each describing a DMA channel. The format depends on the DMA controller binding.
And so I see that several DMA channels are already configured for different peripherals (0 and 1 for ecspi1, 2 and 3 for ecspi2, 4 and 5 for ecspi3, 22 and 23 for uart1, 26 and 27 for uart3, 28 and 29 for uart4).
If I disable the peripheral on Linux side, I think I can re-use the same DMA channels on M7 side.
The last question for me is what is the syntax for DMA specifiers for imx8mp.
The first field sdma1 should be the DMA controller.
The second one should be the DMA channel number.
But what are the third and the fourth ones?
Where I can find this information?
I add the final considerations here.
After some attempts, I’ve never been able to disable SDMA1 from A53 side and having Torizon OS working properly.
Difficult to say what happens, so I gave up.
Looking to this thread, it seems that SDMSA1 cannot be disabled completely from A53 side.