I tried the provided CMSIS example from the M7 SDK (cmsis_ecspi_sdma_loopback_transfer) and it is working well, utilizing SPI2 and SDMA1. Since SDMA1 is already used by Linux I would like to switch to SDMA3 which is reserved for the M7. I tried changing the definitions in the mentioned example:
- DRIVER_MASTER_SPI_DMA_BASE in cmsis_ecspi_sdma_loopback_transfer.c
- RTE_SPI2_DMA_TX_DMA_BASE and RTE_SPI2_DMA_RX_DMA_BASE in RTE_Device.h
but the example stopped working. It finishes the DRIVER_MASTER_SPI.Transfer call but never executes the transfer. There is no output on the SPI pins and the ECSPI_MasterSignalEvent_t is never called.
Is it possible to use SPI with SDMA3?
Do I have to change any other definition to use SDMA3 instead of SDMA1?
Is there some additional clock that needs to be enabled?
PS. I tried also with SDMA2 and had the same issue.