Data Structures | Typedefs | Functions
enet_udma.h File Reference

This file contains the type definitions and helper macros for the CPSW data path (DMA) interface. More...

#include <stdint.h>
#include <ti/drv/enet/include/core/enet_types.h>

Data Structures

struct  EnetUdma_PktTsInfo_s
 CPPI buffer timestamp info. More...
 
struct  EnetUdma_PktInfo_s
 Packet data structure. More...
 
struct  EnetUdma_CpswHpdDesc_s
 CPSW UDMA descriptor format. More...
 
struct  EnetUdma_DmaDesc_s
 CPPI DMA descriptor. More...
 
struct  EnetUdma_RingMonCfg_s
 UDMA ring monitor config parameters. More...
 
struct  EnetUdma_UdmaRingPrms_s
 Enet UDMA channel ring parameters. More...
 
struct  EnetUdma_UdmaChPrms_s
 Enet UDMA RX flow/TX channel ring configuration parameters. More...
 
struct  EnetUdma_UdmaFlowPrms_s
 UDMA RX channel flow parameters. More...
 
struct  EnetUdma_UdmaChTxPrms_s
 Enet UDMA TX channel parameters. More...
 
struct  EnetUdma_AutoReclaimPrms_s
 CPSW channel/flow auto-reclaim config struct. More...
 
struct  EnetUdma_OpenRxFlowPrms_s
 Param struct for the get default flowId open parameters. More...
 
struct  EnetUdma_OpenTxChPrms_s
 Param struct for the TX channel open function. More...
 
struct  EnetUdma_RxChInitPrms_s
 Param struct for the RX channel open. More...
 
struct  EnetUdma_Cfg_s
 Config structure for Enet UDMA. More...
 
struct  EnetUdma_DmaCfg_s
 Config structure for Enet UDMA Data Path initialization. More...
 

Macros

Enet UDMA instance configuration

Configuration macros for Enet UDMA module.

#define ENET_UDMA_CPSW_MAX_TX_CH   (8U)
 Maximum number of CPSW TX DMA channels.
 
#define ENET_UDMA_CPSW_MAX_RX_FLOW   (64U)
 Maximum number of CPSW RX FLOWS channels.
 
#define ENET_UDMA_CPSW_MAX_RX_FREE_QUEUE   (4U)
 Max. number for RX free queues for CPSW RX DMA flow.
 
#define ENET_UDMA_HPD_SIZE   (128U)
 Enet UDMA HPD packet size.
 
#define ENET_UDMA_EXTENDED_PKT_INFO_BLOCK_SIZE   (16U)
 Extended Packet Info Block size.
 
#define ENET_UDMA_PROTOCOL_SPECIFIC_INFO_BLOCK_SIZE   (16U)
 Extended Packet Info Block size.
 
#define ENET_UDMA_PKT_DESC_RESERVED_SIZE
 Extended Packet Info Block size. More...
 
#define ENET_UDMA_RING_MEM_SIZE   (sizeof(uint64_t))
 UDMA ring single element size.
 
#define ENET_UDMA_RXFLOWIDX_INVALID   (0xABCDABCDU)
 Enet UDMA invalid RX flow id.
 
#define ENET_UDMA_RXMTU_ALIGN   (1U << 5U)
 Enet UDMA RX MTU alignment. The RxFlow MTU must be aligned to this value. More...
 

Typedefs

typedef struct
EnetUdma_DmaDescQ_s * 
EnetUdma_DmaDescQHandle
 Opaque handle to Enet UDMA descriptor queue.
 
typedef struct EnetUdma_PktTsInfo_s EnetUdma_PktTsInfo
 CPPI buffer timestamp info. More...
 
typedef struct EnetUdma_PktInfo_s EnetUdma_PktInfo
 Packet data structure. More...
 
typedef struct
EnetUdma_CpswHpdDesc_s 
EnetUdma_CpswHpdDesc
 CPSW UDMA descriptor format. More...
 
typedef struct EnetUdma_DmaDesc_s EnetUdma_DmaDesc
 CPPI DMA descriptor. More...
 
typedef struct
EnetUdma_RingMonCfg_s 
EnetUdma_RingMonCfg
 UDMA ring monitor config parameters. More...
 
typedef struct
EnetUdma_UdmaRingPrms_s 
EnetUdma_UdmaRingPrms
 Enet UDMA channel ring parameters. More...
 
typedef struct
EnetUdma_UdmaChPrms_s 
EnetUdma_UdmaChPrms
 Enet UDMA RX flow/TX channel ring configuration parameters. More...
 
