PDK API Guide for J721E
udma_rm.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) Texas Instruments Incorporated 2018-2021
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 
48 #ifndef UDMA_RM_H_
49 #define UDMA_RM_H_
50 
51 /* ========================================================================== */
52 /* Include Files */
53 /* ========================================================================== */
54 
55 /* None */
56 
57 #ifdef __cplusplus
58 extern "C" {
59 #endif
60 
61 /* ========================================================================== */
62 /* Macros & Typedefs */
63 /* ========================================================================== */
64 
66 #define UDMA_RM_RES_ID_INVALID ((uint32_t) 0xFFFF0005U)
67 
69 #define UDMA_RM_SHARED_RES_CNT_MIN ((uint32_t) 0xFFFF0006U)
70 
72 #define UDMA_RM_SHARED_RES_CNT_REST ((uint32_t) 0xFFFF0007U)
73 
74 /* ========================================================================== */
75 /* Structure Declarations */
76 /* ========================================================================== */
77 
89 typedef struct
90 {
94  uint32_t numBlkCopyUhcCh;
97  uint32_t startBlkCopyHcCh;
100  uint32_t numBlkCopyHcCh;
103  uint32_t startBlkCopyCh;
105  uint32_t numBlkCopyCh;
109  uint32_t startTxUhcCh;
112  uint32_t numTxUhcCh;
115  uint32_t startTxHcCh;
118  uint32_t numTxHcCh;
121  uint32_t startTxCh;
123  uint32_t numTxCh;
127  uint32_t startRxUhcCh;
130  uint32_t numRxUhcCh;
133  uint32_t startRxHcCh;
136  uint32_t numRxHcCh;
139  uint32_t startRxCh;
141  uint32_t numRxCh;
145 #if (UDMA_NUM_UTC_INSTANCE > 0)
146  uint32_t startUtcCh[UDMA_NUM_UTC_INSTANCE];
149  uint32_t numUtcCh[UDMA_NUM_UTC_INSTANCE];
152 #endif
153 
154 #if (UDMA_NUM_MAPPED_TX_GROUP > 0)
155  uint32_t startMappedTxCh[UDMA_NUM_MAPPED_TX_GROUP];
158  uint32_t numMappedTxCh[UDMA_NUM_MAPPED_TX_GROUP];
161 #endif
162 
163 #if (UDMA_NUM_MAPPED_RX_GROUP > 0)
164  uint32_t startMappedRxCh[UDMA_NUM_MAPPED_RX_GROUP];
167  uint32_t numMappedRxCh[UDMA_NUM_MAPPED_RX_GROUP];
170 #endif
171 
172 #if ((UDMA_NUM_MAPPED_TX_GROUP + UDMA_NUM_MAPPED_RX_GROUP) > 0)
173  uint32_t startMappedRing[UDMA_NUM_MAPPED_TX_GROUP + UDMA_NUM_MAPPED_RX_GROUP];
176  uint32_t numMappedRing[UDMA_NUM_MAPPED_TX_GROUP + UDMA_NUM_MAPPED_RX_GROUP];
179 #endif
180 
181  uint32_t startFreeFlow;
183  uint32_t numFreeFlow;
186  uint32_t startFreeRing;
188  uint32_t numFreeRing;
194  uint32_t numGlobalEvent;
197  uint32_t startVintr;
199  uint32_t numVintr;
202  uint32_t startIrIntr;
204  uint32_t numIrIntr;
208  uint32_t proxyThreadNum;
244  uint32_t startProxy;
247  uint32_t numProxy;
250  uint32_t startRingMon;
252  uint32_t numRingMon;
256 
260 typedef struct
261 {
262  uint32_t resId;
264  uint32_t startResrvCnt;
267  uint32_t endResrvCnt;
270  uint32_t numInst;
276  uint32_t minReq;
296  uint32_t instShare[UDMA_RM_SHARED_RES_MAX_INST];
338 
339 /* ========================================================================== */
340 /* Function Declarations */
341 /* ========================================================================== */
342 
358 
359 /* ========================================================================== */
360 /* Static Function Definitions */
361 /* ========================================================================== */
362 
363 /* None */
364 
365 /* ========================================================================== */
366 /* Internal/Private Structure Declarations */
367 /* ========================================================================== */
368 
369 /* None */
370 
371 #ifdef __cplusplus
372 }
373 #endif
374 
375 #endif /* #ifndef UDMA_RM_H_ */
376 
377 /* @} */
uint32_t startTxHcCh
Definition: udma_rm.h:115
uint32_t startVintr
Definition: udma_rm.h:197
uint32_t startC7xCoreIntr
Definition: udma_rm.h:232
uint32_t endResrvCnt
Definition: udma_rm.h:267
uint32_t startProxy
Definition: udma_rm.h:244
uint32_t numGlobalEvent
Definition: udma_rm.h:194
uint32_t numFreeRing
Definition: udma_rm.h:188
uint32_t startFreeRing
Definition: udma_rm.h:186
uint32_t numBlkCopyCh
Definition: udma_rm.h:105
uint32_t startBlkCopyCh
Definition: udma_rm.h:103
uint32_t startIrIntr
Definition: udma_rm.h:202
uint32_t numTxCh
Definition: udma_rm.h:123
uint32_t numFreeFlow
Definition: udma_rm.h:183
uint32_t startTxCh
Definition: udma_rm.h:121
uint32_t startTxUhcCh
Definition: udma_rm.h:109
#define UDMA_NUM_UTC_INSTANCE
Number of UTC instance.
Definition: udma_soc.h:167
uint32_t startBlkCopyUhcCh
Definition: udma_rm.h:91
uint32_t startC66xCoreIntr
Definition: udma_rm.h:238
uint32_t numRxUhcCh
Definition: udma_rm.h:130
uint32_t numInst
Definition: udma_rm.h:270
#define UDMA_RM_SHARED_RES_MAX_INST
Maximum no.of instances to split a shared resource. This should be max(UDMA_NUM_CORE,...
Definition: udma_soc.h:314
uint32_t minReq
Definition: udma_rm.h:276
uint32_t numBlkCopyHcCh
Definition: udma_rm.h:100
uint32_t numTxUhcCh
Definition: udma_rm.h:112
Udma_RmSharedResPrms * Udma_rmGetSharedResPrms(uint32_t resId)
Returns the RM Shared Resource default parameters structure for the requested resource....
uint32_t startRxHcCh
Definition: udma_rm.h:133
uint32_t startRingMon
Definition: udma_rm.h:250
uint32_t numRingMon
Definition: udma_rm.h:252
uint32_t startRxUhcCh
Definition: udma_rm.h:127
uint32_t startGlobalEvent
Definition: udma_rm.h:192
UDMA resource manager shared resource parameters.
Definition: udma_rm.h:260
uint32_t numProxy
Definition: udma_rm.h:247
uint32_t startResrvCnt
Definition: udma_rm.h:264
uint32_t resId
Definition: udma_rm.h:262
uint32_t numTxHcCh
Definition: udma_rm.h:118
#define UDMA_NUM_MAPPED_TX_GROUP
Number of Mapped TX Group.
Definition: udma_soc.h:141
uint32_t proxyThreadNum
Definition: udma_rm.h:208
uint32_t numIrIntr
Definition: udma_rm.h:204
uint32_t numBlkCopyUhcCh
Definition: udma_rm.h:94
uint32_t numVintr
Definition: udma_rm.h:199
UDMA resource manager init parameters.
Definition: udma_rm.h:89
uint32_t numRxHcCh
Definition: udma_rm.h:136
uint32_t startFreeFlow
Definition: udma_rm.h:181
uint32_t startBlkCopyHcCh
Definition: udma_rm.h:97
uint32_t startRxCh
Definition: udma_rm.h:139
#define UDMA_NUM_MAPPED_RX_GROUP
Number of Mapped RX Group.
Definition: udma_soc.h:154
uint32_t numRxCh
Definition: udma_rm.h:141