PDK API Guide for J721E
udma.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) Texas Instruments Incorporated 2018
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *
11  * Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the
14  * distribution.
15  *
16  * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
38 /* @} */
39 
56 #ifndef UDMA_H_
57 #define UDMA_H_
58 
59 /* ========================================================================== */
60 /* Include Files */
61 /* ========================================================================== */
62 
63 #include <stdint.h>
64 
65 /* UDMA_SOC_CFG_* macros are defined udma_soc.h.
66  * So including this first
67  */
68 #include <ti/drv/udma/soc/udma_soc.h>
69 
70 #include <ti/csl/soc.h>
71 #include <ti/csl/csl_psilcfg.h>
72 #if (UDMA_SOC_CFG_RA_NORMAL_PRESENT == 1)
73 #include <ti/csl/csl_ringacc.h>
74 #endif
75 #if (UDMA_SOC_CFG_RA_LCDMA_PRESENT == 1)
76 #include <ti/csl/csl_lcdma_ringacc.h>
77 #endif
78 #if (UDMA_SOC_CFG_UDMAP_PRESENT == 1)
79 #include <ti/csl/csl_udmap.h>
80 #endif
81 #if (UDMA_SOC_CFG_LCDMA_PRESENT == 1)
82 #include <ti/csl/csl_bcdma.h>
83 #include <ti/csl/csl_pktdma.h>
85 #endif
86 #include <ti/csl/csl_intaggr.h>
87 #include <ti/csl/csl_intr_router.h>
88 #if (UDMA_NUM_UTC_INSTANCE > 0)
89 #include <ti/csl/csl_dru.h>
90 #endif
91 #if (UDMA_SOC_CFG_PROXY_PRESENT == 1)
92 #include <ti/csl/csl_proxy.h>
93 #endif
94 #if (UDMA_SOC_CFG_CLEC_PRESENT == 1)
95 #include <ti/csl/csl_clec.h>
96 #endif
97 
98 #include <ti/osal/osal.h>
100 
110 #if (UDMA_NUM_UTC_INSTANCE > 0)
112 #endif
114 
115 #ifdef __cplusplus
116 extern "C" {
117 #endif
118 
119 /* ========================================================================== */
120 /* Macros & Typedefs */
121 /* ========================================================================== */
122 
135 typedef uint64_t (*Udma_VirtToPhyFxn)(const void *virtAddr,
136  uint32_t chNum,
137  void *appData);
150 typedef void *(*Udma_PhyToVirtFxn)(uint64_t phyAddr,
151  uint32_t chNum,
152  void *appData);
153 
161 typedef void (*Udma_PrintFxn)(const char *str);
162 
174 typedef void (*Udma_ringHandleClearRegsFxn)(Udma_RingHandle ringHandle);
176 typedef void (*Udma_ringSetDoorBellFxn)(Udma_RingHandle ringHandle,
177  int32_t count);
179 typedef void (*Udma_ringPrimeFxn)(Udma_RingHandle ringHandle,
180  uint64_t phyDescMem);
182 typedef void (*Udma_ringPrimeReadFxn)(Udma_RingHandle ringHandle,
183  uint64_t *phyDescMem);
185 typedef void *(*Udma_ringGetMemPtrFxn)(Udma_RingHandle ringHandle);
187 typedef uint32_t (*Udma_ringGetModeFxn)(Udma_RingHandle ringHandle);
189 typedef uint32_t (*Udma_ringGetElementCntFxn)(Udma_RingHandle ringHandle);
191 typedef uint32_t (*Udma_ringGetForwardRingOccFxn)(Udma_RingHandle ringHandle);
193 typedef uint32_t (*Udma_ringGetReverseRingOccFxn)(Udma_RingHandle ringHandle);
195 typedef uint32_t (*Udma_ringGetWrIdxFxn)(Udma_RingHandle ringHandle);
197 typedef uint32_t (*Udma_ringGetRdIdxFxn)(Udma_RingHandle ringHandle);
199 typedef int32_t (*Udma_ringDequeueRawFxn)(Udma_DrvHandle drvHandle,
200  Udma_RingHandle ringHandle,
201  uint64_t *phyDescMem);
203 typedef int32_t (*Udma_ringQueueRawFxn)(Udma_DrvHandle drvHandle,
204  Udma_RingHandle ringHandle,
205  uint64_t phyDescMem);
207 typedef int32_t (*Udma_ringFlushRawFxn)(Udma_DrvHandle drvHandle,
208  Udma_RingHandle ringHandle,
209  uint64_t *phyDescMem);
211 typedef void (*Udma_ringSetCfgFxn)(Udma_DrvHandle drvHandle,
212  Udma_RingHandle ringHandle,
213  const Udma_RingPrms *ringPrms);
214 /* @} */
215 
216 /* ========================================================================== */
217 /* Structure Declarations */
218 /* ========================================================================== */
219 
225 typedef struct
226 {
227  uint32_t instId;
264 } Udma_InitPrms;
265 
266 /* ========================================================================== */
267 /* Function Declarations */
268 /* ========================================================================== */
269 
289 int32_t Udma_init(Udma_DrvHandle drvHandle, const Udma_InitPrms *initPrms);
290 
304 int32_t Udma_deinit(Udma_DrvHandle drvHandle);
305 
306 /*
307  * Structure Init functions
308  *
309  * Requirement: DOX_REQ_TAG(PDK-2600)
310  */
337 int32_t UdmaInitPrms_init(uint32_t instId, Udma_InitPrms *initPrms);
338 
339 /* ========================================================================== */
340 /* Internal Function Declarations (Needed for other static inlines) */
341 /* ========================================================================== */
342 
358 static inline uint64_t Udma_defaultVirtToPhyFxn(const void *virtAddr,
359  uint32_t chNum,
360  void *appData);
361 
377 static inline void *Udma_defaultPhyToVirtFxn(uint64_t phyAddr,
378  uint32_t chNum,
379  void *appData);
380 
381 /* ========================================================================== */
382 /* Static Function Definitions */
383 /* ========================================================================== */
384 
385 static uint64_t Udma_defaultVirtToPhyFxn(const void *virtAddr,
386  uint32_t chNum,
387  void *appData)
388 {
389  return ((uint64_t) virtAddr);
390 }
391 
392 static void *Udma_defaultPhyToVirtFxn(uint64_t phyAddr,
393  uint32_t chNum,
394  void *appData)
395 {
396 #if defined (__aarch64__)
397  uint64_t temp = phyAddr;
398 #else
399  /* R5 is 32-bit machine, need to truncate to avoid void * typecast error */
400  uint32_t temp = (uint32_t) phyAddr;
401 #endif
402 
403  return ((void *) temp);
404 }
405 
406 /* ========================================================================== */
407 /* Internal/Private Structure Declarations */
408 /* ========================================================================== */
409 
417 {
418  uint32_t instType;
420  uint32_t raType;
423 #if (UDMA_SOC_CFG_UDMAP_PRESENT == 1)
424  /*
425  * NAVSS instance parameters
426  */
427  CSL_UdmapCfg udmapRegs;
429 #endif
430 #if (UDMA_SOC_CFG_LCDMA_PRESENT == 1)
431  /*
432  * LCDMA DMSS specific instance parameters
433  */
434  CSL_BcdmaCfg bcdmaRegs;
436  CSL_PktdmaCfg pktdmaRegs;
438 #endif
439 #if (UDMA_SOC_CFG_RA_NORMAL_PRESENT == 1)
440  CSL_RingAccCfg raRegs;
441 #endif
442 #if (UDMA_SOC_CFG_RA_LCDMA_PRESENT == 1)
443  CSL_LcdmaRingaccCfg lcdmaRaRegs;
444 #endif
445 
446  CSL_IntaggrCfg iaRegs;
448 #if (UDMA_NUM_UTC_INSTANCE > 0)
449  Udma_UtcInstInfo utcInfo[UDMA_NUM_UTC_INSTANCE];
451 #endif
456  uint32_t maxRings;
458  uint32_t maxProxy;
460  uint32_t maxRingMon;
463 #if (UDMA_SOC_CFG_PROXY_PRESENT == 1)
464  /*
465  * Proxy parameters
466  */
467  CSL_ProxyCfg proxyCfg;
468  /*< Proxy register configuration */
469  CSL_ProxyTargetParams proxyTargetRing;
470  /*< Proxy ring target register configuration */
471  uint32_t proxyTargetNumRing;
472  /*< Proxy ring target index */
473 #endif
474 
475 #if (UDMA_SOC_CFG_CLEC_PRESENT == 1)
476  /*
477  * Clec parameters
478  */
479  CSL_CLEC_EVTRegs *clecRegs;
481  uint32_t clecRtMap;
484  uint32_t clecOffset;
486 #endif
487 
488  /*
489  * TISCI RM parameters
490  */
491  uint16_t devIdRing;
493  uint16_t devIdUdma;
495  uint16_t devIdPsil;
497  uint16_t devIdIa;
499  uint16_t devIdIr;
501 #if (UDMA_SOC_CFG_PROXY_PRESENT == 1)
502  uint16_t devIdProxy;
504 #endif
505  uint16_t devIdCore;
507 #if (UDMA_NUM_UTC_INSTANCE > 0)
508  uint32_t druCoreId;
513 #endif
514  /*
515  * TISCI Ring event IRQ params
516  *
517  * These IRQ offsets should be corresponding TISCI offset - ringNum Offset
518  */
519  uint16_t srcIdRingIrq;
523  uint32_t txRingIrqOffset;
525  uint32_t rxRingIrqOffset;
527  /*
528  * TISCI TR event IRQ params
529  *
530  * These IRQ offsets should be corresponding TISCI offset - chNum Offset
531  */
532  uint16_t srcIdTrIrq;
536  uint32_t txTrIrqOffset;
538  uint32_t rxTrIrqOffset;
540  /*
541  * Channel Offsets
542  */
543  uint32_t txChOffset;
545  uint32_t extChOffset;
547  uint32_t rxChOffset;
549  /*
550  * The driver allocates ringNum = chNum (for BlkCpoy)
551  = chNum + txChOffset (for SplitTR Tx)
552  = chNum + rxChOffset (for SplitTR Rx)
553 
554  For CSL_bcdma* API's passed param ->channel_num = txChNum (for BlkCopy)
555  = txChNum + txChOffset (for SplitTR Tx)
556  = rxChNum + rxChOffset (for SplitTR Rx)
557  */
558  /*
559  * Other Offsets
560  */
561  uint32_t iaGemOffset;
563  uint32_t trigGemOffset;
569  Udma_EventHandle globalEventHandle;
574  uint32_t drvInitDone;
577  /*
578  * RM objects.
579  * This is a bitwise flag
580  * 1 - free, 0 - allocated
581  */
594 
603 #if (UDMA_NUM_UTC_INSTANCE > 0)
604  uint32_t utcChFlag[UDMA_NUM_UTC_INSTANCE][UDMA_RM_UTC_CH_ARR_SIZE];
606 #endif
607 #if (UDMA_NUM_MAPPED_TX_GROUP > 0)
610 #endif
611 #if (UDMA_NUM_MAPPED_RX_GROUP > 0)
614 #endif
615 #if ((UDMA_NUM_MAPPED_TX_GROUP + UDMA_NUM_MAPPED_RX_GROUP) > 0)
618 #endif
619 
635  void *rmLock;
637  void *printLock;
642  /*
643  * UDMA Ring Local API's function pointers
644  * For Normal RA / LCDMA RA, these function pointers are used
645  * to call the appropriate function.
646  */
677 };
678 
679 #ifdef __cplusplus
680 }
681 #endif
682 
683 #endif /* #ifndef UDMA_H_ */
684 
685 /* @} */
static void * Udma_defaultPhyToVirtFxn(uint64_t phyAddr, uint32_t chNum, void *appData)
Default physical to virtual translation function.
Definition: udma.h:392
OS Abstraction Layer header.
uint32_t rxUhcChFlag[UDMA_RM_RX_UHC_CH_ARR_SIZE]
Definition: udma.h:600
uint32_t instType
Definition: udma.h:418
Udma_ringGetModeFxn ringGetMode
Definition: udma.h:657
UDMA ring parameters.
Definition: udma_ring.h:133
uint32_t rxChOffset
Definition: udma.h:547
uint32_t(* Udma_ringGetElementCntFxn)(Udma_RingHandle ringHandle)
UDMA Ring get element count function prototype.
Definition: udma.h:189
uint32_t(* Udma_ringGetReverseRingOccFxn)(Udma_RingHandle ringHandle)
UDMA Ring get reverse ring occupancy function prototype.
Definition: udma.h:193
#define UDMA_RM_RX_UHC_CH_ARR_SIZE
Definition: udma_cfg.h:104
#define UDMA_RM_TX_UHC_CH_ARR_SIZE
Definition: udma_cfg.h:101
void(* Udma_ringSetDoorBellFxn)(Udma_RingHandle ringHandle, int32_t count)
UDMA Ring set doorbell function prototype.
Definition: udma.h:176
uint32_t freeRingFlag[UDMA_RM_FREE_RING_ARR_SIZE]
Definition: udma.h:620
uint32_t proxyFlag[UDMA_RM_PROXY_ARR_SIZE]
Definition: udma.h:630
#define UDMA_RM_MAPPED_RX_CH_ARR_SIZE
Definition: udma_cfg.h:107
uint32_t skipRmOverlapCheck
Definition: udma.h:232
uint32_t txRingIrqOffset
Definition: udma.h:523
uint32_t extChOffset
Definition: udma.h:545
Udma_ringFlushRawFxn ringFlushRaw
Definition: udma.h:651
uint32_t txUhcChFlag[UDMA_RM_TX_UHC_CH_ARR_SIZE]
Definition: udma.h:593
uint32_t count
Definition: tisci_rm_ra.h:166
#define UDMA_RM_MAPPED_RING_ARR_SIZE
Definition: udma_cfg.h:108
UDMA utility API to make TR, get TR descriptor memory requirement.
Udma_ringGetReverseRingOccFxn ringGetReverseRingOcc
Definition: udma.h:661
#define UDMA_RM_VINTR_ARR_SIZE
Definition: udma_cfg.h:112
uint16_t devIdPsil
Definition: udma.h:495
uint32_t vintrFlag[UDMA_RM_VINTR_ARR_SIZE]
Definition: udma.h:626
UDMA initialization parameters.
Definition: udma.h:225
This file contains prototypes for APIs contained as a part of SCICLIENT as well as the structures of ...
uint32_t txHcChFlag[UDMA_RM_TX_HC_CH_ARR_SIZE]
Definition: udma.h:591
uint32_t txChOffset
Definition: udma.h:543
UDMA OSAL related parameters and API.
int32_t Udma_init(Udma_DrvHandle drvHandle, const Udma_InitPrms *initPrms)
UDMA init function.
uint32_t instId
Definition: udma.h:227
Udma_RmInitPrms rmInitPrms
Definition: udma.h:230
uint32_t maxProxy
Definition: udma.h:458
Udma_ringGetWrIdxFxn ringGetWrIdx
Definition: udma.h:663
Udma_ringGetRdIdxFxn ringGetRdIdx
Definition: udma.h:665
Udma_ringSetDoorBellFxn ringSetDoorBell
Definition: udma.h:671
#define UDMA_RM_RING_MON_ARR_SIZE
Definition: udma_cfg.h:115
uint32_t(* Udma_ringGetModeFxn)(Udma_RingHandle ringHandle)
UDMA Ring get ring mode function prototype.
Definition: udma.h:187
uint32_t blkCopyHcChFlag[UDMA_RM_BLK_COPY_HC_CH_ARR_SIZE]
Definition: udma.h:584
uint32_t drvInitDone
Definition: udma.h:574
void * printLock
Definition: udma.h:637
uint32_t udmapSrcThreadOffset
Definition: udma.h:452
uint16_t devIdRing
Definition: udma.h:491
void *(* Udma_PhyToVirtFxn)(uint64_t phyAddr, uint32_t chNum, void *appData)
UDMA Physical to Virtual address translation callback function.
Definition: udma.h:150
uint32_t(* Udma_ringGetRdIdxFxn)(Udma_RingHandle ringHandle)
UDMA Ring get read index value function prototype.
Definition: udma.h:197
#define UDMA_RM_GLOBAL_EVENT_ARR_SIZE
Definition: udma_cfg.h:111
uint32_t maxRingMon
Definition: udma.h:460
uint32_t ringMonFlag[UDMA_RM_RING_MON_ARR_SIZE]
Definition: udma.h:632
uint64_t(* Udma_VirtToPhyFxn)(const void *virtAddr, uint32_t chNum, void *appData)
UDMA Virtual to Physical address translation callback function.
Definition: udma.h:135
Udma_ringPrimeReadFxn ringPrimeRead
Definition: udma.h:669
uint32_t rxRingIrqOffset
Definition: udma.h:525
Udma_OsalPrms osalPrms
Definition: udma.h:262
CSL_RingAccCfg contains information to configure the ring accelerator.
Definition: csl_ringacc.h:219
UDMA driver object.
Definition: udma.h:416
void(* Udma_PrintFxn)(const char *str)
UDMA info/debug print function prototype.
Definition: udma.h:161
uint32_t iaGemOffset
Definition: udma.h:561
Udma_VirtToPhyFxn virtToPhyFxn
Definition: udma.h:242
CSL_IntaggrCfg iaRegs
Definition: udma.h:446
#define UDMA_NUM_UTC_INSTANCE
Number of UTC instance.
Definition: udma_soc.h:167
#define UDMA_RM_IR_INTR_ARR_SIZE
Definition: udma_cfg.h:113
Udma_ringSetCfgFxn ringSetCfg
Definition: udma.h:673
uint16_t srcIdTrIrq
Definition: udma.h:532
UDMA ring related parameters and API.
#define UDMA_RM_RX_HC_CH_ARR_SIZE
Definition: udma_cfg.h:103
#define UDMA_RM_BLK_COPY_UHC_CH_ARR_SIZE
Definition: udma_cfg.h:98
#define UDMA_RM_BLK_COPY_CH_ARR_SIZE
Definition: udma_cfg.h:96
UDMA Low Level Driver API/interface data types file.
#define UDMA_RM_UTC_CH_ARR_SIZE
Definition: udma_cfg.h:105
void * rmLock
Definition: udma.h:635
uint32_t rxChFlag[UDMA_RM_RX_CH_ARR_SIZE]
Definition: udma.h:596
uint16_t devIdCore
Definition: udma.h:505
#define UDMA_RM_MAPPED_TX_CH_ARR_SIZE
Definition: udma_cfg.h:106
#define UDMA_RM_RX_CH_ARR_SIZE
Definition: udma_cfg.h:102
UDMA Channel related parameters and API.
Udma_EventHandle globalEventHandle
Definition: udma.h:569
Udma_ringDequeueRawFxn ringDequeueRaw
Definition: udma.h:647
uint32_t txTrIrqOffset
Definition: udma.h:536
uint32_t blkCopyChFlag[UDMA_RM_BLK_COPY_CH_ARR_SIZE]
Definition: udma.h:582
uint32_t blkCopyTrIrqOffset
Definition: udma.h:534
uint32_t globalEventFlag[UDMA_RM_GLOBAL_EVENT_ARR_SIZE]
Definition: udma.h:624
int32_t(* Udma_ringDequeueRawFxn)(Udma_DrvHandle drvHandle, Udma_RingHandle ringHandle, uint64_t *phyDescMem)
UDMA Ring dequeue raw function prototype.
Definition: udma.h:199
Udma_ringPrimeFxn ringPrime
Definition: udma.h:667
uint32_t irIntrFlag[UDMA_RM_IR_INTR_ARR_SIZE]
Definition: udma.h:628
UDMA configuration parameters.
static uint64_t Udma_defaultVirtToPhyFxn(const void *virtAddr, uint32_t chNum, void *appData)
Default virtual to physical translation function.
Definition: udma.h:385
uint32_t udmapDestThreadOffset
Definition: udma.h:454
uint32_t txChFlag[UDMA_RM_TX_CH_ARR_SIZE]
Definition: udma.h:589
#define UDMA_RM_FREE_FLOW_ARR_SIZE
Definition: udma_cfg.h:110
void(* Udma_ringPrimeReadFxn)(Udma_RingHandle ringHandle, uint64_t *phyDescMem)
UDMA Ring prime read function prototype.
Definition: udma.h:182
uint32_t freeFlowFlag[UDMA_RM_FREE_FLOW_ARR_SIZE]
Definition: udma.h:622
Udma_ringGetMemPtrFxn ringGetMemPtr
Definition: udma.h:655
Udma_ringGetForwardRingOccFxn ringGetForwardRingOcc
Definition: udma.h:659
char printBuf[UDMA_CFG_PRINT_BUF_LEN]
Definition: udma.h:639
Header file containing various enumerations, structure definitions and function declarations for CPPI...
UDMA DRU related parameters and API.
UDMA event related parameters and API.
struct Udma_EventObj globalEventObj
Definition: udma.h:567
void *(* Udma_ringGetMemPtrFxn)(Udma_RingHandle ringHandle)
UDMA Ring get mem pointer function prototype.
Definition: udma.h:185
uint32_t maxRings
Definition: udma.h:456
Udma_ringHandleClearRegsFxn ringHandleClearRegs
Definition: udma.h:675
Udma_ringQueueRawFxn ringQueueRaw
Definition: udma.h:649
UDMA RM related parameters and API.
uint32_t skipGlobalEventReg
Definition: udma.h:236
Udma_PhyToVirtFxn phyToVirtFxn
Definition: udma.h:250
void(* Udma_ringPrimeFxn)(Udma_RingHandle ringHandle, uint64_t phyDescMem)
UDMA Ring prime function prototype.
Definition: udma.h:179
int32_t(* Udma_ringFlushRawFxn)(Udma_DrvHandle drvHandle, Udma_RingHandle ringHandle, uint64_t *phyDescMem)
UDMA Ring flush raw function prototype.
Definition: udma.h:207
#define UDMA_NUM_MAPPED_TX_GROUP
Number of Mapped TX Group.
Definition: udma_soc.h:141
uint32_t(* Udma_ringGetWrIdxFxn)(Udma_RingHandle ringHandle)
UDMA Ring get write index value function prototype.
Definition: udma.h:195
UDMA flow related parameters and API.
Udma_PrintFxn printFxn
Definition: udma.h:258
void(* Udma_ringHandleClearRegsFxn)(Udma_RingHandle ringHandle)
UDMA Ring handle clear register function prototype.
Definition: udma.h:174
#define UDMA_RM_TX_HC_CH_ARR_SIZE
Definition: udma_cfg.h:100
Udma_ringGetElementCntFxn ringGetElementCnt
Definition: udma.h:653
uint16_t srcIdRingIrq
Definition: udma.h:519
uint32_t blkCopyRingIrqOffset
Definition: udma.h:521
UDMAP configuration structure.
Definition: csl_udmap.h:482
UDMA resource manager init parameters.
Definition: udma_rm.h:89
uint32_t rxHcChFlag[UDMA_RM_RX_HC_CH_ARR_SIZE]
Definition: udma.h:598
uint32_t(* Udma_ringGetForwardRingOccFxn)(Udma_RingHandle ringHandle)
UDMA Ring get forward ring occupancy function prototype.
Definition: udma.h:191
uint32_t raType
Definition: udma.h:420
uint32_t blkCopyUhcChFlag[UDMA_RM_BLK_COPY_UHC_CH_ARR_SIZE]
Definition: udma.h:586
char str[32]
Definition: tisci_core.h:439
uint32_t trigGemOffset
Definition: udma.h:563
#define UDMA_RM_BLK_COPY_HC_CH_ARR_SIZE
Definition: udma_cfg.h:97
UDMA event object.
Definition: udma_event.h:505
#define UDMA_RM_PROXY_ARR_SIZE
Definition: udma_cfg.h:114
int32_t UdmaInitPrms_init(uint32_t instId, Udma_InitPrms *initPrms)
Udma_InitPrms structure init function.
void(* Udma_ringSetCfgFxn)(Udma_DrvHandle drvHandle, Udma_RingHandle ringHandle, const Udma_RingPrms *ringPrms)
UDMA Ring set Cfg function prototype.
Definition: udma.h:211
#define UDMA_RM_TX_CH_ARR_SIZE
Definition: udma_cfg.h:99
int32_t(* Udma_ringQueueRawFxn)(Udma_DrvHandle drvHandle, Udma_RingHandle ringHandle, uint64_t phyDescMem)
UDMA Ring queue raw function prototype.
Definition: udma.h:203
UDMA driver OSAL function pointers.
Definition: udma_osal.h:166
int32_t Udma_deinit(Udma_DrvHandle drvHandle)
UDMA deinit function.
uint32_t rxTrIrqOffset
Definition: udma.h:538
uint16_t devIdUdma
Definition: udma.h:493
uint16_t devIdIr
Definition: udma.h:499
#define UDMA_RM_FREE_RING_ARR_SIZE
Definition: udma_cfg.h:109
#define UDMA_NUM_MAPPED_RX_GROUP
Number of Mapped RX Group.
Definition: udma_soc.h:154
#define UDMA_CFG_PRINT_BUF_LEN
UDMA print buffer length.
Definition: udma_cfg.h:161
Udma_InitPrms initPrms
Definition: udma.h:572
UDMA proxy related parameters and API.
uint16_t devIdIa
Definition: udma.h:497