typedef struct
EnetUdma_UdmaFlowPrms_s 
EnetUdma_UdmaFlowPrms
 UDMA RX channel flow parameters. More...
 
typedef struct
EnetUdma_UdmaChTxPrms_s 
EnetUdma_UdmaChTxPrms
 Enet UDMA TX channel parameters. More...
 
typedef struct
EnetUdma_AutoReclaimPrms_s 
EnetUdma_AutoReclaimPrms
 CPSW channel/flow auto-reclaim config struct.
 
typedef struct
EnetUdma_OpenRxFlowPrms_s 
EnetUdma_OpenRxFlowPrms
 Param struct for the get default flowId open parameters. More...
 
typedef struct
EnetUdma_OpenTxChPrms_s 
EnetUdma_OpenTxChPrms
 Param struct for the TX channel open function. More...
 
typedef struct
EnetUdma_RxChInitPrms_s 
EnetUdma_RxChInitPrms
 Param struct for the RX channel open. More...
 
typedef struct EnetUdma_Cfg_s EnetUdma_Cfg
 Config structure for Enet UDMA. More...
 
typedef struct EnetUdma_DmaCfg_s EnetUdma_DmaCfg
 Config structure for Enet UDMA Data Path initialization. More...
 
typedef struct EnetUdma_Obj_s * EnetUdma_Handle
 Opaque handle for Enet UDMA driver object. More...
 
Enet DMA driver opaque handles

Opaque handle typedefs for Enet DMA driver objects.

typedef struct
EnetUdma_RxFlowObj_s * 
EnetDma_RxChHandle
 Opaque handle that holds software state for Enet RX DMA flow. More...
 
typedef struct EnetUdma_TxChObj_s * EnetDma_TxChHandle
 Opaque handle that holds software state for Enet TX DMA channel.
 
typedef struct EnetUdma_PktInfo_s EnetDma_PktInfo
 Enet DMA packet info structure typedef for Enet UDMA module.
 
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 hardware packet descriptors and packets and the stack/translation layer's buffers and packets.

typedef uint8_t *(* EnetUdma_AllocRingMemFxn )(void *appPriv, uint32_t numRingEle, uint32_t alignSize)
 Function pointer type for packet allocation function.
 
typedef void(* EnetUdma_FreeRingMemFxn )(void *appPriv, void *pRingMem, uint32_t numRingEle)
 Function pointer type for packet free function.
 
typedef struct
EnetUdma_DmaDesc_s *(* 
EnetUdma_AllocDmaDescFxn )(void *appPriv, uint32_t alignSize)
 Function pointer type for DMA descriptor allocation function.
 
typedef void(* EnetUdma_FreeDmaDescFxn )(void *appPriv, struct EnetUdma_DmaDesc_s *dmaDescPtr)
 Function pointer type for DMA descriptor free function.
 
typedef void(* EnetUdma_PktNotifyCb )(void *cbArg)
 Function pointer type for packet notify call back. More...
 

Functions

int32_t EnetUdma_checkRxFlowSanity (EnetUdma_RxFlowHandle hRxFlow, uint32_t margin)
 Check if any packet loss in RX flow FQ and CQ rings. More...
 
int32_t EnetUdma_checkTxChSanity (EnetUdma_TxChHandle hTxCh, uint32_t margin)
 Check if any packet loss in TX Channel FQ and CQ rings. More...
 
Udma_RingHandle EnetUdma_getTxChFqHandle (EnetUdma_TxChHandle hTxCh)
 Get TX channel FQ handle. More...
 
EnetUdma_DmaDescQHandle EnetUdma_getTxChDescPoolHandle (EnetUdma_TxChHandle hTxCh)
 Get handle to DMA descriptor free pool for TX channel. More...
 
Udma_RingHandle EnetUdma_getRxFlowFqHandle (EnetUdma_RxFlowHandle hRxFlow)
 Get RX flow FQ handle. More...
 
EnetUdma_DmaDescQHandle EnetUdma_getRxFlowDescPoolHandle (EnetUdma_RxFlowHandle hRxFlow)
 Get handle to DMA descriptor free pool for RX flow. More...
 
EnetDma_Handle EnetDma_initDmaCfg (Cpsw_Type cpswType, const EnetUdma_DmaCfg *pDmaCfg)
 Initialize data path. More...
 
int32_t EnetDma_deinitDmaCfg (EnetDma_Handle hCpswDma)
 De-initialize data path. More...
 

Detailed Description

This file contains the type definitions and helper macros for the CPSW data path (DMA) interface.


Copyright 2020, Texas Instruments Incorporated