AM64x MCU+ SDK  10.00.00
enet_dma.h File Reference

Introduction

This file contains the type definitions and helper macros for the Enet Data Path (DMA) interface.

Go to the source code of this file.

Data Structures

struct  EnetDma_CbStats
 Stats for packets submitted/retrieved in the DMA event callbacks functions. More...
 
struct  EnetDma_DmaDescStats
 DMA descriptor stats for the RX & TX channels. More...
 
struct  EnetDma_RxChStats
 RX channel statistics. More...
 
struct  EnetDma_TxChStats
 TX channel statistics. More...
 

Macros

#define ENETDMA_RXCSUMINFO_CHKSUM_ADD_SHIFT   (0U)
 THOST CSUM ENCAP Word- Checksum Add bit shift. More...
 
#define ENETDMA_RXCSUMINFO_CHKSUM_ADD_MASK   (((uint32_t) 0xFFFF) << ENETDMA_RXCSUMINFO_CHKSUM_ADD_SHIFT)
 THOST CSUM ENCAP Word - Checksum Add bit mask. More...
 
#define ENETDMA_RXCSUMINFO_CHKSUM_ERR_SHIFT   (16U)
 THOST CSUM ENCAP Word - Checksum Error bit shift. More...
 
#define ENETDMA_RXCSUMINFO_CHKSUM_ERR_MASK   (((uint32_t) 0x1U) << ENETDMA_RXCSUMINFO_CHKSUM_ERR_SHIFT)
 THOST CSUM ENCAP Word - Checksum Error bit mask. More...
 
#define ENETDMA_RXCSUMINFO_FRAGMENT_SHIFT   (17U)
 THOST CSUM ENCAP Word - IP Fragment bit shift. More...
 
#define ENETDMA_RXCSUMINFO_FRAGMENT_MASK   (((uint32_t) 0x1U) << ENETDMA_RXCSUMINFO_FRAGMENT_SHIFT)
 THOST CSUM ENCAP Word - IP Fragment bit mask. More...
 
#define ENETDMA_RXCSUMINFO_TCP_UDP_N_SHIFT   (18U)
 THOST CSUM ENCAP Word - TCP or UDP bit shift. More...
 
#define ENETDMA_RXCSUMINFO_TCP_UDP_N_MASK   (((uint32_t) 0x1U) << ENETDMA_RXCSUMINFO_TCP_UDP_N_SHIFT)
 THOST CSUM ENCAP Word - TCP or UDP bit mask. More...
 
#define ENETDMA_RXCSUMINFO_IPV6_VALID_SHIFT   (19U)
 THOST CSUM ENCAP Word - IPv6 Valid bit shift. More...
 
#define ENETDMA_RXCSUMINFO_IPV6_VALID_MASK   (((uint32_t) 0x1U) << ENETDMA_RXCSUMINFO_IPV6_VALID_SHIFT)
 THOST CSUM ENCAP Word - IPv6 Valid bit mask. More...
 
#define ENETDMA_RXCSUMINFO_IPV4_VALID_SHIFT   (20U)
 THOST CSUM ENCAP Word - IPv4 Valid bit shift. More...
 
#define ENETDMA_RXCSUMINFO_IPV4_VALID_MASK   (((uint32_t) 0x1U) << ENETDMA_RXCSUMINFO_IPV4_VALID_SHIFT)
 THOST CSUM ENCAP Word - IPv4 Valid bit mask. More...
 
#define ENETDMA_TXCSUMINFO_CHKSUM_BYTECNT_SHIFT   (0U)
 FHOST CSUM ENCAP Word - Checksum Byte Count bit shift. More...
 
#define ENETDMA_TXCSUMINFO_CHKSUM_BYTECNT_MASK   (((uint32_t) 0x3FFFU) << ENETDMA_TXCSUMINFO_CHKSUM_BYTECNT_SHIFT)
 FHOST CSUM ENCAP Word - Checksum Byte Count bit mask. More...
 
#define ENETDMA_TXCSUMINFO_CHKSUM_INV_SHIFT   (15U)
 FHOST CSUM ENCAP Word - Inverted Checksum bit shift. More...
 
#define ENETDMA_TXCSUMINFO_CHKSUM_INV_MASK   (((uint32_t) 0x1U) << ENETDMA_TXCSUMINFO_CHKSUM_INV_SHIFT)
 FHOST CSUM ENCAP Word - Inverted Checksum bit mask. More...
 
#define ENETDMA_TXCSUMINFO_CHKSUM_STARTBYTE_SHIFT   (16U)
 FHOST CSUM ENCAP Word - Checksum Start Byte bit shift. More...
 
