PSDK QNX API Guide
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 #ifndef QNX_OS
64 #define QNX_OS
65 #endif
66 
67 #ifndef BUILD_MPU1_0
68 #define BUILD_MPU1_0
69 #endif
70 
71 #include <stdint.h>
72 
73 /* UDMA_SOC_CFG_* macros are defined udma_soc.h.
74  * So including this first
75  */
76 #include <ti/drv/udma/soc/udma_soc.h>
77 
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>
82 #endif
83 #if (UDMA_SOC_CFG_RA_LCDMA_PRESENT == 1)
84 #include <ti/csl/csl_lcdma_ringacc.h>
85 #endif
86 #if (UDMA_SOC_CFG_UDMAP_PRESENT == 1)
87 #include <ti/csl/csl_udmap.h>
88 #endif
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>
94 #endif
95 #endif
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>
100 #endif
101 #if (UDMA_SOC_CFG_PROXY_PRESENT == 1)
102 #include <ti/csl/csl_proxy.h>
103 #endif
104 #if (UDMA_SOC_CFG_CLEC_PRESENT == 1)
105 #include <ti/csl/csl_clec.h>
106 #endif
107 
108 #include <ti/osal/osal.h>
110 
113 #include <ti/drv/udma/include/udma_osal.h>
120 #if (UDMA_NUM_UTC_INSTANCE > 0)
122 #endif
124 
125 #ifdef __cplusplus
126 extern "C" {
127 #endif
128 
129 /* ========================================================================== */
130 /* Macros & Typedefs */
131 /* ========================================================================== */
132 
145 typedef uint64_t (*Udma_VirtToPhyFxn)(const void *virtAddr,
146  uint32_t chNum,
147  void *appData);
160 typedef void *(*Udma_PhyToVirtFxn)(uint64_t phyAddr,
161  uint32_t chNum,
162  void *appData);
163 
171 typedef void (*Udma_PrintFxn)(const char *str);
172 
184 typedef void (*Udma_ringHandleClearRegsFxn)(Udma_RingHandle ringHandle);
186 typedef void (*Udma_ringSetDoorBellFxn)(Udma_RingHandle ringHandle,
187  int32_t count);
189 typedef void (*Udma_ringPrimeFxn)(Udma_RingHandle ringHandle,
190  uint64_t phyDescMem);
192 typedef void (*Udma_ringPrimeReadFxn)(Udma_RingHandle ringHandle,
193  uint64_t *phyDescMem);
195 typedef void *(*Udma_ringGetMemPtrFxn)(Udma_RingHandle ringHandle);
197 typedef uint32_t (*Udma_ringGetModeFxn)(Udma_RingHandle ringHandle);
199 typedef uint32_t (*Udma_ringGetElementCntFxn)(Udma_RingHandle ringHandle);
201 typedef uint32_t (*Udma_ringGetForwardRingOccFxn)(Udma_RingHandle ringHandle);
203 typedef uint32_t (*Udma_ringGetReverseRingOccFxn)(Udma_RingHandle ringHandle);
205 typedef uint32_t (*Udma_ringGetWrIdxFxn)(Udma_RingHandle ringHandle);
207 typedef uint32_t (*Udma_ringGetRdIdxFxn)(Udma_RingHandle ringHandle);
209 typedef int32_t (*Udma_ringDequeueRawFxn)(Udma_DrvHandle drvHandle,
210  Udma_RingHandle ringHandle,
211  uint64_t *phyDescMem);
213 typedef int32_t (*Udma_ringQueueRawFxn)(Udma_DrvHandle drvHandle,
214  Udma_RingHandle ringHandle,
215  uint64_t phyDescMem);
217 typedef int32_t (*Udma_ringFlushRawFxn)(Udma_DrvHandle drvHandle,
218  Udma_RingHandle ringHandle,
219  uint64_t *phyDescMem);
221 typedef void (*Udma_ringSetCfgFxn)(Udma_DrvHandle drvHandle,
222  Udma_RingHandle ringHandle,
223  const Udma_RingPrms *ringPrms);
224 /* @} */
225 
226 /* ========================================================================== */
227 /* Structure Declarations */
228 /* ========================================================================== */
229 
235 typedef struct
236 {
237  uint32_t instId;
272  Udma_OsalPrms osalPrms;
275 #ifdef QNX_OS
276  uint32_t isQnxRMInstance;
277 #endif
278 } Udma_InitPrms;
279 
280 /* ========================================================================== */
281 /* Function Declarations */
282 /* ========================================================================== */
283 
303 int32_t Udma_init(Udma_DrvHandle drvHandle, const Udma_InitPrms *initPrms);
304 
318 int32_t Udma_deinit(Udma_DrvHandle drvHandle);
319 
320 /*
321  * Structure Init functions
322  *
323  * Requirement: DOX_REQ_TAG(PDK-2600)
324  */
351 int32_t UdmaInitPrms_init(uint32_t instId, Udma_InitPrms *initPrms);
352 
353 /* ========================================================================== */
354 /* Internal Function Declarations (Needed for other static inlines) */
355 /* ========================================================================== */
356 
372 static inline uint64_t Udma_defaultVirtToPhyFxn(const void *virtAddr,
373  uint32_t chNum,
374  void *appData);
375 
391 static inline void *Udma_defaultPhyToVirtFxn(uint64_t phyAddr,
392  uint32_t chNum,
393  void *appData);
394 
395 /* ========================================================================== */
396 /* Static Function Definitions */
397 /* ========================================================================== */
398 
399 static uint64_t Udma_defaultVirtToPhyFxn(const void *virtAddr,
400  uint32_t chNum,
401  void *appData)
402 {
403  return ((uint64_t) virtAddr);
404 }
405 
406 static void *Udma_defaultPhyToVirtFxn(uint64_t phyAddr,
407  uint32_t chNum,
408  void *appData)
409 {
410 #if defined (__aarch64__)
411  uint64_t temp = phyAddr;
412 #else
413  /* R5 is 32-bit machine, need to truncate to avoid void * typecast error */
414  uint32_t temp = (uint32_t) phyAddr;
415 #endif
416 
417  return ((void *) temp);
418 }
419 
420 /* ========================================================================== */
421 /* Internal/Private Structure Declarations */
422 /* ========================================================================== */
423 
431 {
432  uint32_t instType;
434  uint32_t raType;
437 #if (UDMA_SOC_CFG_UDMAP_PRESENT == 1)
438  /*
439  * NAVSS instance parameters
440  */
441  CSL_UdmapCfg udmapRegs;
443 #endif
444 #if (UDMA_SOC_CFG_BCDMA_PRESENT == 1)
445  CSL_BcdmaCfg bcdmaRegs;
447 #endif
448 #if (UDMA_SOC_CFG_PKTDMA_PRESENT == 1)
449  CSL_PktdmaCfg pktdmaRegs;
451 #endif
452 #if (UDMA_SOC_CFG_RA_NORMAL_PRESENT == 1)
453  CSL_RingAccCfg raRegs;
454 #endif
455 #if (UDMA_SOC_CFG_RA_LCDMA_PRESENT == 1)
456  CSL_LcdmaRingaccCfg lcdmaRaRegs;
457 #endif
458 
459  CSL_IntaggrCfg iaRegs;
461 #if (UDMA_NUM_UTC_INSTANCE > 0)
462  Udma_UtcInstInfo utcInfo[UDMA_NUM_UTC_INSTANCE];
464 #endif
469  uint32_t maxRings;
471  uint32_t maxProxy;
473  uint32_t maxRingMon;
476 #if (UDMA_SOC_CFG_PROXY_PRESENT == 1)
477  /*
478  * Proxy parameters
479  */
480  CSL_ProxyCfg proxyCfg;
481  /*< Proxy register configuration */
482  CSL_ProxyTargetParams proxyTargetRing;
483  /*< Proxy ring target register configuration */
484  uint32_t proxyTargetNumRing;
485  /*< Proxy ring target index */
486 #endif
487 
488 #if (UDMA_SOC_CFG_CLEC_PRESENT == 1)
489  /*
490  * Clec parameters
491  */
492  CSL_CLEC_EVTRegs *clecRegs;
494  uint32_t clecRtMap;
497  uint32_t clecOffset;
499 #endif
500 
501  /*
502  * TISCI RM parameters
503  */
504  uint16_t devIdRing;
506  uint16_t devIdUdma;
508  uint16_t devIdPsil;
510  uint16_t devIdIa;
512  uint16_t devIdIr;
516 #if (UDMA_SOC_CFG_PROXY_PRESENT == 1)
517  uint16_t devIdProxy;
519 #endif
520  uint16_t devIdCore;
522 #if (UDMA_NUM_UTC_INSTANCE > 0)
523  uint32_t druCoreId;
528 #endif
529  /*
530  * TISCI Ring event IRQ params
531  *
532  * These IRQ offsets should be corresponding TISCI offset - ringNum Offset
533  */
534  uint16_t srcIdRingIrq;
538  uint16_t txRingIrqOffset;
540  uint16_t rxRingIrqOffset;
542  /*
543  * TISCI TR event IRQ params
544  *
545  * These IRQ offsets should be corresponding TISCI offset - chNum Offset
546  */
547  uint16_t srcIdTrIrq;
551  uint16_t txTrIrqOffset;
553  uint16_t rxTrIrqOffset;
555  /*
556  * Channel Offsets
557  */
558  uint32_t txChOffset;
560  uint32_t extChOffset;
562  uint32_t rxChOffset;
564  /*
565  * The driver allocates ringNum = chNum (for BlkCpoy)
566  = chNum + txChOffset (for SplitTR Tx)
567  = chNum + rxChOffset (for SplitTR Rx)
568 
569  For CSL_bcdma* API's passed param ->channel_num = txChNum (for BlkCopy)
570  = txChNum + txChOffset (for SplitTR Tx)
571  = rxChNum + rxChOffset (for SplitTR Rx)
572  */
573  /*
574  * Other Offsets
575  */
576  uint32_t iaGemOffset;
578  uint32_t trigGemOffset;
584  Udma_EventHandle globalEventHandle;
589  uint32_t drvInitDone;
592  /*
593  * RM objects.
594  * This is a bitwise flag
595  * 1 - free, 0 - allocated
596  */
609 
618 #if (UDMA_NUM_UTC_INSTANCE > 0)
619  uint32_t utcChFlag[UDMA_NUM_UTC_INSTANCE][UDMA_RM_UTC_CH_ARR_SIZE];
621 #endif
622 #if (UDMA_NUM_MAPPED_TX_GROUP > 0)
623  uint32_t mappedTxChFlag[UDMA_NUM_MAPPED_TX_GROUP][UDMA_RM_MAPPED_TX_CH_ARR_SIZE];
625 #endif
626 #if (UDMA_NUM_MAPPED_RX_GROUP > 0)
627  uint32_t mappedRxChFlag[UDMA_NUM_MAPPED_RX_GROUP][UDMA_RM_MAPPED_RX_CH_ARR_SIZE];
629 #endif
630 #if ((UDMA_NUM_MAPPED_TX_GROUP + UDMA_NUM_MAPPED_RX_GROUP) > 0)
631  uint32_t mappedRingFlag[UDMA_NUM_MAPPED_TX_GROUP + UDMA_NUM_MAPPED_RX_GROUP][UDMA_RM_MAPPED_RING_ARR_SIZE];
633 #endif
634 
650  void *rmLock;
652  void *printLock;
657  /*
658  * UDMA Ring Local API's function pointers
659  * For Normal RA / LCDMA RA, these function pointers are used
660  * to call the appropriate function.
661  */
692 };
693 
694 #ifdef __cplusplus
695 }
696 #endif
697 
698 #endif /* #ifndef UDMA_H_ */
699 
700 /* @} */
static void * Udma_defaultPhyToVirtFxn(uint64_t phyAddr, uint32_t chNum, void *appData)
Default physical to virtual translation function.
Definition: udma.h:406
uint32_t rxUhcChFlag[UDMA_RM_RX_UHC_CH_ARR_SIZE]
Definition: udma.h:615
uint32_t instType
Definition: udma.h:432
Udma_ringGetModeFxn ringGetMode
Definition: udma.h:672
UDMA ring parameters.
Definition: udma_ring.h:133
uint32_t rxChOffset
Definition: udma.h:562
uint32_t(* Udma_ringGetElementCntFxn)(Udma_RingHandle ringHandle)
UDMA Ring get element count function prototype.
Definition: udma.h:199
uint32_t(* Udma_ringGetReverseRingOccFxn)(Udma_RingHandle ringHandle)
UDMA Ring get reverse ring occupancy function prototype.
Definition: udma.h:203
#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:186
uint32_t freeRingFlag[UDMA_RM_FREE_RING_ARR_SIZE]
Definition: udma.h:635
uint32_t proxyFlag[UDMA_RM_PROXY_ARR_SIZE]
Definition: udma.h:645
#define UDMA_RM_MAPPED_RX_CH_ARR_SIZE
Definition: udma_cfg.h:107
uint32_t skipRmOverlapCheck
Definition: udma.h:242
uint32_t extChOffset
Definition: udma.h:560
Udma_ringFlushRawFxn ringFlushRaw
Definition: udma.h:666
uint32_t txUhcChFlag[UDMA_RM_TX_UHC_CH_ARR_SIZE]
Definition: udma.h:608
uint16_t rxRingIrqOffset
Definition: udma.h:540
#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:676
#define UDMA_RM_VINTR_ARR_SIZE
Definition: udma_cfg.h:112
uint16_t devIdPsil
Definition: udma.h:508
uint32_t vintrFlag[UDMA_RM_VINTR_ARR_SIZE]
Definition: udma.h:641
UDMA initialization parameters.
Definition: udma.h:235
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:606
uint32_t txChOffset
Definition: udma.h:558
int32_t Udma_init(Udma_DrvHandle drvHandle, const Udma_InitPrms *initPrms)
UDMA init function.
uint32_t instId
Definition: udma.h:237
Udma_RmInitPrms rmInitPrms
Definition: udma.h:240
uint32_t maxProxy
Definition: udma.h:471
Udma_ringGetWrIdxFxn ringGetWrIdx
Definition: udma.h:678
Udma_ringGetRdIdxFxn ringGetRdIdx
Definition: udma.h:680
Udma_ringSetDoorBellFxn ringSetDoorBell
Definition: udma.h:686
#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:197
uint32_t blkCopyHcChFlag[UDMA_RM_BLK_COPY_HC_CH_ARR_SIZE]
Definition: udma.h:599
uint32_t drvInitDone
Definition: udma.h:589
void * printLock
Definition: udma.h:652
uint32_t udmapSrcThreadOffset
Definition: udma.h:465
uint16_t devIdRing
Definition: udma.h:504
void *(* Udma_PhyToVirtFxn)(uint64_t phyAddr, uint32_t chNum, void *appData)
UDMA Physical to Virtual address translation callback function.
Definition: udma.h:160
uint32_t(* Udma_ringGetRdIdxFxn)(Udma_RingHandle ringHandle)
UDMA Ring get read index value function prototype.
Definition: udma.h:207
#define UDMA_RM_GLOBAL_EVENT_ARR_SIZE
Definition: udma_cfg.h:111
uint32_t maxRingMon
Definition: udma.h:473
uint32_t ringMonFlag[UDMA_RM_RING_MON_ARR_SIZE]
Definition: udma.h:647
uint16_t blkCopyRingIrqOffset
Definition: udma.h:536
uint64_t(* Udma_VirtToPhyFxn)(const void *virtAddr, uint32_t chNum, void *appData)
UDMA Virtual to Physical address translation callback function.
Definition: udma.h:145
Udma_ringPrimeReadFxn ringPrimeRead
Definition: udma.h:684
Udma_OsalPrms osalPrms
Definition: udma.h:272
UDMA driver object.
Definition: udma.h:430
void(* Udma_PrintFxn)(const char *str)
UDMA info/debug print function prototype.
Definition: udma.h:171
uint32_t iaGemOffset
Definition: udma.h:576
Udma_VirtToPhyFxn virtToPhyFxn
Definition: udma.h:252
CSL_IntaggrCfg iaRegs
Definition: udma.h:459
#define UDMA_RM_IR_INTR_ARR_SIZE
Definition: udma_cfg.h:113
Udma_ringSetCfgFxn ringSetCfg
Definition: udma.h:688
uint16_t srcIdTrIrq
Definition: udma.h:547
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:650
uint32_t rxChFlag[UDMA_RM_RX_CH_ARR_SIZE]
Definition: udma.h:611
uint16_t devIdCore
Definition: udma.h:520
#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:584
Udma_ringDequeueRawFxn ringDequeueRaw
Definition: udma.h:662
uint32_t blkCopyChFlag[UDMA_RM_BLK_COPY_CH_ARR_SIZE]
Definition: udma.h:597
uint32_t globalEventFlag[UDMA_RM_GLOBAL_EVENT_ARR_SIZE]
Definition: udma.h:639
int32_t(* Udma_ringDequeueRawFxn)(Udma_DrvHandle drvHandle, Udma_RingHandle ringHandle, uint64_t *phyDescMem)
UDMA Ring dequeue raw function prototype.
Definition: udma.h:209
Udma_ringPrimeFxn ringPrime
Definition: udma.h:682
uint32_t irIntrFlag[UDMA_RM_IR_INTR_ARR_SIZE]
Definition: udma.h:643
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:399
uint32_t udmapDestThreadOffset
Definition: udma.h:467
uint32_t txChFlag[UDMA_RM_TX_CH_ARR_SIZE]
Definition: udma.h:604
#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:192
uint16_t txTrIrqOffset
Definition: udma.h:551
uint32_t freeFlowFlag[UDMA_RM_FREE_FLOW_ARR_SIZE]
Definition: udma.h:637
Udma_ringGetMemPtrFxn ringGetMemPtr
Definition: udma.h:670
Udma_ringGetForwardRingOccFxn ringGetForwardRingOcc
Definition: udma.h:674
char printBuf[UDMA_CFG_PRINT_BUF_LEN]
Definition: udma.h:654
UDMA DRU related parameters and API.
UDMA event related parameters and API.
struct Udma_EventObj globalEventObj
Definition: udma.h:582
void *(* Udma_ringGetMemPtrFxn)(Udma_RingHandle ringHandle)
UDMA Ring get mem pointer function prototype.
Definition: udma.h:195
uint32_t maxRings
Definition: udma.h:469
Udma_ringHandleClearRegsFxn ringHandleClearRegs
Definition: udma.h:690
Udma_ringQueueRawFxn ringQueueRaw
Definition: udma.h:664
uint16_t txRingIrqOffset
Definition: udma.h:538
UDMA RM related parameters and API.
uint32_t skipGlobalEventReg
Definition: udma.h:246
Udma_PhyToVirtFxn phyToVirtFxn
Definition: udma.h:260
void(* Udma_ringPrimeFxn)(Udma_RingHandle ringHandle, uint64_t phyDescMem)
UDMA Ring prime function prototype.
Definition: udma.h:189
int32_t(* Udma_ringFlushRawFxn)(Udma_DrvHandle drvHandle, Udma_RingHandle ringHandle, uint64_t *phyDescMem)
UDMA Ring flush raw function prototype.
Definition: udma.h:217
uint32_t(* Udma_ringGetWrIdxFxn)(Udma_RingHandle ringHandle)
UDMA Ring get write index value function prototype.
Definition: udma.h:205
uint16_t devIdDummyEvtSrc
Definition: udma.h:514
UDMA flow related parameters and API.
Udma_PrintFxn printFxn
Definition: udma.h:268
void(* Udma_ringHandleClearRegsFxn)(Udma_RingHandle ringHandle)
UDMA Ring handle clear register function prototype.
Definition: udma.h:184
#define UDMA_RM_TX_HC_CH_ARR_SIZE
Definition: udma_cfg.h:100
Udma_ringGetElementCntFxn ringGetElementCnt
Definition: udma.h:668
uint16_t rxTrIrqOffset
Definition: udma.h:553
uint16_t srcIdRingIrq
Definition: udma.h:534
UDMA resource manager init parameters.
Definition: udma_rm.h:89
uint32_t rxHcChFlag[UDMA_RM_RX_HC_CH_ARR_SIZE]
Definition: udma.h:613
uint32_t(* Udma_ringGetForwardRingOccFxn)(Udma_RingHandle ringHandle)
UDMA Ring get forward ring occupancy function prototype.
Definition: udma.h:201
uint32_t raType
Definition: udma.h:434
uint32_t blkCopyUhcChFlag[UDMA_RM_BLK_COPY_UHC_CH_ARR_SIZE]
Definition: udma.h:601
uint32_t trigGemOffset
Definition: udma.h:578
#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:221
#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:213
int32_t Udma_deinit(Udma_DrvHandle drvHandle)
UDMA deinit function.
uint16_t devIdUdma
Definition: udma.h:506
uint16_t devIdIr
Definition: udma.h:512
#define UDMA_RM_FREE_RING_ARR_SIZE
Definition: udma_cfg.h:109
#define UDMA_CFG_PRINT_BUF_LEN
UDMA print buffer length.
Definition: udma_cfg.h:166
uint32_t isQnxRMInstance
Definition: udma.h:276
Udma_InitPrms initPrms
Definition: udma.h:587
UDMA proxy related parameters and API.
uint16_t blkCopyTrIrqOffset
Definition: udma.h:549
uint16_t devIdIa
Definition: udma.h:510