PDK API Guide for AM65xx
csl_udmap.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016-2019 Texas Instruments Incorporated.
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  */
47 #ifndef CSL_UDMAP_H_
48 #define CSL_UDMAP_H_
49 
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53 
54 #include <stdint.h>
55 #include <stdbool.h>
56 #include <ti/csl/cslr_udmap.h>
57 
85 typedef uint32_t CSL_UdmapChanDir;
87 #define CSL_UDMAP_CHAN_DIR_TX ((uint32_t) 0U)
88 
89 #define CSL_UDMAP_CHAN_DIR_RX ((uint32_t) 1U)
90 /* @} */
91 
102 typedef uint32_t CSL_UdmapChanBurstSize;
104 #define CSL_UDMAP_CHAN_BURST_SIZE_64_BYTES ((uint32_t) 1U)
105 
106 #define CSL_UDMAP_CHAN_BURST_SIZE_128_BYTES ((uint32_t) 2U)
107 
108 #define CSL_UDMAP_CHAN_BURST_SIZE_256_BYTES ((uint32_t) 3U)
109 /* @} */
110 
120 typedef uint32_t CSL_UdmapDescType;
122 #define CSL_UDMAP_DESC_TYPE_HOST ((uint32_t) 0U)
123 
124 #define CSL_UDMAP_DESC_TYPE_HOST_SB ((uint32_t) 1U)
125 
126 #define CSL_UDMAP_DESC_TYPE_MONOLITHIC ((uint32_t) 2U)
127 
128 #define CSL_UDMAP_DESC_TYPE_RESERVED ((uint32_t) 3U)
129 /* @} */
130 
140 typedef uint32_t CSL_UdmapPsLoc;
142 #define CSL_UDMAP_PS_LOC_DESC ((uint32_t) 0U)
143 
144 #define CSL_UDMAP_PS_LOC_PACKET ((uint32_t) 1U)
145 /* @} */
146 
156 typedef uint32_t CSL_UdmapAddrType;
158 #define CSL_UDMAP_ADDR_TYPE_PHYS ((uint32_t) 0U)
159 
160 #define CSL_UDMAP_ADDR_TYPE_INTER ((uint32_t) 1U)
161 
162 #define CSL_UDMAP_ADDR_TYPE_VIRT ((uint32_t) 2U)
163 /* @} */
164 
174 typedef uint32_t CSL_UdmapChanType;
176 #define CSL_UDMAP_CHAN_TYPE_REF_PKT_RING ((uint32_t) 2U)
177 
178 #define CSL_UDMAP_CHAN_TYPE_REF_PKTSB_QUEUE ((uint32_t) 3U)
179 
180 #define CSL_UDMAP_CHAN_TYPE_REF_TR_RING ((uint32_t) 10U)
181 
182 #define CSL_UDMAP_CHAN_TYPE_VAL_TR_RING ((uint32_t) 11U)
183 
184 #define CSL_UDMAP_CHAN_TYPE_COPY_REF_TR_RING ((uint32_t) 12U)
185 
186 #define CSL_UDMAP_CHAN_TYPE_COPY_VAL_TR_RING ((uint32_t) 13U)
187 /* @} */
188 
198 typedef uint32_t CSL_UdmapTagSelect;
200 #define CSL_UDMAP_TAG_SELECT_NO_OVERWRITE ((uint32_t) 0U)
201 
202 #define CSL_UDMAP_TAG_SELECT_OVERWRITE_WITH_VAL ((uint32_t) 1U)
203 
204 #define CSL_UDMAP_TAG_SELECT_OVERWRITE_WITH_FLOWID_7_0 ((uint32_t) 2U)
205 
206 #define CSL_UDMAP_TAG_SELECT_OVERWRITE_WITH_FLOWID_15_8 ((uint32_t) 3U)
207 
208 #define CSL_UDMAP_TAG_SELECT_OVERWRITE_WITH_TAG_7_0 ((uint32_t) 4U)
209 
210 #define CSL_UDMAP_TAG_SELECT_OVERWRITE_WITH_TAG_15_8 ((uint32_t) 5U)
211 
212 #define CSL_UDMAP_TAG_SELECT_INVALID ((uint32_t) 6U)
213 /* @} */
214 
225 typedef uint32_t CSL_UdmapChanSchedPri;
227 #define CSL_UDMAP_CHAN_SCHED_PRI_HIGH ((uint32_t) 0U)
228 
229 #define CSL_UDMAP_CHAN_SCHED_PRI_MED_HIGH ((uint32_t) 1U)
230 
231 #define CSL_UDMAP_CHAN_SCHED_PRI_MED_LOW ((uint32_t) 2U)
232 
233 #define CSL_UDMAP_CHAN_SCHED_PRI_LOW ((uint32_t) 3U)
234 /* @} */
235 
249 typedef uint64_t CSL_UdmapAutoClkgateBlock;
250 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_EDC (((uint64_t)1U)<<63)
251 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_STATS (((uint64_t)1U)<<62)
252 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_PROXY (((uint64_t)1U)<<61)
253 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_PSILIF (((uint64_t)1U)<<60)
254 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_P2P (((uint64_t)1U)<<59)
255 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_EPSILIF (((uint64_t)1U)<<58)
256 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_EHANDLER (((uint64_t)1U)<<57)
257 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RINGPEND (((uint64_t)1U)<<56)
258 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RX_PER_CHANNEL_FIFO (((uint64_t)1U)<<55)
259 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_TX_PER_CHANNEL_FIFO (((uint64_t)1U)<<54)
260 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RX_PREFETCH_CFG (((uint64_t)1U)<<53)
261 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_TX_PREFETCH_CFG (((uint64_t)1U)<<52)
262 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_PM_TX_PACKET_DMA_UNIT (((uint64_t)1U)<<51)
263 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_TX_CFG_STATE_RAM_BLK (((uint64_t)1U)<<50)
264 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RX_PREFETCH_BUFFER (((uint64_t)1U)<<49)
265 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_TX_PREFETCH_BUFFER (((uint64_t)1U)<<48)
266 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RX_FLOW_FIREWALL (((uint64_t)1U)<<47)
267 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_TX_EXTERNAL_CHANNEL_COHERENCY_UNIT (((uint64_t)1U)<<46)
268 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RX_PACKET_COHERENCY_UNIT (((uint64_t)1U)<<45)
269 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_TX_PACKET_COHERENCY_UNIT (((uint64_t)1U)<<44)
270 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RX_TR_COHERENCY_UNIT (((uint64_t)1U)<<43)
271 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_TX_TR_COHERENCY_UNIT (((uint64_t)1U)<<42)
272 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RX_EVENT_COHERENCY_UNIT (((uint64_t)1U)<<41)
273 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_TX_EVENT_COHERENCY_UNIT (((uint64_t)1U)<<40)
274 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_UTC_WRITE_UNIT3 (((uint64_t)1U)<<39)
275 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_UTC_WRITE_UNIT2 (((uint64_t)1U)<<38)
276 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_UTC_WRITE_UNIT1 (((uint64_t)1U)<<37)
277 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_UTC_WRITE_UNIT0 (((uint64_t)1U)<<36)
278 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_UTC_READ_UNIT3 (((uint64_t)1U)<<35)
279 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_UTC_READ_UNIT2 (((uint64_t)1U)<<34)
280 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_UTC_READ_UNIT1 (((uint64_t)1U)<<33)
281 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_UTC_READ_UNIT0 (((uint64_t)1U)<<32)
282 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RX_PACKET_DMA_UNIT3 (((uint64_t)1U)<<31)
283 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RX_PACKET_DMA_UNIT2 (((uint64_t)1U)<<30)
284 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RX_PACKET_DMA_UNIT1 (((uint64_t)1U)<<29)
285 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RX_PACKET_DMA_UNIT0 (((uint64_t)1U)<<28)
286 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_TX_PACKET_DMA_UNIT3 (((uint64_t)1U)<<27)
287 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_TX_PACKET_DMA_UNIT2 (((uint64_t)1U)<<26)
288 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_TX_PACKET_DMA_UNIT1 (((uint64_t)1U)<<25)
289 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_TX_PACKET_DMA_UNIT0 (((uint64_t)1U)<<24)
290 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RX_PREFETCH_UNIT3 (((uint64_t)1U)<<23)
291 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RX_PREFETCH_UNIT2 (((uint64_t)1U)<<22)
292 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RX_PREFETCH_UNIT1 (((uint64_t)1U)<<21)
293 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RX_PREFETCH_UNIT0 (((uint64_t)1U)<<20)
294 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_TX_PREFETCH_UNIT3 (((uint64_t)1U)<<19)
295 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_TX_PREFETCH_UNIT2 (((uint64_t)1U)<<18)
296 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_TX_PREFETCH_UNIT1 (((uint64_t)1U)<<17)
297 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_TX_PREFETCH_UNIT0 (((uint64_t)1U)<<16)
298 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RSVD3 (((uint64_t)1U)<<15)
299 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_READ_DECODER2 (((uint64_t)1U)<<14)
300 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_READ_DECODER1 (((uint64_t)1U)<<13)
301 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_READ_DECODER0 (((uint64_t)1U)<<12)
302 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_WRITE_STATUS_DECODER3 (((uint64_t)1U)<<11)
303 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RSVD2 (((uint64_t)1U)<<10)
304 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_WRITE_STATUS_DECODER1 (((uint64_t)1U)<<9)
305 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_WRITE_STATUS_DECODER0 (((uint64_t)1U)<<8)
306 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_WRITE_ARBITER3 (((uint64_t)1U)<<7)
307 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_RSVD1 (((uint64_t)1U)<<6)
308 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_WRITE_ARBITER1 (((uint64_t)1U)<<5)
309 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_WRITE_ARBITER0 (((uint64_t)1U)<<4)
310 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_COMMAND_ARBITER3 (((uint64_t)1U)<<3)
311 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_COMMAND_ARBITER2 (((uint64_t)1U)<<2)
312 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_COMMAND_ARBITER1 (((uint64_t)1U)<<1)
313 #define CSL_UDMAP_AUTO_CLKGATE_BLOCK_COMMAND_ARBITER0 (((uint64_t)1U)<<0)
314 /* @} */
315 
330 typedef uint32_t CSL_UdmapMasterInterface;
332 #define CSL_UDMAP_MASTER_INTERFACE_PKTDMA_0 ((uint32_t) 0U)
333 
334 #define CSL_UDMAP_MASTER_INTERFACE_PKTDMA_1 ((uint32_t) 1U)
335 
336 #define CSL_UDMAP_MASTER_INTERFACE_UTC_READ ((uint32_t) 2U)
337 
338 #define CSL_UDMAP_MASTER_INTERFACE_UTC_WRITE ((uint32_t) 3U)
339 /* @} */
340 
341 /* @} */
342 
348 #define CSL_UDMAP_RXFDQ_CNT (4U)
349 #define CSL_UDMAP_RXFDQ_THRESH_CNT (4U)
350 #define CSL_UDMAP_NO_EVENT (0xFFFFU)
351 
358 typedef struct
359 {
360  uint32_t fEnable;
361  uint32_t pktSize;
362  uint32_t queue;
364 
370 typedef struct
371 {
372  uint32_t loSel;
373  uint8_t loVal;
374  uint32_t hiSel;
375  uint8_t hiVal;
377 
383 typedef struct
384 {
385  uint32_t modId;
386  uint32_t revRtl;
387  uint32_t revMajor;
388  uint32_t custom;
389  uint32_t revMinor;
391 
397 typedef struct
398 {
399  uint32_t einfoPresent;
400  uint32_t psInfoPresent;
401  uint32_t errorHandling;
404  uint32_t sopOffset;
405  uint32_t defaultRxCQ;
409  uint32_t fdq[CSL_UDMAP_RXFDQ_CNT];
411 
417 typedef struct
418 {
419  uint32_t pauseOnError;
420  uint32_t filterEinfo;
421  uint32_t filterPsWords;
424  uint32_t fetchWordSize;
425  uint32_t trEventNum;
426  uint32_t errEventNum;
427  uint32_t busPriority;
428  uint32_t busQos;
429  uint32_t busOrderId;
431  uint32_t txCredit;
432  uint32_t txTrCQ;
433  uint32_t txThread;
435  uint32_t tdType;
437 
443 typedef struct
444 {
445  uint32_t pauseOnError;
448  uint32_t fetchWordSize;
449  uint32_t trEventNum;
450  uint32_t errEventNum;
451  uint32_t busPriority;
452  uint32_t busQos;
453  uint32_t busOrderId;
454  uint32_t rxTrCQ;
455  uint32_t rxThread;
457  uint32_t flowIdFwRangeCnt;
462 
468 typedef struct
469 {
470  uint32_t enable;
471  uint32_t teardown;
472  uint32_t pause;
473  uint32_t error;
474  uint32_t forcedTeardown;
475 } CSL_UdmapRT;
476 
482 typedef struct
483 {
484  CSL_udmap_gcfgRegs *pGenCfgRegs;
485  CSL_udmap_rxfcfgRegs *pRxFlowCfgRegs;
486  CSL_udmap_txccfgRegs *pTxChanCfgRegs;
487  CSL_udmap_rxccfgRegs *pRxChanCfgRegs;
488  CSL_udmap_txcrtRegs *pTxChanRtRegs;
489  CSL_udmap_rxcrtRegs *pRxChanRtRegs;
490  uint32_t cap0;
491  uint32_t cap1;
492  uint32_t txChanCnt;
493  uint32_t rxChanCnt;
494  uint32_t rxFlowCnt;
495  uint32_t txExtUtcChanCnt;
498 } CSL_UdmapCfg;
499 
507 typedef struct
508 {
509  uint32_t flowId;
510  uint32_t chnIdx;
512 
518 typedef struct
519 {
520  uint32_t packetCnt;
521  uint32_t completedByteCnt;
522  uint32_t startedByteCnt;
524 
525 /* @} */
526 
543 extern uint32_t CSL_udmapGetRevision( const CSL_UdmapCfg *pCfg );
544 
555 extern int32_t CSL_udmapGetRevisionInfo( const CSL_UdmapCfg *pCfg, CSL_UdmapRevision *pRev );
556 
568 extern void CSL_udmapGetCfg( CSL_UdmapCfg *pCfg );
569 
590 extern void CSL_udmapInitTxChanCfg( CSL_UdmapTxChanCfg *pTxChanCfg );
591 
613 extern void CSL_udmapInitRxChanCfg( CSL_UdmapRxChanCfg *pRxChanCfg );
614 
629 extern void CSL_udmapInitRxFlowCfg( CSL_UdmapRxFlowCfg *pFlow );
630 
645 extern void CSL_udmapSetPerfCtrl( CSL_UdmapCfg *pCfg, uint32_t rxRetryTimeoutCnt );
646 
659 extern void CSL_udmapSetUtcCtrl( CSL_UdmapCfg *pCfg, uint32_t startingThreadNum );
660 
673 extern int32_t CSL_udmapRxFlowCfg( CSL_UdmapCfg *pCfg, uint32_t flow, const CSL_UdmapRxFlowCfg *pFlow );
674 
687 extern int32_t CSL_udmapRxChanCfg( CSL_UdmapCfg *pCfg, uint32_t chanIdx, const CSL_UdmapRxChanCfg *pRxChanCfg );
688 
701 extern int32_t CSL_udmapTxChanCfg( CSL_UdmapCfg *pCfg, uint32_t chanIdx, const CSL_UdmapTxChanCfg *pTxChanCfg );
702 
716 extern int32_t CSL_udmapRxChanSetTrEvent( CSL_UdmapCfg *pCfg, uint32_t chanIdx, uint32_t trEventNum );
717 
731 extern int32_t CSL_udmapTxChanSetTrEvent( CSL_UdmapCfg *pCfg, uint32_t chanIdx, uint32_t trEventNum );
732 
748 extern int32_t CSL_udmapRxChanSetBurstSize( CSL_UdmapCfg *pCfg, uint32_t chanIdx, CSL_UdmapChanBurstSize burstSize );
749 
765 extern int32_t CSL_udmapTxChanSetBurstSize( CSL_UdmapCfg *pCfg, uint32_t chanIdx, CSL_UdmapChanBurstSize burstSize );
766 
779 extern int32_t CSL_udmapGetRxRT( const CSL_UdmapCfg *pCfg, uint32_t chanIdx, CSL_UdmapRT *pRT );
780 
793 extern int32_t CSL_udmapGetTxRT( const CSL_UdmapCfg *pCfg, uint32_t chanIdx, CSL_UdmapRT *pRT );
794 
807 extern int32_t CSL_udmapSetRxRT( CSL_UdmapCfg *pCfg, uint32_t chanIdx, const CSL_UdmapRT *pRT );
808 
821 extern int32_t CSL_udmapSetTxRT( CSL_UdmapCfg *pCfg, uint32_t chanIdx, const CSL_UdmapRT *pRT );
822 
833 extern int32_t CSL_udmapEnableTxChan( CSL_UdmapCfg *pCfg, uint32_t chanIdx );
834 
845 extern int32_t CSL_udmapDisableTxChan( CSL_UdmapCfg *pCfg, uint32_t chanIdx );
846 
864 extern int32_t CSL_udmapTeardownTxChan( CSL_UdmapCfg *pCfg, uint32_t chanIdx, bool bForce, bool bWait );
865 
879 extern int32_t CSL_udmapPauseTxChan( CSL_UdmapCfg *pCfg, uint32_t chanIdx );
880 
891 extern int32_t CSL_udmapUnpauseTxChan( CSL_UdmapCfg *pCfg, uint32_t chanIdx );
892 
904 extern int32_t CSL_udmapTriggerTxChan( CSL_UdmapCfg *pCfg, uint32_t chanIdx );
905 
916 extern void CSL_udmapClearTxChanError( CSL_UdmapCfg *pCfg, uint32_t chanIdx );
917 
928 extern int32_t CSL_udmapEnableRxChan( CSL_UdmapCfg *pCfg, uint32_t chanIdx );
929 
940 extern int32_t CSL_udmapDisableRxChan( CSL_UdmapCfg *pCfg, uint32_t chanIdx );
941 
959 extern int32_t CSL_udmapTeardownRxChan( CSL_UdmapCfg *pCfg, uint32_t chanIdx, bool bForce, bool bWait );
960 
974 extern int32_t CSL_udmapPauseRxChan( CSL_UdmapCfg *pCfg, uint32_t chanIdx );
975 
986 extern int32_t CSL_udmapUnpauseRxChan( CSL_UdmapCfg *pCfg, uint32_t chanIdx );
987 
999 extern int32_t CSL_udmapTriggerRxChan( CSL_UdmapCfg *pCfg, uint32_t chanIdx );
1000 
1011 extern void CSL_udmapClearRxChanError( CSL_UdmapCfg *pCfg, uint32_t chanIdx );
1012 
1024 extern void CSL_udmapCfgRxFlowIdFirewall( CSL_UdmapCfg *pCfg, uint32_t outEvtNum );
1025 
1050 
1063 extern void CSL_udmapGetChanStats( const CSL_UdmapCfg *pCfg, uint32_t chanIdx, CSL_UdmapChanDir chanDir, CSL_UdmapChanStats *pChanStats );
1064 
1079 extern void CSL_udmapDecChanStats( CSL_UdmapCfg *pCfg, uint32_t chanIdx, CSL_UdmapChanDir chanDir, const CSL_UdmapChanStats *pChanStats );
1080 
1095 extern int32_t CSL_udmapGetChanPeerReg( const CSL_UdmapCfg *pCfg, uint32_t chanIdx, CSL_UdmapChanDir chanDir, uint32_t regIdx, uint32_t *pVal );
1096 
1111 extern int32_t CSL_udmapSetChanPeerReg( const CSL_UdmapCfg *pCfg, uint32_t chanIdx, CSL_UdmapChanDir chanDir, uint32_t regIdx, uint32_t *pVal );
1112 
1125 extern int32_t CSL_udmapEnableLink( CSL_UdmapCfg *pCfg, uint32_t chanIdx, CSL_UdmapChanDir chanDir );
1126 
1146 extern int32_t CSL_udmapSetAutoClockGatingEnable( CSL_UdmapCfg *pCfg, CSL_UdmapAutoClkgateBlock blockIds, bool bEnable );
1147 
1178 extern int32_t CSL_udmapSetCommandThrottleThreshold( CSL_UdmapCfg *pCfg, CSL_UdmapMasterInterface interfaceId, uint32_t readCountThresh, uint32_t writeCountThresh );
1179 
1180 /* @} */
1181 
1182 #ifdef __cplusplus
1183 }
1184 #endif /* extern "C" */
1185 
1186 #endif /* end of CSL_UDMAP_H_ definition */
1187 
int32_t CSL_udmapEnableLink(CSL_UdmapCfg *pCfg, uint32_t chanIdx, CSL_UdmapChanDir chanDir)
Enable a directional data flow for a paired link.
uint32_t psInfoPresent
Definition: csl_udmap.h:400
void CSL_udmapSetPerfCtrl(CSL_UdmapCfg *pCfg, uint32_t rxRetryTimeoutCnt)
Set performance control parmeters.
uint32_t busOrderId
Definition: csl_udmap.h:453
uint32_t trEventNum
Definition: csl_udmap.h:449
uint32_t busOrderId
Definition: csl_udmap.h:429
uint32_t queue
Definition: csl_udmap.h:362
uint8_t hiVal
Definition: csl_udmap.h:375
uint32_t errEventNum
Definition: csl_udmap.h:426
int32_t CSL_udmapDisableTxChan(CSL_UdmapCfg *pCfg, uint32_t chanIdx)
Disable a transmit channel.
uint32_t pause
Definition: csl_udmap.h:472
uint32_t CSL_UdmapTagSelect
Definition: csl_udmap.h:198
Receive free descriptor queue threshold information.
Definition: csl_udmap.h:358
uint32_t teardown
Definition: csl_udmap.h:471
uint32_t rxTrCQ
Definition: csl_udmap.h:454
uint32_t CSL_UdmapChanDir
Definition: csl_udmap.h:85
int32_t CSL_udmapSetAutoClockGatingEnable(CSL_UdmapCfg *pCfg, CSL_UdmapAutoClkgateBlock blockIds, bool bEnable)
Enable or disable automatic dynamic clock gating for one or more blocks.
uint32_t tdType
Definition: csl_udmap.h:435
uint32_t rxThread
Definition: csl_udmap.h:455
CSL_UdmapPsLoc psLocation
Definition: csl_udmap.h:403
CSL_UdmapChanType chanType
Definition: csl_udmap.h:447
CSL_UdmapChanType chanType
Definition: csl_udmap.h:423
uint32_t flowId
Definition: csl_udmap.h:509
uint32_t txCredit
Definition: csl_udmap.h:431
bool bIgnoreShortPkts
Definition: csl_udmap.h:458
void CSL_udmapInitTxChanCfg(CSL_UdmapTxChanCfg *pTxChanCfg)
Initialize a CSL_UdmapTxChanCfg structure.
Channel runtime configuration information.
Definition: csl_udmap.h:468
int32_t CSL_udmapTriggerRxChan(CSL_UdmapCfg *pCfg, uint32_t chanIdx)
Send a trigger event to an RX channel.
Receive channel configuration information.
Definition: csl_udmap.h:443
uint32_t hiSel
Definition: csl_udmap.h:374
Transmit channel configuration information.
Definition: csl_udmap.h:417
uint32_t txUltraHighCapacityChanCnt
Definition: csl_udmap.h:497
uint32_t pauseOnError
Definition: csl_udmap.h:445
Transmit / receive channel statistics.
Definition: csl_udmap.h:518
uint32_t busQos
Definition: csl_udmap.h:452
uint64_t CSL_UdmapAutoClkgateBlock
Definition: csl_udmap.h:249
uint32_t pktSize
Definition: csl_udmap.h:361
void CSL_udmapClearTxChanError(CSL_UdmapCfg *pCfg, uint32_t chanIdx)
Clear error indication in a transmit channel.
uint32_t trEventNum
Definition: csl_udmap.h:425
int32_t CSL_udmapUnpauseTxChan(CSL_UdmapCfg *pCfg, uint32_t chanIdx)
Un-pause a transmit channel.
CSL_UdmapAddrType addrType
Definition: csl_udmap.h:446
uint32_t revRtl
Definition: csl_udmap.h:386
#define CSL_UDMAP_RXFDQ_CNT
Definition: csl_udmap.h:348
uint32_t errorHandling
Definition: csl_udmap.h:401
uint32_t sopOffset
Definition: csl_udmap.h:404
int32_t CSL_udmapEnableTxChan(CSL_UdmapCfg *pCfg, uint32_t chanIdx)
Enable a transmit channel.
CSL_udmap_rxcrtRegs * pRxChanRtRegs
Definition: csl_udmap.h:489
bool bIgnoreLongPkts
Definition: csl_udmap.h:459
uint32_t rxChanCnt
Definition: csl_udmap.h:493
void CSL_udmapDecChanStats(CSL_UdmapCfg *pCfg, uint32_t chanIdx, CSL_UdmapChanDir chanDir, const CSL_UdmapChanStats *pChanStats)
Decrement channel statistics.
uint32_t flowIdFwRangeStart
Definition: csl_udmap.h:456
uint32_t revMajor
Definition: csl_udmap.h:387
CSL_udmap_txcrtRegs * pTxChanRtRegs
Definition: csl_udmap.h:488
uint32_t einfoPresent
Definition: csl_udmap.h:399
Routing tag information.
Definition: csl_udmap.h:370
uint32_t custom
Definition: csl_udmap.h:388
CSL_UdmapRouteTag dstTag
Definition: csl_udmap.h:407
uint32_t busPriority
Definition: csl_udmap.h:427
int32_t CSL_udmapTxChanCfg(CSL_UdmapCfg *pCfg, uint32_t chanIdx, const CSL_UdmapTxChanCfg *pTxChanCfg)
Configure a TX channel.
void CSL_udmapClearRxChanError(CSL_UdmapCfg *pCfg, uint32_t chanIdx)
Clear error indication in a receive channel.
int32_t CSL_udmapRxChanSetTrEvent(CSL_UdmapCfg *pCfg, uint32_t chanIdx, uint32_t trEventNum)
Configure an RX channel TR event.
void CSL_udmapInitRxChanCfg(CSL_UdmapRxChanCfg *pRxChanCfg)
Initialize a CSL_UdmapRxChanCfg structure.
uint32_t startedByteCnt
Definition: csl_udmap.h:522
uint32_t modId
Definition: csl_udmap.h:385
uint32_t filterEinfo
Definition: csl_udmap.h:420
CSL_UdmapChanSchedPri dmaPriority
Definition: csl_udmap.h:430
void CSL_udmapSetUtcCtrl(CSL_UdmapCfg *pCfg, uint32_t startingThreadNum)
Set UTC control parmeters.
uint32_t CSL_UdmapDescType
Definition: csl_udmap.h:120
void CSL_udmapCfgRxFlowIdFirewall(CSL_UdmapCfg *pCfg, uint32_t outEvtNum)
Configure the receive flow ID range firewall.
uint32_t completedByteCnt
Definition: csl_udmap.h:521
uint32_t busQos
Definition: csl_udmap.h:428
int32_t CSL_udmapSetRxRT(CSL_UdmapCfg *pCfg, uint32_t chanIdx, const CSL_UdmapRT *pRT)
Set an RX channel's real-time register values.
uint32_t txThread
Definition: csl_udmap.h:433
uint32_t txHighCapacityChanCnt
Definition: csl_udmap.h:496
int32_t CSL_udmapPauseTxChan(CSL_UdmapCfg *pCfg, uint32_t chanIdx)
Pause a transmit channel.
int32_t CSL_udmapGetRevisionInfo(const CSL_UdmapCfg *pCfg, CSL_UdmapRevision *pRev)
Return revision information of the UDMAP module.
uint32_t defaultRxCQ
Definition: csl_udmap.h:405
int32_t CSL_udmapEnableRxChan(CSL_UdmapCfg *pCfg, uint32_t chanIdx)
Enable a receive channel.
CSL_udmap_txccfgRegs * pTxChanCfgRegs
Definition: csl_udmap.h:486
CSL_UdmapAddrType addrType
Definition: csl_udmap.h:422
int32_t CSL_udmapGetChanPeerReg(const CSL_UdmapCfg *pCfg, uint32_t chanIdx, CSL_UdmapChanDir chanDir, uint32_t regIdx, uint32_t *pVal)
Read a channel peer register.
int32_t CSL_udmapSetTxRT(CSL_UdmapCfg *pCfg, uint32_t chanIdx, const CSL_UdmapRT *pRT)
Set a TX channel's real-time register values.
uint32_t pauseOnError
Definition: csl_udmap.h:419
int32_t CSL_udmapSetChanPeerReg(const CSL_UdmapCfg *pCfg, uint32_t chanIdx, CSL_UdmapChanDir chanDir, uint32_t regIdx, uint32_t *pVal)
Write a TX channel peer register.
int32_t CSL_udmapTriggerTxChan(CSL_UdmapCfg *pCfg, uint32_t chanIdx)
Send a trigger event to a TX channel.
uint32_t CSL_UdmapChanType
Definition: csl_udmap.h:174
uint32_t fEnable
Definition: csl_udmap.h:360
uint32_t cap0
Definition: csl_udmap.h:490
uint32_t CSL_UdmapMasterInterface
Definition: csl_udmap.h:330
uint32_t error
Definition: csl_udmap.h:473
uint32_t chnIdx
Definition: csl_udmap.h:510
uint32_t errEventNum
Definition: csl_udmap.h:450
void CSL_udmapInitRxFlowCfg(CSL_UdmapRxFlowCfg *pFlow)
Initialize a CSL_UdmapRxFlowCfg structure.
CSL_UdmapDescType descType
Definition: csl_udmap.h:402
uint8_t loVal
Definition: csl_udmap.h:373
uint32_t busPriority
Definition: csl_udmap.h:451
uint32_t fetchWordSize
Definition: csl_udmap.h:424
int32_t CSL_udmapTeardownTxChan(CSL_UdmapCfg *pCfg, uint32_t chanIdx, bool bForce, bool bWait)
Teardown a transmit channel.
uint32_t CSL_UdmapChanSchedPri
Definition: csl_udmap.h:225
int32_t CSL_udmapTxChanSetBurstSize(CSL_UdmapCfg *pCfg, uint32_t chanIdx, CSL_UdmapChanBurstSize burstSize)
Configure TX channel burst size.
int32_t CSL_udmapPauseRxChan(CSL_UdmapCfg *pCfg, uint32_t chanIdx)
Pause a receive channel.
int32_t CSL_udmapRxChanCfg(CSL_UdmapCfg *pCfg, uint32_t chanIdx, const CSL_UdmapRxChanCfg *pRxChanCfg)
Configure an RX channel.
void CSL_udmapGetCfg(CSL_UdmapCfg *pCfg)
Return UDMAP configuration information.
CSL_udmap_rxfcfgRegs * pRxFlowCfgRegs
Definition: csl_udmap.h:485
bool CSL_udmapGetRxFlowIdFirewallStatus(CSL_UdmapCfg *pCfg, CSL_UdmapRxFlowIdFirewallStatus *pRxFlowIdFwStatus)
Get receive flow ID range firewall status information.
Module revision information.
Definition: csl_udmap.h:383
uint32_t CSL_UdmapPsLoc
Definition: csl_udmap.h:140
CSL_udmap_gcfgRegs * pGenCfgRegs
Definition: csl_udmap.h:484
int32_t CSL_udmapUnpauseRxChan(CSL_UdmapCfg *pCfg, uint32_t chanIdx)
Un-pause a receive channel.
void CSL_udmapGetChanStats(const CSL_UdmapCfg *pCfg, uint32_t chanIdx, CSL_UdmapChanDir chanDir, CSL_UdmapChanStats *pChanStats)
Get channel statistics.
uint32_t filterPsWords
Definition: csl_udmap.h:421
int32_t CSL_udmapSetCommandThrottleThreshold(CSL_UdmapCfg *pCfg, CSL_UdmapMasterInterface interfaceId, uint32_t readCountThresh, uint32_t writeCountThresh)
Set the command throttle threshold for a UDMAP VBUSM master interface.
uint32_t enable
Definition: csl_udmap.h:470
uint32_t loSel
Definition: csl_udmap.h:372
int32_t CSL_udmapRxChanSetBurstSize(CSL_UdmapCfg *pCfg, uint32_t chanIdx, CSL_UdmapChanBurstSize burstSize)
Configure RX channel burst size.
uint32_t forcedTeardown
Definition: csl_udmap.h:474
int32_t CSL_udmapTeardownRxChan(CSL_UdmapCfg *pCfg, uint32_t chanIdx, bool bForce, bool bWait)
Teardown a receive channel.
uint32_t CSL_udmapGetRevision(const CSL_UdmapCfg *pCfg)
Return revision of the UDMAP module.
uint32_t CSL_UdmapChanBurstSize
Definition: csl_udmap.h:102
int32_t CSL_udmapGetTxRT(const CSL_UdmapCfg *pCfg, uint32_t chanIdx, CSL_UdmapRT *pRT)
Get a TX channel's real-time register values.
uint32_t txExtUtcChanCnt
Definition: csl_udmap.h:495
uint32_t fetchWordSize
Definition: csl_udmap.h:448
int32_t CSL_udmapGetRxRT(const CSL_UdmapCfg *pCfg, uint32_t chanIdx, CSL_UdmapRT *pRT)
Get an RX channel's real-time register values.
CSL_udmap_rxccfgRegs * pRxChanCfgRegs
Definition: csl_udmap.h:487
UDMAP configuration structure.
Definition: csl_udmap.h:482
uint32_t cap1
Definition: csl_udmap.h:491
CSL_UdmapChanSchedPri dmaPriority
Definition: csl_udmap.h:460
uint32_t txChanCnt
Definition: csl_udmap.h:492
int32_t CSL_udmapTxChanSetTrEvent(CSL_UdmapCfg *pCfg, uint32_t chanIdx, uint32_t trEventNum)
Configure an TX channel TR event.
Receive flow configuration information.
Definition: csl_udmap.h:397
uint32_t revMinor
Definition: csl_udmap.h:389
bool bNoTeardownCompletePkt
Definition: csl_udmap.h:434
uint32_t CSL_UdmapAddrType
Definition: csl_udmap.h:156
uint32_t packetCnt
Definition: csl_udmap.h:520
UDMAP receive flow id firewall status.
Definition: csl_udmap.h:507
#define CSL_UDMAP_RXFDQ_THRESH_CNT
Definition: csl_udmap.h:349
uint32_t txTrCQ
Definition: csl_udmap.h:432
int32_t CSL_udmapRxFlowCfg(CSL_UdmapCfg *pCfg, uint32_t flow, const CSL_UdmapRxFlowCfg *pFlow)
Configure an RX flow.
uint32_t flowIdFwRangeCnt
Definition: csl_udmap.h:457
CSL_UdmapRouteTag srcTag
Definition: csl_udmap.h:406
uint32_t rxFlowCnt
Definition: csl_udmap.h:494
int32_t CSL_udmapDisableRxChan(CSL_UdmapCfg *pCfg, uint32_t chanIdx)
Disable a receive channel.