76 #include <ti/drv/udma/soc/udma_soc.h>
78 #include <ti/csl/soc.h>
79 #include <ti/csl/csl_psilcfg.h>
80 #if (UDMA_SOC_CFG_RA_NORMAL_PRESENT == 1)
81 #include <ti/csl/csl_ringacc.h>
83 #if (UDMA_SOC_CFG_RA_LCDMA_PRESENT == 1)
84 #include <ti/csl/csl_lcdma_ringacc.h>
86 #if (UDMA_SOC_CFG_UDMAP_PRESENT == 1)
87 #include <ti/csl/csl_udmap.h>
89 #if (UDMA_SOC_CFG_BCDMA_PRESENT == 1)
90 #include <ti/csl/csl_bcdma.h>
91 #if (UDMA_SOC_CFG_PKTDMA_PRESENT == 1)
92 #include <ti/csl/csl_pktdma.h>
93 #include <ti/csl/src/ip/udmap/V0/csl_udmap_cppi5.h>
96 #include <ti/csl/csl_intaggr.h>
97 #include <ti/csl/csl_intr_router.h>
98 #if (UDMA_NUM_UTC_INSTANCE > 0)
99 #include <ti/csl/csl_dru.h>
101 #if (UDMA_SOC_CFG_PROXY_PRESENT == 1)
102 #include <ti/csl/csl_proxy.h>
104 #if (UDMA_SOC_CFG_CLEC_PRESENT == 1)
105 #include <ti/csl/csl_clec.h>
108 #include <ti/osal/osal.h>
113 #include <ti/drv/udma/include/udma_osal.h>
120 #if (UDMA_NUM_UTC_INSTANCE > 0)
164 typedef void *(*Udma_PhyToVirtFxn)(uint64_t phyAddr,
194 uint64_t phyDescMem);
197 uint64_t *phyDescMem);
199 typedef void *(*Udma_ringGetMemPtrFxn)(Udma_RingHandle ringHandle);
214 Udma_RingHandle ringHandle,
215 uint64_t *phyDescMem);
218 Udma_RingHandle ringHandle,
219 uint64_t phyDescMem);
222 Udma_RingHandle ringHandle,
223 uint64_t *phyDescMem);
226 Udma_RingHandle ringHandle,
411 return ((uint64_t) virtAddr);
418 #if defined (__aarch64__)
419 uint64_t temp = phyAddr;
422 uint32_t temp = (uint32_t) phyAddr;
425 return ((
void *) temp);
445 #if (UDMA_SOC_CFG_UDMAP_PRESENT == 1)
449 CSL_UdmapCfg udmapRegs;
452 #if (UDMA_SOC_CFG_BCDMA_PRESENT == 1)
453 CSL_BcdmaCfg bcdmaRegs;
456 #if (UDMA_SOC_CFG_PKTDMA_PRESENT == 1)
457 CSL_PktdmaCfg pktdmaRegs;
460 #if (UDMA_SOC_CFG_RA_NORMAL_PRESENT == 1)
461 CSL_RingAccCfg raRegs;
463 #if (UDMA_SOC_CFG_RA_LCDMA_PRESENT == 1)
464 CSL_LcdmaRingaccCfg lcdmaRaRegs;
469 #if (UDMA_NUM_UTC_INSTANCE > 0)
470 Udma_UtcInstInfo utcInfo[UDMA_NUM_UTC_INSTANCE];
484 #if (UDMA_SOC_CFG_PROXY_PRESENT == 1)
488 CSL_ProxyCfg proxyCfg;
490 CSL_ProxyTargetParams proxyTargetRing;
492 uint32_t proxyTargetNumRing;
496 #if (UDMA_SOC_CFG_CLEC_PRESENT == 1)
500 CSL_CLEC_EVTRegs *clecRegs;
524 #if (UDMA_SOC_CFG_PROXY_PRESENT == 1)
530 #if (UDMA_NUM_UTC_INSTANCE > 0)
626 #if (UDMA_NUM_UTC_INSTANCE > 0)
630 #if (UDMA_NUM_MAPPED_TX_GROUP > 0)
634 #if (UDMA_NUM_MAPPED_RX_GROUP > 0)
638 #if ((UDMA_NUM_MAPPED_TX_GROUP + UDMA_NUM_MAPPED_RX_GROUP) > 0)
int32_t(* Udma_ringFlushRawFxn)(Udma_DrvHandle drvHandle, Udma_RingHandle ringHandle, uint64_t *phyDescMem)
UDMA Ring flush raw function prototype.
Definition: udma.h:221
uint32_t trigGemOffset
Definition: udma.h:586
uint16_t blkCopyTrIrqOffset
Definition: udma.h:557
pid_t proxyPids[4]
Definition: udma.h:655
int32_t(* Udma_ringDequeueRawFxn)(Udma_DrvHandle drvHandle, Udma_RingHandle ringHandle, uint64_t *phyDescMem)
UDMA Ring dequeue raw function prototype.
Definition: udma.h:213
Udma_ringGetRdIdxFxn ringGetRdIdx
Definition: udma.h:691
uint32_t(* Udma_ringGetModeFxn)(Udma_RingHandle ringHandle)
UDMA Ring get ring mode function prototype.
Definition: udma.h:201
uint16_t rxTrIrqOffset
Definition: udma.h:561
uint32_t txUhcChFlag[UDMA_RM_TX_UHC_CH_ARR_SIZE]
Definition: udma.h:616
static void * Udma_defaultPhyToVirtFxn(uint64_t phyAddr, uint32_t chNum, void *appData)
Default physical to virtual translation function.
Definition: udma.h:414
uint32_t(* Udma_ringGetWrIdxFxn)(Udma_RingHandle ringHandle)
UDMA Ring get write index value function prototype.
Definition: udma.h:209
Udma_ringSetCfgFxn ringSetCfg
Definition: udma.h:699
uint16_t devIdIr
Definition: udma.h:520
void *(* Udma_ringGetMemPtrFxn)(Udma_RingHandle ringHandle)
UDMA Ring get mem pointer function prototype.
Definition: udma.h:199
Udma_VirtToPhyFxn virtToPhyFxn
Definition: udma.h:256
void(* Udma_ringPrimeFxn)(Udma_RingHandle ringHandle, uint64_t phyDescMem)
UDMA Ring prime function prototype.
Definition: udma.h:193
uint16_t txTrIrqOffset
Definition: udma.h:559
uint16_t devIdCore
Definition: udma.h:528
Udma_EventHandle globalEventHandle
Definition: udma.h:592
void * rmLock
Definition: udma.h:661
uint32_t instId
Definition: udma.h:241
CSL_IntaggrCfg iaRegs
Definition: udma.h:467
uint32_t skipRmOverlapCheck
Definition: udma.h:246
int32_t Udma_deinit(Udma_DrvHandle drvHandle)
UDMA deinit function.
Udma_ringGetElementCntFxn ringGetElementCnt
Definition: udma.h:679
uint32_t raType
Definition: udma.h:442
uint32_t maxRingMon
Definition: udma.h:481
void(* Udma_ringPrimeReadFxn)(Udma_RingHandle ringHandle, uint64_t *phyDescMem)
UDMA Ring prime read function prototype.
Definition: udma.h:196
Udma_ringGetReverseRingOccFxn ringGetReverseRingOcc
Definition: udma.h:687
uint16_t rxRingIrqOffset
Definition: udma.h:548
uint32_t proxyFlag[UDMA_RM_PROXY_ARR_SIZE]
Definition: udma.h:653
uint32_t freeRingFlag[UDMA_RM_FREE_RING_ARR_SIZE]
Definition: udma.h:643
uint32_t blkCopyHcChFlag[UDMA_RM_BLK_COPY_HC_CH_ARR_SIZE]
Definition: udma.h:607
void * printLock
Definition: udma.h:663
uint32_t isQnxRMInstance
Definition: udma.h:280
int32_t(* Udma_ringQueueRawFxn)(Udma_DrvHandle drvHandle, Udma_RingHandle ringHandle, uint64_t phyDescMem)
UDMA Ring queue raw function prototype.
Definition: udma.h:217
Udma_OsalPrms osalPrms
Definition: udma.h:276
uint32_t(* Udma_ringGetRdIdxFxn)(Udma_RingHandle ringHandle)
UDMA Ring get read index value function prototype.
Definition: udma.h:211
uint32_t extChOffset
Definition: udma.h:568
void(* Udma_PrintFxn)(const char *str)
UDMA info/debug print function prototype.
Definition: udma.h:175
Udma_ringFlushRawFxn ringFlushRaw
Definition: udma.h:677
uint32_t irIntrFlag[UDMA_RM_IR_INTR_ARR_SIZE]
Definition: udma.h:651
Udma_ringQueueRawFxn ringQueueRaw
Definition: udma.h:675
uint16_t devIdRing
Definition: udma.h:512
uint32_t(* Udma_ringGetForwardRingOccFxn)(Udma_RingHandle ringHandle)
UDMA Ring get forward ring occupancy function prototype.
Definition: udma.h:205
uint32_t maxRings
Definition: udma.h:477
uint32_t drvInitDone
Definition: udma.h:597
uint32_t rxChFlag[UDMA_RM_RX_CH_ARR_SIZE]
Definition: udma.h:619
Udma_ringPrimeReadFxn ringPrimeRead
Definition: udma.h:695
uint32_t freeFlowFlag[UDMA_RM_FREE_FLOW_ARR_SIZE]
Definition: udma.h:645
uint16_t srcIdTrIrq
Definition: udma.h:555
void *(* Udma_PhyToVirtFxn)(uint64_t phyAddr, uint32_t chNum, void *appData)
UDMA Physical to Virtual address translation callback function.
Definition: udma.h:164
uint16_t devIdDummyEvtSrc
Definition: udma.h:522
static uint64_t Udma_defaultVirtToPhyFxn(const void *virtAddr, uint32_t chNum, void *appData)
Default virtual to physical translation function.
Definition: udma.h:407
uint16_t txRingIrqOffset
Definition: udma.h:546
Udma_ringGetWrIdxFxn ringGetWrIdx
Definition: udma.h:689
Udma_RmInitPrms rmInitPrms
Definition: udma.h:244
uint16_t devIdUdma
Definition: udma.h:514
uint32_t blkCopyUhcChFlag[UDMA_RM_BLK_COPY_UHC_CH_ARR_SIZE]
Definition: udma.h:609
uint32_t skipGlobalEventReg
Definition: udma.h:250
uint32_t udmapDestThreadOffset
Definition: udma.h:475
uint32_t rxUhcChFlag[UDMA_RM_RX_UHC_CH_ARR_SIZE]
Definition: udma.h:623
Udma_PrintFxn printFxn
Definition: udma.h:272
uint64_t(* Udma_VirtToPhyFxn)(const void *virtAddr, uint32_t chNum, void *appData)
UDMA Virtual to Physical address translation callback function.
Definition: udma.h:149
uint16_t devIdPsil
Definition: udma.h:516
int32_t Udma_init(Udma_DrvHandle drvHandle, const Udma_InitPrms *initPrms)
UDMA init function.
uint32_t(* Udma_ringGetReverseRingOccFxn)(Udma_RingHandle ringHandle)
UDMA Ring get reverse ring occupancy function prototype.
Definition: udma.h:207
uint32_t rxHcChFlag[UDMA_RM_RX_HC_CH_ARR_SIZE]
Definition: udma.h:621
Udma_ringGetForwardRingOccFxn ringGetForwardRingOcc
Definition: udma.h:685
uint16_t blkCopyRingIrqOffset
Definition: udma.h:544
void(* Udma_ringSetDoorBellFxn)(Udma_RingHandle ringHandle, int32_t count)
UDMA Ring set doorbell function prototype.
Definition: udma.h:190
uint32_t txHcChFlag[UDMA_RM_TX_HC_CH_ARR_SIZE]
Definition: udma.h:614
uint32_t udmapSrcThreadOffset
Definition: udma.h:473
Udma_ringSetDoorBellFxn ringSetDoorBell
Definition: udma.h:697
Udma_InitPrms initPrms
Definition: udma.h:595
uint32_t blkCopyChFlag[UDMA_RM_BLK_COPY_CH_ARR_SIZE]
Definition: udma.h:605
uint32_t txChFlag[UDMA_RM_TX_CH_ARR_SIZE]
Definition: udma.h:612
uint32_t instType
Definition: udma.h:440
uint32_t vintrFlag[UDMA_RM_VINTR_ARR_SIZE]
Definition: udma.h:649
uint32_t maxProxy
Definition: udma.h:479
uint32_t ringMonFlag[UDMA_RM_RING_MON_ARR_SIZE]
Definition: udma.h:658
uint16_t srcIdRingIrq
Definition: udma.h:542
Udma_ringGetModeFxn ringGetMode
Definition: udma.h:683
Udma_ringDequeueRawFxn ringDequeueRaw
Definition: udma.h:673
Udma_ringGetMemPtrFxn ringGetMemPtr
Definition: udma.h:681
uint32_t txChOffset
Definition: udma.h:566
Udma_PhyToVirtFxn phyToVirtFxn
Definition: udma.h:264
char printBuf[UDMA_CFG_PRINT_BUF_LEN]
Definition: udma.h:665
void(* Udma_ringHandleClearRegsFxn)(Udma_RingHandle ringHandle)
UDMA Ring handle clear register function prototype.
Definition: udma.h:188
Udma_ringPrimeFxn ringPrime
Definition: udma.h:693
uint32_t intrPriority
Definition: udma.h:283
int32_t UdmaInitPrms_init(uint32_t instId, Udma_InitPrms *initPrms)
Udma_InitPrms structure init function.
uint32_t iaGemOffset
Definition: udma.h:584
uint32_t(* Udma_ringGetElementCntFxn)(Udma_RingHandle ringHandle)
UDMA Ring get element count function prototype.
Definition: udma.h:203
struct Udma_EventObj globalEventObj
Definition: udma.h:590
Udma_ringHandleClearRegsFxn ringHandleClearRegs
Definition: udma.h:701
uint32_t globalEventFlag[UDMA_RM_GLOBAL_EVENT_ARR_SIZE]
Definition: udma.h:647
uint16_t devIdIa
Definition: udma.h:518
void(* Udma_ringSetCfgFxn)(Udma_DrvHandle drvHandle, Udma_RingHandle ringHandle, const Udma_RingPrms *ringPrms)
UDMA Ring set Cfg function prototype.
Definition: udma.h:225
uint32_t rxChOffset
Definition: udma.h:570
#define UDMA_RM_RX_CH_ARR_SIZE
Definition: udma_cfg.h:102
#define UDMA_RM_RING_MON_ARR_SIZE
Definition: udma_cfg.h:115
#define UDMA_RM_UTC_CH_ARR_SIZE
Definition: udma_cfg.h:105
#define UDMA_RM_VINTR_ARR_SIZE
Definition: udma_cfg.h:112
#define UDMA_RM_RX_HC_CH_ARR_SIZE
Definition: udma_cfg.h:103
#define UDMA_RM_BLK_COPY_HC_CH_ARR_SIZE
Definition: udma_cfg.h:97
#define UDMA_RM_MAPPED_RING_ARR_SIZE
Definition: udma_cfg.h:108
#define UDMA_RM_MAPPED_RX_CH_ARR_SIZE
Definition: udma_cfg.h:107
#define UDMA_CFG_PRINT_BUF_LEN
UDMA print buffer length.
Definition: udma_cfg.h:166
#define UDMA_RM_IR_INTR_ARR_SIZE
Definition: udma_cfg.h:113
#define UDMA_RM_PROXY_ARR_SIZE
Definition: udma_cfg.h:114
#define UDMA_RM_BLK_COPY_CH_ARR_SIZE
Definition: udma_cfg.h:96
#define UDMA_RM_FREE_FLOW_ARR_SIZE
Definition: udma_cfg.h:110
#define UDMA_RM_TX_CH_ARR_SIZE
Definition: udma_cfg.h:99
#define UDMA_RM_TX_UHC_CH_ARR_SIZE
Definition: udma_cfg.h:101
#define UDMA_RM_RX_UHC_CH_ARR_SIZE
Definition: udma_cfg.h:104
#define UDMA_RM_TX_HC_CH_ARR_SIZE
Definition: udma_cfg.h:100
#define UDMA_RM_GLOBAL_EVENT_ARR_SIZE
Definition: udma_cfg.h:111
#define UDMA_RM_BLK_COPY_UHC_CH_ARR_SIZE
Definition: udma_cfg.h:98
#define UDMA_RM_MAPPED_TX_CH_ARR_SIZE
Definition: udma_cfg.h:106
#define UDMA_RM_FREE_RING_ARR_SIZE
Definition: udma_cfg.h:109
This file contains prototypes for APIs contained as a part of SCICLIENT as well as the structures of ...
UDMA driver object.
Definition: udma.h:439
UDMA event object.
Definition: udma_event.h:506
UDMA initialization parameters.
Definition: udma.h:240
UDMA ring parameters.
Definition: udma_ring.h:134
UDMA resource manager init parameters.
Definition: udma_rm.h:90
UDMA configuration parameters.
UDMA Channel related parameters and API.
UDMA DRU related parameters and API.
UDMA event related parameters and API.
UDMA flow related parameters and API.
UDMA proxy related parameters and API.
UDMA ring related parameters and API.
UDMA RM related parameters and API.
UDMA Low Level Driver API/interface data types file.
UDMA utility API to make TR, get TR descriptor memory requirement.