AM62x MCU+ SDK  10.01.00
enet_udma.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) Texas Instruments Incorporated 2020
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 (32U)
130 #elif (__aarch64__)
131 #define ENETDMA_CACHELINE_ALIGNMENT (64U)
132 #else
133 #error "Enet library compilation not supported on non cortex R cores. Update correct cache line size"
134 #endif
135 
137 #define ENET_UDMA_DESC_ALIGNMENT (64U)
138 
142 typedef struct EnetUdma_Cfg_s EnetDma_Cfg;
143 
149 typedef struct EnetUdma_DmaDescQ_s *EnetUdma_DmaDescQHandle;
150 
161 typedef uint8_t *(*EnetUdma_AllocRingMemFxn)(void *appPriv,
162  uint32_t numRingEle,
163  uint32_t alignSize);
164 
166 typedef void (*EnetUdma_FreeRingMemFxn)(void *appPriv,
167  void *pRingMem,
168  uint32_t numRingEle);
169 
171 typedef struct EnetUdma_DmaDesc_s *(*EnetUdma_AllocDmaDescFxn)(void *appPriv,
172  uint32_t alignSize);
173 
175 typedef void (*EnetUdma_FreeDmaDescFxn)(void *appPriv,
176  struct EnetUdma_DmaDesc_s *dmaDescPtr);
177 
184 typedef void (*EnetDma_PktNotifyCb)(void *cbArg);
185 
188 /* ========================================================================== */
189 /* Structures and Enums */
190 /* ========================================================================== */
191 
207 typedef struct EnetUdma_PktTsInfo_s
208 {
211 
213  uint32_t txPktSeqId;
214 
216  uint8_t txPktMsgType;
217 
219  uint8_t txPktDomain;
220 
222  uint64_t rxPktTs;
224 
240 typedef struct EnetUdma_SGListEntry_s
241 {
249  uint8_t *bufPtr;
250 
254  uint8_t *origBufPtr;
255 
258 
260  uint32_t segmentAllocLen;
261 
264 
276 typedef struct EnetUdma_SGList_s
277 {
285 
287 typedef struct EnetUdma_PktInfo_s
288 {
293 
295  void *appPriv;
296 
302  uint32_t pktState;
303 
313  uint32_t chkSumInfo;
314 
325 
336 
341 
353  uint32_t txPktTc;
354 
356  uint32_t txTsId;
357 
359  uint32_t perDmaFlags;
360 
367 
369 
375 typedef struct EnetUdma_CpswHpdDesc_s
376 {
378  CSL_UdmapCppi5HMPD hostDesc __attribute__ ((aligned(ENET_UDMA_DESC_ALIGNMENT)));
379 
388  uint8_t extendedPktInfo[ENET_UDMA_EXTENDED_PKT_INFO_BLOCK_SIZE];
389 
399 
403 
410 typedef struct EnetUdma_DmaDesc_s
411 {
416 
418  {
419  CSL_UdmapCppi5HMPD desc __attribute__ ((aligned(ENET_UDMA_DESC_ALIGNMENT)));
421 
423  struct EnetUdma_DmaDesc_s *pNextDesc;
424 
430 
449 typedef struct EnetUdma_RingMonCfg_s
450 {
452  uint8_t mode;
453 
463  uint32_t data0;
464 
474  uint32_t data1;
476 
482 typedef struct EnetUdma_UdmaRingPrms_s
483 {
486  uint8_t orderId;
487 
489  uint8_t mode;
490 
496 
500 
507 typedef struct EnetUdma_UdmaChPrms_s
508 {
509 #if (UDMA_SOC_CFG_UDMAP_PRESENT == 1)
510 
511  EnetUdma_UdmaRingPrms fqRingPrms;
512 #endif
513 
517 
523 typedef struct EnetUdma_UdmaFlowPrms_s
524 {
526  uint8_t einfoPresent;
527 
530  uint8_t psInfoPresent;
531 
534  uint16_t sopOffset;
535 
537  uint16_t defaultRxCQ;
538 
542  uint8_t srcTagHi;
543 
547  uint8_t srcTagLo;
548 
552  uint8_t srcTagHiSel;
553 
557  uint8_t srcTagLoSel;
558 
562  uint8_t destTagHi;
563 
567  uint8_t destTagLo;
568 
572  uint8_t destTagHiSel;
573 
577  uint8_t destTagLoSel;
578 
581  uint8_t sizeThreshEn;
582 
584 
590 typedef struct EnetUdma_UdmaChTxPrms_s
591 {
593  uint8_t filterEinfo;
594 
596  uint8_t filterPsWords;
597 
600  uint8_t addrType;
601 
603  uint8_t chanType;
604 
606  uint8_t busPriority;
607 
609  uint8_t busQos;
610 
612  uint8_t busOrderId;
613 
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 
713 
716 
719 
722 
725  void *cbArg;
726 
731  bool useProxy;
732 
736 
742 
748 typedef struct EnetUdma_OpenTxChPrms_s
749 {
752 
756  uint32_t chNum;
757 
760 
763 
767 
771 
774  uint32_t numTxPkts;
775 
778 
786 
789 
792 
795 
798  void *cbArg;
799 
804  bool useProxy;
805 
809 
816 typedef struct EnetUdma_RxChInitPrms_s
817 {
821  uint8_t dmaPriority;
823 
830 typedef struct EnetUdma_Cfg_s
831 {
834 
837 } EnetUdma_Cfg;
838 
844 typedef struct EnetUdma_DmaCfg_s
845 {
849 
852 /* ========================================================================== */
853 /* Global Variables Declarations */
854 /* ========================================================================== */
855 
856 /* None */
857 
858 /* ========================================================================== */
859 /* Function Declarations */
860 /* ========================================================================== */
861 
864  uint32_t instId,
865  const EnetDma_initCfg *pDmaInitCfg);
867 
888  uint32_t margin);
889 
911  uint32_t margin);
912 
924 
936 
948 
960 
961 /* ========================================================================== */
962 /* Deprecated Function Declarations */
963 /* ========================================================================== */
964 
965 /* None */
966 
967 /* ========================================================================== */
968 /* Static Function Definitions */
969 /* ========================================================================== */
970 
971 /* None */
972 
973 #ifdef __cplusplus
974 }
975 #endif
976 
977 #endif /* ENET_UDMA_H_ */
978 
EnetUdma_RingMonCfg::data1
uint32_t data1
Definition: enet_udma.h:474
EnetUdma_DmaDesc::pNextDesc
struct EnetUdma_DmaDesc_s * pNextDesc
Definition: enet_udma.h:423
EnetUdma_OpenRxFlowPrms::notifyCb
EnetDma_PktNotifyCb notifyCb
Definition: enet_udma.h:690
EnetUdma_RxChInitPrms::dmaPriority
uint8_t dmaPriority
Definition: enet_udma.h:821
EnetUdma_UdmaChTxPrms::fifoDepth
uint16_t fifoDepth
Definition: enet_udma.h:627
EnetDma_initCfg::hUdmaDrv
Udma_DrvHandle hUdmaDrv
Definition: enet_udma.h:847
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_OpenTxChPrms::dmaDescFreeFxn
EnetUdma_FreeDmaDescFxn dmaDescFreeFxn
Definition: enet_udma.h:794
EnetDma_Cfg
struct EnetUdma_Cfg_s EnetDma_Cfg
Opaque handle that holds config Info for Enet DMA channel.
Definition: enet_udma.h:142
EnetUdma_OpenTxChPrms
Param struct for the TX channel open function.
Definition: enet_udma.h:749
EnetUdma_UdmaFlowPrms
UDMA RX channel flow parameters.
Definition: enet_udma.h:524
EnetUdma_FreeDmaDescFxn
void(* EnetUdma_FreeDmaDescFxn)(void *appPriv, struct EnetUdma_DmaDesc_s *dmaDescPtr)
Function pointer type for DMA descriptor free function.
Definition: enet_udma.h:175
EnetUdma_SGListEntry::disableCacheOps
bool disableCacheOps
Definition: enet_udma.h:262
EnetUdma_SGListEntry::segmentFilledLen
uint32_t segmentFilledLen
Definition: enet_udma.h:257
EnetUdma_PktInfo::tsInfo
EnetUdma_PktTsInfo tsInfo
Definition: enet_udma.h:324
EnetUdma_UdmaRingPrms::mode
uint8_t mode
Definition: enet_udma.h:489
EnetUdma_OpenRxFlowPrms::flowPrms
EnetUdma_UdmaFlowPrms flowPrms
Definition: enet_udma.h:693
EnetUdma_UdmaFlowPrms::srcTagLoSel
uint8_t srcTagLoSel
Definition: enet_udma.h:557
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_getRxFlowDescPoolHandle
EnetUdma_DmaDescQHandle EnetUdma_getRxFlowDescPoolHandle(EnetDma_RxChHandle hRxFlow)
Get handle to DMA descriptor free pool for RX flow.
EnetUdma_PktTsInfo::rxPktTs
uint64_t rxPktTs
Definition: enet_udma.h:222
EnetDma_SGListEntry
EnetUdma_SGListEntry EnetDma_SGListEntry
Definition: enet_udma.h:286
EnetUdma_PktInfo::pktState
uint32_t pktState
Definition: enet_udma.h:302
EnetUdma_OpenTxChPrms::disableCacheOpsFlag
bool disableCacheOpsFlag
Definition: enet_udma.h:777
EnetUdma_UdmaChTxPrms::dmaPriority
uint8_t dmaPriority
Definition: enet_udma.h:617
EnetUdma_OpenRxFlowPrms::useProxy
bool useProxy
Definition: enet_udma.h:731
EnetUdma_OpenRxFlowPrms::ringMemFreeFxn
EnetUdma_FreeRingMemFxn ringMemFreeFxn
Definition: enet_udma.h:715
EnetUdma_PktTsInfo::txPktDomain
uint8_t txPktDomain
Definition: enet_udma.h:219
EnetUdma_OpenTxChPrms::udmaChPrms
EnetUdma_UdmaChPrms udmaChPrms
Definition: enet_udma.h:759
EnetUdma_PktInfo::txPktTc
uint32_t txPktTc
Definition: enet_udma.h:353
ENET_UDMA_DESC_ALIGNMENT
#define ENET_UDMA_DESC_ALIGNMENT
UDMA descriptor address alignment requirement.
Definition: enet_udma.h:137
enet_types.h
This file contains the basic types using across the Enet driver.
EnetUdma_PktInfo::appPriv
void * appPriv
Definition: enet_udma.h:295
EnetUdma_UdmaChTxPrms::busOrderId
uint8_t busOrderId
Definition: enet_udma.h:612
EnetUdma_UdmaChTxPrms::addrType
uint8_t addrType
Definition: enet_udma.h:600
EnetUdma_AllocRingMemFxn
uint8_t *(* EnetUdma_AllocRingMemFxn)(void *appPriv, uint32_t numRingEle, uint32_t alignSize)
Function pointer type for packet allocation function.
Definition: enet_udma.h:161
Enet_MacPort
Enet_MacPort
MAC port.
Definition: enet_types.h:409
EnetUdma_OpenRxFlowPrms::disableCacheOpsFlag
bool disableCacheOpsFlag
Definition: enet_udma.h:700
EnetUdma_UdmaFlowPrms::srcTagLo
uint8_t srcTagLo
Definition: enet_udma.h:547
EnetUdma_OpenTxChPrms::autoReclaimPrms
EnetUdma_AutoReclaimPrms autoReclaimPrms
Definition: enet_udma.h:807
EnetUdma_RingMonCfg
UDMA ring monitor config parameters.
Definition: enet_udma.h:450
EnetUdma_OpenRxFlowPrms::dmaDescFreeFxn
EnetUdma_FreeDmaDescFxn dmaDescFreeFxn
Definition: enet_udma.h:721
EnetUdma_UdmaRingPrms::ringMonCfg
EnetUdma_RingMonCfg ringMonCfg
Definition: enet_udma.h:498
EnetUdma_Cfg::rxChInitPrms
EnetUdma_RxChInitPrms rxChInitPrms
Definition: enet_udma.h:836
EnetUdma_OpenTxChPrms::useProxy
bool useProxy
Definition: enet_udma.h:804
EnetUdma_OpenTxChPrms::notifyCb
EnetDma_PktNotifyCb notifyCb
Definition: enet_udma.h:770
EnetUdma_OpenRxFlowPrms::flowIdx
uint32_t flowIdx
Definition: enet_udma.h:679
EnetUdma_FreeRingMemFxn
void(* EnetUdma_FreeRingMemFxn)(void *appPriv, void *pRingMem, uint32_t numRingEle)
Function pointer type for packet free function.
Definition: enet_udma.h:166
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:415
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:356
EnetUdma_UdmaFlowPrms::sizeThreshEn
uint8_t sizeThreshEn
Definition: enet_udma.h:581
EnetUdma_OpenTxChPrms::cbArg
void * cbArg
Definition: enet_udma.h:798
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:486
EnetDma_PktNotifyCb
void(* EnetDma_PktNotifyCb)(void *cbArg)
Function pointer type for packet notify call back.
Definition: enet_udma.h:184
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:537
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:530
EnetUdma_AutoReclaimPrms::hDmaDescPool
EnetUdma_DmaDescQHandle hDmaDescPool
Definition: enet_udma.h:652
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:210
EnetUdma_RxChInitPrms
Param struct for the RX channel open.
Definition: enet_udma.h:817
EnetUdma_PktInfo::node
EnetQ_Node node
Definition: enet_udma.h:292
EnetUdma_AutoReclaimPrms
Enet UDMA channel/flow auto-reclaim config struct.
Definition: enet_udma.h:634
EnetUdma_OpenTxChPrms::dmaDescAllocFxn
EnetUdma_AllocDmaDescFxn dmaDescAllocFxn
Definition: enet_udma.h:791
EnetUdma_getRxFlowFqHandle
Udma_RingHandle EnetUdma_getRxFlowFqHandle(EnetDma_RxChHandle hRxFlow)
Get RX flow FQ handle.
EnetUdma_OpenTxChPrms::hUdmaDrv
Udma_DrvHandle hUdmaDrv
Definition: enet_udma.h:751
EnetDma_Pkt
struct EnetUdma_PktInfo_s EnetDma_Pkt
Opaque handle that represents a DMA packet.
Definition: enet_udma_types.h:104
EnetUdma_checkRxFlowSanity
int32_t EnetUdma_checkRxFlowSanity(EnetDma_RxChHandle hRxFlow, uint32_t margin)
Check if any packet loss in RX flow FQ and CQ rings.
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:741
EnetUdma_OpenTxChPrms::udmaTxChPrms
EnetUdma_UdmaChTxPrms udmaTxChPrms
Definition: enet_udma.h:762
EnetUdma_UdmaChPrms::cqRingPrms
EnetUdma_UdmaRingPrms cqRingPrms
Definition: enet_udma.h:515
EnetUdma_RingMonCfg::data0
uint32_t data0
Definition: enet_udma.h:463
EnetUdma_SGListEntry::bufPtr
uint8_t * bufPtr
Definition: enet_udma.h:249
EnetUdma_DmaDesc::EnetUdma_HBDDesc_s::__attribute__
CSL_UdmapCppi5HMPD desc __attribute__((aligned(ENET_UDMA_DESC_ALIGNMENT)))
EnetUdma_UdmaFlowPrms::destTagLo
uint8_t destTagLo
Definition: enet_udma.h:567
EnetUdma_OpenRxFlowPrms::startIdx
uint32_t startIdx
Definition: enet_udma.h:676
EnetUdma_SGList::numScatterSegments
uint32_t numScatterSegments
Definition: enet_udma.h:281
EnetUdma_PktInfo::txPortNum
Enet_MacPort txPortNum
Definition: enet_udma.h:335
EnetUdma_DmaDesc::EnetUdma_HBDDesc_s
Definition: enet_udma.h:418
EnetUdma_UdmaChTxPrms::filterEinfo
uint8_t filterEinfo
Definition: enet_udma.h:593
EnetUdma_initDataPath
EnetDma_Handle EnetUdma_initDataPath(Enet_Type enetType, uint32_t instId, const EnetDma_initCfg *pDmaInitCfg)
EnetUdma_CpswHpdDesc
Enet UDMA descriptor format.
Definition: enet_udma.h:376
EnetUdma_UdmaFlowPrms::srcTagHiSel
uint8_t srcTagHiSel
Definition: enet_udma.h:552
EnetUdma_UdmaRingPrms::useRingMon
bool useRingMon
Definition: enet_udma.h:495
enet_udma_types.h
This file contains the base DMA definitions.
EnetUdma_initDataPathParams
void EnetUdma_initDataPathParams(EnetDma_initCfg *pDmaConfig)
EnetUdma_OpenRxFlowPrms::useGlobalEvt
bool useGlobalEvt
Definition: enet_udma.h:686
reserved
uint16_t reserved
Definition: tisci_boardcfg_rm.h:2
EnetUdma_OpenRxFlowPrms::dmaDescAllocFxn
EnetUdma_AllocDmaDescFxn dmaDescAllocFxn
Definition: enet_udma.h:718
EnetUdma_OpenRxFlowPrms::rxFlowMtu
uint32_t rxFlowMtu
Definition: enet_udma.h:704
EnetUdma_DmaDesc::dmaPkt
EnetDma_Pkt * dmaPkt
Definition: enet_udma.h:428
Enet_Type
Enet_Type
Ethernet peripheral type.
Definition: enet_types.h:199
EnetUdma_UdmaFlowPrms::destTagLoSel
uint8_t destTagLoSel
Definition: enet_udma.h:577
EnetUdma_OpenTxChPrms::useGlobalEvt
bool useGlobalEvt
Definition: enet_udma.h:766
EnetUdma_Cfg
Config structure for Enet UDMA.
Definition: enet_udma.h:831
EnetUdma_SGListEntry::segmentAllocLen
uint32_t segmentAllocLen
Definition: enet_udma.h:260
EnetUdma_PktTsInfo::txPktMsgType
uint8_t txPktMsgType
Definition: enet_udma.h:216
EnetUdma_RingMonCfg::mode
uint8_t mode
Definition: enet_udma.h:452
udma.h
UDMA Driver API/interface file.
EnetUdma_OpenRxFlowPrms::ringMemAllocFxn
EnetUdma_AllocRingMemFxn ringMemAllocFxn
Definition: enet_udma.h:712
EnetUdma_AutoReclaimPrms::hReclaimRing
Udma_RingHandle hReclaimRing
Definition: enet_udma.h:657
EnetUdma_getTxChDescPoolHandle
EnetUdma_DmaDescQHandle EnetUdma_getTxChDescPoolHandle(EnetDma_TxChHandle hTxCh)
Get handle to DMA descriptor free pool for TX channel.
EnetUdma_UdmaChTxPrms::chanType
uint8_t chanType
Definition: enet_udma.h:603
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:149
EnetUdma_OpenRxFlowPrms::hUdmaDrv
Udma_DrvHandle hUdmaDrv
Definition: enet_udma.h:670
EnetUdma_getTxChFqHandle
Udma_RingHandle EnetUdma_getTxChFqHandle(EnetDma_TxChHandle hTxCh)
Get TX channel FQ handle.
EnetUdma_UdmaFlowPrms::destTagHiSel
uint8_t destTagHiSel
Definition: enet_udma.h:572
EnetUdma_UdmaFlowPrms::sopOffset
uint16_t sopOffset
Definition: enet_udma.h:534
EnetUdma_OpenTxChPrms::numTxPkts
uint32_t numTxPkts
Definition: enet_udma.h:774
EnetUdma_PktInfo::sgList
EnetUdma_SGList sgList
Definition: enet_udma.h:366
EnetUdma_SGListEntry
Packet data structure.
Definition: enet_udma.h:241
EnetUdma_SGList
Transmit packet scatter list info.
Definition: enet_udma.h:277
EnetUdma_UdmaChTxPrms::filterPsWords
uint8_t filterPsWords
Definition: enet_udma.h:596
EnetUdma_PktTsInfo
CPPI buffer timestamp info.
Definition: enet_udma.h:208
EnetUdma_OpenTxChPrms::ringMemAllocFxn
EnetUdma_AllocRingMemFxn ringMemAllocFxn
Definition: enet_udma.h:785
EnetUdma_DmaDesc
CPPI DMA descriptor.
Definition: enet_udma.h:411
EnetUdma_OpenRxFlowPrms::autoReclaimPrms
EnetUdma_AutoReclaimPrms autoReclaimPrms
Definition: enet_udma.h:734
EnetDma_initCfg
Config structure for Enet UDMA Data Path initialization.
Definition: enet_udma.h:845
EnetUdma_PktTsInfo::txPktSeqId
uint32_t txPktSeqId
Definition: enet_udma.h:213
EnetUdma_UdmaChTxPrms::busPriority
uint8_t busPriority
Definition: enet_udma.h:606
EnetUdma_PktInfo::chkSumInfo
uint32_t chkSumInfo
Definition: enet_udma.h:313
EnetUdma_UdmaFlowPrms::destTagHi
uint8_t destTagHi
Definition: enet_udma.h:562
EnetUdma_PktInfo::perDmaFlags
uint32_t perDmaFlags
Definition: enet_udma.h:359
EnetUdma_PktInfo::rxPortNum
Enet_MacPort rxPortNum
Definition: enet_udma.h:340
EnetUdma_AllocDmaDescFxn
struct EnetUdma_DmaDesc_s *(* EnetUdma_AllocDmaDescFxn)(void *appPriv, uint32_t alignSize)
Function pointer type for DMA descriptor allocation function.
Definition: enet_udma.h:171
EnetUdma_UdmaChTxPrms
Enet UDMA TX channel parameters.
Definition: enet_udma.h:591
EnetUdma_SGListEntry::origBufPtr
uint8_t * origBufPtr
Definition: enet_udma.h:254
EnetUdma_deInitDataPath
int32_t EnetUdma_deInitDataPath(EnetDma_Handle hEnetUdma)
EnetUdma_PktInfo
Definition: enet_udma.h:288
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
EnetDma_Handle
struct EnetUdma_DrvObj_s * EnetDma_Handle
Opaque handle for Enet UDMA driver object.
Definition: enet_udma_types.h:85
EnetUdma_Cfg::hUdmaDrv
Udma_DrvHandle hUdmaDrv
Definition: enet_udma.h:833
EnetUdma_UdmaFlowPrms::srcTagHi
uint8_t srcTagHi
Definition: enet_udma.h:542
EnetUdma_UdmaChPrms
Enet UDMA RX flow/TX channel ring configuration parameters.
Definition: enet_udma.h:508
EnetUdma_UdmaFlowPrms::einfoPresent
uint8_t einfoPresent
Definition: enet_udma.h:526
EnetUdma_OpenTxChPrms::chNum
uint32_t chNum
Definition: enet_udma.h:756
EnetUdma_OpenRxFlowPrms::cbArg
void * cbArg
Definition: enet_udma.h:725
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_OpenTxChPrms::ringMemFreeFxn
EnetUdma_FreeRingMemFxn ringMemFreeFxn
Definition: enet_udma.h:788
EnetUdma_UdmaRingPrms
Enet UDMA channel ring parameters.
Definition: enet_udma.h:483
EnetUdma_OpenRxFlowPrms::udmaChPrms
EnetUdma_UdmaChPrms udmaChPrms
Definition: enet_udma.h:682
EnetUdma_UdmaChTxPrms::busQos
uint8_t busQos
Definition: enet_udma.h:609