Jan 18, 2021
06:57 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jan 18, 2021
06:57 PM
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.
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.
- Tags:
- IFX
6 Replies
Jan 19, 2021
12:35 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jan 19, 2021
12:35 AM
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.
DMA channels are configured to use a given partition, which then sets up the associated protections and settings needed.
Jan 19, 2021
08:39 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jan 19, 2021
08:39 PM
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?
Jan 20, 2021
03:30 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jan 20, 2021
03:30 AM
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.
Jan 20, 2021
06:34 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jan 20, 2021
06:34 PM
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.
Jan 21, 2021
12:29 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jan 21, 2021
12:29 AM
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.
Jan 21, 2021
07:44 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jan 21, 2021
07:44 PM
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.
This widget could not be displayed.