|
AM64x MCU+ SDK
08.04.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_HPD_SRC_TAG_LOW_MASK (0xFF)
115 #if ((__ARM_ARCH == 7) && (__ARM_ARCH_PROFILE == 'R'))
117 #define ENETDMA_CACHELINE_ALIGNMENT (32U)
119 #error "Enet library compilation not supported on non cortex R cores. Update correct cache line size"
144 typedef uint8_t *(*EnetUdma_AllocRingMemFxn)(
void *appPriv,
151 uint32_t numRingEle);
154 typedef struct EnetUdma_DmaDesc_s *(*EnetUdma_AllocDmaDescFxn)(
void *appPriv,
159 struct EnetUdma_DmaDesc_s *dmaDescPtr);
190 typedef struct EnetUdma_PktTsInfo_s
214 typedef struct EnetUdma_PktInfo_s
292 typedef struct EnetUdma_CpswHpdDesc_s
327 typedef struct EnetUdma_DmaDesc_s
361 typedef struct EnetUdma_RingMonCfg_s
394 typedef struct EnetUdma_UdmaRingPrms_s
419 typedef struct EnetUdma_UdmaChPrms_s
421 #if (UDMA_SOC_CFG_UDMAP_PRESENT == 1)
435 typedef struct EnetUdma_UdmaFlowPrms_s
502 typedef struct EnetUdma_UdmaChTxPrms_s
545 typedef struct EnetUdma_AutoReclaimPrms_s
579 typedef struct EnetUdma_OpenRxFlowPrms_s
660 typedef struct EnetUdma_OpenTxChPrms_s
728 typedef struct EnetUdma_RxChInitPrms_s
742 typedef struct EnetUdma_Cfg_s
756 typedef struct EnetUdma_DmaCfg_s
uint32_t data1
Definition: enet_udma.h:386
struct EnetUdma_DmaDesc_s * pNextDesc
Definition: enet_udma.h:335
EnetDma_PktNotifyCb notifyCb
Definition: enet_udma.h:602
uint8_t dmaPriority
Definition: enet_udma.h:733
uint16_t fifoDepth
Definition: enet_udma.h:539
Udma_DrvHandle hUdmaDrv
Definition: enet_udma.h:759
uint32_t numRxPkts
Definition: enet_udma.h:609
#define ENET_UDMA_EXTENDED_PKT_INFO_BLOCK_SIZE
Extended Packet Info Block size.
Definition: enet_udma.h:81
EnetUdma_FreeDmaDescFxn dmaDescFreeFxn
Definition: enet_udma.h:706
struct EnetUdma_Cfg_s EnetDma_Cfg
Opaque handle that holds config Info for Enet DMA channel.
Definition: enet_udma.h:125
Param struct for the TX channel open function.
Definition: enet_udma.h:661
UDMA RX channel flow parameters.
Definition: enet_udma.h:436
void(* EnetUdma_FreeDmaDescFxn)(void *appPriv, struct EnetUdma_DmaDesc_s *dmaDescPtr)
Function pointer type for DMA descriptor free function.
Definition: enet_udma.h:158
EnetUdma_PktTsInfo tsInfo
Definition: enet_udma.h:260
uint8_t mode
Definition: enet_udma.h:401
EnetUdma_UdmaFlowPrms flowPrms
Definition: enet_udma.h:605
uint8_t srcTagLoSel
Definition: enet_udma.h:469
int32_t EnetUdma_checkTxChSanity(EnetDma_TxChHandle hTxCh, uint32_t margin)
Check if any packet loss in TX Channel FQ and CQ rings.
EnetUdma_DmaDescQHandle EnetUdma_getRxFlowDescPoolHandle(EnetDma_RxChHandle hRxFlow)
Get handle to DMA descriptor free pool for RX flow.
uint64_t rxPktTs
Definition: enet_udma.h:205
CSL_UdmapCppi5HMPD hostDesc __attribute__((aligned(UDMA_CACHELINE_ALIGNMENT)))
uint32_t pktState
Definition: enet_udma.h:238
bool disableCacheOpsFlag
Definition: enet_udma.h:689
uint8_t * bufPtr
Definition: enet_udma.h:222
uint8_t dmaPriority
Definition: enet_udma.h:529
bool useProxy
Definition: enet_udma.h:643
EnetUdma_FreeRingMemFxn ringMemFreeFxn
Definition: enet_udma.h:627
uint8_t txPktDomain
Definition: enet_udma.h:202
EnetUdma_UdmaChPrms udmaChPrms
Definition: enet_udma.h:671
uint32_t txPktTc
Definition: enet_udma.h:280
uint32_t orgBufLen
Definition: enet_udma.h:225
This file contains the basic types using across the Enet driver.
void * appPriv
Definition: enet_udma.h:231
uint8_t busOrderId
Definition: enet_udma.h:524
uint8_t addrType
Definition: enet_udma.h:512
uint8_t *(* EnetUdma_AllocRingMemFxn)(void *appPriv, uint32_t numRingEle, uint32_t alignSize)
Function pointer type for packet allocation function.
Definition: enet_udma.h:144
Enet_MacPort
MAC port.
Definition: enet_types.h:406
bool disableCacheOpsFlag
Definition: enet_udma.h:612
uint8_t srcTagLo
Definition: enet_udma.h:459
EnetUdma_AutoReclaimPrms autoReclaimPrms
Definition: enet_udma.h:719
UDMA ring monitor config parameters.
Definition: enet_udma.h:362
EnetUdma_FreeDmaDescFxn dmaDescFreeFxn
Definition: enet_udma.h:633
EnetUdma_RingMonCfg ringMonCfg
Definition: enet_udma.h:410
EnetUdma_RxChInitPrms rxChInitPrms
Definition: enet_udma.h:748
bool useProxy
Definition: enet_udma.h:716
EnetDma_PktNotifyCb notifyCb
Definition: enet_udma.h:682
uint32_t flowIdx
Definition: enet_udma.h:591
void(* EnetUdma_FreeRingMemFxn)(void *appPriv, void *pRingMem, uint32_t numRingEle)
Function pointer type for packet free function.
Definition: enet_udma.h:149
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:332
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:585
uint32_t txTsId
Definition: enet_udma.h:283
uint8_t sizeThreshEn
Definition: enet_udma.h:493
void * cbArg
Definition: enet_udma.h:710
uint8_t orderId
Definition: enet_udma.h:398
void(* EnetDma_PktNotifyCb)(void *cbArg)
Function pointer type for packet notify call back.
Definition: enet_udma.h:167
uint8_t txCredit
Definition: enet_udma.h:532
void * Udma_RingHandle
UDMA ring handle.
Definition: udma_types.h:71
bool enableFlag
Definition: enet_udma.h:559
uint16_t defaultRxCQ
Definition: enet_udma.h:449
A generic node structure for a single link list.
Definition: enet_queue.h:74
uint8_t psInfoPresent
Definition: enet_udma.h:442
EnetUdma_DmaDescQHandle hDmaDescPool
Definition: enet_udma.h:564
bool enableHostTxTs
Definition: enet_udma.h:193
Param struct for the RX channel open.
Definition: enet_udma.h:729
uint32_t userBufLen
Definition: enet_udma.h:228
EnetQ_Node node
Definition: enet_udma.h:219
Enet UDMA channel/flow auto-reclaim config struct.
Definition: enet_udma.h:546
EnetUdma_AllocDmaDescFxn dmaDescAllocFxn
Definition: enet_udma.h:703
Udma_RingHandle EnetUdma_getRxFlowFqHandle(EnetDma_RxChHandle hRxFlow)
Get RX flow FQ handle.
Udma_DrvHandle hUdmaDrv
Definition: enet_udma.h:663
struct EnetUdma_PktInfo_s EnetDma_Pkt
Opaque handle that represents a DMA packet.
Definition: enet_udma_types.h:104
int32_t EnetUdma_checkRxFlowSanity(EnetDma_RxChHandle hRxFlow, uint32_t margin)
Check if any packet loss in RX flow FQ and CQ rings.
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:653
EnetUdma_UdmaChTxPrms udmaTxChPrms
Definition: enet_udma.h:674
EnetUdma_UdmaRingPrms cqRingPrms
Definition: enet_udma.h:427
uint32_t data0
Definition: enet_udma.h:375
uint8_t destTagLo
Definition: enet_udma.h:479
uint32_t startIdx
Definition: enet_udma.h:588
Enet_MacPort txPortNum
Definition: enet_udma.h:271
uint8_t filterEinfo
Definition: enet_udma.h:505
EnetDma_Handle EnetUdma_initDataPath(Enet_Type enetType, uint32_t instId, const EnetDma_initCfg *pDmaInitCfg)
Enet UDMA descriptor format.
Definition: enet_udma.h:293
uint8_t srcTagHiSel
Definition: enet_udma.h:464
bool useRingMon
Definition: enet_udma.h:407
This file contains the base DMA definitions.
void EnetUdma_initDataPathParams(EnetDma_initCfg *pDmaConfig)
bool useGlobalEvt
Definition: enet_udma.h:598
uint16_t reserved
Definition: tisci_boardcfg_rm.h:2
EnetUdma_AllocDmaDescFxn dmaDescAllocFxn
Definition: enet_udma.h:630
uint32_t rxFlowMtu
Definition: enet_udma.h:616
EnetDma_Pkt * dmaPkt
Definition: enet_udma.h:340
Enet_Type
Ethernet peripheral type.
Definition: enet_types.h:196
uint8_t destTagLoSel
Definition: enet_udma.h:489
bool useGlobalEvt
Definition: enet_udma.h:678
Config structure for Enet UDMA.
Definition: enet_udma.h:743
uint8_t txPktMsgType
Definition: enet_udma.h:199
uint8_t mode
Definition: enet_udma.h:364
UDMA Driver API/interface file.
EnetUdma_AllocRingMemFxn ringMemAllocFxn
Definition: enet_udma.h:624
Udma_RingHandle hReclaimRing
Definition: enet_udma.h:569
EnetUdma_DmaDescQHandle EnetUdma_getTxChDescPoolHandle(EnetDma_TxChHandle hTxCh)
Get handle to DMA descriptor free pool for TX channel.
uint8_t chanType
Definition: enet_udma.h:515
Param struct for the get default flowId open parameters.
Definition: enet_udma.h:580
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:132
Udma_DrvHandle hUdmaDrv
Definition: enet_udma.h:582
Udma_RingHandle EnetUdma_getTxChFqHandle(EnetDma_TxChHandle hTxCh)
Get TX channel FQ handle.
uint8_t destTagHiSel
Definition: enet_udma.h:484
uint16_t sopOffset
Definition: enet_udma.h:446
uint32_t numTxPkts
Definition: enet_udma.h:686
uint8_t filterPsWords
Definition: enet_udma.h:508
CPPI buffer timestamp info.
Definition: enet_udma.h:191
EnetUdma_AllocRingMemFxn ringMemAllocFxn
Definition: enet_udma.h:697
#define UDMA_CACHELINE_ALIGNMENT
Cache line size for alignment of descriptor and buffers.
Definition: udma_types.h:76
CPPI DMA descriptor.
Definition: enet_udma.h:328
EnetUdma_AutoReclaimPrms autoReclaimPrms
Definition: enet_udma.h:646
Config structure for Enet UDMA Data Path initialization.
Definition: enet_udma.h:757
uint32_t txPktSeqId
Definition: enet_udma.h:196
uint8_t busPriority
Definition: enet_udma.h:518
uint32_t chkSumInfo
Definition: enet_udma.h:249
uint8_t destTagHi
Definition: enet_udma.h:474
Enet_MacPort rxPortNum
Definition: enet_udma.h:276
struct EnetUdma_DmaDesc_s *(* EnetUdma_AllocDmaDescFxn)(void *appPriv, uint32_t alignSize)
Function pointer type for DMA descriptor allocation function.
Definition: enet_udma.h:154
Enet UDMA TX channel parameters.
Definition: enet_udma.h:503
int32_t EnetUdma_deInitDataPath(EnetDma_Handle hEnetUdma)
Packet data structure.
Definition: enet_udma.h:215
struct EnetUdma_RxFlowObj_s * EnetDma_RxChHandle
Opaque handle that holds software state for Enet RX DMA flow.
Definition: enet_udma_types.h:94
struct EnetUdma_DrvObj_s * EnetDma_Handle
Opaque handle for Enet UDMA driver object.
Definition: enet_udma_types.h:85
Udma_DrvHandle hUdmaDrv
Definition: enet_udma.h:745
uint8_t srcTagHi
Definition: enet_udma.h:454
Enet UDMA RX flow/TX channel ring configuration parameters.
Definition: enet_udma.h:420
uint8_t einfoPresent
Definition: enet_udma.h:438
uint32_t chNum
Definition: enet_udma.h:668
void * cbArg
Definition: enet_udma.h:637
#define ENET_UDMA_PROTOCOL_SPECIFIC_INFO_BLOCK_SIZE
Extended Packet Info Block size.
Definition: enet_udma.h:84
EnetUdma_FreeRingMemFxn ringMemFreeFxn
Definition: enet_udma.h:700
Enet UDMA channel ring parameters.
Definition: enet_udma.h:395
EnetUdma_UdmaChPrms udmaChPrms
Definition: enet_udma.h:594
uint8_t busQos
Definition: enet_udma.h:521