PDK API Guide for AM64x
csl_pktdma.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2020 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  */
75 #ifndef CSL_PKTDMA_H_
76 #define CSL_PKTDMA_H_
77 
78 #ifdef __cplusplus
79 extern "C" {
80 #endif
81 
82 #include <stdint.h>
83 #include <stdbool.h>
84 #include <ti/csl/cslr_pktdma.h>
85 #include <ti/csl/csl_types.h>
86 
105 #define CSL_PKTDMA_NO_EVENT ((uint32_t) 0xFFFFU)
106 
116 typedef uint32_t CSL_PktdmaChanDir;
118 #define CSL_PKTDMA_CHAN_DIR_TX ((uint32_t) 0U)
119 
120 #define CSL_PKTDMA_CHAN_DIR_RX ((uint32_t) 1U)
121 /* @} */
122 
133 typedef uint32_t CSL_PktdmaChanBurstSize;
135 #define CSL_PKTDMA_CHAN_BURST_SIZE_32_BYTES ((uint32_t) 0U)
136 
137 #define CSL_PKTDMA_CHAN_BURST_SIZE_64_BYTES ((uint32_t) 1U)
138 
139 #define CSL_PKTDMA_CHAN_BURST_SIZE_128_BYTES ((uint32_t) 2U)
140 
141 #define CSL_PKTDMA_CHAN_BURST_SIZE_256_BYTES ((uint32_t) 3U)
142 /* @} */
143 
153 typedef uint32_t CSL_PktdmaDescType;
155 #define CSL_PKTDMA_DESC_TYPE_HOST ((uint32_t) 0U)
156 
157 #define CSL_PKTDMA_DESC_TYPE_HOST_SB ((uint32_t) 1U)
158 
159 #define CSL_PKTDMA_DESC_TYPE_MONOLITHIC ((uint32_t) 2U)
160 
161 #define CSL_PKTDMA_DESC_TYPE_RESERVED ((uint32_t) 3U)
162 /* @} */
163 
173 typedef uint32_t CSL_PktdmaPsLoc;
175 #define CSL_PKTDMA_PS_LOC_DESC ((uint32_t) 0U)
176 
177 #define CSL_PKTDMA_PS_LOC_PACKET ((uint32_t) 1U)
178 /* @} */
179 
189 typedef uint32_t CSL_PktdmaAddrType;
191 #define CSL_PKTDMA_ADDR_TYPE_PHYS ((uint32_t) 0U)
192 
193 #define CSL_PKTDMA_ADDR_TYPE_INTER ((uint32_t) 1U)
194 
195 #define CSL_PKTDMA_ADDR_TYPE_VIRT ((uint32_t) 2U)
196 /* @} */
197 
207 typedef uint32_t CSL_PktdmaChanType;
209 #define CSL_PKTDMA_CHAN_TYPE_NORMAL ((uint32_t) 2U)
210 
211 #define CSL_PKTDMA_CHAN_TYPE_SBMODE ((uint32_t) 3U)
212 
213 #define CSL_PKTDMA_CHAN_TYPE_REF_PKT_RING ((uint32_t) 2U)
214 
215 #define CSL_PKTDMA_CHAN_TYPE_REF_PKTSB_QUEUE ((uint32_t) 3U)
216 /* @} */
217 
227 typedef uint32_t CSL_PktdmaTagSelect;
229 #define CSL_PKTDMA_TAG_SELECT_NO_OVERWRITE ((uint32_t) 0U)
230 
231 #define CSL_PKTDMA_TAG_SELECT_OVERWRITE_WITH_VAL ((uint32_t) 1U)
232 
233 #define CSL_PKTDMA_TAG_SELECT_OVERWRITE_WITH_FLOWID_7_0 ((uint32_t) 2U)
234 
235 #define CSL_PKTDMA_TAG_SELECT_OVERWRITE_WITH_FLOWID_15_8 ((uint32_t) 3U)
236 
237 #define CSL_PKTDMA_TAG_SELECT_OVERWRITE_WITH_TAG_7_0 ((uint32_t) 4U)
238 
239 #define CSL_PKTDMA_TAG_SELECT_OVERWRITE_WITH_TAG_15_8 ((uint32_t) 5U)
240 
241 #define CSL_PKTDMA_TAG_SELECT_INVALID ((uint32_t) 6U)
242 /* @} */
243 
254 typedef uint32_t CSL_PktdmaChanSchedPri;
256 #define CSL_PKTDMA_CHAN_SCHED_PRI_HIGH ((uint32_t) 0U)
257 
258 #define CSL_PKTDMA_CHAN_SCHED_PRI_MED_HIGH ((uint32_t) 1U)
259 
260 #define CSL_PKTDMA_CHAN_SCHED_PRI_MED_LOW ((uint32_t) 2U)
261 
262 #define CSL_PKTDMA_CHAN_SCHED_PRI_LOW ((uint32_t) 3U)
263 /* @} */
264 
265 /* @} */
266 
278 typedef struct
279 {
280  uint32_t loSel;
281  uint8_t loVal;
282  uint32_t hiSel;
283  uint8_t hiVal;
285 
291 typedef struct
292 {
293  uint32_t modId;
294  uint32_t revRtl;
295  uint32_t revMajor;
296  uint32_t custom;
297  uint32_t revMinor;
299 
305 typedef struct
306 {
307  uint32_t einfoPresent;
308  uint32_t psInfoPresent;
309  uint32_t errorHandling;
310  uint32_t sopOffset;
311  uint32_t secure;
312  uint32_t priv;
313  uint32_t privid;
315 
321 typedef struct
322 {
323  uint32_t pauseOnError;
324  uint32_t filterEinfo;
325  uint32_t filterPsWords;
328  uint32_t fetchWordSize;
329  uint32_t trEventNum;
330  uint32_t errEventNum;
331  uint32_t busPriority;
332  uint32_t busQos;
333  uint32_t busOrderId;
335  uint32_t txCredit;
336  uint32_t txTrCQ;
337  uint32_t txThread;
339  uint32_t tdType;
341 
347 typedef struct
348 {
349  uint32_t pauseOnError;
352  uint32_t fetchWordSize;
353  uint32_t trEventNum;
354  uint32_t errEventNum;
355  uint32_t busPriority;
356  uint32_t busQos;
357  uint32_t busOrderId;
358  uint32_t rxTrCQ;
359  uint32_t rxThread;
361  uint32_t flowIdFwRangeCnt;
366 
372 typedef struct
373 {
374  uint32_t enable;
375  uint32_t teardown;
376  uint32_t pause;
377  uint32_t error;
378  uint32_t forcedTeardown;
379 } CSL_PktdmaRT;
380 
386 typedef struct
387 {
388  CSL_pktdma_gcfgRegs *pGenCfgRegs;
389  CSL_pktdma_rxfcfgRegs *pRxFlowCfgRegs;
390  CSL_pktdma_txccfgRegs *pTxChanCfgRegs;
391  CSL_pktdma_rxccfgRegs *pRxChanCfgRegs;
392  CSL_pktdma_txcrtRegs *pTxChanRtRegs;
393  CSL_pktdma_rxcrtRegs *pRxChanRtRegs;
394  uint32_t cap0;
395  uint32_t cap1;
396  uint32_t txChanCnt;
397  uint32_t rxChanCnt;
398  uint32_t rxFlowCnt;
399  uint32_t txExtUtcChanCnt;
402 } CSL_PktdmaCfg;
403 
411 typedef struct
412 {
413  uint32_t flowId;
414  uint32_t chnIdx;
416 
422 typedef struct
423 {
424  uint32_t packetCnt;
425  uint32_t completedByteCnt;
426  uint32_t startedByteCnt;
427  uint32_t droppedPacketCnt;
429 
430 /* @} */
431 
448 extern uint32_t CSL_pktdmaGetRevision( const CSL_PktdmaCfg *pCfg );
449 
461 extern int32_t CSL_pktdmaGetRevisionInfo( const CSL_PktdmaCfg *pCfg, CSL_PktdmaRevision *pRev );
462 
479 extern void CSL_pktdmaInitCfg( CSL_PktdmaCfg *pCfg );
480 
492 extern void CSL_pktdmaGetCfg( CSL_PktdmaCfg *pCfg );
493 
514 extern void CSL_pktdmaInitTxChanCfg( CSL_PktdmaTxChanCfg *pTxChanCfg );
515 
537 extern void CSL_pktdmaInitRxChanCfg( CSL_PktdmaRxChanCfg *pRxChanCfg );
538 
553 extern void CSL_pktdmaInitRxFlowCfg( CSL_PktdmaRxFlowCfg *pFlow );
554 
569 extern void CSL_pktdmaSetPerfCtrl( CSL_PktdmaCfg *pCfg, uint32_t rxRetryTimeoutCnt );
570 
583 extern void CSL_pktdmaSetUtcCtrl( CSL_PktdmaCfg *pCfg, uint32_t startingThreadNum );
584 
598 extern int32_t CSL_pktdmaRxFlowCfg( CSL_PktdmaCfg *pCfg, uint32_t flow, const CSL_PktdmaRxFlowCfg *pFlow );
599 
613 extern int32_t CSL_pktdmaRxChanCfg( CSL_PktdmaCfg *pCfg, uint32_t chanIdx, const CSL_PktdmaRxChanCfg *pRxChanCfg );
614 
628 extern int32_t CSL_pktdmaTxChanCfg( CSL_PktdmaCfg *pCfg, uint32_t chanIdx, const CSL_PktdmaTxChanCfg *pTxChanCfg );
629 
643 extern int32_t CSL_pktdmaRxChanSetTrEvent( CSL_PktdmaCfg *pCfg, uint32_t chanIdx, uint32_t trEventNum );
644 
658 extern int32_t CSL_pktdmaTxChanSetTrEvent( CSL_PktdmaCfg *pCfg, uint32_t chanIdx, uint32_t trEventNum );
659 
676 extern int32_t CSL_pktdmaRxChanSetBurstSize( CSL_PktdmaCfg *pCfg, uint32_t chanIdx, CSL_PktdmaChanBurstSize burstSize );
677 
694 extern int32_t CSL_pktdmaTxChanSetBurstSize( CSL_PktdmaCfg *pCfg, uint32_t chanIdx, CSL_PktdmaChanBurstSize burstSize );
695 
711 extern int32_t CSL_pktdmaGetRxRT( const CSL_PktdmaCfg *pCfg, uint32_t chanIdx, CSL_PktdmaRT *pRT );
712 
728 extern int32_t CSL_pktdmaGetTxRT( const CSL_PktdmaCfg *pCfg, uint32_t chanIdx, CSL_PktdmaRT *pRT );
729 
745 extern int32_t CSL_pktdmaSetRxRT( CSL_PktdmaCfg *pCfg, uint32_t chanIdx, const CSL_PktdmaRT *pRT );
746 
762 extern int32_t CSL_pktdmaSetTxRT( CSL_PktdmaCfg *pCfg, uint32_t chanIdx, const CSL_PktdmaRT *pRT );
763 
775 extern int32_t CSL_pktdmaEnableTxChan( CSL_PktdmaCfg *pCfg, uint32_t chanIdx );
776 
788 extern int32_t CSL_pktdmaDisableTxChan( CSL_PktdmaCfg *pCfg, uint32_t chanIdx );
789 
808 extern int32_t CSL_pktdmaTeardownTxChan( CSL_PktdmaCfg *pCfg, uint32_t chanIdx, bool bForce, bool bWait );
809 
824 extern int32_t CSL_pktdmaPauseTxChan( CSL_PktdmaCfg *pCfg, uint32_t chanIdx );
825 
837 extern int32_t CSL_pktdmaUnpauseTxChan( CSL_PktdmaCfg *pCfg, uint32_t chanIdx );
838 
850 extern int32_t CSL_pktdmaTriggerTxChan( CSL_PktdmaCfg *pCfg, uint32_t chanIdx );
851 
865 extern void CSL_pktdmaClearTxChanError( CSL_PktdmaCfg *pCfg, uint32_t chanIdx );
866 
878 extern int32_t CSL_pktdmaEnableRxChan( CSL_PktdmaCfg *pCfg, uint32_t chanIdx );
879 
891 extern int32_t CSL_pktdmaDisableRxChan( CSL_PktdmaCfg *pCfg, uint32_t chanIdx );
892 
911 extern int32_t CSL_pktdmaTeardownRxChan( CSL_PktdmaCfg *pCfg, uint32_t chanIdx, bool bForce, bool bWait );
912 
927 extern int32_t CSL_pktdmaPauseRxChan( CSL_PktdmaCfg *pCfg, uint32_t chanIdx );
928 
940 extern int32_t CSL_pktdmaUnpauseRxChan( CSL_PktdmaCfg *pCfg, uint32_t chanIdx );
941 
953 extern int32_t CSL_pktdmaTriggerRxChan( CSL_PktdmaCfg *pCfg, uint32_t chanIdx );
954 
968 extern void CSL_pktdmaClearRxChanError( CSL_PktdmaCfg *pCfg, uint32_t chanIdx );
969 
984 extern void CSL_pktdmaCfgRxFlowIdFirewall( CSL_PktdmaCfg *pCfg, uint32_t outEvtNum );
985 
1010 
1026 extern void CSL_pktdmaGetChanStats( const CSL_PktdmaCfg *pCfg, uint32_t chanIdx, CSL_PktdmaChanDir chanDir, CSL_PktdmaChanStats *pChanStats );
1027 
1045 extern void CSL_pktdmaDecChanStats( CSL_PktdmaCfg *pCfg, uint32_t chanIdx, CSL_PktdmaChanDir chanDir, const CSL_PktdmaChanStats *pChanStats );
1046 
1062 extern int32_t CSL_pktdmaGetChanPeerReg( const CSL_PktdmaCfg *pCfg, uint32_t chanIdx, CSL_PktdmaChanDir chanDir, uint32_t regIdx, uint32_t *pVal );
1063 
1079 extern int32_t CSL_pktdmaSetChanPeerReg( const CSL_PktdmaCfg *pCfg, uint32_t chanIdx, CSL_PktdmaChanDir chanDir, uint32_t regIdx, uint32_t *pVal );
1080 
1094 extern int32_t CSL_pktdmaEnableLink( CSL_PktdmaCfg *pCfg, uint32_t chanIdx, CSL_PktdmaChanDir chanDir );
1095 
1096 /* @} */
1097 
1098 #ifdef __cplusplus
1099 }
1100 #endif /* extern "C" */
1101 
1102 #endif /* end of CSL_PKTDMA_H_ definition */
1103 
uint32_t txChanCnt
Definition: csl_pktdma.h:396
uint32_t forcedTeardown
Definition: csl_pktdma.h:378
uint32_t rxThread
Definition: csl_pktdma.h:359
uint32_t sopOffset
Definition: csl_pktdma.h:310
uint32_t secure
Definition: csl_pktdma.h:311
int32_t CSL_pktdmaGetRevisionInfo(const CSL_PktdmaCfg *pCfg, CSL_PktdmaRevision *pRev)
Return revision information of the PKTDMA module.
Channel runtime configuration information.
Definition: csl_pktdma.h:372
uint32_t revMajor
Definition: csl_pktdma.h:295
uint32_t CSL_PktdmaChanBurstSize
Definition: csl_pktdma.h:133
uint32_t custom
Definition: csl_pktdma.h:296
int32_t CSL_pktdmaEnableTxChan(CSL_PktdmaCfg *pCfg, uint32_t chanIdx)
Enable a transmit channel.
CSL_PktdmaChanType chanType
Definition: csl_pktdma.h:327
uint32_t rxTrCQ
Definition: csl_pktdma.h:358
uint32_t fetchWordSize
Definition: csl_pktdma.h:328
uint32_t txTrCQ
Definition: csl_pktdma.h:336
PKTDMA configuration structure.
Definition: csl_pktdma.h:386
CSL_pktdma_gcfgRegs * pGenCfgRegs
Definition: csl_pktdma.h:388
void CSL_pktdmaInitTxChanCfg(CSL_PktdmaTxChanCfg *pTxChanCfg)
Initialize a CSL_PktdmaTxChanCfg structure.
uint32_t errEventNum
Definition: csl_pktdma.h:330
Transmit / receive channel statistics.
Definition: csl_pktdma.h:422
uint32_t privid
Definition: csl_pktdma.h:313
uint32_t pause
Definition: csl_pktdma.h:376
CSL_PktdmaChanSchedPri dmaPriority
Definition: csl_pktdma.h:334
Routing tag information.
Definition: csl_pktdma.h:278
int32_t CSL_pktdmaRxChanCfg(CSL_PktdmaCfg *pCfg, uint32_t chanIdx, const CSL_PktdmaRxChanCfg *pRxChanCfg)
Configure an RX channel.
int32_t CSL_pktdmaTxChanSetTrEvent(CSL_PktdmaCfg *pCfg, uint32_t chanIdx, uint32_t trEventNum)
[udmap_only]Configure an TX channel TR event
bool CSL_pktdmaGetRxFlowIdFirewallStatus(CSL_PktdmaCfg *pCfg, CSL_PktdmaRxFlowIdFirewallStatus *pRxFlowIdFwStatus)
Get receive flow ID range firewall status information.
int32_t CSL_pktdmaRxChanSetTrEvent(CSL_PktdmaCfg *pCfg, uint32_t chanIdx, uint32_t trEventNum)
[udmap_only] Configure an RX channel TR event
uint32_t CSL_PktdmaAddrType
Definition: csl_pktdma.h:189
uint32_t priv
Definition: csl_pktdma.h:312
uint32_t trEventNum
Definition: csl_pktdma.h:329
void CSL_pktdmaSetUtcCtrl(CSL_PktdmaCfg *pCfg, uint32_t startingThreadNum)
[udmap_only] Set UTC control parmeters
void CSL_pktdmaSetPerfCtrl(CSL_PktdmaCfg *pCfg, uint32_t rxRetryTimeoutCnt)
Set performance control parmeters.
int32_t CSL_pktdmaUnpauseTxChan(CSL_PktdmaCfg *pCfg, uint32_t chanIdx)
Un-pause a transmit channel.
int32_t CSL_pktdmaDisableTxChan(CSL_PktdmaCfg *pCfg, uint32_t chanIdx)
Disable a transmit channel.
int32_t CSL_pktdmaRxFlowCfg(CSL_PktdmaCfg *pCfg, uint32_t flow, const CSL_PktdmaRxFlowCfg *pFlow)
Configure an RX flow.
int32_t CSL_pktdmaTeardownTxChan(CSL_PktdmaCfg *pCfg, uint32_t chanIdx, bool bForce, bool bWait)
Teardown a transmit channel.
void CSL_pktdmaGetCfg(CSL_PktdmaCfg *pCfg)
Return PKTDMA configuration information.
int32_t CSL_pktdmaTxChanSetBurstSize(CSL_PktdmaCfg *pCfg, uint32_t chanIdx, CSL_PktdmaChanBurstSize burstSize)
Configure TX channel burst size.
uint32_t CSL_PktdmaPsLoc
Definition: csl_pktdma.h:173
uint32_t droppedPacketCnt
Definition: csl_pktdma.h:427
void CSL_pktdmaClearRxChanError(CSL_PktdmaCfg *pCfg, uint32_t chanIdx)
Clear error indication in a receive channel.
uint32_t txUltraHighCapacityChanCnt
Definition: csl_pktdma.h:401
int32_t CSL_pktdmaSetTxRT(CSL_PktdmaCfg *pCfg, uint32_t chanIdx, const CSL_PktdmaRT *pRT)
Set a TX channel's real-time register values.
uint32_t busOrderId
Definition: csl_pktdma.h:333
int32_t CSL_pktdmaSetChanPeerReg(const CSL_PktdmaCfg *pCfg, uint32_t chanIdx, CSL_PktdmaChanDir chanDir, uint32_t regIdx, uint32_t *pVal)
Write a channel peer register.
int32_t CSL_pktdmaSetRxRT(CSL_PktdmaCfg *pCfg, uint32_t chanIdx, const CSL_PktdmaRT *pRT)
Set an RX channel's real-time register values.
uint32_t pauseOnError
Definition: csl_pktdma.h:349
uint32_t filterPsWords
Definition: csl_pktdma.h:325
void CSL_pktdmaInitRxChanCfg(CSL_PktdmaRxChanCfg *pRxChanCfg)
Initialize a CSL_PktdmaRxChanCfg structure.
int32_t CSL_pktdmaPauseRxChan(CSL_PktdmaCfg *pCfg, uint32_t chanIdx)
Pause a receive channel.
int32_t CSL_pktdmaRxChanSetBurstSize(CSL_PktdmaCfg *pCfg, uint32_t chanIdx, CSL_PktdmaChanBurstSize burstSize)
Configure RX channel burst size.
uint32_t fetchWordSize
Definition: csl_pktdma.h:352
uint8_t hiVal
Definition: csl_pktdma.h:283
void CSL_pktdmaClearTxChanError(CSL_PktdmaCfg *pCfg, uint32_t chanIdx)
Clear error indication in a transmit channel.
uint32_t busPriority
Definition: csl_pktdma.h:331
uint32_t CSL_PktdmaTagSelect
Definition: csl_pktdma.h:227
uint32_t busQos
Definition: csl_pktdma.h:332
int32_t CSL_pktdmaTriggerTxChan(CSL_PktdmaCfg *pCfg, uint32_t chanIdx)
[udmap_only] Send a trigger event to a TX channel
uint32_t CSL_PktdmaChanType
Definition: csl_pktdma.h:207
CSL_pktdma_rxfcfgRegs * pRxFlowCfgRegs
Definition: csl_pktdma.h:389
uint32_t hiSel
Definition: csl_pktdma.h:282
uint32_t filterEinfo
Definition: csl_pktdma.h:324
int32_t CSL_pktdmaGetChanPeerReg(const CSL_PktdmaCfg *pCfg, uint32_t chanIdx, CSL_PktdmaChanDir chanDir, uint32_t regIdx, uint32_t *pVal)
Read a channel peer register.
void CSL_pktdmaGetChanStats(const CSL_PktdmaCfg *pCfg, uint32_t chanIdx, CSL_PktdmaChanDir chanDir, CSL_PktdmaChanStats *pChanStats)
Get channel statistics.
uint32_t cap1
Definition: csl_pktdma.h:395
uint32_t trEventNum
Definition: csl_pktdma.h:353
uint32_t flowIdFwRangeCnt
Definition: csl_pktdma.h:361
bool bNoTeardownCompletePkt
Definition: csl_pktdma.h:338
uint32_t chnIdx
Definition: csl_pktdma.h:414
uint32_t error
Definition: csl_pktdma.h:377
uint32_t txExtUtcChanCnt
Definition: csl_pktdma.h:399
uint32_t busPriority
Definition: csl_pktdma.h:355
void CSL_pktdmaDecChanStats(CSL_PktdmaCfg *pCfg, uint32_t chanIdx, CSL_PktdmaChanDir chanDir, const CSL_PktdmaChanStats *pChanStats)
Decrement channel statistics.
int32_t CSL_pktdmaTxChanCfg(CSL_PktdmaCfg *pCfg, uint32_t chanIdx, const CSL_PktdmaTxChanCfg *pTxChanCfg)
Configure a TX channel.
uint32_t revMinor
Definition: csl_pktdma.h:297
uint32_t busQos
Definition: csl_pktdma.h:356
uint32_t revRtl
Definition: csl_pktdma.h:294
int32_t CSL_pktdmaPauseTxChan(CSL_PktdmaCfg *pCfg, uint32_t chanIdx)
Pause a transmit channel.
uint32_t cap0
Definition: csl_pktdma.h:394
void CSL_pktdmaCfgRxFlowIdFirewall(CSL_PktdmaCfg *pCfg, uint32_t outEvtNum)
Configure the receive flow ID range firewall.
uint32_t startedByteCnt
Definition: csl_pktdma.h:426
CSL_PktdmaAddrType addrType
Definition: csl_pktdma.h:350
int32_t CSL_pktdmaGetTxRT(const CSL_PktdmaCfg *pCfg, uint32_t chanIdx, CSL_PktdmaRT *pRT)
Get a TX channel's real-time register values.
uint32_t rxFlowCnt
Definition: csl_pktdma.h:398
Module revision information.
Definition: csl_pktdma.h:291
int32_t CSL_pktdmaGetRxRT(const CSL_PktdmaCfg *pCfg, uint32_t chanIdx, CSL_PktdmaRT *pRT)
Get an RX channel's real-time register values.
uint32_t flowId
Definition: csl_pktdma.h:413
int32_t CSL_pktdmaDisableRxChan(CSL_PktdmaCfg *pCfg, uint32_t chanIdx)
Disable a receive channel.
uint32_t errEventNum
Definition: csl_pktdma.h:354
[udmap_only] PKTDMA receive flow id firewall status
Definition: csl_pktdma.h:411
uint32_t packetCnt
Definition: csl_pktdma.h:424
Receive flow configuration information.
Definition: csl_pktdma.h:305
uint32_t txThread
Definition: csl_pktdma.h:337
uint32_t tdType
Definition: csl_pktdma.h:339
uint32_t txHighCapacityChanCnt
Definition: csl_pktdma.h:400
CSL_pktdma_txcrtRegs * pTxChanRtRegs
Definition: csl_pktdma.h:392
CSL_pktdma_rxcrtRegs * pRxChanRtRegs
Definition: csl_pktdma.h:393
int32_t CSL_pktdmaEnableRxChan(CSL_PktdmaCfg *pCfg, uint32_t chanIdx)
Enable a receive channel.
void CSL_pktdmaInitCfg(CSL_PktdmaCfg *pCfg)
Initialize contents of a PKTDMA configuration structure.
uint32_t errorHandling
Definition: csl_pktdma.h:309
CSL_pktdma_txccfgRegs * pTxChanCfgRegs
Definition: csl_pktdma.h:390
uint32_t enable
Definition: csl_pktdma.h:374
This file contains the Register Desciptions for CSL types.
uint32_t pauseOnError
Definition: csl_pktdma.h:323
uint32_t CSL_pktdmaGetRevision(const CSL_PktdmaCfg *pCfg)
Return revision of the PKTDMA module.
uint32_t flowIdFwRangeStart
Definition: csl_pktdma.h:360
uint32_t loSel
Definition: csl_pktdma.h:280
int32_t CSL_pktdmaUnpauseRxChan(CSL_PktdmaCfg *pCfg, uint32_t chanIdx)
Un-pause a receive channel.
bool bIgnoreLongPkts
Definition: csl_pktdma.h:363
uint32_t einfoPresent
Definition: csl_pktdma.h:307
uint32_t modId
Definition: csl_pktdma.h:293
uint32_t CSL_PktdmaDescType
Definition: csl_pktdma.h:153
CSL_pktdma_rxccfgRegs * pRxChanCfgRegs
Definition: csl_pktdma.h:391
CSL_PktdmaChanSchedPri dmaPriority
Definition: csl_pktdma.h:364
int32_t CSL_pktdmaTeardownRxChan(CSL_PktdmaCfg *pCfg, uint32_t chanIdx, bool bForce, bool bWait)
Teardown a receive channel.
int32_t CSL_pktdmaEnableLink(CSL_PktdmaCfg *pCfg, uint32_t chanIdx, CSL_PktdmaChanDir chanDir)
Enable a directional data flow for a paired link.
uint32_t completedByteCnt
Definition: csl_pktdma.h:425
uint32_t CSL_PktdmaChanDir
Definition: csl_pktdma.h:116
uint32_t busOrderId
Definition: csl_pktdma.h:357
uint8_t loVal
Definition: csl_pktdma.h:281
uint32_t txCredit
Definition: csl_pktdma.h:335
int32_t CSL_pktdmaTriggerRxChan(CSL_PktdmaCfg *pCfg, uint32_t chanIdx)
[udmap_only] Send a trigger event to an RX channel
uint32_t CSL_PktdmaChanSchedPri
Definition: csl_pktdma.h:254
void CSL_pktdmaInitRxFlowCfg(CSL_PktdmaRxFlowCfg *pFlow)
Initialize a CSL_PktdmaRxFlowCfg structure.
CSL_PktdmaAddrType addrType
Definition: csl_pktdma.h:326
uint32_t teardown
Definition: csl_pktdma.h:375
CSL_PktdmaChanType chanType
Definition: csl_pktdma.h:351
Receive channel configuration information.
Definition: csl_pktdma.h:347
uint32_t rxChanCnt
Definition: csl_pktdma.h:397
Transmit channel configuration information.
Definition: csl_pktdma.h:321
bool bIgnoreShortPkts
Definition: csl_pktdma.h:362
uint32_t psInfoPresent
Definition: csl_pktdma.h:308