PDK API Guide for AM64x
csl_bcdma.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2019-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  */
89 #ifndef CSL_BCDMA_H_
90 #define CSL_BCDMA_H_
91 
92 #ifdef __cplusplus
93 extern "C" {
94 #endif
95 
96 #include <ti/csl/cslr_bcdma.h>
97 #include <ti/csl/csl_types.h>
98 
99 #define CSL_BCDMA_FETCH_WORD_SIZE_16 (16U)
100 #define CSL_BCDMA_NO_EVENT (0xFFFFU)
101 
102 /*-----------------------------------------------------------------------------
103  * The bcdma can be configured with no block-copy channels. In this case, there
104  * will be no CSL_bcdma_bccfgRegs nor CSL_bcdma_bcrtRegs structures defined in
105  * the CSL-RL file cslr_bcdma.h, so we need typedef replacements for these
106  * to avoid compile errors.
107  *---------------------------------------------------------------------------*/
108 #ifndef CSL_BCDMA_BCCFG_CHAN_CFG_BURST_SIZE_MASK
109 typedef uintptr_t CSL_bcdma_bccfgRegs;
110 #endif
111 #ifndef CSL_BCDMA_BCRT_CHAN_CTL_EN_MASK
112 typedef uintptr_t CSL_bcdma_bcrtRegs;
113 #endif
114 
142 typedef uint32_t CSL_BcdmaChanOp;
144 #define CSL_BCDMA_CHAN_OP_CONFIG ((uint32_t) 0U)
145 
146 #define CSL_BCDMA_CHAN_OP_ENABLE ((uint32_t) 1U)
147 
148 #define CSL_BCDMA_CHAN_OP_DISABLE ((uint32_t) 2U)
149 
150 #define CSL_BCDMA_CHAN_OP_PAUSE ((uint32_t) 3U)
151 
152 #define CSL_BCDMA_CHAN_OP_RESUME ((uint32_t) 4U)
153 
154 #define CSL_BCDMA_CHAN_OP_TEARDOWN ((uint32_t) 5U)
155 
156 #define CSL_BCDMA_CHAN_OP_TRIGGER ((uint32_t) 6U)
157 
158 #define CSL_BCDMA_CHAN_OP_GET_RT ((uint32_t) 7U)
159 
160 #define CSL_BCDMA_CHAN_OP_SET_RT ((uint32_t) 8U)
161 
162 #define CSL_BCDMA_CHAN_OP_GET_STATS ((uint32_t) 9U)
163 
164 #define CSL_BCDMA_CHAN_OP_DEC_STATS ((uint32_t) 10U)
165 
166 #define CSL_BCDMA_CHAN_OP_GET_REMOTE_PEER_REG ((uint32_t) 11U)
167 
168 #define CSL_BCDMA_CHAN_OP_SET_REMOTE_PEER_REG ((uint32_t) 12U)
169 
170 #define CSL_BCDMA_CHAN_OP_SET_BURST_SIZE ((uint32_t) 13U)
171 
172 #define CSL_BCDMA_CHAN_OP_CLEAR_ERROR ((uint32_t) 14U)
173 
174 /* @} */
175 
185 typedef uint32_t CSL_BcdmaChanDir;
187 #define CSL_BCDMA_CHAN_DIR_TX ((uint32_t) 0U)
188 
189 #define CSL_BCDMA_CHAN_DIR_RX ((uint32_t) 1U)
190 /* @} */
191 
202 typedef uint32_t CSL_BcdmaChanBurstSize;
204 #define CSL_BCDMA_CHAN_BURST_SIZE_32_BYTES ((uint32_t) 0U)
205 
206 #define CSL_BCDMA_CHAN_BURST_SIZE_64_BYTES ((uint32_t) 1U)
207 
208 #define CSL_BCDMA_CHAN_BURST_SIZE_128_BYTES ((uint32_t) 2U)
209 
210 #define CSL_BCDMA_CHAN_BURST_SIZE_256_BYTES ((uint32_t) 3U)
211 /* @} */
212 
222 typedef uint32_t CSL_BcdmaDescType;
224 #define CSL_BCDMA_DESC_TYPE_HOST ((uint32_t) 0U)
225 
226 #define CSL_BCDMA_DESC_TYPE_HOST_SB ((uint32_t) 1U)
227 
228 #define CSL_BCDMA_DESC_TYPE_MONOLITHIC ((uint32_t) 2U)
229 
230 #define CSL_BCDMA_DESC_TYPE_RESERVED ((uint32_t) 3U)
231 /* @} */
232 
242 typedef uint32_t CSL_BcdmaPsLoc;
244 #define CSL_BCDMA_PS_LOC_DESC ((uint32_t) 0U)
245 
246 #define CSL_BCDMA_PS_LOC_PACKET ((uint32_t) 1U)
247 /* @} */
248 
258 typedef uint32_t CSL_BcdmaAddrType;
260 #define CSL_BCDMA_ADDR_TYPE_PHYS ((uint32_t) 0U)
261 
262 #define CSL_BCDMA_ADDR_TYPE_INTER ((uint32_t) 1U)
263 
264 #define CSL_BCDMA_ADDR_TYPE_VIRT ((uint32_t) 2U)
265 /* @} */
266 
276 typedef uint32_t CSL_BcdmaChanType;
278 #define CSL_BCDMA_CHAN_TYPE_BLOCK_COPY ((uint32_t) 0U)
279 
280 #define CSL_BCDMA_CHAN_TYPE_SPLIT_TX ((uint32_t) 1U)
281 
282 #define CSL_BCDMA_CHAN_TYPE_SPLIT_RX ((uint32_t) 2U)
283 
285 #define CSL_BCDMA_CHAN_TYPE_REF_PKT_RING ((uint32_t) 2U)
286 
287 #define CSL_BCDMA_CHAN_TYPE_REF_PKTSB_QUEUE ((uint32_t) 3U)
288 
289 #define CSL_BCDMA_CHAN_TYPE_REF_TR_RING ((uint32_t) 10U)
290 
291 #define CSL_BCDMA_CHAN_TYPE_VAL_TR_RING ((uint32_t) 11U)
292 
293 #define CSL_BCDMA_CHAN_TYPE_COPY_REF_TR_RING ((uint32_t) 12U)
294 
295 #define CSL_BCDMA_CHAN_TYPE_COPY_VAL_TR_RING ((uint32_t) 13U)
296 /* @} */
297 
307 typedef uint32_t CSL_BcdmaTagSelect;
309 #define CSL_BCDMA_TAG_SELECT_NO_OVERWRITE ((uint32_t) 0U)
310 
311 #define CSL_BCDMA_TAG_SELECT_OVERWRITE_WITH_VAL ((uint32_t) 1U)
312 
313 #define CSL_BCDMA_TAG_SELECT_OVERWRITE_WITH_FLOWID_7_0 ((uint32_t) 2U)
314 
315 #define CSL_BCDMA_TAG_SELECT_OVERWRITE_WITH_FLOWID_15_8 ((uint32_t) 3U)
316 
317 #define CSL_BCDMA_TAG_SELECT_OVERWRITE_WITH_TAG_7_0 ((uint32_t) 4U)
318 
319 #define CSL_BCDMA_TAG_SELECT_OVERWRITE_WITH_TAG_15_8 ((uint32_t) 5U)
320 
321 #define CSL_BCDMA_TAG_SELECT_INVALID ((uint32_t) 6U)
322 /* @} */
323 
334 typedef uint32_t CSL_BcdmaChanSchedPri;
336 #define CSL_BCDMA_CHAN_SCHED_PRI_HIGH ((uint32_t) 0U)
337 
338 #define CSL_BCDMA_CHAN_SCHED_PRI_MED_HIGH ((uint32_t) 1U)
339 
340 #define CSL_BCDMA_CHAN_SCHED_PRI_MED_LOW ((uint32_t) 2U)
341 
342 #define CSL_BCDMA_CHAN_SCHED_PRI_LOW ((uint32_t) 3U)
343 /* @} */
344 
355 typedef uint32_t CSL_BcdmaDescriptorType;
356 #define CSL_BCDMA_DESCRIPTOR_TYPE_TR ((uint32_t) 3U)
357 /* @} */
358 
359 
360 /* @} */
361 
367 #define CSL_BCDMA_RXFDQ_CNT (4U)
368 #define CSL_BCDMA_RXFDQ_THRESH_CNT (4U)
369 #define CSL_BCDMA_NO_EVENT (0xFFFFU)
370 
377 typedef struct
378 {
379  uint32_t fEnable;
380  uint32_t pktSize;
381  uint32_t queue;
383 
389 typedef struct
390 {
391  uint32_t loSel;
392  uint8_t loVal;
393  uint32_t hiSel;
394  uint8_t hiVal;
396 
402 typedef struct
403 {
404  uint32_t modId;
405  uint32_t revRtl;
406  uint32_t revMajor;
407  uint32_t custom;
408  uint32_t revMinor;
410 
416 typedef struct
417 {
418  uint32_t einfoPresent;
419  uint32_t psInfoPresent;
420  uint32_t errorHandling;
423  uint32_t sopOffset;
424  uint32_t defaultRxCQ;
428  uint32_t fdq[CSL_BCDMA_RXFDQ_CNT];
430 
436 typedef struct
437 {
438  uint32_t pauseOnError;
439  uint32_t filterEinfo;
440  uint32_t filterPsWords;
443  uint32_t fetchWordSize;
444  uint32_t trEventNum;
445  uint32_t errEventNum;
446  uint32_t busPriority;
447  uint32_t busQos;
448  uint32_t busOrderId;
450  uint32_t txCredit;
451  uint32_t txTrCQ;
452  uint32_t txThread;
454  uint32_t tdType;
456  uint32_t threadId;
457  uint32_t virtId;
459 
465 typedef struct
466 {
467  uint32_t pauseOnError;
470  uint32_t fetchWordSize;
471  uint32_t trEventNum;
472  uint32_t errEventNum;
473  uint32_t busPriority;
474  uint32_t busQos;
475  uint32_t busOrderId;
476  uint32_t rxTrCQ;
477  uint32_t rxThread;
479  uint32_t flowIdFwRangeCnt;
484  uint32_t threadId;
485  uint32_t virtId;
487 
493 typedef struct
494 {
495  uint32_t enable;
496  uint32_t teardown;
497  uint32_t pause;
498  uint32_t error;
499  uint32_t forcedTeardown;
500  uint32_t starvation;
501 } CSL_BcdmaRT;
502 
508 typedef struct
509 {
510  CSL_bcdma_gcfgRegs *pGenCfgRegs;
513  CSL_bcdma_txccfgRegs *pTxChanCfgRegs;
514  CSL_bcdma_txcrtRegs *pTxChanRtRegs;
515  CSL_bcdma_rxccfgRegs *pRxChanCfgRegs;
516  CSL_bcdma_rxcrtRegs *pRxChanRtRegs;
517  uint32_t cap0;
518  uint32_t cap1;
519  uint32_t bcChanCnt;
520  uint32_t splitRxChanCnt;
521  uint32_t splitTxChanCnt;
522  uint32_t flowCnt;
523  uint32_t txChanCnt;
524  uint32_t rxChanCnt;
525  uint32_t rxFlowCnt;
526  uint32_t txExtUtcChanCnt;
533 } CSL_BcdmaCfg;
534 
542 typedef struct
543 {
544  uint32_t flowId;
545  uint32_t chnIdx;
547 
553 typedef struct
554 {
555  uint32_t force;
556  uint32_t wait;
558 
564 typedef struct
565 {
566  uint32_t regIdx;
567  uint32_t regVal;
569 
575 typedef struct
576 {
577  uint32_t packetCnt;
578  uint32_t txPayloadByteCnt;
579  uint32_t txStartedByteCnt;
580  uint32_t rxPayloadByteCnt;
581  uint32_t rxStartedByteCnt;
582  uint32_t completedByteCnt;
583  uint32_t startedByteCnt;
585 
586 /* @} */
587 
604 extern uint32_t CSL_bcdmaGetRevision( const CSL_BcdmaCfg *pCfg );
605 
617 extern int32_t CSL_bcdmaGetRevisionInfo( const CSL_BcdmaCfg *pCfg, CSL_BcdmaRevision *pRev );
618 
635 extern void CSL_bcdmaInitCfg( CSL_BcdmaCfg *pCfg );
636 
656 extern void CSL_bcdmaGetCfg( CSL_BcdmaCfg *pCfg );
657 
678 extern void CSL_bcdmaInitTxChanCfg( CSL_BcdmaTxChanCfg *pTxChanCfg );
679 
701 extern void CSL_bcdmaInitRxChanCfg( CSL_BcdmaRxChanCfg *pRxChanCfg );
702 
717 extern void CSL_bcdmaInitRxFlowCfg( CSL_BcdmaRxFlowCfg *pFlow );
718 
765 extern int32_t CSL_bcdmaChanOp( CSL_BcdmaCfg *pCfg, CSL_BcdmaChanOp chanOp, CSL_BcdmaChanType chanType, uint32_t chanIdx, void *pOpData );
766 
781 extern void CSL_bcdmaSetPerfCtrl( CSL_BcdmaCfg *pCfg, uint32_t rxRetryTimeoutCnt );
782 
795 extern void CSL_bcdmaSetUtcCtrl( CSL_BcdmaCfg *pCfg, uint32_t startingThreadNum );
796 
810 extern int32_t CSL_bcdmaRxFlowCfg( CSL_BcdmaCfg *pCfg, uint32_t flow, const CSL_BcdmaRxFlowCfg *pFlow );
811 
825 extern int32_t CSL_bcdmaRxChanCfg( CSL_BcdmaCfg *pCfg, uint32_t chanIdx, const CSL_BcdmaRxChanCfg *pRxChanCfg );
826 
840 extern int32_t CSL_bcdmaTxChanCfg( CSL_BcdmaCfg *pCfg, uint32_t chanIdx, const CSL_BcdmaTxChanCfg *pTxChanCfg );
841 
856 extern int32_t CSL_bcdmaRxChanSetTrEvent( CSL_BcdmaCfg *pCfg, uint32_t chanIdx, uint32_t trEventNum );
857 
872 extern int32_t CSL_bcdmaTxChanSetTrEvent( CSL_BcdmaCfg *pCfg, uint32_t chanIdx, uint32_t trEventNum );
873 
890 extern int32_t CSL_bcdmaRxChanSetBurstSize( CSL_BcdmaCfg *pCfg, uint32_t chanIdx, CSL_BcdmaChanBurstSize burstSize );
891 
908 extern int32_t CSL_bcdmaTxChanSetBurstSize( CSL_BcdmaCfg *pCfg, uint32_t chanIdx, CSL_BcdmaChanBurstSize burstSize );
909 
923 extern int32_t CSL_bcdmaGetRxRT( CSL_BcdmaCfg *pCfg, uint32_t chanIdx, CSL_BcdmaRT *pRT );
924 
938 extern int32_t CSL_bcdmaGetTxRT( CSL_BcdmaCfg *pCfg, uint32_t chanIdx, CSL_BcdmaRT *pRT );
939 
953 extern int32_t CSL_bcdmaSetRxRT( CSL_BcdmaCfg *pCfg, uint32_t chanIdx, const CSL_BcdmaRT *pRT );
954 
968 extern int32_t CSL_bcdmaSetTxRT( CSL_BcdmaCfg *pCfg, uint32_t chanIdx, const CSL_BcdmaRT *pRT );
969 
981 extern int32_t CSL_bcdmaEnableTxChan( CSL_BcdmaCfg *pCfg, uint32_t chanIdx );
982 
994 extern int32_t CSL_bcdmaDisableTxChan( CSL_BcdmaCfg *pCfg, uint32_t chanIdx );
995 
1014 extern int32_t CSL_bcdmaTeardownTxChan( CSL_BcdmaCfg *pCfg, uint32_t chanIdx, bool bForce, bool bWait );
1015 
1030 extern int32_t CSL_bcdmaPauseTxChan( CSL_BcdmaCfg *pCfg, uint32_t chanIdx );
1031 
1043 extern int32_t CSL_bcdmaUnpauseTxChan( CSL_BcdmaCfg *pCfg, uint32_t chanIdx );
1044 
1057 extern int32_t CSL_bcdmaTriggerTxChan( CSL_BcdmaCfg *pCfg, uint32_t chanIdx );
1058 
1069 extern void CSL_bcdmaClearTxChanError( CSL_BcdmaCfg *pCfg, uint32_t chanIdx );
1070 
1082 extern int32_t CSL_bcdmaEnableRxChan( CSL_BcdmaCfg *pCfg, uint32_t chanIdx );
1083 
1095 extern int32_t CSL_bcdmaDisableRxChan( CSL_BcdmaCfg *pCfg, uint32_t chanIdx );
1096 
1115 extern int32_t CSL_bcdmaTeardownRxChan( CSL_BcdmaCfg *pCfg, uint32_t chanIdx, bool bForce, bool bWait );
1116 
1131 extern int32_t CSL_bcdmaPauseRxChan( CSL_BcdmaCfg *pCfg, uint32_t chanIdx );
1132 
1144 extern int32_t CSL_bcdmaUnpauseRxChan( CSL_BcdmaCfg *pCfg, uint32_t chanIdx );
1145 
1158 extern int32_t CSL_bcdmaTriggerRxChan( CSL_BcdmaCfg *pCfg, uint32_t chanIdx );
1159 
1170 extern void CSL_bcdmaClearRxChanError( CSL_BcdmaCfg *pCfg, uint32_t chanIdx );
1171 
1183 extern void CSL_bcdmaCfgRxFlowIdFirewall( CSL_BcdmaCfg *pCfg, uint32_t outEvtNum );
1184 
1209 
1222 extern void CSL_bcdmaGetChanStats( CSL_BcdmaCfg *pCfg, uint32_t chanIdx, CSL_BcdmaChanDir chanDir, CSL_BcdmaChanStats *pChanStats );
1223 
1238 extern void CSL_bcdmaDecChanStats( CSL_BcdmaCfg *pCfg, uint32_t chanIdx, CSL_BcdmaChanDir chanDir, const CSL_BcdmaChanStats *pChanStats );
1239 
1255 extern int32_t CSL_bcdmaGetChanPeerReg( CSL_BcdmaCfg *pCfg, uint32_t chanIdx, CSL_BcdmaChanDir chanDir, uint32_t regIdx, uint32_t *pVal );
1256 
1272 extern int32_t CSL_bcdmaSetChanPeerReg( CSL_BcdmaCfg *pCfg, uint32_t chanIdx, CSL_BcdmaChanDir chanDir, uint32_t regIdx, uint32_t *pVal );
1273 
1287 extern int32_t CSL_bcdmaEnableLink( CSL_BcdmaCfg *pCfg, uint32_t chanIdx, CSL_BcdmaChanDir chanDir );
1289 /* @} */
1291 /*=============================================================================
1292  * Transfer Request (TR) support
1293  *===========================================================================*/
1303  uint32_t flags;
1304  uint16_t icnt0;
1305  uint16_t icnt1;
1306  uint64_t addr;
1307  int32_t dim1;
1308  uint16_t icnt2;
1309  uint16_t icnt3;
1310  int32_t dim2;
1311  int32_t dim3;
1312  uint32_t fmtflags;
1313  int32_t ddim1;
1314  uint64_t daddr;
1315  int32_t ddim2;
1316  int32_t ddim3;
1317  uint16_t dicnt0;
1318  uint16_t dicnt1;
1319  uint16_t dicnt2;
1320  uint16_t dicnt3;
1321 } __attribute__((__packed__));
1322 
1323 typedef struct CSL_BcdmaTR_t CSL_BcdmaTR;
1324 
1327 {
1328  uint32_t flags;
1329  uint32_t icnt0;
1330  uint64_t addr;
1331 } __attribute__((__packed__));
1332 
1333 typedef struct CSL_BcdmaTR0_t CSL_BcdmaTR0;
1334 
1337 {
1338  uint32_t flags;
1339  uint16_t icnt0;
1340  uint16_t icnt1;
1341  uint64_t addr;
1342  int32_t dim1;
1343 } __attribute__((__packed__));
1344 
1345 typedef struct CSL_BcdmaTR1_t CSL_BcdmaTR1;
1346 
1349 {
1350  uint32_t flags;
1351  uint16_t icnt0;
1352  uint16_t icnt1;
1353  uint64_t addr;
1354  int32_t dim1;
1355  uint32_t icnt2;
1356  int32_t dim2;
1357 } __attribute__((__packed__));
1358 
1359 typedef struct CSL_BcdmaTR2_t CSL_BcdmaTR2;
1360 
1363 {
1364  uint32_t flags;
1365  uint16_t icnt0;
1366  uint16_t icnt1;
1367  uint64_t addr;
1368  int32_t dim1;
1369  uint16_t icnt2;
1370  uint16_t icnt3;
1371  int32_t dim2;
1372  int32_t dim3;
1373 } __attribute__((__packed__));
1374 
1375 typedef struct CSL_BcdmaTR3_t CSL_BcdmaTR3;
1376 
1379 {
1380  uint32_t flags;
1381  uint16_t icnt0;
1382  uint16_t icnt1;
1383  uint64_t addr;
1384  int32_t dim1;
1385  uint16_t icnt2;
1386  uint16_t icnt3;
1387  int32_t dim2;
1388  int32_t dim3;
1389  uint32_t fmtflags;
1390  int32_t ddim1;
1391  uint64_t daddr;
1392  int32_t ddim2;
1393  int32_t ddim3;
1394  uint16_t dicnt0;
1395  uint16_t dicnt1;
1396  uint16_t dicnt2;
1397  uint16_t dicnt3;
1398 } __attribute__((__packed__));
1399 
1400 typedef struct CSL_BcdmaTR15_t CSL_BcdmaTR15;
1401 
1410 #define CSL_BCDMA_TR_FLAGS_TYPE_SHIFT ((uint32_t) 0U)
1411 #define CSL_BCDMA_TR_FLAGS_TYPE_MASK (((uint32_t) 0xFU) << CSL_BCDMA_TR_FLAGS_TYPE_SHIFT)
1412 #define CSL_BCDMA_TR_FLAGS_STATIC_SHIFT ((uint32_t) 4U)
1413 #define CSL_BCDMA_TR_FLAGS_STATIC_MASK (((uint32_t) 1U) << CSL_BCDMA_TR_FLAGS_STATIC_SHIFT)
1414 #define CSL_BCDMA_TR_FLAGS_WAIT_SHIFT ((uint32_t) 5U)
1415 #define CSL_BCDMA_TR_FLAGS_WAIT_MASK (((uint32_t) 1U) << CSL_BCDMA_TR_FLAGS_WAIT_SHIFT)
1416 #define CSL_BCDMA_TR_FLAGS_EVENT_SIZE_SHIFT ((uint32_t) 6U)
1417 #define CSL_BCDMA_TR_FLAGS_EVENT_SIZE_MASK (((uint32_t) 3U) << CSL_BCDMA_TR_FLAGS_EVENT_SIZE_SHIFT)
1418 #define CSL_BCDMA_TR_FLAGS_TRIGGER0_SHIFT ((uint32_t) 8U)
1419 #define CSL_BCDMA_TR_FLAGS_TRIGGER0_MASK (((uint32_t) 3U) << CSL_BCDMA_TR_FLAGS_TRIGGER0_SHIFT)
1420 #define CSL_BCDMA_TR_FLAGS_TRIGGER0_TYPE_SHIFT ((uint32_t) 10U)
1421 #define CSL_BCDMA_TR_FLAGS_TRIGGER0_TYPE_MASK (((uint32_t) 3U) << CSL_BCDMA_TR_FLAGS_TRIGGER0_TYPE_SHIFT)
1422 #define CSL_BCDMA_TR_FLAGS_TRIGGER1_SHIFT ((uint32_t) 12U)
1423 #define CSL_BCDMA_TR_FLAGS_TRIGGER1_MASK (((uint32_t) 3U) << CSL_BCDMA_TR_FLAGS_TRIGGER1_SHIFT)
1424 #define CSL_BCDMA_TR_FLAGS_TRIGGER1_TYPE_SHIFT ((uint32_t) 14U)
1425 #define CSL_BCDMA_TR_FLAGS_TRIGGER1_TYPE_MASK (((uint32_t) 3U) << CSL_BCDMA_TR_FLAGS_TRIGGER1_TYPE_SHIFT)
1426 #define CSL_BCDMA_TR_FLAGS_CMD_ID_SHIFT ((uint32_t) 16U)
1427 #define CSL_BCDMA_TR_FLAGS_CMD_ID_MASK (((uint32_t) 0xFFU) << CSL_BCDMA_TR_FLAGS_CMD_ID_SHIFT)
1428 #define CSL_BCDMA_TR_FLAGS_CFG_FLAGS_SHIFT ((uint32_t) 24U)
1429 #define CSL_BCDMA_TR_FLAGS_CFG_FLAGS_MASK (((uint32_t) 0xFFU) << CSL_BCDMA_TR_FLAGS_CFG_FLAGS_SHIFT)
1430 #define CSL_BCDMA_TR_FLAGS_SA_INDIRECT_SHIFT ((uint32_t) 24U)
1431 #define CSL_BCDMA_TR_FLAGS_SA_INDIRECT_MASK (((uint32_t) 1U) << CSL_BCDMA_TR_FLAGS_SA_INDIRECT_SHIFT)
1432 #define CSL_BCDMA_TR_FLAGS_DA_INDIRECT_SHIFT ((uint32_t) 25U)
1433 #define CSL_BCDMA_TR_FLAGS_DA_INDIRECT_MASK (((uint32_t) 1U) << CSL_BCDMA_TR_FLAGS_DA_INDIRECT_SHIFT)
1434 #define CSL_BCDMA_TR_FLAGS_SUPR_EVT_SHIFT ((uint32_t) 26U)
1435 #define CSL_BCDMA_TR_FLAGS_SUPR_EVT_MASK (((uint32_t) 1U) << CSL_BCDMA_TR_FLAGS_SUPR_EVT_SHIFT)
1436 #define CSL_BCDMA_TR_FLAGS_EOL_SHIFT ((uint32_t) 28U)
1437 #define CSL_BCDMA_TR_FLAGS_EOL_MASK (((uint32_t) 7U) << CSL_BCDMA_TR_FLAGS_EOL_SHIFT)
1438 #define CSL_BCDMA_TR_FLAGS_EOP_SHIFT ((uint32_t) 31U)
1439 #define CSL_BCDMA_TR_FLAGS_EOP_MASK (((uint32_t) 1U) << CSL_BCDMA_TR_FLAGS_EOP_SHIFT)
1440 /* @} */
1441 
1443 {
1444  uint64_t addr;
1445  uint32_t flags;
1446  uint32_t data[13];
1447 } __attribute__((__packed__));
1448 
1449 typedef struct CSL_BcdmaSecTR_t CSL_BcdmaSecTR;
1450 
1459 #define CSL_BCDMA_SECTR_FLAGS_TYPE_SHIFT ((uint32_t) 0U)
1460 #define CSL_BCDMA_SECTR_FLAGS_TYPE_MASK (((uint32_t) 0xFU) << CSL_BCDMA_SECTR_FLAGS_TYPE_SHIFT)
1461 #define CSL_BCDMA_SECTR_FLAGS_TYPE_SPECIFIC_SHIFT ((uint32_t) 4U)
1462 #define CSL_BCDMA_SECTR_FLAGS_TYPE_SPECIFIC_MASK (((uint32_t) 0xFFFFFFF0U) << CSL_BCDMA_SECTR_FLAGS_TYPE_SPECIFIC_SHIFT)
1463 /* @} */
1464 
1465 /*-----------------------------------------------------------------------------
1466  * TR response support
1467  *---------------------------------------------------------------------------*/
1469 {
1470  uint32_t flags;
1471 } __attribute__((__packed__));
1472 
1473 typedef struct CSL_BcdmaTrResponse_t CSL_BcdmaTrResponse;
1474 
1483 #define CSL_BCDMA_TR_RESPONSE_STATUS_TYPE_SHIFT ((uint32_t) 0U)
1484 #define CSL_BCDMA_TR_RESPONSE_STATUS_TYPE_MASK (((uint32_t) 0xFU) << CSL_BCDMA_TR_RESPONSE_STATUS_TYPE_SHIFT)
1485 #define CSL_BCDMA_TR_RESPONSE_STATUS_INFO_SHIFT ((uint32_t) 4U)
1486 #define CSL_BCDMA_TR_RESPONSE_STATUS_INFO_MASK (((uint32_t) 0xFU) << CSL_BCDMA_TR_RESPONSE_STATUS_FIELD_SHIFT)
1487 #define CSL_BCDMA_TR_RESPONSE_CMDID_SHIFT ((uint32_t) 16U)
1488 #define CSL_BCDMA_TR_RESPONSE_CMDID_MASK (((uint32_t) 0xFFU) << CSL_BCDMA_TR_RESPONSE_CMDID_SHIFT)
1489 #define CSL_BCDMA_TR_RESPONSE_CFG_SPECIFIC_SHIFT ((uint32_t) 24U)
1490 #define CSL_BCDMA_TR_RESPONSE_CFG_SPECIFIC_MASK (((uint32_t) 0xFFU) << CSL_BCDMA_TR_RESPONSE_CFG_SPECIFIC_SHIFT)
1491 /* @} */
1492 
1493 /*-----------------------------------------------------------------------------
1494  * Teardown response support
1495  *---------------------------------------------------------------------------*/
1497 {
1498  uint32_t tdIndicator;
1500  uint32_t chId;
1502  uint32_t forced;
1506 } __attribute__((__packed__));
1507 
1508 typedef struct CSL_BcdmaTdResponse_t CSL_BcdmaTdResponse;
1509 
1518 #define CSL_BCDMA_TD_RESPONSE_TD_INDICATOR_SHIFT ((uint32_t) 0U)
1519 #define CSL_BCDMA_TD_RESPONSE_TD_INDICATOR_MASK (((uint32_t) 0xFU) << CSL_BCDMA_TD_RESPONSE_TD_INDICATOR_SHIFT)
1520 #define CSL_BCDMA_TD_RESPONSE_CHAN_ID_SHIFT ((uint32_t) 4U)
1521 #define CSL_BCDMA_TD_RESPONSE_CHAN_ID_MASK (((uint32_t) 0x3FFU) << CSL_BCDMA_TD_RESPONSE_CHAN_ID_SHIFT)
1522 #define CSL_BCDMA_TD_RESPONSE_FORCED_SHIFT ((uint32_t) 31U)
1523 #define CSL_BCDMA_TD_RESPONSE_FORCED_MASK (((uint32_t) 0x1U) << CSL_BCDMA_TD_RESPONSE_FORCED_SHIFT)
1524 /* @} */
1525 
1526 /* @} */
1527 
1542 typedef uint32_t CSL_BcdmaTrFlagsType;
1544 #define CSL_BCDMA_TR_FLAGS_TYPE_1D_DATA_MOVE ((uint32_t) 0U)
1545 
1546 #define CSL_BCDMA_TR_FLAGS_TYPE_2D_DATA_MOVE ((uint32_t) 1U)
1547 
1548 #define CSL_BCDMA_TR_FLAGS_TYPE_3D_DATA_MOVE ((uint32_t) 2U)
1549 
1550 #define CSL_BCDMA_TR_FLAGS_TYPE_4D_DATA_MOVE ((uint32_t) 3U)
1551 
1552 #define CSL_BCDMA_TR_FLAGS_TYPE_4D_DATA_MOVE_FORMATTING ((uint32_t) 4U)
1553 
1554 #define CSL_BCDMA_TR_FLAGS_TYPE_4D_CACHE_WARM ((uint32_t) 5U)
1555 
1556 #define CSL_BCDMA_TR_FLAGS_TYPE_4D_BLOCK_MOVE ((uint32_t) 8U)
1557 
1558 #define CSL_BCDMA_TR_FLAGS_TYPE_4D_BLOCK_MOVE_REPACKING ((uint32_t) 9U)
1559 
1560 #define CSL_BCDMA_TR_FLAGS_TYPE_2D_BLOCK_MOVE ((uint32_t) 10U)
1561 
1562 #define CSL_BCDMA_TR_FLAGS_TYPE_2D_BLOCK_MOVE_REPACKING ((uint32_t) 11U)
1563 
1564 #define CSL_BCDMA_TR_FLAGS_TYPE_4D_BLOCK_MOVE_REPACKING_INDIRECTION ((uint32_t) 15U)
1565 /* @} */
1566 
1578 typedef uint32_t CSL_BcdmaTrFlagsWait;
1580 #define CSL_BCDMA_TR_FLAGS_WAIT_NO ((uint32_t) 0U)
1581 
1582 #define CSL_BCDMA_TR_FLAGS_WAIT_YES ((uint32_t) 1U)
1583 /* @} */
1584 
1594 typedef uint32_t CSL_BcdmaTrFlagsEventSize;
1596 #define CSL_BCDMA_TR_FLAGS_EVENT_SIZE_COMPLETION ((uint32_t) 0U)
1597 
1598 #define CSL_BCDMA_TR_FLAGS_EVENT_SIZE_ICNT1_DEC ((uint32_t) 1U)
1599 
1600 #define CSL_BCDMA_TR_FLAGS_EVENT_SIZE_ICNT2_DEC ((uint32_t) 2U)
1601 
1602 #define CSL_BCDMA_TR_FLAGS_EVENT_SIZE_ICNT3_DEC ((uint32_t) 3U)
1603 /* @} */
1604 
1615 typedef uint32_t CSL_BcdmaTrFlagsTrigger;
1617 #define CSL_BCDMA_TR_FLAGS_TRIGGER_NONE ((uint32_t) 0U)
1618 
1619 #define CSL_BCDMA_TR_FLAGS_TRIGGER_GLOBAL0 ((uint32_t) 1U)
1620 
1621 #define CSL_BCDMA_TR_FLAGS_TRIGGER_GLOBAL1 ((uint32_t) 2U)
1622 
1623 #define CSL_BCDMA_TR_FLAGS_TRIGGER_LOCAL_EVENT ((uint32_t) 3U)
1624 /* @} */
1625 
1638 #define CSL_BCDMA_TR_FLAGS_TRIGGER_TYPE_ICNT1_DEC ((uint32_t) 0U)
1639 
1640 #define CSL_BCDMA_TR_FLAGS_TRIGGER_TYPE_ICNT2_DEC ((uint32_t) 1U)
1641 
1642 #define CSL_BCDMA_TR_FLAGS_TRIGGER_TYPE_ICNT3_DEC ((uint32_t) 2U)
1643 
1644 #define CSL_BCDMA_TR_FLAGS_TRIGGER_TYPE_ALL ((uint32_t) 3U)
1645 /* @} */
1646 
1655 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SHIFT ((uint32_t) 0U)
1656 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_MASK (((uint32_t) 7U) << CSL_BCDMA_TR_FMTFLAGS_AMODE_SHIFT)
1657 #define CSL_BCDMA_TR_FMTFLAGS_DIR_SHIFT ((uint32_t) 3U)
1658 #define CSL_BCDMA_TR_FMTFLAGS_DIR_MASK (((uint32_t) 1U) << CSL_BCDMA_TR_FMTFLAGS_DIR_SHIFT)
1659 #define CSL_BCDMA_TR_FMTFLAGS_ELYPE_SHIFT ((uint32_t) 4U)
1660 #define CSL_BCDMA_TR_FMTFLAGS_ELYPE_MASK (((uint32_t) 0xFU) << CSL_BCDMA_TR_FMTFLAGS_ELYPE_SHIFT)
1661 #define CSL_BCDMA_TR_FMTFLAGS_DFMT_SHIFT ((uint32_t) 8U)
1662 #define CSL_BCDMA_TR_FMTFLAGS_DFMT_MASK (((uint32_t) 0xFU) << CSL_BCDMA_TR_FMTFLAGS_DFMT_SHIFT)
1663 #define CSL_BCDMA_TR_FMTFLAGS_SECTR_SHIFT ((uint32_t) 12U)
1664 #define CSL_BCDMA_TR_FMTFLAGS_SECTR_MASK (((uint32_t) 3U) << CSL_BCDMA_TR_FMTFLAGS_SECTR_SHIFT)
1665 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK0_SHIFT ((uint32_t) 16U)
1666 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK0_MASK (((uint32_t) 0xFU) << CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK0_SHIFT)
1667 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK1_SHIFT ((uint32_t) 20U)
1668 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK1_MASK (((uint32_t) 0xFU) << CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK1_SHIFT)
1669 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_AM0_SHIFT ((uint32_t) 24U)
1670 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_AM0_MASK (((uint32_t) 3U) << CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_AM0_SHIFT)
1671 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_AM1_SHIFT ((uint32_t) 26U)
1672 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_AM1_MASK (((uint32_t) 3U) << CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_AM1_SHIFT)
1673 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_AM2_SHIFT ((uint32_t) 28U)
1674 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_AM2_MASK (((uint32_t) 3U) << CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_AM2_SHIFT)
1675 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_AM3_SHIFT ((uint32_t) 30U)
1676 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_AM3_MASK (((uint32_t) 3U) << CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_AM3_SHIFT)
1677 #define CSL_BCDMA_TR_CACHEFLAGS_CACHEID_SHIFT ((uint32_t) 0U)
1678 #define CSL_BCDMA_TR_CACHEFLAGS_CACHEID_MASK (((uint32_t) 0xFFU) << CSL_BCDMA_TR_CACHEFLAGS_CACHEID_SHIFT)
1679 #define CSL_BCDMA_TR_CACHEFLAGS_CACHEOP_SHIFT ((uint32_t) 24U)
1680 #define CSL_BCDMA_TR_CACHEFLAGS_CACHEOP_MASK (((uint32_t) 0xFFU) << CSL_BCDMA_TR_CACHEFLAGS_CACHEOP_SHIFT)
1681 /* @} */
1682 
1692 typedef uint32_t CSL_BcdmaTrFmtflagsAmode;
1694 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_LINEAR ((uint32_t) 0U)
1695 
1696 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_CIRCULAR ((uint32_t) 1U)
1697 /* @} */
1698 
1711 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK_512B ((uint32_t) 0U)
1712 
1713 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK_1KB ((uint32_t) 1U)
1714 
1715 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK_2KB ((uint32_t) 2U)
1716 
1717 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK_4KB ((uint32_t) 3U)
1718 
1719 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK_8KB ((uint32_t) 4U)
1720 
1721 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK_16KB ((uint32_t) 5U)
1722 
1723 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK_32KB ((uint32_t) 6U)
1724 
1725 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK_64KB ((uint32_t) 7U)
1726 
1727 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK_128KB ((uint32_t) 8U)
1728 
1729 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK_256KB ((uint32_t) 9U)
1730 
1731 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK_512KB ((uint32_t) 10U)
1732 
1733 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK_1GB ((uint32_t) 11U)
1734 
1735 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK_2GB ((uint32_t) 12U)
1736 
1737 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK_4GB ((uint32_t) 13U)
1738 
1739 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK_8GB ((uint32_t) 14U)
1740 
1741 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_CBK_16GB ((uint32_t) 15U)
1742 /* @} */
1743 
1755 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_AMODE_LINEAR ((uint32_t) 0U)
1756 
1757 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_AMODE_CBK0 ((uint32_t) 1U)
1758 
1759 #define CSL_BCDMA_TR_FMTFLAGS_AMODE_SPECIFIC_AMODE_CBK1 ((uint32_t) 2U)
1760 /* @} */
1761 
1771 typedef uint32_t CSL_BcdmaTrFmtflagsDir;
1773 #define CSL_BCDMA_TR_FMTFLAGS_DIR_SRC_USES_AMODE ((uint32_t) 0U)
1774 
1775 #define CSL_BCDMA_TR_FMTFLAGS_DIR_DST_USES_AMODE ((uint32_t) 1U)
1776 /* @} */
1777 
1788 typedef uint32_t CSL_BcdmaTrFmtflagsEltype;
1790 #define CSL_BCDMA_TR_FMTFLAGS_ELYPE_1 ((uint32_t) 0U)
1791 
1792 #define CSL_BCDMA_TR_FMTFLAGS_ELYPE_1p5 ((uint32_t) 1U)
1793 
1794 #define CSL_BCDMA_TR_FMTFLAGS_ELYPE_2 ((uint32_t) 2U)
1795 
1796 #define CSL_BCDMA_TR_FMTFLAGS_ELYPE_3 ((uint32_t) 3U)
1797 
1798 #define CSL_BCDMA_TR_FMTFLAGS_ELYPE_4 ((uint32_t) 4U)
1799 
1800 #define CSL_BCDMA_TR_FMTFLAGS_ELYPE_5 ((uint32_t) 5U)
1801 
1802 #define CSL_BCDMA_TR_FMTFLAGS_ELYPE_16 ((uint32_t) 6U)
1803 
1804 #define CSL_BCDMA_TR_FMTFLAGS_ELYPE_32 ((uint32_t) 7U)
1805 
1806 #define CSL_BCDMA_TR_FMTFLAGS_ELYPE_1_2 ((uint32_t) 8U)
1807 
1808 #define CSL_BCDMA_TR_FMTFLAGS_ELYPE_1p5_2 ((uint32_t) 9U)
1809 
1810 #define CSL_BCDMA_TR_FMTFLAGS_ELYPE_2_1 ((uint32_t) 10U)
1811 
1812 #define CSL_BCDMA_TR_FMTFLAGS_ELYPE_2_1p5 ((uint32_t) 11U)
1813 /* @} */
1814 
1825 typedef uint32_t CSL_BcdmaTrFmtflagsDfmt;
1827 #define CSL_BCDMA_TR_FMTFLAGS_DFMT_NO_CHANGE ((uint32_t) 0U)
1828 
1829 #define CSL_BCDMA_TR_FMTFLAGS_DFMT_CONSTANT_COPY ((uint32_t) 1U)
1830 
1831 #define CSL_BCDMA_TR_FMTFLAGS_DFMT_TRANSPOSE ((uint32_t) 2U)
1832 
1833 #define CSL_BCDMA_TR_FMTFLAGS_DFMT_REVERSE ((uint32_t) 3U)
1834 
1835 #define CSL_BCDMA_TR_FMTFLAGS_DFMT_REVERSE_TRANSPOSE ((uint32_t) 4U)
1836 /* @} */
1837 
1847 typedef uint32_t CSL_BcdmaTrCacheflagsOp;
1849 #define CSL_BCDMA_TR_CACHEFLAGS_OP_PREWARM_CACHE ((uint32_t) 0U)
1850 
1851 #define CSL_BCDMA_TR_CACHEFLAGS_OP_PREWARM_MMU ((uint32_t) 1U)
1852 /* @} */
1853 
1864 typedef uint32_t CSL_BcdmaTrFmtflagsSectr;
1866 #define CSL_BCDMA_TR_FMTFLAGS_SECTR_NONE ((uint32_t) 0U)
1867 
1868 #define CSL_BCDMA_TR_FMTFLAGS_SECTR_64 ((uint32_t) 1U)
1869 
1870 #define CSL_BCDMA_TR_FMTFLAGS_SECTR_128 ((uint32_t) 2U)
1871 /* @} */
1872 
1883 typedef uint32_t CSL_BcdmaTrResponseStatus;
1885 #define CSL_BCDMA_TR_RESPONSE_STATUS_COMPLETE ((uint32_t) 0U)
1886 
1887 #define CSL_BCDMA_TR_RESPONSE_STATUS_TRANSFER_ERR ((uint32_t) 1U)
1888 
1889 #define CSL_BCDMA_TR_RESPONSE_STATUS_ABORTED_ERR ((uint32_t) 2U)
1890 
1891 #define CSL_BCDMA_TR_RESPONSE_STATUS_SUBMISSION_ERR ((uint32_t) 3U)
1892 
1893 #define CSL_BCDMA_TR_RESPONSE_STATUS_UNSUPPORTED_ERR ((uint32_t) 4U)
1894 /* @} */
1895 
1908 #define CSL_BCDMA_TR_RESPONSE_STATUS_SUBMISSION_ICNT0 ((uint32_t) 0U)
1909 
1910 #define CSL_BCDMA_TR_RESPONSE_STATUS_SUBMISSION_FIFO_FULL ((uint32_t) 1U)
1911 
1912 #define CSL_BCDMA_TR_RESPONSE_STATUS_SUBMISSION_OWN ((uint32_t) 2U)
1913 /* @} */
1914 
1928 #define CSL_BCDMA_TR_RESPONSE_STATUS_UNSUPPORTED_TR_TYPE ((uint32_t) 0U)
1929 
1930 #define CSL_BCDMA_TR_RESPONSE_STATUS_UNSUPPORTED_STATIC ((uint32_t) 1U)
1931 
1932 #define CSL_BCDMA_TR_RESPONSE_STATUS_UNSUPPORTED_EOL ((uint32_t) 2U)
1933 
1934 #define CSL_BCDMA_TR_RESPONSE_STATUS_UNSUPPORTED_CFG_SPECIFIC ((uint32_t) 3U)
1935 
1936 #define CSL_BCDMA_TR_RESPONSE_STATUS_UNSUPPORTED_AMODE ((uint32_t) 4U)
1937 
1938 #define CSL_BCDMA_TR_RESPONSE_STATUS_UNSUPPORTED_ELTYPE ((uint32_t) 5U)
1939 
1940 #define CSL_BCDMA_TR_RESPONSE_STATUS_UNSUPPORTED_DFMT ((uint32_t) 6U)
1941 
1942 #define CSL_BCDMA_TR_RESPONSE_STATUS_UNSUPPORTED_SECTR ((uint32_t) 7U)
1943 
1944 #define CSL_BCDMA_TR_RESPONSE_STATUS_UNSUPPORTED_AMODE_SPECIFIC ((uint32_t) 8U)
1945 /* @} */
1946 
1960 #define CSL_BCDMA_TR_RESPONSE_STATUS_TRANSFER_EXCEPTION_SHORT_PKT ((uint32_t) 0U)
1961 
1962 #define CSL_BCDMA_TR_RESPONSE_STATUS_TRANSFER_EXCEPTION_LONG_PKT ((uint32_t) 1U)
1963 /* @} */
1964 
1965 /* @} */
1966 
1982 static inline CSL_BcdmaTrResponseStatus CSL_bcdmaTrResponseGetStatusType( const CSL_BcdmaTrResponse *pTrResponse );
1983 
1984 static inline CSL_BcdmaTrResponseStatus CSL_bcdmaTrResponseGetStatusType( const CSL_BcdmaTrResponse *pTrResponse )
1985 {
1986  return (CSL_BcdmaTrResponseStatus)CSL_FEXT( pTrResponse->flags, BCDMA_TR_RESPONSE_STATUS_TYPE );
1987 }
1988 
1998 static inline void CSL_bcdmaGetTdResponse(uint64_t tdResponseWord,
1999  CSL_BcdmaTdResponse *pTdResponse);
2000 
2001 static inline void CSL_bcdmaGetTdResponse(uint64_t tdResponseWord,
2002  CSL_BcdmaTdResponse *pTdResponse)
2003 {
2004  if(NULL != pTdResponse)
2005  {
2006  pTdResponse->tdIndicator = CSL_FEXT(tdResponseWord, BCDMA_TD_RESPONSE_TD_INDICATOR);
2007  pTdResponse->chId = CSL_FEXT(tdResponseWord, BCDMA_TD_RESPONSE_CHAN_ID);
2008  pTdResponse->forced = CSL_FEXT(tdResponseWord, BCDMA_TD_RESPONSE_FORCED);
2009  }
2010 }
2011 
2012 /* @} */
2013 
2014 /* ----------------------------------------------------------------------------
2015  * CPPI5-related TR defines and API functions
2016  * --------------------------------------------------------------------------*/
2017 
2023  /*-----------------------------------------------------------------------------
2024  * TR Descriptor
2025  *---------------------------------------------------------------------------*/
2031 typedef struct
2032 {
2033  uint32_t descInfo;
2034  uint32_t pktInfo;
2035  uint32_t retInfo;
2036  uint32_t srcDstTag;
2037 } CSL_BcdmaTRPD;
2038 
2039 /*-----------------------------------------------------------------------------
2040  * TR Descriptor field manipulation macros
2041  *---------------------------------------------------------------------------*/
2042 #define CSL_BCDMA_TRPD_DESCINFO_DTYPE_SHIFT ((uint32_t) 30U)
2043 #define CSL_BCDMA_TRPD_DESCINFO_DTYPE_MASK (((uint32_t) 0x3U) << CSL_BCDMA_TRPD_DESCINFO_DTYPE_SHIFT)
2044 #define CSL_BCDMA_TRPD_DESCINFO_DTYPE_VAL_TR ((uint32_t) 3U)
2045 #define CSL_BCDMA_TRPD_DESCINFO_RELOAD_SHIFT ((uint32_t) 20U)
2046 #define CSL_BCDMA_TRPD_DESCINFO_RELOAD_MASK (((uint32_t) 0x1FFU) << CSL_BCDMA_TRPD_DESCINFO_RELOAD_SHIFT)
2047 #define CSL_BCDMA_TRPD_DESCINFO_RLDIDX_SHIFT ((uint32_t) 14U)
2048 #define CSL_BCDMA_TRPD_DESCINFO_RLDIDX_MASK (((uint32_t) 0x3FU) << CSL_BCDMA_TRPD_DESCINFO_RLDIDX_SHIFT)
2049 #define CSL_BCDMA_TRPD_DESCINFO_LASTIDX_SHIFT ((uint32_t) 0)
2050 #define CSL_BCDMA_TRPD_DESCINFO_LASTIDX_MASK (((uint32_t) 0x3FFFU) << CSL_BCDMA_TRPD_DESCINFO_LASTIDX_SHIFT)
2051 
2052 #define CSL_BCDMA_TRPD_PKTINFO_RECSIZE_SHIFT ((uint32_t) 24U)
2053 #define CSL_BCDMA_TRPD_PKTINFO_RECSIZE_MASK (((uint32_t) 0x7U) << CSL_BCDMA_TRPD_PKTINFO_RECSIZE_SHIFT)
2054 #define CSL_BCDMA_TRPD_PKTINFO_RECSIZE_VAL_16B ((uint32_t) 0)
2055 #define CSL_BCDMA_TRPD_PKTINFO_RECSIZE_VAL_32B ((uint32_t) 1U)
2056 #define CSL_BCDMA_TRPD_PKTINFO_RECSIZE_VAL_64B ((uint32_t) 2U)
2057 #define CSL_BCDMA_TRPD_PKTINFO_RECSIZE_VAL_128B ((uint32_t) 3U)
2058 
2059 /* @} */
2060 
2076 static inline uint32_t CSL_bcdmaCppi5GetDescType( const void *pDesc )
2077 {
2078  return (uint32_t)CSL_FEXT( ((const CSL_BcdmaTRPD *)pDesc)->descInfo, BCDMA_TRPD_DESCINFO_DTYPE );
2079 }
2080 
2094 static inline void CSL_bcdmaCppi5TrGetReload( const CSL_BcdmaTRPD *pDesc, uint32_t *pReloadCount, uint32_t *pReloadIdx );
2095 
2096 static inline void CSL_bcdmaCppi5TrGetReload( const CSL_BcdmaTRPD *pDesc, uint32_t *pReloadCount, uint32_t *pReloadIdx )
2097 {
2098  *pReloadCount = (uint32_t)CSL_FEXT( pDesc->descInfo, BCDMA_TRPD_DESCINFO_RELOAD );
2099  *pReloadIdx = (uint32_t)CSL_FEXT( pDesc->descInfo, BCDMA_TRPD_DESCINFO_RLDIDX );
2100 }
2101 
2124 static inline void CSL_bcdmaCppi5TrSetReload( CSL_BcdmaTRPD *pDesc, uint32_t reloadCount, uint32_t reloadIdx );
2125 
2126 static inline void CSL_bcdmaCppi5TrSetReload( CSL_BcdmaTRPD *pDesc, uint32_t reloadCount, uint32_t reloadIdx )
2127 {
2128  CSL_FINS( pDesc->descInfo, BCDMA_TRPD_DESCINFO_RELOAD, reloadCount );
2129  CSL_FINS( pDesc->descInfo, BCDMA_TRPD_DESCINFO_RLDIDX, reloadIdx );
2130 }
2131 
2142 static inline uint32_t CSL_bcdmaCppi5TrGetEntryStride( const CSL_BcdmaTRPD *pDesc );
2143 
2144 static inline uint32_t CSL_bcdmaCppi5TrGetEntryStride( const CSL_BcdmaTRPD *pDesc )
2145 {
2146  return (uint32_t)CSL_FEXT( pDesc->pktInfo, BCDMA_TRPD_PKTINFO_RECSIZE );
2147 }
2148 
2167 static inline void CSL_bcdmaCppi5TrSetEntryStride( CSL_BcdmaTRPD *pDesc, uint32_t entryStride );
2168 
2169 static inline void CSL_bcdmaCppi5TrSetEntryStride( CSL_BcdmaTRPD *pDesc, uint32_t entryStride )
2170 {
2171  CSL_FINS( pDesc->pktInfo, BCDMA_TRPD_PKTINFO_RECSIZE, entryStride );
2172 }
2173 
2184 static inline void CSL_bcdmaCppi5TrSetPktLen( void *pDesc, uint32_t pktLen );
2185 
2186 static inline void CSL_bcdmaCppi5TrSetPktLen( void *pDesc, uint32_t pktLen )
2187 {
2188  CSL_FINS( ((CSL_BcdmaTRPD *)pDesc)->descInfo, BCDMA_TRPD_DESCINFO_LASTIDX, pktLen-1U );
2189 }
2190 
2207 static inline uint32_t CSL_bcdmaCppi5GetPktLen( const void *pDesc );
2208 
2209 static inline uint32_t CSL_bcdmaCppi5GetPktLen( const void *pDesc )
2210 {
2211  uint32_t pktLen;
2212  uint32_t descType = CSL_bcdmaCppi5GetDescType( pDesc );
2213 
2214  if( descType == CSL_BCDMA_TRPD_DESCINFO_DTYPE_VAL_TR )
2215  {
2216  pktLen = (uint32_t)CSL_FEXT( ((const CSL_BcdmaTRPD *)pDesc)->descInfo, BCDMA_TRPD_DESCINFO_LASTIDX ) + (uint32_t)1U;
2217  }
2218  else
2219  {
2220  pktLen = 0;
2221  }
2222  return pktLen;
2223 }
2224 
2243 static inline void CSL_bcdmaCppi5SetPktLen( void *pDesc, uint32_t descType, uint32_t pktLen );
2244 
2245 static inline void CSL_bcdmaCppi5SetPktLen( void *pDesc, uint32_t descType, uint32_t pktLen )
2246 {
2247  if( descType == CSL_BCDMA_TRPD_DESCINFO_DTYPE_VAL_TR )
2248  {
2249  CSL_FINS( ((CSL_BcdmaTRPD *)pDesc)->descInfo, BCDMA_TRPD_DESCINFO_LASTIDX, pktLen-1U );
2250  }
2251 }
2252 
2253 /* @} */
2254 
2255 #ifdef __cplusplus
2256 }
2257 #endif /* extern "C" */
2258 
2259 #endif /* end of CSL_BCDMA_H_ definition */
2260 
uint32_t descInfo
Definition: csl_bcdma.h:2033
uint32_t splitRxChanCnt
Definition: csl_bcdma.h:520
int32_t CSL_bcdmaPauseRxChan(CSL_BcdmaCfg *pCfg, uint32_t chanIdx)
Pause a receive channel.
bool bIgnoreLongPkts
Definition: csl_bcdma.h:481
uint32_t hiSel
Definition: csl_bcdma.h:393
void CSL_bcdmaSetPerfCtrl(CSL_BcdmaCfg *pCfg, uint32_t rxRetryTimeoutCnt)
Set performance control parmeters.
uint32_t CSL_BcdmaTrResponseStatusSubmission
Definition: csl_bcdma.h:1906
uint32_t flags
Definition: csl_bcdma.h:1470
int32_t dim2
Definition: csl_bcdma.h:1387
static void CSL_bcdmaCppi5TrGetReload(const CSL_BcdmaTRPD *pDesc, uint32_t *pReloadCount, uint32_t *pReloadIdx)
Get TR descriptor reload information.
Definition: csl_bcdma.h:2096
uint32_t rxUltraHighCapacityChanCnt
Definition: csl_bcdma.h:530
int32_t dim2
Definition: csl_bcdma.h:1356
uint32_t txTrCQ
Definition: csl_bcdma.h:451
uint32_t cap0
Definition: csl_bcdma.h:517
[udmap_only] Receive free descriptor queue threshold information
Definition: csl_bcdma.h:377
uint16_t icnt1
Definition: csl_bcdma.h:1366
uint32_t cap1
Definition: csl_bcdma.h:518
uint32_t icnt2
Definition: csl_bcdma.h:1355
uint32_t txHighCapacityChanCnt
Definition: csl_bcdma.h:527
bool bNoTeardownCompletePkt
Definition: csl_bcdma.h:453
Module revision information.
Definition: csl_bcdma.h:402
Channel runtime configuration information.
Definition: csl_bcdma.h:493
int32_t dim1
Definition: csl_bcdma.h:1307
uint32_t revMajor
Definition: csl_bcdma.h:406
static void CSL_bcdmaCppi5TrSetEntryStride(CSL_BcdmaTRPD *pDesc, uint32_t entryStride)
Set TR descriptor entry stride.
Definition: csl_bcdma.h:2169
CSL_bcdma_txcrtRegs * pTxChanRtRegs
Definition: csl_bcdma.h:514
uint32_t rxTrCQ
Definition: csl_bcdma.h:476
bool CSL_bcdmaGetRxFlowIdFirewallStatus(CSL_BcdmaCfg *pCfg, CSL_BcdmaRxFlowIdFirewallStatus *pRxFlowIdFwStatus)
[udmap_only] Get receive flow ID range firewall status information
uint32_t force
Definition: csl_bcdma.h:555
uint16_t icnt2
Definition: csl_bcdma.h:1385
uint32_t loSel
Definition: csl_bcdma.h:391
void CSL_bcdmaInitRxChanCfg(CSL_BcdmaRxChanCfg *pRxChanCfg)
Initialize a CSL_BcdmaRxChanCfg structure.
uint32_t CSL_BcdmaTrFmtflagsEltype
Definition: csl_bcdma.h:1788
uint32_t pktSize
Definition: csl_bcdma.h:380
uint32_t virtId
Definition: csl_bcdma.h:485
static void CSL_bcdmaCppi5SetPktLen(void *pDesc, uint32_t descType, uint32_t pktLen)
Set the packet length.
Definition: csl_bcdma.h:2245
uint32_t CSL_bcdmaGetRevision(const CSL_BcdmaCfg *pCfg)
Return revision of the BCDMA module.
uint32_t completedByteCnt
Definition: csl_bcdma.h:582
Definition: csl_bcdma.h:1442
uint32_t flags
Definition: csl_bcdma.h:1364
uint32_t enable
Definition: csl_bcdma.h:495
Channel teardown options.
Definition: csl_bcdma.h:553
uint32_t txStartedByteCnt
Definition: csl_bcdma.h:579
CSL_bcdma_txccfgRegs * pTxChanCfgRegs
Definition: csl_bcdma.h:513
uint32_t CSL_BcdmaTrResponseStatus
Definition: csl_bcdma.h:1883
uint32_t fetchWordSize
Definition: csl_bcdma.h:443
uint16_t icnt0
Definition: csl_bcdma.h:1365
uint32_t CSL_BcdmaTrFlagsTriggerType
Definition: csl_bcdma.h:1636
uint32_t fmtflags
Definition: csl_bcdma.h:1389
int32_t CSL_bcdmaTeardownRxChan(CSL_BcdmaCfg *pCfg, uint32_t chanIdx, bool bForce, bool bWait)
Teardown a receive channel.
int32_t CSL_bcdmaRxChanSetBurstSize(CSL_BcdmaCfg *pCfg, uint32_t chanIdx, CSL_BcdmaChanBurstSize burstSize)
Configure RX channel burst size.
CSL_BcdmaTR1 specifies a Type 1 (Two dimensional data move) Transfer Request.
Definition: csl_bcdma.h:1336
int32_t CSL_bcdmaTeardownTxChan(CSL_BcdmaCfg *pCfg, uint32_t chanIdx, bool bForce, bool bWait)
Teardown a transmit channel.
Remote peer register read/write options.
Definition: csl_bcdma.h:564
void CSL_bcdmaInitCfg(CSL_BcdmaCfg *pCfg)
Initialize contents of a BCDMA configuration structure.
uint32_t bcHighCapacityChanCnt
Definition: csl_bcdma.h:531
uint32_t CSL_BcdmaChanDir
Definition: csl_bcdma.h:185
uint32_t txUltraHighCapacityChanCnt
Definition: csl_bcdma.h:528
uint32_t sopOffset
Definition: csl_bcdma.h:423
CSL_BcdmaTR0 specifies a Type 0 (One dimensional data move) Transfer Request.
Definition: csl_bcdma.h:1326
int32_t dim1
Definition: csl_bcdma.h:1384
uint16_t dicnt0
Definition: csl_bcdma.h:1394
uint32_t flowIdFwRangeCnt
Definition: csl_bcdma.h:479
int32_t CSL_bcdmaEnableLink(CSL_BcdmaCfg *pCfg, uint32_t chanIdx, CSL_BcdmaChanDir chanDir)
Enable a directional data flow for a paired link.
int32_t CSL_bcdmaUnpauseTxChan(CSL_BcdmaCfg *pCfg, uint32_t chanIdx)
Un-pause a transmit channel.
int32_t CSL_bcdmaEnableRxChan(CSL_BcdmaCfg *pCfg, uint32_t chanIdx)
Enable a receive channel.
int32_t CSL_bcdmaEnableTxChan(CSL_BcdmaCfg *pCfg, uint32_t chanIdx)
Enable a transmit channel.
CSL_BcdmaAddrType addrType
Definition: csl_bcdma.h:441
static CSL_BcdmaTrResponseStatus CSL_bcdmaTrResponseGetStatusType(const CSL_BcdmaTrResponse *pTrResponse)
Return the TR response status type.
Definition: csl_bcdma.h:1984
int32_t CSL_bcdmaTxChanSetTrEvent(CSL_BcdmaCfg *pCfg, uint32_t chanIdx, uint32_t trEventNum)
[udmap_only] Configure an TX channel TR event
uint32_t CSL_BcdmaAddrType
Definition: csl_bcdma.h:258
uint32_t errorHandling
Definition: csl_bcdma.h:420
int32_t CSL_bcdmaRxChanSetTrEvent(CSL_BcdmaCfg *pCfg, uint32_t chanIdx, uint32_t trEventNum)
[udmap_only] Configure an RX channel TR event
int32_t CSL_bcdmaRxFlowCfg(CSL_BcdmaCfg *pCfg, uint32_t flow, const CSL_BcdmaRxFlowCfg *pFlow)
[udmap_only] Configure an RX flow
uint32_t chnIdx
Definition: csl_bcdma.h:545
uint32_t filterEinfo
Definition: csl_bcdma.h:439
CSL_BcdmaTR2 specifies a Type 2 (Three dimensional data move) Transfer Request.
Definition: csl_bcdma.h:1348
uint32_t wait
Definition: csl_bcdma.h:556
uint32_t defaultRxCQ
Definition: csl_bcdma.h:424
uint32_t errEventNum
Definition: csl_bcdma.h:445
uint16_t icnt1
Definition: csl_bcdma.h:1340
uint32_t error
Definition: csl_bcdma.h:498
BCDMA configuration structure.
Definition: csl_bcdma.h:508
uint32_t pktInfo
Definition: csl_bcdma.h:2034
static void CSL_bcdmaCppi5TrSetPktLen(void *pDesc, uint32_t pktLen)
Set the packet length of TR mode packet descriptors.
Definition: csl_bcdma.h:2186
CSL_BcdmaChanType chanType
Definition: csl_bcdma.h:442
uint32_t txThread
Definition: csl_bcdma.h:452
uint16_t dicnt0
Definition: csl_bcdma.h:1317
void CSL_bcdmaInitTxChanCfg(CSL_BcdmaTxChanCfg *pTxChanCfg)
Initialize a CSL_BcdmaTxChanCfg structure.
uint32_t txPayloadByteCnt
Definition: csl_bcdma.h:578
TR Descriptor.
Definition: csl_bcdma.h:2031
uint16_t dicnt2
Definition: csl_bcdma.h:1319
uint32_t CSL_BcdmaTagSelect
Definition: csl_bcdma.h:307
uint32_t retInfo
Definition: csl_bcdma.h:2035
CSL_BcdmaChanSchedPri dmaPriority
Definition: csl_bcdma.h:449
uint16_t icnt2
Definition: csl_bcdma.h:1369
uint32_t revMinor
Definition: csl_bcdma.h:408
uint32_t CSL_BcdmaDescriptorType
Definition: csl_bcdma.h:355
uint32_t rxFlowCnt
Definition: csl_bcdma.h:525
int32_t CSL_bcdmaSetRxRT(CSL_BcdmaCfg *pCfg, uint32_t chanIdx, const CSL_BcdmaRT *pRT)
Set an RX channel's real-time register values.
uint32_t CSL_BcdmaChanSchedPri
Definition: csl_bcdma.h:334
uint32_t pauseOnError
Definition: csl_bcdma.h:467
static uint32_t CSL_bcdmaCppi5TrGetEntryStride(const CSL_BcdmaTRPD *pDesc)
Get TR descriptor entry stride.
Definition: csl_bcdma.h:2144
uint32_t fmtflags
Definition: csl_bcdma.h:1312
int32_t dim1
Definition: csl_bcdma.h:1368
uint64_t addr
Definition: csl_bcdma.h:1330
uint64_t addr
Definition: csl_bcdma.h:1306
uint8_t loVal
Definition: csl_bcdma.h:392
[udmap_only] Routing tag information
Definition: csl_bcdma.h:389
uint32_t tdIndicator
Definition: csl_bcdma.h:1498
CSL_bcdma_bcrtRegs * pBcChanRtRegs
Definition: csl_bcdma.h:512
#define CSL_BCDMA_RXFDQ_CNT
Definition: csl_bcdma.h:367
uint32_t CSL_BcdmaPsLoc
Definition: csl_bcdma.h:242
uintptr_t CSL_bcdma_bcrtRegs
Definition: csl_bcdma.h:112
uint32_t fEnable
Definition: csl_bcdma.h:379
int32_t CSL_bcdmaDisableTxChan(CSL_BcdmaCfg *pCfg, uint32_t chanIdx)
Disable a transmit channel.
uint32_t txExtUtcChanCnt
Definition: csl_bcdma.h:526
uint16_t dicnt1
Definition: csl_bcdma.h:1318
uint32_t virtId
Definition: csl_bcdma.h:457
int32_t ddim3
Definition: csl_bcdma.h:1316
bool bIgnoreShortPkts
Definition: csl_bcdma.h:480
uint32_t CSL_BcdmaTrResponseStatusUnsupported
Definition: csl_bcdma.h:1926
uint32_t flowId
Definition: csl_bcdma.h:544
int32_t CSL_bcdmaTxChanCfg(CSL_BcdmaCfg *pCfg, uint32_t chanIdx, const CSL_BcdmaTxChanCfg *pTxChanCfg)
Configure a TX channel.
uint32_t pause
Definition: csl_bcdma.h:497
void CSL_bcdmaDecChanStats(CSL_BcdmaCfg *pCfg, uint32_t chanIdx, CSL_BcdmaChanDir chanDir, const CSL_BcdmaChanStats *pChanStats)
Decrement channel statistics.
uint32_t flowIdFwRangeStart
Definition: csl_bcdma.h:478
uint32_t rxStartedByteCnt
Definition: csl_bcdma.h:581
CSL_BcdmaTR3 specifies a Type 3 (Four dimensional data move) Transfer Request.
Definition: csl_bcdma.h:1362
uint32_t CSL_BcdmaChanOp
Definition: csl_bcdma.h:142
uint32_t CSL_BcdmaTrFmtflagsSectr
Definition: csl_bcdma.h:1864
CSL_BcdmaTR specifies a Transfer Request.
Definition: csl_bcdma.h:1301
uint32_t CSL_BcdmaTrFmtflagsAmodeSpecificAmode
Definition: csl_bcdma.h:1753
int32_t CSL_bcdmaGetTxRT(CSL_BcdmaCfg *pCfg, uint32_t chanIdx, CSL_BcdmaRT *pRT)
Get a TX channel's real-time register values.
uint8_t hiVal
Definition: csl_bcdma.h:394
Definition: csl_bcdma.h:1496
int32_t CSL_bcdmaSetChanPeerReg(CSL_BcdmaCfg *pCfg, uint32_t chanIdx, CSL_BcdmaChanDir chanDir, uint32_t regIdx, uint32_t *pVal)
Write a TX channel peer register.
uint32_t CSL_BcdmaChanType
Definition: csl_bcdma.h:276
#define NULL
Define NULL if not defined.
Definition: csl_types.h:107
uint32_t busQos
Definition: csl_bcdma.h:474
uint32_t busPriority
Definition: csl_bcdma.h:473
static uint32_t CSL_bcdmaCppi5GetPktLen(const void *pDesc)
Get the packet length.
Definition: csl_bcdma.h:2209
uint32_t queue
Definition: csl_bcdma.h:381
uint32_t CSL_BcdmaTrCacheflagsOp
Definition: csl_bcdma.h:1847
uint32_t CSL_BcdmaTrResponseStatusTransferException
Definition: csl_bcdma.h:1958
static void CSL_bcdmaCppi5TrSetReload(CSL_BcdmaTRPD *pDesc, uint32_t reloadCount, uint32_t reloadIdx)
Set TR descriptor reload information.
Definition: csl_bcdma.h:2126
int32_t ddim2
Definition: csl_bcdma.h:1392
uint32_t txCredit
Definition: csl_bcdma.h:450
uint32_t flags
Definition: csl_bcdma.h:1350
CSL_BcdmaRouteTag dstTag
Definition: csl_bcdma.h:426
static void CSL_bcdmaGetTdResponse(uint64_t tdResponseWord, CSL_BcdmaTdResponse *pTdResponse)
Parses the TD response word.
Definition: csl_bcdma.h:2001
uint32_t trEventNum
Definition: csl_bcdma.h:471
uint16_t icnt3
Definition: csl_bcdma.h:1386
CSL_bcdma_bccfgRegs * pBcChanCfgRegs
Definition: csl_bcdma.h:511
uint32_t CSL_BcdmaTrFmtflagsAmode
Definition: csl_bcdma.h:1692
uint64_t daddr
Definition: csl_bcdma.h:1391
uint32_t CSL_BcdmaChanBurstSize
Definition: csl_bcdma.h:202
uint64_t addr
Definition: csl_bcdma.h:1444
Transmit / receive channel statistics.
Definition: csl_bcdma.h:575
uint32_t flags
Definition: csl_bcdma.h:1328
uint32_t bcChanCnt
Definition: csl_bcdma.h:519
uint32_t startedByteCnt
Definition: csl_bcdma.h:583
uint16_t icnt0
Definition: csl_bcdma.h:1351
uint32_t rxChanCnt
Definition: csl_bcdma.h:524
void CSL_bcdmaClearRxChanError(CSL_BcdmaCfg *pCfg, uint32_t chanIdx)
Clear error indication in a receive channel.
uint32_t psInfoPresent
Definition: csl_bcdma.h:419
uint32_t busPriority
Definition: csl_bcdma.h:446
uint32_t regVal
Definition: csl_bcdma.h:567
uint16_t icnt0
Definition: csl_bcdma.h:1339
uint16_t dicnt1
Definition: csl_bcdma.h:1395
uint64_t addr
Definition: csl_bcdma.h:1383
uintptr_t CSL_bcdma_bccfgRegs
Definition: csl_bcdma.h:109
BCDMA receive flow id firewall status.
Definition: csl_bcdma.h:542
int32_t ddim1
Definition: csl_bcdma.h:1390
uint32_t rxHighCapacityChanCnt
Definition: csl_bcdma.h:529
Definition: csl_bcdma.h:1468
uint32_t fetchWordSize
Definition: csl_bcdma.h:470
#define CSL_BCDMA_RXFDQ_THRESH_CNT
Definition: csl_bcdma.h:368
int32_t ddim1
Definition: csl_bcdma.h:1313
uint32_t packetCnt
Definition: csl_bcdma.h:577
Transmit channel configuration information.
Definition: csl_bcdma.h:436
Receive channel configuration information.
Definition: csl_bcdma.h:465
uint32_t chId
Definition: csl_bcdma.h:1500
int32_t dim3
Definition: csl_bcdma.h:1311
#define CSL_BCDMA_TRPD_DESCINFO_DTYPE_VAL_TR
Definition: csl_bcdma.h:2044
uint16_t icnt1
Definition: csl_bcdma.h:1382
[udmap_only] Receive flow configuration information
Definition: csl_bcdma.h:416
uint16_t icnt0
Definition: csl_bcdma.h:1381
int32_t CSL_bcdmaRxChanCfg(CSL_BcdmaCfg *pCfg, uint32_t chanIdx, const CSL_BcdmaRxChanCfg *pRxChanCfg)
Configure an RX channel.
int32_t CSL_bcdmaTriggerRxChan(CSL_BcdmaCfg *pCfg, uint32_t chanIdx)
Send a trigger event to an RX channel.
int32_t CSL_bcdmaGetChanPeerReg(CSL_BcdmaCfg *pCfg, uint32_t chanIdx, CSL_BcdmaChanDir chanDir, uint32_t regIdx, uint32_t *pVal)
Read a channel peer register.
CSL_BcdmaChanType chanType
Definition: csl_bcdma.h:469
uint16_t dicnt2
Definition: csl_bcdma.h:1396
uint32_t regIdx
Definition: csl_bcdma.h:566
uint32_t busOrderId
Definition: csl_bcdma.h:448
int32_t dim2
Definition: csl_bcdma.h:1371
uint32_t teardown
Definition: csl_bcdma.h:496
uint32_t flags
Definition: csl_bcdma.h:1303
int32_t CSL_bcdmaDisableRxChan(CSL_BcdmaCfg *pCfg, uint32_t chanIdx)
Disable a receive channel.
uint32_t CSL_BcdmaDescType
Definition: csl_bcdma.h:222
void CSL_bcdmaGetChanStats(CSL_BcdmaCfg *pCfg, uint32_t chanIdx, CSL_BcdmaChanDir chanDir, CSL_BcdmaChanStats *pChanStats)
Get channel statistics.
uint32_t CSL_BcdmaTrFlagsEventSize
Definition: csl_bcdma.h:1594
void CSL_bcdmaClearTxChanError(CSL_BcdmaCfg *pCfg, uint32_t chanIdx)
Clear error indication in a transmit channel.
uint32_t flags
Definition: csl_bcdma.h:1380
uint32_t rxThread
Definition: csl_bcdma.h:477
uint32_t CSL_BcdmaTrFmtflagsDir
Definition: csl_bcdma.h:1771
int32_t CSL_bcdmaChanOp(CSL_BcdmaCfg *pCfg, CSL_BcdmaChanOp chanOp, CSL_BcdmaChanType chanType, uint32_t chanIdx, void *pOpData)
Perform a channel operation.
uint32_t starvation
Definition: csl_bcdma.h:500
CSL_bcdma_rxcrtRegs * pRxChanRtRegs
Definition: csl_bcdma.h:516
CSL_BcdmaDescType descType
Definition: csl_bcdma.h:421
uint16_t icnt3
Definition: csl_bcdma.h:1370
uint32_t threadId
Definition: csl_bcdma.h:484
int32_t dim1
Definition: csl_bcdma.h:1354
This file contains the Register Desciptions for CSL types.
CSL_BcdmaChanSchedPri dmaPriority
Definition: csl_bcdma.h:482
int32_t CSL_bcdmaPauseTxChan(CSL_BcdmaCfg *pCfg, uint32_t chanIdx)
Pause a transmit channel.
uint64_t addr
Definition: csl_bcdma.h:1367
int32_t ddim3
Definition: csl_bcdma.h:1393
uint32_t einfoPresent
Definition: csl_bcdma.h:418
CSL_BcdmaPsLoc psLocation
Definition: csl_bcdma.h:422
uint32_t flags
Definition: csl_bcdma.h:1338
uint16_t dicnt3
Definition: csl_bcdma.h:1320
int32_t CSL_bcdmaUnpauseRxChan(CSL_BcdmaCfg *pCfg, uint32_t chanIdx)
Un-pause a receive channel.
uint64_t addr
Definition: csl_bcdma.h:1353
CSL_BcdmaRouteTag srcTag
Definition: csl_bcdma.h:425
int32_t CSL_bcdmaSetTxRT(CSL_BcdmaCfg *pCfg, uint32_t chanIdx, const CSL_BcdmaRT *pRT)
Set a TX channel's real-time register values.
int32_t dim1
Definition: csl_bcdma.h:1342
int32_t CSL_bcdmaTxChanSetBurstSize(CSL_BcdmaCfg *pCfg, uint32_t chanIdx, CSL_BcdmaChanBurstSize burstSize)
Configure TX channel burst size.
uint32_t forced
Definition: csl_bcdma.h:1502
uint16_t icnt2
Definition: csl_bcdma.h:1308
uint16_t icnt1
Definition: csl_bcdma.h:1305
uint32_t txChanCnt
Definition: csl_bcdma.h:523
typedef __attribute__
uint32_t splitTxChanCnt
Definition: csl_bcdma.h:521
int32_t CSL_bcdmaGetRxRT(CSL_BcdmaCfg *pCfg, uint32_t chanIdx, CSL_BcdmaRT *pRT)
Get an RX channel's real-time register values.
int32_t dim2
Definition: csl_bcdma.h:1310
int32_t dim3
Definition: csl_bcdma.h:1372
void CSL_bcdmaCfgRxFlowIdFirewall(CSL_BcdmaCfg *pCfg, uint32_t outEvtNum)
[udmap_only] Configure the receive flow ID range firewall
uint32_t CSL_BcdmaTrFlagsType
Definition: csl_bcdma.h:1542
uint32_t rxPayloadByteCnt
Definition: csl_bcdma.h:580
uint32_t data[13]
Definition: csl_bcdma.h:1446
uint32_t modId
Definition: csl_bcdma.h:404
uint32_t filterPsWords
Definition: csl_bcdma.h:440
uint32_t trEventNum
Definition: csl_bcdma.h:444
int32_t ddim2
Definition: csl_bcdma.h:1315
void CSL_bcdmaGetCfg(CSL_BcdmaCfg *pCfg)
Return BCDMA configuration information.
void CSL_bcdmaSetUtcCtrl(CSL_BcdmaCfg *pCfg, uint32_t startingThreadNum)
[udmap_only] Set UTC control parmeters
CSL_BcdmaAddrType addrType
Definition: csl_bcdma.h:468
uint32_t errEventNum
Definition: csl_bcdma.h:472
int32_t CSL_bcdmaGetRevisionInfo(const CSL_BcdmaCfg *pCfg, CSL_BcdmaRevision *pRev)
Return revision information of the BCDMA module.
void CSL_bcdmaInitRxFlowCfg(CSL_BcdmaRxFlowCfg *pFlow)
Initialize a CSL_BcdmaRxFlowCfg structure.
uint32_t tdType
Definition: csl_bcdma.h:454
uint32_t icnt0
Definition: csl_bcdma.h:1329
uint32_t CSL_BcdmaTrFmtflagsAmodeSpecificCbk
Definition: csl_bcdma.h:1709
CSL_BcdmaChanBurstSize burstSize
Definition: csl_bcdma.h:455
uint32_t flags
Definition: csl_bcdma.h:1445
uint32_t busQos
Definition: csl_bcdma.h:447
uint16_t dicnt3
Definition: csl_bcdma.h:1397
uint32_t revRtl
Definition: csl_bcdma.h:405
CSL_bcdma_gcfgRegs * pGenCfgRegs
Definition: csl_bcdma.h:510
CSL_BcdmaChanBurstSize burstSize
Definition: csl_bcdma.h:483
uint32_t srcDstTag
Definition: csl_bcdma.h:2036
uint32_t CSL_BcdmaTrFlagsTrigger
Definition: csl_bcdma.h:1615
uint32_t forcedTeardown
Definition: csl_bcdma.h:499
static uint32_t CSL_bcdmaCppi5GetDescType(const void *pDesc)
Get the descriptor type.
Definition: csl_bcdma.h:2076
uint32_t pauseOnError
Definition: csl_bcdma.h:438
uint32_t busOrderId
Definition: csl_bcdma.h:475
uint64_t daddr
Definition: csl_bcdma.h:1314
uint32_t CSL_BcdmaTrFlagsWait
Definition: csl_bcdma.h:1578
int32_t dim3
Definition: csl_bcdma.h:1388
CSL_bcdma_rxccfgRegs * pRxChanCfgRegs
Definition: csl_bcdma.h:515
uint16_t icnt3
Definition: csl_bcdma.h:1309
uint32_t bcUltraHighCapacityChanCnt
Definition: csl_bcdma.h:532
uint32_t flowCnt
Definition: csl_bcdma.h:522
CSL_BcdmaTR15 specifies a Type 15 Transfer Request.
Definition: csl_bcdma.h:1378
uint16_t icnt0
Definition: csl_bcdma.h:1304
uint64_t addr
Definition: csl_bcdma.h:1341
uint32_t threadId
Definition: csl_bcdma.h:456
uint32_t custom
Definition: csl_bcdma.h:407
uint32_t CSL_BcdmaTrFmtflagsDfmt
Definition: csl_bcdma.h:1825
int32_t CSL_bcdmaTriggerTxChan(CSL_BcdmaCfg *pCfg, uint32_t chanIdx)
Send a trigger event to a TX channel.
uint16_t icnt1
Definition: csl_bcdma.h:1352