#define ENETDMA_TXCSUMINFO_CHKSUM_STARTBYTE_MASK   (((uint32_t) 0xFFU) << ENETDMA_TXCSUMINFO_CHKSUM_STARTBYTE_SHIFT)
 FHOST CSUM ENCAP Word - Checksum Start Byte bit mask. More...
 
#define ENETDMA_TXCSUMINFO_CHKSUM_RESULT_SHIFT   (24U)
 FHOST CSUM ENCAP Word - Checksum Result bit shift. More...
 
#define ENETDMA_TXCSUMINFO_CHKSUM_RESULT_MASK   (((uint32_t) 0xFFU) << ENETDMA_TXCSUMINFO_CHKSUM_RESULT_SHIFT)
 FHOST CSUM ENCAP Word - Checksum Result bit mask. More...
 
#define ENETDMA_RXCSUMINFO_GET_IPV4_FLAG(chkSumInfo)    ENET_FEXT(chkSumInfo, ENETDMA_RXCSUMINFO_IPV4_VALID)
 Get IPv4 flag from THOST Checksum Encapsulation word. More...
 
#define ENETDMA_RXCSUMINFO_GET_IPV6_FLAG(chkSumInfo)    ENET_FEXT(chkSumInfo, ENETDMA_RXCSUMINFO_IPV6_VALID)
 Get IPv6 flag from THOST Checksum Encapsulation word. More...
 
#define ENETDMA_RXCSUMINFO_GET_TCPUDP_N_FLAG(chkSumInfo)    ENET_FEXT(chkSumInfo, ENETDMA_RXCSUMINFO_TCP_UDP_N)
 Get TCP or UDP flag from THOST Checksum Encapsulation word. More...
 
#define ENETDMA_RXCSUMINFO_GET_FRAGMENT_FLAG(chkSumInfo)    ENET_FEXT(chkSumInfo, ENETDMA_RXCSUMINFO_FRAGMENT)
 Get IP Fragment flag from THOST Checksum Encapsulation word. More...
 
#define ENETDMA_RXCSUMINFO_GET_CHKSUM_ERR_FLAG(chkSumInfo)    ENET_FEXT(chkSumInfo, ENETDMA_RXCSUMINFO_CHKSUM_ERR)
 Get Checksum Error flag from THOST Checksum Encapsulation word. More...
 
#define ENETDMA_RXCSUMINFO_GET_CHKSUM_RESULT(chkSumInfo)    ENET_FEXT(chkSumInfo, ENETDMA_RXCSUMINFO_CHKSUM_ADD)
 Get Checksum Result from THOST Checksum Encapsulation word. More...
 
#define ENETDMA_TXCSUMINFO_SET_CHKSUM_RESBYTE(chkSumInfo, val)    ENET_FINS(chkSumInfo, ENETDMA_TXCSUMINFO_CHKSUM_RESULT, val)
 Set Checksum Result Byte into FHOST Checksum Encapsulation word. More...
 
#define ENETDMA_TXCSUMINFO_SET_CHKSUM_STARTBYTE(chkSumInfo, val)    ENET_FINS(chkSumInfo, ENETDMA_TXCSUMINFO_CHKSUM_STARTBYTE, val)
 Set Checksum Start Byte into FHOST Checksum Encapsulation word. More...
 
#define ENETDMA_TXCSUMINFO_SET_CHKSUM_INV_FLAG(chkSumInfo, val)    ENET_FINS(chkSumInfo, ENETDMA_TXCSUMINFO_CHKSUM_INV, val)
 Set Invert Checksum flag into FHOST Checksum Encapsulation word. More...
 
#define ENETDMA_TXCSUMINFO_SET_CHKSUM_BYTECNT(chkSumInfo, val)    ENET_FINS(chkSumInfo, ENETDMA_TXCSUMINFO_CHKSUM_BYTECNT, val)
 Set Checksum Byte Count into FHOST Checksum Encapsulation word. More...
 
#define ENET_DMA_STATS_HISTORY_CNT   ((uint32_t)2U)
 Enet DMA statistics configuration. More...
 

Typedefs

typedef EnetQ EnetDma_PktQ
 Packet queue. More...
 
Enet DMA driver callback function types.

Callback function typedefs so that the EnetDma layer can call into the app layer and let it translate between the DMA packet descriptors and packets and the stack/translation layer's buffers and packets.

typedef EnetDma_Pkt *(* EnetDma_AllocEthPktFxn) (uint32_t pktSize, uint32_t alignSize, void *appPriv)
 Function pointer type for Ethernet packet allocation function. More...
 
typedef void(* EnetDma_FreeEthPktFxn) (EnetDma_Pkt *pPktInfo)
 Function pointer type for Ethernet packet free function. More...
 

Functions

