DMA Resource Partition

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
User19708
Level 1
Level 1
Hi,
I'm using TC212S, the DMA module was assigned as five master tags, DMA Resource Partition0~3 and Cerberus. How to understand the 5 master tags? Does that mean any dma channels belong to specified partition?
Thanks.
0 Likes
6 Replies
Darren_Galpin
Employee
Employee
First solution authored First like received
When a resource partition sets up a channel which accesses the bus, then the tag assigned to that resource partition is used when accessing the bus. So from the bus point of view you see five different masters accessing the bus: Cernerus, DMA resource partitions 0 to 3. The tag is used when an error occurs on the bus, and is recorded so that you can find out which master initiated the transaction which caused the error. The Cerberus tag is used by various agents to protect against unauthorised access - only Cerberus when in certain modes can access certain registers.

DMA channels are configured to use a given partition, which then sets up the associated protections and settings needed.
0 Likes
User19708
Level 1
Level 1
Thanks Darren, i get it now. And i have another question, TC212 has only 2 dma move engines, but i have a lot of peripherals to read or write via dma. One of these peripherals is a qspi channel working at slave mode, which must response to the master inmmediatly, can i config this qspi channel to monopolize one dma engine?
0 Likes
Darren_Galpin
Employee
Employee
First solution authored First like received
You would do this by using the highest priority channel for the QSPI. Once a move for that channel is requested, it always wins the arbitration and starts.
0 Likes
User19708
Level 1
Level 1
Yes, i've already set the SPB Resource Switch Priorities(DMA_CHCFGR011.DMAPRIO = 3) of the qspi dma channel to be the highst, and this dma channel number is the largest amang all dma channels, but it seems can be interfered by other dma channels.
0 Likes
Darren_Galpin
Employee
Employee
First solution authored First like received
When there is nothing to move, then the DMA will arbitrate and switch to moving the next highest channel - you cannot lock a move engine to a channel. But by being the highest channel number, you can ensure that as soon as a move is ready and signalled, it will arbitrate to it and switch.
0 Likes
User19708
Level 1
Level 1
well, i sorved it eventualy, it has nothing to do with dma priority, just because the interrupt is globally disabled after entering, i have to open it manually.
0 Likes