Hi,
Since NorFlash has already used DMA, I encountered a conflict when using SPI's DMA function. Can I change the DMA channels they are bound to so that both NorFlash and SPI can use DMA function normally?
Hi,
Since NorFlash has already used DMA, I encountered a conflict when using SPI's DMA function. Can I change the DMA channels they are bound to so that both NorFlash and SPI can use DMA function normally?
Hello,
May i know which SDK version are you using ? which NoR Flash are you using and also which SPI instance are you using ?
Can you please explain more back ground about this ?
Regards
Tarun Mukesh
Hi,
We use SDK 8.6, NorFlash uses MCU OSPI0, and SPI uses MCU SPI1.
MCU SPI1 using the MCSPIApp_udmaInit() to Init.
And OSPI SBL_udmaInit() -> sblUdmaCreate() -> Udma_chOpen() ,in Udma_chOpen() retVal is not UDMA_SOK.
Hello,
Thanks for sharing the info.Let me check and reply.
Regards
Tarun Mukesh
Hi Yang,
But is your SPI DMA work fine without using DMA in OSPI? also similarly, does SBL work fine without using SPI?
SBL does not use fixed DMA channel, it tries to allocate one from the free pool, so unless there is nothing available in the free pool, it should not fail.
Regards,
Brijesh
Hi,
From the current situation, it appears that only OSPI DMA or SPI DMA can work normally.
However, when I have already used SPI DMA, OSPI DMA reported a failed creation log.
So I want to know if there are other channels, and if so, how can they be allocated?
Regards,
Guocai Yang
Hi Yang,
No, both can work fine, because both are using different DMA channels. OSPI DMA use MCU UDMA channels, whereas SPI DMA uses PDMA channels. I am not able to see in the above log, which one is failing. Can you please check and tell exactly which UDMA channel allocation is failing?
Regards,
Brijesh
Hi,
I followed the demo path below to use SPI1 in the MCU domain, and I see that the file is calling UDMA.
pdk_jacinto_08_06_00_31/packages/ti/drv/spi/example/mcspi_slavemode/src/main_mcspi_slave_mode.c
Regards,
Guocai Yang
Hi,
Yes, since you are using main domain SPI instance, you need main domain UDMA, and also since OSPI is in mcu domain, you require MCU domain UDMA. So you would require to initialize both the UDMA instances.
But before that, why do you require SPI1 in the SBL? SBL is typically active only during initialization time, so if it is early requirement, can you enable SPI1 in the component that SBL loads on mcu1_0?
Regards,
Brijesh