EnetDma_Handle EnetDma_initDmaCfg (Enet_Type enetType, uint32_t instId, const EnetDma_initCfg *pDmaCfg)
 Initialize data path. More...
 
int32_t EnetDma_deinitDmaCfg (EnetDma_Handle hEnetUdma)
 De-initialize data path. More...
 
void EnetDma_initRxChParams (void *pRxChCfg)
 Initialize RX channel open parameters. More...
 
EnetDma_RxChHandle EnetDma_openRxCh (EnetDma_Handle hDma, const void *pRxChCfg)
 Enet DMA open RX channel. More...
 
int32_t EnetDma_closeRxCh (EnetDma_RxChHandle hRxCh, EnetDma_PktQ *fq, EnetDma_PktQ *cq)
 Enet DMA close RX channel. More...
 
int32_t EnetDma_enableRxEvent (EnetDma_RxChHandle hRxCh)
 Enable RX channel packet reception event. More...
 
int32_t EnetDma_registerRxEventCb (EnetDma_RxChHandle hRxCh, EnetDma_PktNotifyCb notifyCb, void *cbArg)
 Register packet arrival event callback. More...
 
int32_t EnetDma_disableRxEvent (EnetDma_RxChHandle hRxCh)
 Disable RX channel packet reception event. More...
 
void EnetDma_initTxChParams (void *pTxChCfg)
 Initialize TX channel open parameters. More...
 
EnetDma_TxChHandle EnetDma_openTxCh (EnetDma_Handle hDma, const void *pTxChCfg)
 Enet DMA open TX channel. More...
 
int32_t EnetDma_closeTxCh (EnetDma_TxChHandle hTxCh, EnetDma_PktQ *fq, EnetDma_PktQ *cq)
 Enet DMA close TX channel. More...
 
int32_t EnetDma_enableTxEvent (EnetDma_TxChHandle hTxCh)
 Enable TX channel packet transmit completion event. More...
 
int32_t EnetDma_registerTxEventCb (EnetDma_TxChHandle hTxCh, EnetDma_PktNotifyCb notifyCb, void *cbArg)
 Register packet transmit completion event callback. More...
 
int32_t EnetDma_disableTxEvent (EnetDma_TxChHandle hTxCh)
 Disable TX channel packet transmit completion event. More...
 
int32_t EnetDma_retrieveRxPktQ (EnetDma_RxChHandle hRxCh, EnetDma_PktQ *pRetrieveQ)
 Retrieve queue of RX ready (full) packets from RX channel. More...
 
int32_t EnetDma_retrieveRxPkt (EnetDma_RxChHandle hRxCh, EnetDma_Pkt **pPkt)
 Retrieve single RX ready (full) packet (single) from RX channel. More...
 
int32_t EnetDma_submitRxPktQ (EnetDma_RxChHandle hRxCh, EnetDma_PktQ *pSubmitQ)
 Submit queue of RX free (empty) packets for reception to RX channel. More...
 
int32_t EnetDma_submitRxPkt (EnetDma_RxChHandle hRxCh, EnetDma_Pkt *pPkt)
 Submit single RX free (empty) packet for reception to RX channel. More...
 
int32_t EnetDma_retrieveTxPktQ (EnetDma_TxChHandle hTxCh, EnetDma_PktQ *pRetrieveQ)
 Retrieve queue of TX free (empty) packets from TX channel. More...
 
int32_t EnetDma_retrieveTxPkt (EnetDma_TxChHandle hTxCh, EnetDma_Pkt **pPkt)
 Retrieve single TX free (empty) packet from TX channel. More...
 
int32_t EnetDma_submitTxPktQ (EnetDma_TxChHandle hTxCh, EnetDma_PktQ *pSubmitQ)
 Submit a queue of ready (full) packets to TX channel. More...
 
int32_t EnetDma_submitTxPkt (EnetDma_TxChHandle hTxCh, EnetDma_Pkt *pPkt)
 Submit a single ready (full) packet to TX channel. More...
 
void EnetDma_initPktInfo (EnetDma_Pkt *pktInfo)
 Initialize packet information structure. More...
 
int32_t EnetDma_getRxChStats (EnetDma_RxChHandle hRxCh, EnetDma_RxChStats *pStats)
 Get RX channel statistics. More...
 
int32_t EnetDma_getTxChStats (EnetDma_TxChHandle hTxCh, EnetDma_TxChStats *pStats)
 Get TX channel statistics. More...
 
int32_t EnetDma_resetRxChStats (EnetDma_RxChHandle hRxCh)
 Reset RX channel statistics. More...
 
int32_t EnetDma_resetTxChStats (EnetDma_TxChHandle hTxCh)
 Reset TX channel statistics. More...