metaonly module ti.sdo.fc.dman3.DMAN3

EDMA3 QDMA resource manager

XDCscript usage meta-domain sourced in ti/sdo/fc/dman3/DMAN3.xdc
var DMAN3 = xdc.useModule('ti.sdo.fc.dman3.DMAN3');
module-wide constants & types
module-wide config parameters
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
    ];
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0
    ];
        0,
        1,
        2,
        3
    ];
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1
    ];
        3,
        7,
        0,
        0,
        0,
        0,
        0,
        0
    ];
        0,
        1,
        2,
        3,
        4,
        5,
        6,
        7
    ];
 
 
const DMAN3.MAXGROUPS

Maximum number of groups for sharing TCCs and parameter RAM

XDCscript usage meta-domain
const DMAN3.MAXGROUPS = 20;
 
 
config DMAN3.allowUnshared  // module-wide

Allow DMAN3-related resources to be granted to an algorithm, even if there are not enough resources configured into the shared groupId which the algorithm is a member of

XDCscript usage meta-domain
DMAN3.allowUnshared = Bool true;
 
DETAILS
If this property is set to false, the DMAN3 library will fail to grant DMA channels to an algorithm requesting more TCCs or PaRams then the number configured for its scratch group.
If this property is true, and an algorithm requests more TCCs or PaRams than the number configured for its scratch group, DMAN3 will do either of the following:
  1. If no algorithm is currently instantiated for the given scratch group, DMAN3 will bump up the number of TCCs and PaRams to the maximum of the number configured and that requested by the algorithm, for the scratch group. This will remain in effect until all algorithms for that scratch group are deleted.
  2. If an algorithm has already been granted DMA channels for the given scratch group (so the number of TCCs and PaRams for that scratch group has already been determined by (1) above), and the number of TCCs or PaRams for the scratch group is insufficient for the algorithm currently requesting DMA channels, DMAN3 will allocate new TCCs and PaRams if available. These new TCCs and PaRams will not be shared by any other algorithm.
 
config DMAN3.cpu  // module-wide

Use the non-EDMA3, CPU version of DMAN3

XDCscript usage meta-domain
DMAN3.cpu = Bool false;
 
 
config DMAN3.customDmaLib  // module-wide

Set this to TRUE if a custom library is being used to perform DMA transfers. In this case, qdma channels will have to be partitioned into scratch groups using the numQdmaGroup configuration

XDCscript usage meta-domain
DMAN3.customDmaLib = Bool undefined;
 
 
config DMAN3.heapExternal  // module-wide

Heap ID for dyn allocation of private DMAN3 data structures

XDCscript usage meta-domain
DMAN3.heapExternal = String null;
 
DETAILS
This parameter is unused when DMAN3 is used in a Linux environment.
This parameter is set to DMAN3_HEAP_EXTERNAL.
 
config DMAN3.heapInternal  // module-wide

Heap ID for dynamic allocation of DMAN3 objects

XDCscript usage meta-domain
DMAN3.heapInternal = String null;
 
DETAILS
This must be allocated in L1D Internal RAM.
This parameter is unused when DMAN3 is used in a Linux environment.
This parameter is set to DMAN3_HEAP_INTERNAL.
 
config DMAN3.idma3Internal  // module-wide

Use the internal memory heap for dynamic allocation of IDMA3 objects

XDCscript usage meta-domain
DMAN3.idma3Internal = Bool true;
 
DETAILS
A value of false means that IDMA3 objects will be allocated in the heap specified by heapExternal. If the value is true, IDMA3 objects will be allocated in the heap specified by heapInternal.
 
config DMAN3.maxPaRamEntries  // module-wide

Total number of PARAM Table entries on the target hardware. (eg, for IVA2, Davinci this is 128, for Himalaya, this is 256)

XDCscript usage meta-domain
DMAN3.maxPaRamEntries = UInt 128;
 
DETAILS
This parameter is set to DMAN3_MAX_PARAM_ENTRIES.
 
config DMAN3.maxQdmaChannels  // module-wide

The total number of Physical QDMA channels available on the target hardware (eg, 8 for DaVinci, 4 for IVA2)

