57 #include <ti/csl/cslr_dru.h> 58 #include <ti/csl/csl_udmap.h> 60 #if defined (__C7100__) 86 #define CSL_DRU_MAX_CH (512U) 90 #define CSL_DRU_NUM_CH (64U) 96 #define CSL_DRU_MAX_QUEUE (8U) 100 #define CSL_DRU_NUM_QUEUE (5U) 106 #define CSL_DRU_MAX_CORE (4U) 110 #define CSL_DRU_NUM_CORE (3U) 121 #define CSL_DRU_OWNER_DIRECT_TR ((uint64_t) 0x0000U) 123 #define CSL_DRU_OWNER_UDMAC_TR ((uint64_t) 0x0001U) 135 #define CSL_DRU_QUEUE_ID_0 ((uint32_t) 0x0000U) 136 #define CSL_DRU_QUEUE_ID_1 ((uint32_t) 0x0001U) 137 #define CSL_DRU_QUEUE_ID_2 ((uint32_t) 0x0002U) 138 #define CSL_DRU_QUEUE_ID_3 ((uint32_t) 0x0003U) 139 #define CSL_DRU_QUEUE_ID_4 ((uint32_t) 0x0004U) 140 #define CSL_DRU_QUEUE_ID_5 ((uint32_t) 0x0005U) 141 #define CSL_DRU_QUEUE_ID_6 ((uint32_t) 0x0006U) 142 #define CSL_DRU_QUEUE_ID_7 ((uint32_t) 0x0007U) 154 #define CSL_DRU_CORE_ID_0 ((uint32_t) 0x0000U) 155 #define CSL_DRU_CORE_ID_1 ((uint32_t) 0x0001U) 156 #define CSL_DRU_CORE_ID_2 ((uint32_t) 0x0002U) 158 #define CSL_DRU_CORE_ID_3 ((uint32_t) 0x0003U) 417 const CSL_UdmapTR *tr);
419 #if defined (__C7100__) 429 static inline void CSL_druChSubmitAtomicTr(CSL_DRU_t *pRegs,
529 const CSL_UdmapTR *tr)
531 const CSL_DRU_CHCORERegs_CHCORE_CORE *pCoreRegs =
532 &pRegs->CHCORE[
chId].CORE[coreId];
533 const uint32_t *trWord32 = (
const uint32_t *) tr;
534 volatile uint32_t *submitWord32 = (
volatile uint32_t *) pCoreRegs;
535 uint32_t numWords32, cnt;
538 numWords32 = (
sizeof(CSL_UdmapTR) /
sizeof(uint32_t));
539 for(cnt = 1U; cnt < numWords32; cnt++)
541 CSL_REG32_WR(submitWord32+cnt, trWord32[cnt]);
544 CSL_REG32_WR(submitWord32, trWord32[0]);
549 #if defined (__C7100__) 550 static inline void CSL_druChSubmitAtomicTr(CSL_DRU_t *pRegs,
554 volatile uintptr_t pAtomic;
556 pAtomic = (uintptr_t) &pRegs->CHATOMIC[
chId];
557 *((__ulong8 *) pAtomic) = *vdata;
565 uint64_t regVal = ((uint64_t) 1U << CSL_DRU_CHRT_SWTRIG_LOCAL_TRIGGER0_SHIFT);
567 CSL_REG64_WR(pSwTrigReg, regVal);
572 uint64_t regVal = ((uint64_t) 1U << CSL_DRU_CHRT_SWTRIG_GLOBAL_TRIGGER0_SHIFT);
574 CSL_REG64_WR(pSwTrigReg, regVal);
579 uint64_t regVal = ((uint64_t) 1U << CSL_DRU_CHRT_SWTRIG_GLOBAL_TRIGGER1_SHIFT);
581 CSL_REG64_WR(pSwTrigReg, regVal);
uint64_t eolSupported
Definition: csl_dru.h:184
This structure contains Queue status information.
Definition: csl_dru.h:262
uint64_t trTypeSupported
Definition: csl_dru.h:178
uint64_t queueId
Definition: csl_dru.h:255
uint64_t staticSupported
Definition: csl_dru.h:182
This structure contains the parameters to setup the DRU channel.
Definition: csl_dru.h:233
int32_t CSL_druChSetEvent(const CSL_DRU_t *pRegs, uint32_t chId, uint64_t evtNum)
This API configures the DRU channel event.
static void CSL_druChSetGlobalTrigger1Raw(volatile uint64_t *pSwTrigReg)
This API triggers the global event 1 for the specified channel.
Definition: csl_dru.h:577
int32_t CSL_druChResume(const CSL_DRU_t *pRegs, uint32_t chId)
This API resumes the specified channel.
uint64_t wrTop
Definition: csl_dru.h:268
int32_t CSL_druChPause(const CSL_DRU_t *pRegs, uint32_t chId)
This API pauses the specified channel.
int32_t CSL_druGetCapabilities(const CSL_DRU_t *pRegs, CSL_DruCapabilities *druCap)
This API returns the DRU capabilities.
uint64_t type
Definition: csl_dru.h:235
uint64_t pauseOnErr
Definition: csl_dru.h:244
int32_t CSL_druChSetLocalTrigger0(CSL_DRU_t *pRegs, uint32_t chId)
This API triggers the local event 0 for the specified channel.
uint64_t orderId
Definition: csl_dru.h:216
uint64_t globalTriggerSupported
Definition: csl_dru.h:188
uint64_t amode
Definition: csl_dru.h:190
uint64_t owner
Definition: csl_dru.h:241
This structure contains the capabilities of DRU.
Definition: csl_dru.h:176
This structure contains the parameters to setup the DRU queue.
Definition: csl_dru.h:204
int32_t CSL_druChConfig(const CSL_DRU_t *pRegs, uint32_t chId, const CSL_DruChConfig *chCfg)
This API configures the DRU channel non-real time configurations.
uint64_t wrTotal
Definition: csl_dru.h:270
int32_t CSL_druChDisable(const CSL_DRU_t *pRegs, uint32_t chId)
This API disables the DRU channel using the real time registers.
int32_t CSL_druChTeardown(const CSL_DRU_t *pRegs, uint32_t chId)
This API teardowns the specified channel.
uint32_t CSL_druChIsTeardownComplete(const CSL_DRU_t *pRegs, uint32_t chId)
This API checks if a teardown is complete for specified channel.
uint64_t sectr
Definition: csl_dru.h:199
int32_t CSL_druChSetGlobalTrigger0(CSL_DRU_t *pRegs, uint32_t chId)
This API triggers the global event 0 for the specified channel.
static void CSL_druChSetLocalTrigger0Raw(volatile uint64_t *pSwTrigReg)
This API triggers the local event 0 for the specified channel.
Definition: csl_dru.h:563
static void CSL_druChSubmitTr(const CSL_DRU_t *pRegs, uint32_t chId, uint32_t coreId, const CSL_UdmapTR *tr)
This API does a direct TR submission to the specified channel and core ID.
Definition: csl_dru.h:526
uint64_t rdTotal
Definition: csl_dru.h:266
uint64_t qos
Definition: csl_dru.h:211
int32_t CSL_druChSetGlobalTrigger1(CSL_DRU_t *pRegs, uint32_t chId)
This API triggers the global event 1 for the specified channel.
uint64_t dfmt
Definition: csl_dru.h:196
uint64_t consecuitveTrans
Definition: csl_dru.h:218
int32_t CSL_druQueueConfig(const CSL_DRU_t *pRegs, uint32_t queueId, const CSL_DruQueueConfig *queueCfg)
This API configures the DRU queue non-real time configurations.
static void CSL_druChSetGlobalTrigger0Raw(volatile uint64_t *pSwTrigReg)
This API triggers the global event 0 for the specified channel.
Definition: csl_dru.h:570
uint64_t rearbWait
Definition: csl_dru.h:225
volatile uint64_t * CSL_druChGetTriggerRegAddr(CSL_DRU_t *pRegs, uint32_t chId)
This API get the triggers register address for the channel.
int32_t CSL_druChEnable(const CSL_DRU_t *pRegs, uint32_t chId)
This API enables the DRU channel using the real time registers.
uint64_t priority
Definition: csl_dru.h:206
uint64_t localTriggerSupported
Definition: csl_dru.h:186
uint64_t rdTop
Definition: csl_dru.h:264
uint64_t evtNum
Definition: csl_dru.h:251
uint32_t chId
Definition: csl_udmap_tr.h:829
uint64_t elType
Definition: csl_dru.h:193
int32_t CSL_druGetQueueStatus(const CSL_DRU_t *pRegs, uint32_t queueId, CSL_DruQueueStatus *status)
This API returns the status of the specified queue.