AM64x MCU+ SDK  11.01.00
enet_udma.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) Texas Instruments Incorporated 2020-25
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 ENET_UDMA_H_
48 #define ENET_UDMA_H_
49 
50 /* ========================================================================== */
51 /* Include Files */
52 /* ========================================================================== */
53 
54 #include <stdint.h>
58 
59 #include <drivers/udma.h>
60 
61 #ifdef __cplusplus
62 extern "C" {
63 #endif
64 
65 /* ========================================================================== */
66 /* Macros */
67 /* ========================================================================== */
68 
78 #define ENET_UDMA_HPD_SIZE (128U)
79 
81 #define ENET_UDMA_EXTENDED_PKT_INFO_BLOCK_SIZE (16U)
82 
84 #define ENET_UDMA_PROTOCOL_SPECIFIC_INFO_BLOCK_SIZE (16U)
85 
87 #define ENET_UDMA_PKT_DESC_RESERVED_SIZE ( ENET_UDMA_HPD_SIZE - \
88  sizeof(CSL_UdmapCppi5HMPD) - \
89  (ENET_UDMA_EXTENDED_PKT_INFO_BLOCK_SIZE + \
90  ENET_UDMA_PROTOCOL_SPECIFIC_INFO_BLOCK_SIZE))
91 
93 #define ENET_UDMA_RING_MEM_SIZE (sizeof(uint64_t))
94 
110 #define ENET_UDMA_RXMTU_ALIGN (1U << 5U)
111 
113 #define ENET_UDMA_CPSW_MAX_SG_LIST (4U)
114 
116 #define ENET_UDMA_CPSW_HOSTPKTDESC_INDEX (0U)
117 
119 #define ENET_UDMA_CPSW_HOSTBUFDESC_INDEX (1U)
120 
122 #define ENET_UDMA_CPSW_MAX_HOSTBUFDESC_COUNT (ENET_UDMA_CPSW_MAX_SG_LIST - ENET_UDMA_CPSW_HOSTBUFDESC_INDEX)
123 
125 #define ENET_UDMA_HPD_SRC_TAG_LOW_MASK (0xFF)
126 
127 #if ((__ARM_ARCH == 7) && (__ARM_ARCH_PROFILE == 'R'))
128 
129 #define ENETDMA_CACHELINE_ALIGNMENT (64U)
130 #elif (__aarch64__)
131 #define ENETDMA_CACHELINE_ALIGNMENT (64U)
132 #elif ((__ARM_ARCH == 8) && (__ARM_ARCH_PROFILE == 'M'))
133 #define ENETDMA_CACHELINE_ALIGNMENT (64U)
134 #else
135 #error "Enet library compilation not supported on non cortex R cores. Update correct cache line size"
136 #endif
137 
139 #define ENET_UDMA_DESC_ALIGNMENT (64U)
140 
142 #define ENET_UDMA_ICSSG_LRE_TX_OFFLOAD_DISABLE (0U)
143 
145 #define ENET_UDMA_ICSSG_LRE_TX_OFFLOAD_ENABLE (1U)
146 
148 #define ENET_UDMA_ICSSG_LRE_RX_OFFLOAD_DISABLE (0U)
149 
151 #define ENET_UDMA_ICSSG_LRE_RX_OFFLOAD_ENABLE (1U)
152 
158 typedef struct EnetUdma_DmaDescQ_s *EnetUdma_DmaDescQHandle;
159 
166 typedef void (*EnetDma_PktNotifyCb)(void *cbArg);
167 
177 
178 /* ========================================================================== */
179 /* Structures and Enums */
180 /* ========================================================================== */
181 
197 typedef struct EnetUdma_PktTsInfo_s
198 {
201 
203  uint32_t txPktSeqId;
204 
206  uint8_t txPktMsgType;
207 
209  uint8_t txPktDomain;
210 
212  uint64_t rxPktTs;
214 
230 typedef struct EnetUdma_SGListEntry_s
231 {
239  uint8_t *bufPtr;
240 
244  uint8_t *origBufPtr;
245 
248 
250  uint32_t segmentAllocLen;
251 
254 
266 typedef struct EnetUdma_SGList_s
267 {
275 
277 typedef struct EnetUdma_PktInfo_s
278 {
283 
285  void *appPriv;
286 
292  uint32_t pktState;
293 
303  uint32_t chkSumInfo;
304 
315 
326 
331 
343  uint32_t txPktTc;
344 
346  uint32_t txTsId;
347 
354 
356 
362 typedef struct EnetUdma_CpswHpdDesc_s
363 {
365  CSL_UdmapCppi5HMPD hostDesc __attribute__ ((aligned(ENET_UDMA_DESC_ALIGNMENT)));
366 
375  uint8_t extendedPktInfo[ENET_UDMA_EXTENDED_PKT_INFO_BLOCK_SIZE];
376 
386 
390 
397 typedef struct EnetUdma_DmaDesc_s
398 {
403 
405  {
406  CSL_UdmapCppi5HMPD desc __attribute__ ((aligned(ENET_UDMA_DESC_ALIGNMENT)));
408 
410  struct EnetUdma_DmaDesc_s *pNextDesc;
411 
417 
436 typedef struct EnetUdma_RingMonCfg_s
437 {
438  #if (ENET_SCICLIENT_AVAILABLE == 1)
439 
440  #endif
441  uint8_t mode;
442 
452  uint32_t data0;
453 
463  uint32_t data1;
465 
466 
472 typedef struct EnetUdma_UdmaRingPrms_s
473 {
476  uint8_t orderId;
477 
479  #if (ENET_SCICLIENT_AVAILABLE ==1)
480  /* Refer \ref tisci_msg_rm_ring_cfg_req::mode */
481  #endif
482  uint8_t mode;
483 
489 
493 
500 typedef struct EnetUdma_UdmaChPrms_s
501 {
502 #if (UDMA_SOC_CFG_UDMAP_PRESENT == 1)
503 
504  EnetUdma_UdmaRingPrms fqRingPrms;
505 #endif
506 
510 
516 typedef struct EnetUdma_UdmaFlowPrms_s
517 {
519  uint8_t einfoPresent;
520 
523  uint8_t psInfoPresent;
524 
527  uint16_t sopOffset;
528 
530  uint16_t defaultRxCQ;
531 
532 #if (ENET_UDMA_FDQ_PRESENT == 1)
533 
536  uint8_t srcTagHi;
537 
541  uint8_t srcTagLo;
542 
546  uint8_t srcTagHiSel;
547 
551  uint8_t srcTagLoSel;
552 
556  uint8_t destTagHi;
557 
561  uint8_t destTagLo;
562 
566  uint8_t destTagHiSel;
567 
571  uint8_t destTagLoSel;
572 #endif
573 
575  uint8_t sizeThreshEn;
576 
578 
584 typedef struct EnetUdma_UdmaChTxPrms_s
585 {
587  uint8_t filterEinfo;
588 
590  uint8_t filterPsWords;
591 
593  #if (ENET_SCICLIENT_AVAILABLE ==1)
594  /* Refer #tisci_msg_rm_udmap_tx_ch_cfg_req::tx_atype */
595  #endif
596  uint8_t addrType;
597 
598  #if (ENET_SCICLIENT_AVAILABLE ==1)
599 
600  #endif
601  uint8_t chanType;
602 
604  uint8_t busPriority;
605 
607  uint8_t busQos;
608 
610  uint8_t busOrderId;
611 
614  #if (ENET_SCICLIENT_AVAILABLE ==1)
615  /* Refer #tisci_msg_rm_udmap_tx_ch_cfg_req::tx_sched_priority */
616  #endif
617  uint8_t dmaPriority;
618 
620  uint8_t txCredit;
621 
627  uint16_t fifoDepth;
629 
633 typedef struct EnetUdma_AutoReclaimPrms_s
634 {
648 
653 
659 
667 typedef struct EnetUdma_OpenRxFlowPrms_s
668 {
671 
673  uint32_t chIdx;
674 
676  uint32_t startIdx;
677 
679  uint32_t flowIdx;
680 
683 
687 
691 
694 
697  uint32_t numRxPkts;
698 
701 
704  uint32_t rxFlowMtu;
705 
708  void *cbArg;
709 
714  bool useProxy;
715 
719 
725 
731 typedef struct EnetUdma_OpenTxChPrms_s
732 {
735 
739  uint32_t chNum;
740 
743 
746 
750 
752  uint32_t perMode;
753 
757 
760  uint32_t numTxPkts;
761 
764 
767  void *cbArg;
768 
773  bool useProxy;
774 
778 
786 typedef struct EnetUdma_RxChInitPrms_s
787 {
788  #if (ENET_SCICLIENT_AVAILABLE == 1)
789 
792  #endif
793  uint8_t dmaPriority;
795 
802 typedef struct EnetUdma_Cfg_s
803 {
806 
809 } EnetDma_Cfg;
810 
816 typedef struct EnetUdma_DmaCfg_s
817 {
821 
822 /* ========================================================================== */
823 /* Global Variables Declarations */
824 /* ========================================================================== */
825 
826 /* None */
827 
828 /* ========================================================================== */
829 /* Function Declarations */
830 /* ========================================================================== */
832 
842 
862  const EnetUdma_OpenRxFlowPrms *pRxFlowPrms);
863 
885  EnetDma_PktQ *fq,
886  EnetDma_PktQ *cq);
887 
897 
917  const EnetUdma_OpenTxChPrms *pTxChPrms);
918 
941  EnetDma_PktQ *fq,
942  EnetDma_PktQ *cq);
943 
945  uint32_t instId,
946  const EnetDma_initCfg *pDmaInitCfg);
948 
969  uint32_t margin);
970 
992  uint32_t margin);
993 
1005 
1017 
1029 
1041 
1042 /* ========================================================================== */
1043 /* Deprecated Function Declarations */
1044 /* ========================================================================== */
1045 
1046 /* None */
1047 
1048 /* ========================================================================== */
1049 /* Static Function Definitions */
1050 /* ========================================================================== */
1051 
1052 /* None */
1053 
1054 #ifdef __cplusplus
1055 }
1056 #endif
1057 
1058 #endif /* ENET_UDMA_H_ */
1059 
EnetUdma_RingMonCfg::data1
uint32_t data1
Definition: enet_udma.h:463
EnetUdma_getRxFlowDescPoolHandle
EnetUdma_DmaDescQHandle EnetUdma_getRxFlowDescPoolHandle(EnetDma_RxChHandle hRxFlow)
Get handle to DMA descriptor free pool for RX flow.
EnetUdma_DmaDesc::pNextDesc
struct EnetUdma_DmaDesc_s * pNextDesc
Definition: enet_udma.h:410
EnetUdma_OpenRxFlowPrms::notifyCb
EnetDma_PktNotifyCb notifyCb
Definition: enet_udma.h:690
EnetUdma_RxChInitPrms::dmaPriority
uint8_t dmaPriority
Definition: enet_udma.h:793
EnetUdma_UdmaChTxPrms::fifoDepth
uint16_t fifoDepth
Definition: enet_udma.h:627
EnetDma_initCfg::hUdmaDrv
Udma_DrvHandle hUdmaDrv
Definition: enet_udma.h:819
EnetUdma_closeTxCh
int32_t EnetUdma_closeTxCh(EnetDma_TxChHandle hTxCh, EnetDma_PktQ *fq, EnetDma_PktQ *cq)
Enet DMA close TX channel.
EnetUdma_OpenRxFlowPrms::numRxPkts
uint32_t numRxPkts
Definition: enet_udma.h:697
ENET_UDMA_EXTENDED_PKT_INFO_BLOCK_SIZE
#define ENET_UDMA_EXTENDED_PKT_INFO_BLOCK_SIZE
Extended Packet Info Block size.
Definition: enet_udma.h:81
EnetUdma_initTxChParams
void EnetUdma_initTxChParams(EnetUdma_OpenTxChPrms *pTxChPrms)
Initialize TX channel open parameters.
EnetUdma_OpenTxChPrms
Param struct for the TX channel open function.
Definition: enet_udma.h:732
EnetUdma_UdmaFlowPrms
UDMA RX channel flow parameters.
Definition: enet_udma.h:517
EnetUdma_SGListEntry::disableCacheOps
bool disableCacheOps
Definition: enet_udma.h:252
EnetUdma_SGListEntry::segmentFilledLen
uint32_t segmentFilledLen
Definition: enet_udma.h:247
EnetUdma_PktInfo::tsInfo
EnetUdma_PktTsInfo tsInfo
Definition: enet_udma.h:314
EnetUdma_UdmaRingPrms::mode
uint8_t mode
Definition: enet_udma.h:482
EnetUdma_OpenRxFlowPrms::flowPrms
EnetUdma_UdmaFlowPrms flowPrms
Definition: enet_udma.h:693
EnetUdma_PktTsInfo::rxPktTs
uint64_t rxPktTs
Definition: enet_udma.h:212
EnetDma_Cfg
Config structure for Enet UDMA.
Definition: enet_udma.h:803
EnetDma_SGListEntry
EnetUdma_SGListEntry EnetDma_SGListEntry
Definition: enet_udma.h:276
EnetUdma_PktInfo::pktState
uint32_t pktState
Definition: enet_udma.h:292
EnetUdma_OpenTxChPrms::disableCacheOpsFlag
bool disableCacheOpsFlag
Definition: enet_udma.h:763
EnetUdma_UdmaChTxPrms::dmaPriority
uint8_t dmaPriority
Definition: enet_udma.h:617
EnetUdma_getRxFlowFqHandle
Udma_RingHandle EnetUdma_getRxFlowFqHandle(EnetDma_RxChHandle hRxFlow)
Get RX flow FQ handle.
EnetUdma_OpenRxFlowPrms::useProxy
bool useProxy
Definition: enet_udma.h:714
EnetUdma_PktTsInfo::txPktDomain
uint8_t txPktDomain
Definition: enet_udma.h:209
EnetUdma_OpenTxChPrms::udmaChPrms
EnetUdma_UdmaChPrms udmaChPrms
Definition: enet_udma.h:742
EnetUdma_PktInfo::txPktTc
uint32_t txPktTc
Definition: enet_udma.h:343
ENET_UDMA_DESC_ALIGNMENT
#define ENET_UDMA_DESC_ALIGNMENT
UDMA descriptor address alignment requirement.
Definition: enet_udma.h:139
enet_types.h
This file contains the basic types using across the Enet driver.
EnetUdma_PktInfo::appPriv
void * appPriv
Definition: enet_udma.h:285
EnetUdma_UdmaChTxPrms::busOrderId
uint8_t busOrderId
Definition: enet_udma.h:610
EnetUdma_UdmaChTxPrms::addrType
uint8_t addrType
Definition: enet_udma.h:596
Enet_MacPort
Enet_MacPort
MAC port.
Definition: enet_types.h:412
EnetUdma_OpenRxFlowPrms::disableCacheOpsFlag
bool disableCacheOpsFlag
Definition: enet_udma.h:700
EnetUdma_closeRxFlow
int32_t EnetUdma_closeRxFlow(EnetDma_RxChHandle hRxCh, EnetDma_PktQ *fq, EnetDma_PktQ *cq)
Enet DMA close RX channel.
EnetUdma_OpenTxChPrms::autoReclaimPrms
EnetUdma_AutoReclaimPrms autoReclaimPrms
Definition: enet_udma.h:776
EnetUdma_RingMonCfg
UDMA ring monitor config parameters.
Definition: enet_udma.h:437
EnetUdma_UdmaRingPrms::ringMonCfg
EnetUdma_RingMonCfg ringMonCfg
Definition: enet_udma.h:491
EnetUdma_OpenTxChPrms::useProxy
bool useProxy
Definition: enet_udma.h:773
EnetUdma_openRxFlow
EnetDma_RxChHandle EnetUdma_openRxFlow(EnetDma_Handle hDma, const EnetUdma_OpenRxFlowPrms *pRxFlowPrms)
Enet DMA open RX channel.
EnetUdma_OpenTxChPrms::notifyCb
EnetDma_PktNotifyCb notifyCb
Definition: enet_udma.h:756
EnetUdma_OpenRxFlowPrms::flowIdx
uint32_t flowIdx
Definition: enet_udma.h:679
EnetDma_TxChHandle
struct EnetUdma_TxChObj_s * EnetDma_TxChHandle
Opaque handle that holds software state for Enet TX DMA channel.
Definition: enet_udma_types.h:99
EnetUdma_DmaDesc::hpdDesc
EnetUdma_CpswHpdDesc hpdDesc
Definition: enet_udma.h:402
enet_queue.h
This file contains the type definitions and helper macros for the Enet software queue.
ENET_UDMA_PKT_DESC_RESERVED_SIZE
#define ENET_UDMA_PKT_DESC_RESERVED_SIZE
Extended Packet Info Block size.
Definition: enet_udma.h:87
EnetUdma_OpenRxFlowPrms::chIdx
uint32_t chIdx
Definition: enet_udma.h:673
EnetUdma_PktInfo::txTsId
uint32_t txTsId
Definition: enet_udma.h:346
EnetUdma_UdmaFlowPrms::sizeThreshEn
uint8_t sizeThreshEn
Definition: enet_udma.h:575
EnetUdma_OpenTxChPrms::cbArg
void * cbArg
Definition: enet_udma.h:767
ENET_UDMA_CPSW_MAX_SG_LIST
#define ENET_UDMA_CPSW_MAX_SG_LIST
Definition: enet_udma.h:113
EnetUdma_UdmaRingPrms::orderId
uint8_t orderId
Definition: enet_udma.h:476
EnetDma_PktNotifyCb
void(* EnetDma_PktNotifyCb)(void *cbArg)
Function pointer type for packet notify call back.
Definition: enet_udma.h:166
EnetUdma_UdmaChTxPrms::txCredit
uint8_t txCredit
Definition: enet_udma.h:620
Udma_RingHandle
void * Udma_RingHandle
UDMA ring handle.
Definition: udma_types.h:71
EnetUdma_AutoReclaimPrms::enableFlag
bool enableFlag
Definition: enet_udma.h:647
EnetUdma_UdmaFlowPrms::defaultRxCQ
uint16_t defaultRxCQ
Definition: enet_udma.h:530
EnetQ_Node
A generic node structure for a single link list.
Definition: enet_queue.h:74
EnetUdma_CpswHpdDesc::__attribute__
CSL_UdmapCppi5HMPD hostDesc __attribute__((aligned(ENET_UDMA_DESC_ALIGNMENT)))
EnetUdma_UdmaFlowPrms::psInfoPresent
uint8_t psInfoPresent
Definition: enet_udma.h:523
EnetUdma_AutoReclaimPrms::hDmaDescPool
EnetUdma_DmaDescQHandle hDmaDescPool
Definition: enet_udma.h:652
EnetUdma_checkRxFlowSanity
int32_t EnetUdma_checkRxFlowSanity(EnetDma_RxChHandle hRxFlow, uint32_t margin)
Check if any packet loss in RX flow FQ and CQ rings.
ENET_UDMA_CPSW_MAX_HOSTBUFDESC_COUNT
#define ENET_UDMA_CPSW_MAX_HOSTBUFDESC_COUNT
Definition: enet_udma.h:122
EnetUdma_PktTsInfo::enableHostTxTs
bool enableHostTxTs
Definition: enet_udma.h:200
EnetUdma_RxChInitPrms
Param struct for the RX channel open.
Definition: enet_udma.h:787
EnetUdma_PktInfo::node
EnetQ_Node node
Definition: enet_udma.h:282
EnetUdma_AutoReclaimPrms
Enet UDMA channel/flow auto-reclaim config struct.
Definition: enet_udma.h:634
EnetUdma_OpenTxChPrms::hUdmaDrv
Udma_DrvHandle hUdmaDrv
Definition: enet_udma.h:734
EnetDma_Pkt
struct EnetUdma_PktInfo_s EnetDma_Pkt
Opaque handle that represents a DMA packet.
Definition: enet_udma_types.h:104
EnetDma_OpenRxChPrms
EnetUdma_OpenRxFlowPrms EnetDma_OpenRxChPrms
Param struct for the RX channel open function. We include this typedef as top level DMA APIs use Enet...
Definition: enet_udma.h:724
EnetUdma_OpenTxChPrms::udmaTxChPrms
EnetUdma_UdmaChTxPrms udmaTxChPrms
Definition: enet_udma.h:745
EnetUdma_UdmaChPrms::cqRingPrms
EnetUdma_UdmaRingPrms cqRingPrms
Definition: enet_udma.h:508
EnetUdma_RingMonCfg::data0
uint32_t data0
Definition: enet_udma.h:452
EnetUdma_SGListEntry::bufPtr
uint8_t * bufPtr
Definition: enet_udma.h:239
EnetUdma_DmaDesc::EnetUdma_HBDDesc_s::__attribute__
CSL_UdmapCppi5HMPD desc __attribute__((aligned(ENET_UDMA_DESC_ALIGNMENT)))
EnetUdma_OpenRxFlowPrms::startIdx
uint32_t startIdx
Definition: enet_udma.h:676
EnetUdma_SGList::numScatterSegments
uint32_t numScatterSegments
Definition: enet_udma.h:271
EnetUdma_PktInfo::txPortNum
Enet_MacPort txPortNum
Definition: enet_udma.h:325
EnetUdma_DmaDesc::EnetUdma_HBDDesc_s
Definition: enet_udma.h:405
EnetUdma_UdmaChTxPrms::filterEinfo
uint8_t filterEinfo
Definition: enet_udma.h:587
EnetUdma_CpswHpdDesc
Enet UDMA descriptor format.
Definition: enet_udma.h:363
EnetUdma_UdmaRingPrms::useRingMon
bool useRingMon
Definition: enet_udma.h:488
enet_udma_types.h
This file contains the base DMA definitions.
EnetUdma_OpenRxFlowPrms::useGlobalEvt
bool useGlobalEvt
Definition: enet_udma.h:686
reserved
uint16_t reserved
Definition: tisci_boardcfg_rm.h:2
EnetUdma_OpenRxFlowPrms::rxFlowMtu
uint32_t rxFlowMtu
Definition: enet_udma.h:704
EnetUdma_DmaDesc::dmaPkt
EnetDma_Pkt * dmaPkt
Definition: enet_udma.h:415
Enet_Type
Enet_Type
Ethernet peripheral type.
Definition: enet_types.h:202
EnetUdma_checkTxChSanity
int32_t EnetUdma_checkTxChSanity(EnetDma_TxChHandle hTxCh, uint32_t margin)
Check if any packet loss in TX Channel FQ and CQ rings.
EnetUdma_OpenTxChPrms::useGlobalEvt
bool useGlobalEvt
Definition: enet_udma.h:749
EnetDma_Cfg::rxChInitPrms
EnetUdma_RxChInitPrms rxChInitPrms
Definition: enet_udma.h:808
EnetUdma_SGListEntry::segmentAllocLen
uint32_t segmentAllocLen
Definition: enet_udma.h:250
EnetUdma_PktTsInfo::txPktMsgType
uint8_t txPktMsgType
Definition: enet_udma.h:206
EnetUdma_RingMonCfg::mode
uint8_t mode
Definition: enet_udma.h:441
EnetUdma_getTxChFqHandle
Udma_RingHandle EnetUdma_getTxChFqHandle(EnetDma_TxChHandle hTxCh)
Get TX channel FQ handle.
udma.h
UDMA Driver API/interface file.
EnetUdma_AutoReclaimPrms::hReclaimRing
Udma_RingHandle hReclaimRing
Definition: enet_udma.h:657
EnetUdma_UdmaChTxPrms::chanType
uint8_t chanType
Definition: enet_udma.h:601
EnetUdma_OpenRxFlowPrms
Param struct for the get default flowId open parameters.
Definition: enet_udma.h:668
Udma_DrvHandle
void * Udma_DrvHandle
UDMA driver handle.
Definition: udma_types.h:65
EnetUdma_DmaDescQHandle
struct EnetUdma_DmaDescQ_s * EnetUdma_DmaDescQHandle
Opaque handle to Enet UDMA descriptor queue.
Definition: enet_udma.h:158
EnetUdma_openTxCh
EnetDma_TxChHandle EnetUdma_openTxCh(EnetDma_Handle hDma, const EnetUdma_OpenTxChPrms *pTxChPrms)
Enet DMA open TX channel.
EnetUdma_OpenRxFlowPrms::hUdmaDrv
Udma_DrvHandle hUdmaDrv
Definition: enet_udma.h:670
EnetUdma_UdmaFlowPrms::sopOffset
uint16_t sopOffset
Definition: enet_udma.h:527
EnetUdma_OpenTxChPrms::numTxPkts
uint32_t numTxPkts
Definition: enet_udma.h:760
EnetUdma_PktInfo::sgList
EnetUdma_SGList sgList
Definition: enet_udma.h:353
EnetUdma_SGListEntry
Packet data structure.
Definition: enet_udma.h:231
EnetUdma_SGList
Transmit packet scatter list info.
Definition: enet_udma.h:267
EnetUdma_UdmaChTxPrms::filterPsWords
uint8_t filterPsWords
Definition: enet_udma.h:590
EnetUdma_PktTsInfo
CPPI buffer timestamp info.
Definition: enet_udma.h:198
EnetUdma_DmaDesc
CPPI DMA descriptor.
Definition: enet_udma.h:398
EnetUdma_OpenTxChPrms::perMode
uint32_t perMode
Definition: enet_udma.h:752
EnetUdma_OpenRxFlowPrms::autoReclaimPrms
EnetUdma_AutoReclaimPrms autoReclaimPrms
Definition: enet_udma.h:717
EnetDma_initCfg
Config structure for Enet UDMA Data Path initialization.
Definition: enet_udma.h:817
EnetUdma_PktTsInfo::txPktSeqId
uint32_t txPktSeqId
Definition: enet_udma.h:203
EnetUdma_UdmaChTxPrms::busPriority
uint8_t busPriority
Definition: enet_udma.h:604
EnetUdma_initRxFlowParams
void EnetUdma_initRxFlowParams(EnetUdma_OpenRxFlowPrms *pRxFlowPrms)
Initialize RX channel open parameters.
EnetUdma_PktInfo::chkSumInfo
uint32_t chkSumInfo
Definition: enet_udma.h:303
EnetUdma_PktInfo::rxPortNum
Enet_MacPort rxPortNum
Definition: enet_udma.h:330
EnetUdma_initDataPath
EnetDma_Handle EnetUdma_initDataPath(Enet_Type enetType, uint32_t instId, const EnetDma_initCfg *pDmaInitCfg)
EnetUdma_UdmaChTxPrms
Enet UDMA TX channel parameters.
Definition: enet_udma.h:585
EnetUdma_deInitDataPath
int32_t EnetUdma_deInitDataPath(EnetDma_Handle hEnetUdma)
EnetUdma_SGListEntry::origBufPtr
uint8_t * origBufPtr
Definition: enet_udma.h:244
EnetDma_Cfg::hUdmaDrv
Udma_DrvHandle hUdmaDrv
Definition: enet_udma.h:805
EnetUdma_PktInfo
Definition: enet_udma.h:278
EnetDma_RxChHandle
struct EnetUdma_RxFlowObj_s * EnetDma_RxChHandle
Opaque handle that holds software state for Enet RX DMA flow.
Definition: enet_udma_types.h:94
EnetUdma_getTxChDescPoolHandle
EnetUdma_DmaDescQHandle EnetUdma_getTxChDescPoolHandle(EnetDma_TxChHandle hTxCh)
Get handle to DMA descriptor free pool for TX channel.
EnetDma_Handle
struct EnetUdma_DrvObj_s * EnetDma_Handle
Opaque handle for Enet UDMA driver object.
Definition: enet_udma_types.h:85
EnetUdma_UdmaChPrms
Enet UDMA RX flow/TX channel ring configuration parameters.
Definition: enet_udma.h:501
EnetQ
Generic queue.
Definition: enet_queue.h:83
EnetUdma_UdmaFlowPrms::einfoPresent
uint8_t einfoPresent
Definition: enet_udma.h:519
EnetUdma_initDataPathParams
void EnetUdma_initDataPathParams(EnetDma_initCfg *pDmaConfig)
EnetUdma_OpenTxChPrms::chNum
uint32_t chNum
Definition: enet_udma.h:739
EnetDma_PktQ
EnetQ EnetDma_PktQ
Packet queue.
Definition: enet_udma.h:176
EnetUdma_OpenRxFlowPrms::cbArg
void * cbArg
Definition: enet_udma.h:708
ENET_UDMA_PROTOCOL_SPECIFIC_INFO_BLOCK_SIZE
#define ENET_UDMA_PROTOCOL_SPECIFIC_INFO_BLOCK_SIZE
Extended Packet Info Block size.
Definition: enet_udma.h:84
EnetUdma_UdmaRingPrms
Enet UDMA channel ring parameters.
Definition: enet_udma.h:473
EnetUdma_OpenRxFlowPrms::udmaChPrms
EnetUdma_UdmaChPrms udmaChPrms
Definition: enet_udma.h:682
EnetUdma_UdmaChTxPrms::busQos
uint8_t busQos
Definition: enet_udma.h:607