XDCscript usage meta-domain
DMAN3.maxQdmaChannels = UInt 8;
 
DETAILS
This parameter is set to DMAN3_MAX_QDMA_CHANNELS.
 
config DMAN3.maxTCs  // module-wide

Maximum number of transfer controllers on this SOC

XDCscript usage meta-domain
DMAN3.maxTCs = UInt 8;
 
 
config DMAN3.nullPaRamIndex  // module-wide

Index of PaRam to be reserved as a "null" PaRam. This index will be used to set QCHMAP when the corresponding QDMA channel is not active. The value of nullPaRamIndex should be outside of the range of PaRam indices alloted to DMAN3, i.e., nullPaRamIndex should be less than paRamBaseIndex, or greater than paRamBaseIndex + numPaRamEntries. If PaRam registers are shared between two processors (eg, an Arm and a DSP), make sure the nullPaRamIndex is not used by the other processor

XDCscript usage meta-domain
DMAN3.nullPaRamIndex = UInt 0;
 
DETAILS
This parameter is set to DMAN3_NULLPARAMINDEX.
 
config DMAN3.numPaRamEntries  // module-wide

Number of PARAM Table entries starting at DMAN3_PARAM_BASE_INDEX assigned by configuration for exclusive DMAN3 allocation

XDCscript usage meta-domain
DMAN3.numPaRamEntries = UInt 32;
 
DETAILS
This parameter is set to DMAN3_NUM_CONTIGUOUS_PARAM_ENTRIES.
 
config DMAN3.numPaRamGroup  // module-wide

Arrays containing the number of PaRam entries that will be assigned to groups for sharing

XDCscript usage meta-domain
DMAN3.numPaRamGroup = Int[DMAN3.MAXGROUPS] [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
];
 
DETAILS
Channels created with a given group ID will use TCCs and PaRams allocated for that group ID, and may share them with other channels created with the same group ID.
This parameter is set to DMAN3_NUMPARAM_GROUP.
 
config DMAN3.numQdmaChannels  // module-wide

The number of Physical QDMA channels that are assigned to DMAN3 via configuration. These channels will be granted either as scratch or persistently as part of IDMA3 handles

XDCscript usage meta-domain
DMAN3.numQdmaChannels = UInt 4;
 
DETAILS
This parameter is set to DMAN3_NUM_QDMA_CHANNELS.
 
config DMAN3.numQdmaGroup  // module-wide

Arrays containing the number of Qdma channels that will be assigned to groups for sharing

XDCscript usage meta-domain
DMAN3.numQdmaGroup = Int[DMAN3.MAXGROUPS] undefined;
 
DETAILS
This configuration is required ONLY if the application uses atleast one custom (non-ACPY3) DMA library that will request QDMA channels from DMAN3. In this case, the configuration param "customDmaLib" should be set to true.
Channels created with a given group ID will use TCCs and PaRams allocated for that grup ID, and may share them with other channels created with the same group ID. Qdma channels may be shared across algorithms and scratch groups if all algorithms use the same ACPY3 library. But if even one algorithm uses a custom DMA library, Qdma channels should be distribued among scratch groups like other EDMA3 resources.
 
config DMAN3.numTccGroup  // module-wide

Arrays containing the number of TCC that will be assigned to groups for sharing

XDCscript usage meta-domain
DMAN3.numTccGroup = Int[DMAN3.MAXGROUPS] [
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0
];
 
DETAILS
Channels created with a given group ID will use TCCs and PaRams allocated for that group ID, and may share them with other channels created with the same group ID.
This parameter is set to DMAN3_NUMTCC_GROUP.
 
config DMAN3.paRamBaseIndex  // module-wide

(0 > value > 255) represents the first PARAM TABLE ENTRY NUMBER that is assigned by configuration for exclusive DMAN3 allocation

XDCscript usage meta-domain
DMAN3.paRamBaseIndex = UInt 96;
 
DETAILS
Typically, addresses (PaRam sets) between 0 and 63 are reserved for use by drivers that need EDMA/chaining capabilities.
Additionally, on some multi-core devices (e.g. DM644x), PaRams are shared between the different cores (e.g. ARM and C64+). In these cases, an executable will be configured for each core, and each executable should configure only the DMAN3 resources which will be used on that core. E.g., on DM644x, the C64+ executable should be configured to avoid using what the ARM uses. Note that on OMAP2430, the ARM doesn't have access to EDMA so all PaRam sets are available for the C64+ device.
This parameter is set to DMAN3_PARAM_BASE_INDEX.
 
