NOTICE: The Processors Wiki will End-of-Life in December of 2020. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
DMAN3 using the EDMA3 Low Level Resource Manager
As of the Framework Components 2.20 release, DMAN3 supports a new configuration parameter that allows the DMAN3 resources to be managed by (and allocated from) the EDMA3 Low Level Resource Manager.
The EDMA3 Low Level Resource Manager is a part of the PSP (Platform Support Package) offering for new C64x+ platforms. Using the PSP provided Low Lever Resource Manager and Driver packages is the recommended way of accessing EDMA3 resources from the DSP side.
The idea is that having a single resource manager will allow for centralized management of EDMA3 resources on the system.
New DMAN3 configuration
The option of allowing DMAN3 to obtain resources via the EDMA3 Low Level Resource Manager has been introduced while maintaining backward compatibility. This new feature is available via a new configuration option on DMAN3: useExternalRM Setting this parameter to TRUE will create a conditional dependency on the Meta-config EDMA3 module (ti.sdo.fc.edma3.Settings) that configures and sets up the EDMA3 Low Level Resource Manager package.
1. The following DMAN3 configuration parameters will become "Don't Cares". when DMAN3's useExternalRM parameter is set to true
- qdmaPaRamBase - No longer required to select the base address of the PaRams, the externalRM provides this information.
- maxPaRamEntries - No longer need SOC specific information via configuration
- maxQdmaChannels - -"-
- qdmaQueueMap - Default register mappings etc are now done via the LLD
- queueTCMap - -"-
- queuePri - -"-
- paRamBaseIndex - No longer specify which paRams are to be used by DMAN3
- nullPaRamIndex - -"-
- qdmaChannels - No longer specify which qdma channels are to be used by DMAN3
- tccAllocationMaskL/H - No longer specify which TCCs are to be used by DMAN3
- numTccGroup - No longer specify group assignments here
- numParamGroup - -"-
2. The EDMA3 Meta-config module (ti.sdo.fc.edma3.Settings) will need to be configured properly for the application and the device you are running on. (See the Configuration of EDMA3 RM article, section: "Configuration of ti.sdo.fc.edma3.Settings" for details)
3. The API
DMAN3_grantDmaChannels() does not allow granting DMA channels to "multiple algorithms in a single call" when
.useExternalRM is set to true.
Int DMAN3_grantDmaChannels(Int groupId, IALG_Handle algHandle, IDMA3_Fxns *dmaFxns, Int numAlgs);
You should always call this API with numAlgs = 1.
If multiple algorithms need to be serviced, this call can be made multiple times.
Other EDMA3 modules in FC
See the DMA Overview article for details on other EDMA3 related modules in FC