 |
AM64x MCU+ SDK
11.01.00
|
|
Go to the documentation of this file.
78 #define ENET_UDMA_HPD_SIZE (128U)
81 #define ENET_UDMA_EXTENDED_PKT_INFO_BLOCK_SIZE (16U)
84 #define ENET_UDMA_PROTOCOL_SPECIFIC_INFO_BLOCK_SIZE (16U)
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))
93 #define ENET_UDMA_RING_MEM_SIZE (sizeof(uint64_t))
110 #define ENET_UDMA_RXMTU_ALIGN (1U << 5U)
113 #define ENET_UDMA_CPSW_MAX_SG_LIST (4U)
116 #define ENET_UDMA_CPSW_HOSTPKTDESC_INDEX (0U)
119 #define ENET_UDMA_CPSW_HOSTBUFDESC_INDEX (1U)
122 #define ENET_UDMA_CPSW_MAX_HOSTBUFDESC_COUNT (ENET_UDMA_CPSW_MAX_SG_LIST - ENET_UDMA_CPSW_HOSTBUFDESC_INDEX)
125 #define ENET_UDMA_HPD_SRC_TAG_LOW_MASK (0xFF)
127 #if ((__ARM_ARCH == 7) && (__ARM_ARCH_PROFILE == 'R'))
129 #define ENETDMA_CACHELINE_ALIGNMENT (64U)
131 #define ENETDMA_CACHELINE_ALIGNMENT (64U)
132 #elif ((__ARM_ARCH == 8) && (__ARM_ARCH_PROFILE == 'M'))
133 #define ENETDMA_CACHELINE_ALIGNMENT (64U)
135 #error "Enet library compilation not supported on non cortex R cores. Update correct cache line size"
139 #define ENET_UDMA_DESC_ALIGNMENT (64U)
142 #define ENET_UDMA_ICSSG_LRE_TX_OFFLOAD_DISABLE (0U)
145 #define ENET_UDMA_ICSSG_LRE_TX_OFFLOAD_ENABLE (1U)
148 #define ENET_UDMA_ICSSG_LRE_RX_OFFLOAD_DISABLE (0U)
151 #define ENET_UDMA_ICSSG_LRE_RX_OFFLOAD_ENABLE (1U)
197 typedef struct EnetUdma_PktTsInfo_s
230 typedef struct EnetUdma_SGListEntry_s
266 typedef struct EnetUdma_SGList_s
277 typedef struct EnetUdma_PktInfo_s
362 typedef struct EnetUdma_CpswHpdDesc_s
397 typedef struct EnetUdma_DmaDesc_s
436 typedef struct EnetUdma_RingMonCfg_s
438 #if (ENET_SCICLIENT_AVAILABLE == 1)
472 typedef struct EnetUdma_UdmaRingPrms_s
479 #if (ENET_SCICLIENT_AVAILABLE ==1)
500 typedef struct EnetUdma_UdmaChPrms_s
502 #if (UDMA_SOC_CFG_UDMAP_PRESENT == 1)
516 typedef struct EnetUdma_UdmaFlowPrms_s
532 #if (ENET_UDMA_FDQ_PRESENT == 1)
566 uint8_t destTagHiSel;
571 uint8_t destTagLoSel;
584 typedef struct EnetUdma_UdmaChTxPrms_s
593 #if (ENET_SCICLIENT_AVAILABLE ==1)
598 #if (ENET_SCICLIENT_AVAILABLE ==1)
614 #if (ENET_SCICLIENT_AVAILABLE ==1)
633 typedef struct EnetUdma_AutoReclaimPrms_s
667 typedef struct EnetUdma_OpenRxFlowPrms_s
731 typedef struct EnetUdma_OpenTxChPrms_s
786 typedef struct EnetUdma_RxChInitPrms_s
788 #if (ENET_SCICLIENT_AVAILABLE == 1)
802 typedef struct EnetUdma_Cfg_s
816 typedef struct EnetUdma_DmaCfg_s
uint32_t data1
Definition: enet_udma.h:463
EnetUdma_DmaDescQHandle EnetUdma_getRxFlowDescPoolHandle(EnetDma_RxChHandle hRxFlow)
Get handle to DMA descriptor free pool for RX flow.
struct EnetUdma_DmaDesc_s * pNextDesc
Definition: enet_udma.h:410
EnetDma_PktNotifyCb notifyCb
Definition: enet_udma.h:690
uint8_t dmaPriority
Definition: enet_udma.h:793
uint16_t fifoDepth
Definition: enet_udma.h:627
Udma_DrvHandle hUdmaDrv
Definition: enet_udma.h:819
int32_t EnetUdma_closeTxCh(EnetDma_TxChHandle hTxCh, EnetDma_PktQ *fq, EnetDma_PktQ *cq)
Enet DMA close TX channel.
uint32_t numRxPkts
Definition: enet_udma.h:697
#define ENET_UDMA_EXTENDED_PKT_INFO_BLOCK_SIZE
Extended Packet Info Block size.
Definition: enet_udma.h:81
void EnetUdma_initTxChParams(EnetUdma_OpenTxChPrms *pTxChPrms)
Initialize TX channel open parameters.
Param struct for the TX channel open function.
Definition: enet_udma.h:732
UDMA RX channel flow parameters.
Definition: enet_udma.h:517
bool disableCacheOps
Definition: enet_udma.h:252
uint32_t segmentFilledLen
Definition: enet_udma.h:247
EnetUdma_PktTsInfo tsInfo
Definition: enet_udma.h:314
uint8_t mode
Definition: enet_udma.h:482
EnetUdma_UdmaFlowPrms flowPrms
Definition: enet_udma.h:693
uint64_t rxPktTs
Definition: enet_udma.h:212
Config structure for Enet UDMA.
Definition: enet_udma.h:803
EnetUdma_SGListEntry EnetDma_SGListEntry
Definition: enet_udma.h:276
uint32_t pktState
Definition: enet_udma.h:292
bool disableCacheOpsFlag
Definition: enet_udma.h:763
uint8_t dmaPriority
Definition: enet_udma.h:617
Udma_RingHandle EnetUdma_getRxFlowFqHandle(EnetDma_RxChHandle hRxFlow)
Get RX flow FQ handle.
bool useProxy
Definition: enet_udma.h:714
uint8_t txPktDomain
Definition: enet_udma.h:209
EnetUdma_UdmaChPrms udmaChPrms
Definition: enet_udma.h:742
uint32_t txPktTc
Definition: enet_udma.h:343
#define ENET_UDMA_DESC_ALIGNMENT
UDMA descriptor address alignment requirement.
Definition: enet_udma.h:139
This file contains the basic types using across the Enet driver.
void * appPriv
Definition: enet_udma.h:285
uint8_t busOrderId
Definition: enet_udma.h:610
uint8_t addrType
Definition: enet_udma.h:596
Enet_MacPort
MAC port.
Definition: enet_types.h:412
bool disableCacheOpsFlag
Definition: enet_udma.h:700
int32_t EnetUdma_closeRxFlow(EnetDma_RxChHandle hRxCh, EnetDma_PktQ *fq, EnetDma_PktQ *cq)
Enet DMA close RX channel.
EnetUdma_AutoReclaimPrms autoReclaimPrms
Definition: enet_udma.h:776
UDMA ring monitor config parameters.
Definition: enet_udma.h:437
EnetUdma_RingMonCfg ringMonCfg
Definition: enet_udma.h:491
bool useProxy
Definition: enet_udma.h:773
EnetDma_RxChHandle EnetUdma_openRxFlow(EnetDma_Handle hDma, const EnetUdma_OpenRxFlowPrms *pRxFlowPrms)
Enet DMA open RX channel.
EnetDma_PktNotifyCb notifyCb
Definition: enet_udma.h:756
uint32_t flowIdx
Definition: enet_udma.h:679
struct EnetUdma_TxChObj_s * EnetDma_TxChHandle
Opaque handle that holds software state for Enet TX DMA channel.
Definition: enet_udma_types.h:99
EnetUdma_CpswHpdDesc hpdDesc
Definition: enet_udma.h:402
This file contains the type definitions and helper macros for the Enet software queue.
#define ENET_UDMA_PKT_DESC_RESERVED_SIZE
Extended Packet Info Block size.
Definition: enet_udma.h:87
uint32_t chIdx
Definition: enet_udma.h:673
uint32_t txTsId
Definition: enet_udma.h:346
uint8_t sizeThreshEn
Definition: enet_udma.h:575
void * cbArg
Definition: enet_udma.h:767
#define ENET_UDMA_CPSW_MAX_SG_LIST
Definition: enet_udma.h:113
uint8_t orderId
Definition: enet_udma.h:476
void(* EnetDma_PktNotifyCb)(void *cbArg)
Function pointer type for packet notify call back.
Definition: enet_udma.h:166
uint8_t txCredit
Definition: enet_udma.h:620
void * Udma_RingHandle
UDMA ring handle.
Definition: udma_types.h:71
bool enableFlag
Definition: enet_udma.h:647
uint16_t defaultRxCQ
Definition: enet_udma.h:530
A generic node structure for a single link list.
Definition: enet_queue.h:74
CSL_UdmapCppi5HMPD hostDesc __attribute__((aligned(ENET_UDMA_DESC_ALIGNMENT)))
uint8_t psInfoPresent
Definition: enet_udma.h:523
EnetUdma_DmaDescQHandle hDmaDescPool
Definition: enet_udma.h:652
int32_t EnetUdma_checkRxFlowSanity(EnetDma_RxChHandle hRxFlow, uint32_t margin)
Check if any packet loss in RX flow FQ and CQ rings.
#define ENET_UDMA_CPSW_MAX_HOSTBUFDESC_COUNT
Definition: enet_udma.h:122
bool enableHostTxTs
Definition: enet_udma.h:200
Param struct for the RX channel open.
Definition: enet_udma.h:787
EnetQ_Node node
Definition: enet_udma.h:282
Enet UDMA channel/flow auto-reclaim config struct.
Definition: enet_udma.h:634
Udma_DrvHandle hUdmaDrv
Definition: enet_udma.h:734
struct EnetUdma_PktInfo_s EnetDma_Pkt
Opaque handle that represents a DMA packet.
Definition: enet_udma_types.h:104
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_UdmaChTxPrms udmaTxChPrms
Definition: enet_udma.h:745
EnetUdma_UdmaRingPrms cqRingPrms
Definition: enet_udma.h:508
uint32_t data0
Definition: enet_udma.h:452
uint8_t * bufPtr
Definition: enet_udma.h:239
CSL_UdmapCppi5HMPD desc __attribute__((aligned(ENET_UDMA_DESC_ALIGNMENT)))
uint32_t startIdx
Definition: enet_udma.h:676
uint32_t numScatterSegments
Definition: enet_udma.h:271
Enet_MacPort txPortNum
Definition: enet_udma.h:325
Definition: enet_udma.h:405
uint8_t filterEinfo
Definition: enet_udma.h:587
Enet UDMA descriptor format.
Definition: enet_udma.h:363
bool useRingMon
Definition: enet_udma.h:488
This file contains the base DMA definitions.
bool useGlobalEvt
Definition: enet_udma.h:686
uint16_t reserved
Definition: tisci_boardcfg_rm.h:2
uint32_t rxFlowMtu
Definition: enet_udma.h:704
EnetDma_Pkt * dmaPkt
Definition: enet_udma.h:415
Enet_Type
Ethernet peripheral type.
Definition: enet_types.h:202
int32_t EnetUdma_checkTxChSanity(EnetDma_TxChHandle hTxCh, uint32_t margin)
Check if any packet loss in TX Channel FQ and CQ rings.
bool useGlobalEvt
Definition: enet_udma.h:749
EnetUdma_RxChInitPrms rxChInitPrms
Definition: enet_udma.h:808
uint32_t segmentAllocLen
Definition: enet_udma.h:250
uint8_t txPktMsgType
Definition: enet_udma.h:206
uint8_t mode
Definition: enet_udma.h:441
Udma_RingHandle EnetUdma_getTxChFqHandle(EnetDma_TxChHandle hTxCh)
Get TX channel FQ handle.
UDMA Driver API/interface file.
Udma_RingHandle hReclaimRing
Definition: enet_udma.h:657
uint8_t chanType
Definition: enet_udma.h:601
Param struct for the get default flowId open parameters.
Definition: enet_udma.h:668
void * Udma_DrvHandle
UDMA driver handle.
Definition: udma_types.h:65
struct EnetUdma_DmaDescQ_s * EnetUdma_DmaDescQHandle
Opaque handle to Enet UDMA descriptor queue.
Definition: enet_udma.h:158
EnetDma_TxChHandle EnetUdma_openTxCh(EnetDma_Handle hDma, const EnetUdma_OpenTxChPrms *pTxChPrms)
Enet DMA open TX channel.
Udma_DrvHandle hUdmaDrv
Definition: enet_udma.h:670
uint16_t sopOffset
Definition: enet_udma.h:527
uint32_t numTxPkts
Definition: enet_udma.h:760
EnetUdma_SGList sgList
Definition: enet_udma.h:353
Packet data structure.
Definition: enet_udma.h:231
Transmit packet scatter list info.
Definition: enet_udma.h:267
uint8_t filterPsWords
Definition: enet_udma.h:590
CPPI buffer timestamp info.
Definition: enet_udma.h:198
CPPI DMA descriptor.
Definition: enet_udma.h:398
uint32_t perMode
Definition: enet_udma.h:752
EnetUdma_AutoReclaimPrms autoReclaimPrms
Definition: enet_udma.h:717
Config structure for Enet UDMA Data Path initialization.
Definition: enet_udma.h:817
uint32_t txPktSeqId
Definition: enet_udma.h:203
uint8_t busPriority
Definition: enet_udma.h:604
void EnetUdma_initRxFlowParams(EnetUdma_OpenRxFlowPrms *pRxFlowPrms)
Initialize RX channel open parameters.
uint32_t chkSumInfo
Definition: enet_udma.h:303
Enet_MacPort rxPortNum
Definition: enet_udma.h:330
EnetDma_Handle EnetUdma_initDataPath(Enet_Type enetType, uint32_t instId, const EnetDma_initCfg *pDmaInitCfg)
Enet UDMA TX channel parameters.
Definition: enet_udma.h:585
int32_t EnetUdma_deInitDataPath(EnetDma_Handle hEnetUdma)
uint8_t * origBufPtr
Definition: enet_udma.h:244
Udma_DrvHandle hUdmaDrv
Definition: enet_udma.h:805
Definition: enet_udma.h:278
struct EnetUdma_RxFlowObj_s * EnetDma_RxChHandle
Opaque handle that holds software state for Enet RX DMA flow.
Definition: enet_udma_types.h:94
EnetUdma_DmaDescQHandle EnetUdma_getTxChDescPoolHandle(EnetDma_TxChHandle hTxCh)
Get handle to DMA descriptor free pool for TX channel.
struct EnetUdma_DrvObj_s * EnetDma_Handle
Opaque handle for Enet UDMA driver object.
Definition: enet_udma_types.h:85
Enet UDMA RX flow/TX channel ring configuration parameters.
Definition: enet_udma.h:501
Generic queue.
Definition: enet_queue.h:83
uint8_t einfoPresent
Definition: enet_udma.h:519
void EnetUdma_initDataPathParams(EnetDma_initCfg *pDmaConfig)
uint32_t chNum
Definition: enet_udma.h:739
EnetQ EnetDma_PktQ
Packet queue.
Definition: enet_udma.h:176
void * cbArg
Definition: enet_udma.h:708
#define ENET_UDMA_PROTOCOL_SPECIFIC_INFO_BLOCK_SIZE
Extended Packet Info Block size.
Definition: enet_udma.h:84
Enet UDMA channel ring parameters.
Definition: enet_udma.h:473
EnetUdma_UdmaChPrms udmaChPrms
Definition: enet_udma.h:682
uint8_t busQos
Definition: enet_udma.h:607