config DMAN3.qdmaChannels  // module-wide

Array containing list of physical QDMA channels assigned to DMAN3

XDCscript usage meta-domain
DMAN3.qdmaChannels = UInt[] [
    0,
    1,
    2,
    3
];
 
DETAILS
This array is of size DMAN3_NUM_QDMA_CHANNELS (configured by numQdmaChannels).
This parameter is set to DMAN3_QDMA_CHANNELS[].
SEE
 
config DMAN3.qdmaPaRamBase  // module-wide

Physical base address of the PARAM0 in the EDMA3/QDMA hardware whose resources are being managed by DMAN3

XDCscript usage meta-domain
DMAN3.qdmaPaRamBase = Ptr 0x01C04000;
 
DETAILS
This parameter is set to DMAN3_QDMA_PARAM_BASE.
 
config DMAN3.qdmaQueueMap  // module-wide

Array contaning the mapping from QDMA Channels to Event Queues

XDCscript usage meta-domain
DMAN3.qdmaQueueMap = UInt[] [
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1
];
 
DETAILS
Indicates mapping of all "qdmaChannels" defined above to particular Event Queue. For example, channelQueueMap[0] specifies queue number for qdmaChannel[0], etc.
Defaults map all qdmaChannels to Queue# 1
 
config DMAN3.queuePri  // module-wide

Array contaning priorities of the event queues

XDCscript usage meta-domain
DMAN3.queuePri = UInt[] [
    3,
    7,
    0,
    0,
    0,
    0,
    0,
    0
];
 
DETAILS
Indicates the priority accorded to each physical event queue.
 
config DMAN3.queueTCMap  // module-wide

Array contaning the mapping from Event Queues to Transfer Controllers

XDCscript usage meta-domain
DMAN3.queueTCMap = UInt[] [
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7
];
 
DETAILS
Indicates mapping of individual hardware Event Queues to the Transfer Controllers.
 
config DMAN3.scratchAllocFxn  // module-wide

Function for allocating IDMA3 channel object's "env" in scratch memory

XDCscript usage meta-domain
DMAN3.scratchAllocFxn = String null;
 
 
config DMAN3.scratchFreeFxn  // module-wide

Function for freeing IDMA3 channel object's "env" that was allocated in scratch memory

XDCscript usage meta-domain
DMAN3.scratchFreeFxn = String null;
 
 
config DMAN3.tccAllocationMaskH  // module-wide

32-bit bitmask representing configuration provided list of TCCs for exclusive DMAN3 allocation

XDCscript usage meta-domain
DMAN3.tccAllocationMaskH = UInt 0xffffffff;
 
DETAILS
For example, for TCC's in the range 0-31 the Low Mask (tccAllocationMaskL) is configured so that a '1' in bit position 'i' indicates the TCC 'i' is assigned to DMAN3.
This parameter is set to DMAN3_TCC_FREEMASK_H.
 
config DMAN3.tccAllocationMaskL  // module-wide

32-bit bitmask representing configuration provided list of TCCs for exclusive DMAN3 allocation

XDCscript usage meta-domain
DMAN3.tccAllocationMaskL = UInt 0x00000000;
 
DETAILS
For example, for TCC's in the range 0-31 the Low Mask (tccAllocationMaskL) is configured so that a '1' in bit position 'i' indicates the TCC 'i' is assigned to DMAN3.
This parameter is set to DMAN3_TCC_FREEMASK_L.
 
config DMAN3.useExternalRM  // module-wide

Boolean flag indicating if the EDMA3 Low Level Resource Manager should be used to manage EDMA3 resources. If this flag is set to true, the SOC specific settings are not required to be set in this module. The ti.sdo.fc.edma3.Settings module should be set up correctly

XDCscript usage meta-domain
DMAN3.useExternalRM = Bool false;
 
generated on Mon, 16 Apr 2012 07:09:41 GMT