EDMA3_DRV_InstanceInitConfig Struct Reference
[EDMA3 Driver Data Structures]

Init-time Region Specific Configuration structure for EDMA3 Driver, to provide region specific Information. More...

#include <edma3_drv.h>


Data Fields

unsigned int ownPaRAMSets [EDMA3_MAX_PARAM_DWRDS]
unsigned int ownDmaChannels [EDMA3_MAX_DMA_CHAN_DWRDS]
unsigned int ownQdmaChannels [EDMA3_MAX_QDMA_CHAN_DWRDS]
unsigned int ownTccs [EDMA3_MAX_TCC_DWRDS]
unsigned int resvdPaRAMSets [EDMA3_MAX_PARAM_DWRDS]
 Reserved PaRAM Sets.
unsigned int resvdDmaChannels [EDMA3_MAX_DMA_CHAN_DWRDS]
 Reserved DMA channels.
unsigned int resvdQdmaChannels [EDMA3_MAX_QDMA_CHAN_DWRDS]
 Reserved QDMA channels.
unsigned int resvdTccs [EDMA3_MAX_TCC_DWRDS]
 Reserved TCCs.


Detailed Description

Init-time Region Specific Configuration structure for EDMA3 Driver, to provide region specific Information.

This configuration structure is used to specify which EDMA3 resources are owned and reserved by the EDMA3 Driver instance. This configuration structure is shadow region specific and will be provided by the user at run-time while calling EDMA3_DRV_open ().

Owned resources: ****************

EDMA3 Driver Instances are tied to different shadow regions and hence different masters. Regions could be:

a) ARM, b) DSP, c) IMCOP (Imaging Co-processor) etc.

User can assign each EDMA3 resource to a shadow region using this structure. In this way, user specifies which resources are owned by the specific EDMA3 DRV Instance. This assignment should also ensure that the same resource is not assigned to more than one shadow regions (unless desired in that way). Any assignment not following the above mentioned approach may have catastrophic consequences.

Reserved resources: *******************

During EDMA3 DRV initialization, user can reserve some of the EDMA3 resources for future use, by specifying which resources to reserve in the configuration data structure. These (critical) resources are reserved in advance so that they should not be allocated to someone else and thus could be used in future for some specific purpose.

User can request different EDMA3 resources using two methods: a) By passing the resource type and the actual resource id, b) By passing the resource type and ANY as resource id

For e.g. to request DMA channel 31, user will pass 31 as the resource id. But to request ANY available DMA channel (mainly used for memory-to-memory data transfer operations), user will pass EDMA3_DRV_DMA_CHANNEL_ANY as the resource id.

During initialization, user may have reserved some of the DMA channels for some specific purpose (mainly for peripherals using EDMA). These reserved DMA channels then will not be returned when user requests ANY as the resource id.

Same logic applies for QDMA channels and TCCs.

For PaRAM Set, there is one difference. If the DMA channels are one-to-one tied to their respective PaRAM Sets (i.e. user cannot 'choose' the PaRAM Set for a particular DMA channel), EDMA3 Driver automatically reserves all those PaRAM Sets which are tied to the DMA channels. Then those PaRAM Sets would not be returned when user requests for ANY PaRAM Set (specifically for linking purpose). This is done in order to avoid allocating the PaRAM Set, tied to a particular DMA channel, for linking purpose. If this constraint is not there, that DMA channel thus could not be used at all, because of the unavailability of the desired PaRAM Set.


Field Documentation

unsigned int EDMA3_DRV_InstanceInitConfig::ownPaRAMSets[EDMA3_MAX_PARAM_DWRDS]

PaRAM Sets owned by the EDMA3 Driver Instance.

unsigned int EDMA3_DRV_InstanceInitConfig::ownDmaChannels[EDMA3_MAX_DMA_CHAN_DWRDS]

DMA Channels owned by the EDMA3 Driver Instance.

unsigned int EDMA3_DRV_InstanceInitConfig::ownQdmaChannels[EDMA3_MAX_QDMA_CHAN_DWRDS]

QDMA Channels owned by the EDMA3 Driver Instance.

unsigned int EDMA3_DRV_InstanceInitConfig::ownTccs[EDMA3_MAX_TCC_DWRDS]

TCCs owned by the EDMA3 Driver Instance.

unsigned int EDMA3_DRV_InstanceInitConfig::resvdPaRAMSets[EDMA3_MAX_PARAM_DWRDS]

Reserved PaRAM Sets.

PaRAM Sets reserved during initialization for future use. These will not be given when user requests for ANY available PaRAM Set for linking using 'EDMA3_DRV_LINK_CHANNEL' as channel id.

unsigned int EDMA3_DRV_InstanceInitConfig::resvdDmaChannels[EDMA3_MAX_DMA_CHAN_DWRDS]

Reserved DMA channels.

DMA channels reserved during initialization for future use. These will not be given when user requests for ANY available DMA channel using 'EDMA3_DRV_DMA_CHANNEL_ANY' as channel id.

unsigned int EDMA3_DRV_InstanceInitConfig::resvdQdmaChannels[EDMA3_MAX_QDMA_CHAN_DWRDS]

Reserved QDMA channels.

QDMA channels reserved during initialization for future use. These will not be given when user requests for ANY available QDMA channel using 'EDMA3_DRV_QDMA_CHANNEL_ANY' as channel id.

unsigned int EDMA3_DRV_InstanceInitConfig::resvdTccs[EDMA3_MAX_TCC_DWRDS]

Reserved TCCs.

TCCs reserved during initialization for future use. These will not be given when user requests for ANY available TCC using 'EDMA3_DRV_TCC_ANY' as resource id.


The documentation for this struct was generated from the following file:

Generated on Wed Apr 7 12:01:42 2010 for EDMA3 Driver by  doxygen 1.5.5