00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #ifndef _EDMA3_RES_MGR_H_
00040 #define _EDMA3_RES_MGR_H_
00041
00042
00044 #include <ti/sdo/edma3/rm/edma3_rm.h>
00045
00046
00047 #include <ti/sdo/edma3/rm/src/edma3_rl_cc.h>
00048 #include <ti/sdo/edma3/rm/src/edma3_rl_tc.h>
00049
00050 #ifdef __cplusplus
00051 extern "C" {
00052 #endif
00053
00058 extern unsigned int edma3NumPaRAMSets;
00059
00060
00062 #define EDMA3_RM_SET_ALL_BITS (0xFFFFFFFFu)
00063
00064
00066 #define EDMA3_RM_DCH_PARAM_CLR_MASK (~EDMA3_CCRL_DCHMAP_PAENTRY_MASK)
00067
00068 #define EDMA3_RM_DCH_PARAM_SET_MASK(paRAMId) (((EDMA3_CCRL_DCHMAP_PAENTRY_MASK >> EDMA3_CCRL_DCHMAP_PAENTRY_SHIFT) & (paRAMId)) << EDMA3_CCRL_DCHMAP_PAENTRY_SHIFT)
00069
00070 #define EDMA3_RM_QCH_PARAM_CLR_MASK (~EDMA3_CCRL_QCHMAP_PAENTRY_MASK)
00071
00072 #define EDMA3_RM_QCH_PARAM_SET_MASK(paRAMId) (((EDMA3_CCRL_QCHMAP_PAENTRY_MASK >> EDMA3_CCRL_QCHMAP_PAENTRY_SHIFT) & (paRAMId)) << EDMA3_CCRL_QCHMAP_PAENTRY_SHIFT)
00073
00074 #define EDMA3_RM_QCH_TRWORD_CLR_MASK (~EDMA3_CCRL_QCHMAP_TRWORD_MASK)
00075
00076 #define EDMA3_RM_QCH_TRWORD_SET_MASK(paRAMId) (((EDMA3_CCRL_QCHMAP_TRWORD_MASK >> EDMA3_CCRL_QCHMAP_TRWORD_SHIFT) & (paRAMId)) << EDMA3_CCRL_QCHMAP_TRWORD_SHIFT)
00077
00078 #define EDMA3_RM_QUEPRI_CLR_MASK(queNum) (~(EDMA3_CCRL_QUEPRI_PRIQ0_MASK << ((queNum) * EDMA3_CCRL_QUEPRI_PRIQ1_SHIFT)))
00079
00080 #define EDMA3_RM_QUEPRI_SET_MASK(queNum,quePri) ((EDMA3_CCRL_QUEPRI_PRIQ0_MASK & (quePri)) << ((queNum) * EDMA3_CCRL_QUEPRI_PRIQ1_SHIFT))
00081
00082 #define EDMA3_RM_QUEWMTHR_CLR_MASK(queNum) (~(EDMA3_CCRL_QWMTHRA_Q0_MASK << ((queNum) * EDMA3_CCRL_QWMTHRA_Q1_SHIFT)))
00083
00084 #define EDMA3_RM_QUEWMTHR_SET_MASK(queNum,queThr) ((EDMA3_CCRL_QWMTHRA_Q0_MASK & (queThr)) << ((queNum) * EDMA3_CCRL_QWMTHRA_Q1_SHIFT))
00085
00087 #define EDMA3_RM_OPT_TCC_CLR_MASK (~EDMA3_CCRL_OPT_TCC_MASK)
00088
00089 #define EDMA3_RM_OPT_TCC_SET_MASK(tcc) (((EDMA3_CCRL_OPT_TCC_MASK >> EDMA3_CCRL_OPT_TCC_SHIFT) & (tcc)) << EDMA3_CCRL_OPT_TCC_SHIFT)
00090
00092 #define EDMA3_RM_PARAM_ENTRY_LINK_BCNTRLD (5u)
00093
00094
00114 typedef enum {
00116 EDMA3_RM_DELETED = 0,
00118 EDMA3_RM_CREATED = 1,
00120 EDMA3_RM_OPENED = 2,
00122 EDMA3_RM_CLOSED = 3
00123 } EDMA3_RM_ObjState;
00124
00125
00126
00135 #define EDMA3_RM_DMA_CH_MAX_VAL (EDMA3_MAX_DMA_CH - 1u)
00136
00138 #define EDMA3_RM_LINK_CH_MIN_VAL (EDMA3_MAX_DMA_CH)
00139
00141 #define EDMA3_RM_LINK_CH_MAX_VAL (EDMA3_MAX_DMA_CH + EDMA3_MAX_PARAM_SETS - 1u)
00142
00144 #define EDMA3_RM_QDMA_CH_MIN_VAL (EDMA3_MAX_DMA_CH + EDMA3_MAX_PARAM_SETS)
00145
00147 #define EDMA3_RM_QDMA_CH_MAX_VAL (EDMA3_MAX_DMA_CH + EDMA3_MAX_PARAM_SETS + EDMA3_MAX_QDMA_CH - 1u)
00148
00150 #define EDMA3_RM_LOG_CH_MAX_VAL (EDMA3_RM_QDMA_CH_MAX_VAL)
00151
00152
00153
00154
00155
00156
00157
00158
00159
00166 typedef struct
00167 {
00169 unsigned int phyCtrllerInstId;
00170
00172 EDMA3_RM_ObjState state;
00173
00175 unsigned int numOpens;
00176
00184 EDMA3_RM_GblConfigParams gblCfgParams;
00185
00186 } EDMA3_RM_Obj;
00187
00188
00198 typedef struct
00199 {
00206 EDMA3_RM_Param initParam;
00207
00209 EDMA3_CCRL_ShadowRegs *shadowRegs;
00210
00215 EDMA3_RM_Obj *pResMgrObjHandle;
00216
00218 unsigned int avlblDmaChannels[EDMA3_MAX_DMA_CHAN_DWRDS];
00219
00221 unsigned int avlblQdmaChannels[EDMA3_MAX_QDMA_CHAN_DWRDS];
00222
00224 unsigned int avlblPaRAMSets[EDMA3_MAX_PARAM_DWRDS];
00225
00227 unsigned int avlblTccs[EDMA3_MAX_TCC_DWRDS];
00228
00245 unsigned int paramInitRequired;
00246
00264 unsigned int regModificationRequired;
00265
00266 }EDMA3_RM_Instance;
00267
00268
00269
00270
00278 typedef struct {
00280 int paRAMId;
00281
00283 unsigned int tcc;
00284 } EDMA3_RM_ChBoundResources;
00285
00286
00290 typedef struct {
00292 EDMA3_RM_TccCallback tccCb;
00293
00295 void *cbData;
00296 } EDMA3_RM_TccCallbackParams;
00297
00298
00299
00300
00301 #ifdef __cplusplus
00302 }
00303 #endif
00304
00305 #endif