axiethernet
Vitis Drivers API Documentation
xaxiethernet.h File Reference

Data Structures

struct  XAxiEthernet_Config
 This typedef contains configuration information for a Axi Ethernet device. More...
 
struct  XAxiEthernet
 struct XAxiEthernet is the type for Axi Ethernet driver instance data. More...
 

Macros

#define XAE_MDIO_DIV_DFT   29
 Default MDIO clock divisor. More...
 
#define XAxiEthernet_IsStarted(InstancePtr)   (((InstancePtr)->IsStarted == XIL_COMPONENT_IS_STARTED) ? TRUE : FALSE)
 XAxiEthernet_IsStarted reports if the device is in the started or stopped state. More...
 
#define XAxiEthernet_IsDma(InstancePtr)   (((InstancePtr)->Config.AxiDevType == XPAR_AXI_DMA) ? TRUE: FALSE)
 XAxiEthernet_IsDma reports if the device is currently connected to DMA. More...
 
#define XAxiEthernet_IsFifo(InstancePtr)   (((InstancePtr)->Config.AxiDevType == XPAR_AXI_FIFO) ? TRUE: FALSE)
 XAxiEthernet_IsFifo reports if the device is currently connected to a fifo core. More...
 
#define XAxiEthernet_IsMcDma(InstancePtr)   (((InstancePtr)->Config.AxiDevType == XPAR_AXI_MCDMA) ? TRUE: FALSE)
 XAxiEthernet_IsMcDma reports if the device is currently connected to MCDMA. More...
 
#define XAxiEthernet_AxiDevBaseAddress(InstancePtr)   ((InstancePtr)->Config.AxiDevBaseAddress)
 XAxiEthernet_AxiDevBaseAddress reports the base address of the core connected to the Axi Ethernet's Axi4 Stream interface. More...
 
#define XAxiEthernet_IsRecvFrameDropped(InstancePtr)
 XAxiEthernet_IsRecvFrameDropped determines if the device thinks it has dropped a receive frame. More...
 
#define XAxiEthernet_IsRxPartialCsum(InstancePtr)   ((((InstancePtr)->Config.RxCsum) == 0x01) ? TRUE : FALSE)
 XAxiEthernet_IsRxPartialCsum determines if the device is configured with partial checksum offloading on the receive channel. More...
 
#define XAxiEthernet_IsTxPartialCsum(InstancePtr)   ((((InstancePtr)->Config.TxCsum) == 0x01) ? TRUE : FALSE)
 XAxiEthernet_IsTxPartialCsum determines if the device is configured with partial checksum offloading on the transmit channel. More...
 
#define XAxiEthernet_IsRxFullCsum(InstancePtr)   ((((InstancePtr)->Config.RxCsum) == 0x02) ? TRUE : FALSE)
 XAxiEthernet_IsRxFullCsum determines if the device is configured with full checksum offloading on the receive channel. More...
 
#define XAxiEthernet_IsTxFullCsum(InstancePtr)   ((((InstancePtr)->Config.TxCsum) == 0x02) ? TRUE : FALSE)
 XAxiEthernet_IsTxFullCsum determines if the device is configured with full checksum offloading on the transmit channel. More...
 
#define XAxiEthernet_GetPhysicalInterface(InstancePtr)   ((InstancePtr)->Config.PhyType)
 XAxiEthernet_GetPhysicalInterface returns the type of PHY interface being used by the given instance, specified by InstancePtr. More...
 
#define XAxiEthernet_GetIntStatus(InstancePtr)   XAxiEthernet_ReadReg((InstancePtr)->Config.BaseAddress, XAE_IS_OFFSET)
 XAxiEthernet_GetIntStatus returns a bit mask of the interrupt status register (ISR). More...
 
#define XAxiEthernet_IntEnable(InstancePtr, Mask)
 XAxiEthernet_IntEnable enables the interrupts specified in Mask. More...
 
#define XAxiEthernet_IntDisable(InstancePtr, Mask)
 XAxiEthernet_IntDisable disables the interrupts specified in Mask. More...
 
#define XAxiEthernet_IntPending(InstancePtr)   XAxiEthernet_ReadReg((InstancePtr)->Config.BaseAddress, XAE_IP_OFFSET)
 XAxiEthernet_IntPending returns a bit mask of the pending interrupts. More...
 
#define XAxiEthernet_IntClear(InstancePtr, Mask)
 XAxiEthernet_IntClear clears pending interrupts specified in Mask. More...
 
#define XAxiEthernet_IsExtFuncCap(InstancePtr)
 XAxiEthernet_IsExtFuncCap determines if the device is capable of the new/extend VLAN and multicast features. More...
 
#define XAxiEthernet_IsExtMcastEnable(InstancePtr)
 XAxiEthernet_IsExtMcastEnable determines if the extended multicast features is enabled. More...
 
#define XAxiEthernet_IsExtMcast(InstancePtr)   (((InstancePtr)->Config.ExtMcast) ? TRUE : FALSE)
 XAxiEthernet_IsExtMcast determines if the device is built with new/extended multicast features. More...
 
#define XAxiEthernet_IsTxVlanStrp(InstancePtr)   (((InstancePtr)->Config.TxVlanStrp) ? TRUE : FALSE)
 XAxiEthernet_IsTxVlanStrp determines if the device is configured with transmit VLAN stripping on the transmit channel. More...
 
#define XAxiEthernet_IsRxVlanStrp(InstancePtr)   (((InstancePtr)->Config.RxVlanStrp) ? TRUE : FALSE)
 XAxiEthernet_IsRxVlanStrp determines if the device is configured with receive VLAN stripping on the receive channel. More...
 
#define XAxiEthernet_IsTxVlanTran(InstancePtr)   (((InstancePtr)->Config.TxVlanTran) ? TRUE : FALSE)
 XAxiEthernet_IsTxVlanTran determines if the device is configured with transmit VLAN translation on the transmit channel. More...
 
#define XAxiEthernet_IsRxVlanTran(InstancePtr)   (((InstancePtr)->Config.RxVlanTran) ? TRUE : FALSE)
 XAxiEthernet_IsRxVlanTran determines if the device is configured with receive VLAN translation on the receive channel. More...
 
#define XAxiEthernet_IsTxVlanTag(InstancePtr)   (((InstancePtr)->Config.TxVlanTag) ? TRUE : FALSE)
 XAxiEthernet_IsTxVlanTag determines if the device is configured with transmit VLAN tagging on the transmit channel. More...
 
#define XAxiEthernet_IsRxVlanTag(InstancePtr)   (((InstancePtr)->Config.RxVlanTag) ? TRUE : FALSE)
 XAxiEthernet_IsRxVlanTag determines if the device is configured with receive VLAN tagging on the receive channel. More...
 
#define XAxiEthernet_GetTemacType(InstancePtr)   ((InstancePtr)->Config.TemacType)
 XAxiEthernet_GetTemacType returns the Axi Ethernet type of the core. More...
 
#define XAxiEthernet_IsAvbConfigured(InstancePtr)   (((InstancePtr)->Config.Avb) ? TRUE : FALSE)
 XAxiEthernet_IsAvbConfigured returns determines if Ethernet AVB.is configured in the harwdare or not. More...
 
#define XAxiEthernet_IsSgmiiOverLvdsEnabled(InstancePtr)   (((InstancePtr)->Config.EnableSgmiiOverLvds) ? TRUE : FALSE)
 XAxiEthernet_IsSgmiiOverLvdsEnabled determines if SGMII over LVDS is enabled in the harwdare or not. More...
 
#define XAxiEthernet_IsStatsConfigured(InstancePtr)   (((InstancePtr)->Config.Stats) ? TRUE : FALSE)
 XAxiEthernet_IsStatsConfigured returns determines if Statistics gathering. More...
 
Configuration options

The following are device configuration options.

See the XAxiEthernet_SetOptions, XAxiEthernet_ClearOptions and XAxiEthernet_GetOptions routines for information on how to use options.

The default state of the options are also noted below.

#define XAE_PROMISC_OPTION   0x00000001
 < XAE_PROMISC_OPTION specifies the Axi Ethernet device to accept all incoming packets. More...
 
#define XAE_JUMBO_OPTION   0x00000002
 XAE_VLAN_OPTION specifies the Axi Ethernet device to enable VLAN support for transmit and receive. More...
 
#define XAE_VLAN_OPTION   0x00000004
 XAE_FLOW_CONTROL_OPTION specifies the Axi Ethernet device to recognize received flow control frames. More...
 
#define XAE_FLOW_CONTROL_OPTION   0x00000008
 XAE_FCS_STRIP_OPTION specifies the Axi Ethernet device to strip FCS and PAD from received frames. More...
 
#define XAE_FCS_STRIP_OPTION   0x00000010
 XAE_FCS_INSERT_OPTION specifies the Axi Ethernet device to generate the FCS field and add PAD automatically for outgoing frames. More...
 
#define XAE_FCS_INSERT_OPTION   0x00000020
 XAE_LENTYPE_ERR_OPTION specifies the Axi Ethernet device to enable Length/Type error checking (mismatched type/length field) for received frames. More...
 
#define XAE_LENTYPE_ERR_OPTION   0x00000040
 XAE_TRANSMITTER_ENABLE_OPTION specifies the Axi Ethernet device transmitter to be enabled. More...
 
#define XAE_TRANSMITTER_ENABLE_OPTION   0x00000080
 XAE_RECEIVER_ENABLE_OPTION specifies the Axi Ethernet device receiver to be enabled. More...
 
#define XAE_RECEIVER_ENABLE_OPTION   0x00000100
 XAE_BROADCAST_OPTION specifies the Axi Ethernet device to receive frames sent to the broadcast Ethernet address. More...
 
#define XAE_BROADCAST_OPTION   0x00000200
 XAE_MULTICAST_OPTION specifies the Axi Ethernet device to receive frames sent to Ethernet addresses that are programmed into the Multicast Address Table (MAT). More...
 
#define XAE_MULTICAST_OPTION   0x00000400
 XAE_EXT_MULTICAST_OPTION specifies the Axi Ethernet device to receive frames sent to Ethernet addresses that are programmed into the Multicast Address Table. More...
 
#define XAE_EXT_MULTICAST_OPTION   0x00000800
 XAE_EXT_TXVLAN_TRAN_OPTION specifies the Axi Ethernet device to enable transmit VLAN translation. More...
 
#define XAE_EXT_TXVLAN_TRAN_OPTION   0x00001000
 XAE_EXT_RXVLAN_TRAN_OPTION specifies the Axi Ethernet device to enable receive VLAN translation. More...
 
#define XAE_EXT_RXVLAN_TRAN_OPTION   0x00002000
 XAE_EXT_TXVLAN_TAG_OPTION specifies the Axi Ethernet device to enable transmit VLAN tagging. More...
 
#define XAE_EXT_TXVLAN_TAG_OPTION   0x00004000
 XAE_EXT_RXVLAN_TAG_OPTION specifies the Axi Ethernet device to enable receive VLAN tagging. More...
 
#define XAE_EXT_RXVLAN_TAG_OPTION   0x00008000
 XAE_EXT_TXVLAN_STRP_OPTION specifies the Axi Ethernet device to enable transmit VLAN stripping. More...
 
#define XAE_EXT_TXVLAN_STRP_OPTION   0x00010000
 XAE_EXT_RXVLAN_STRP_OPTION specifies the Axi Ethernet device to enable receive VLAN stripping. More...
 
#define XAE_EXT_RXVLAN_STRP_OPTION   0x00020000
 
#define XAE_DEFAULT_OPTIONS
 XAE_DEFAULT_OPTIONS specify the options set in XAxiEthernet_Reset() and XAxiEthernet_CfgInitialize() More...
 

Typedefs

typedef struct XAxiEthernet_Config XAxiEthernet_Config
 This typedef contains configuration information for a Axi Ethernet device. More...
 
typedef struct XAxiEthernet XAxiEthernet
 struct XAxiEthernet is the type for Axi Ethernet driver instance data. More...
 

Functions

int XAxiEthernet_CfgInitialize (XAxiEthernet *InstancePtr, XAxiEthernet_Config *CfgPtr, UINTPTR EffectiveAddress)
 XAxiEthernet_CfgInitialize initializes an AXI Ethernet device along with the InstancePtr that references it. More...
 
int XAxiEthernet_Initialize (XAxiEthernet *InstancePtr, XAxiEthernet_Config *CfgPtr, UINTPTR EffectiveAddress)
 XAxiEthernet_Initialize initializes an AXI Ethernet device along with the InstancePtr that references it. More...
 
void XAxiEthernet_Start (XAxiEthernet *InstancePtr)
 XAxiEthernet_Start starts the Axi Ethernet device as follows: More...
 
void XAxiEthernet_Stop (XAxiEthernet *InstancePtr)
 XAxiEthernet_Stop gracefully stops the Axi Ethernet device as follows: More...
 
void XAxiEthernet_Reset (XAxiEthernet *InstancePtr)
 XAxiEthernet_Reset does not perform a soft reset of the AxiEthernet core. More...
 
XAxiEthernet_ConfigXAxiEthernet_LookupConfig (u16 DeviceId)
 XAxiEthernet_LookupConfig returns a reference to an XAxiEthernet_Config structure based on an unique device id, DeviceId. More...
 
int XAxiEthernet_SetOptions (XAxiEthernet *InstancePtr, u32 Options)
 XAxiEthernet_SetOptions enables the options, Options for the Axi Ethernet, specified by InstancePtr. More...
 
int XAxiEthernet_ClearOptions (XAxiEthernet *InstancePtr, u32 Options)
 XAxiEthernet_ClearOptions clears the options, Options for the Axi Ethernet, specified by InstancePtr. More...
 
u32 XAxiEthernet_GetOptions (XAxiEthernet *InstancePtr)
 XAxiEthernet_GetOptions returns the current option settings. More...
 
int XAxiEthernet_SetMacAddress (XAxiEthernet *InstancePtr, void *AddressPtr)
 XAxiEthernet_SetMacAddress sets the MAC address for the Axi Ethernet device, specified by InstancePtr to the MAC address specified by AddressPtr. More...
 
void XAxiEthernet_GetMacAddress (XAxiEthernet *InstancePtr, void *AddressPtr)
 XAxiEthernet_GetMacAddress gets the MAC address for the Axi Ethernet, specified by InstancePtr into the memory buffer specified by AddressPtr. More...
 
int XAxiEthernet_SetMacPauseAddress (XAxiEthernet *InstancePtr, void *AddressPtr)
 XAxiEthernet_SetMacPauseAddress sets the MAC address used for pause frames to AddressPtr. More...
 
void XAxiEthernet_GetMacPauseAddress (XAxiEthernet *InstancePtr, void *AddressPtr)
 XAxiEthernet_GetMacPauseAddress gets the MAC address used for pause frames for the Axi Ethernet device specified by InstancePtr. More...
 
int XAxiEthernet_SendPausePacket (XAxiEthernet *InstancePtr, u16 PauseValue)
 XAxiEthernet_SendPausePacket sends a pause packet with the value of PauseValue. More...
 
int XAxiEthernet_GetSgmiiStatus (XAxiEthernet *InstancePtr, u16 *SpeedPtr)
 XAxiEthernet_GetSgmiiStatus get the state of the link when using the SGMII media interface. More...
 
int XAxiEthernet_GetRgmiiStatus (XAxiEthernet *InstancePtr, u16 *SpeedPtr, int *IsFullDuplexPtr, int *IsLinkUpPtr)
 XAxiEthernet_GetRgmiiStatus get the state of the link when using the RGMII media interface. More...
 
u16 XAxiEthernet_GetOperatingSpeed (XAxiEthernet *InstancePtr)
 XAxiEthernet_GetOperatingSpeed gets the current operating link speed. More...
 
int XAxiEthernet_SetOperatingSpeed (XAxiEthernet *InstancePtr, u16 Speed)
 XAxiEthernet_SetOperatingSpeed sets the current operating link speed. More...
 
void XAxiEthernet_SetBadFrmRcvOption (XAxiEthernet *InstancePtr)
 XAxiEthernet_SetBadFrmRcvOption is used to enable the bad frame receive option. More...
 
void XAxiEthernet_ClearBadFrmRcvOption (XAxiEthernet *InstancePtr)
 XAxiEthernet_ClearBadFrmRcvOption is used to disable the bad frame receive option. More...
 
void XAxiEthernet_DisableControlFrameLenCheck (XAxiEthernet *InstancePtr)
 XAxiEthernet_DisableControlFrameLenCheck is used to disable the length check for control frames (pause frames). More...
 
void XAxiEthernet_EnableControlFrameLenCheck (XAxiEthernet *InstancePtr)
 XAxiEthernet_EnableControlFrameLenCheck is used to enable the length check for control frames (pause frames). More...
 
void XAxiEthernet_PhySetMdioDivisor (XAxiEthernet *InstancePtr, u8 Divisor)
 XAxiEthernet_PhySetMdioDivisor sets the MDIO clock divisor in the Axi Ethernet,specified by InstancePtr to the value, Divisor. More...
 
int XAxiEthernet_MulticastAdd (XAxiEthernet *InstancePtr, void *AddressPtr, int Entry)
 XAxiEthernet_MulticastAdd adds the Ethernet address, AddressPtr to the Axi Ethernet device's multicast filter list, at list index Entry. More...
 
void XAxiEthernet_MulticastGet (XAxiEthernet *InstancePtr, void *AddressPtr, int Entry)
 XAxiEthernet_MulticastGet gets the Ethernet address stored at index Entry in the Axi Ethernet device's multicast filter list. More...
 
int XAxiEthernet_MulticastClear (XAxiEthernet *InstancePtr, int Entry)
 XAxiEthernet_MulticastClear clears the Ethernet address stored at index Entry in the Axi Ethernet device's multicast filter list. More...
 
int XAxiEthernet_SetTpid (XAxiEthernet *InstancePtr, u16 Tpid, u8 Entry)
 XAxiEthernet_SetTpid sets the VLAN Tag Protocol Identifier(TPID). More...
 
int XAxiEthernet_ClearTpid (XAxiEthernet *InstancePtr, u8 Entry)
 XAxiEthernet_ClearTpid clears the VLAN Tag Protocol Identifier(TPID). More...
 
void XAxiEthernet_GetTpid (XAxiEthernet *InstancePtr, u16 *TpidPtr, u8 Entry)
 XAxiEthernet_GetTpid gets the VLAN Tag Protocol Identifier value (TPID). More...
 
int XAxiEthernet_SetVTagMode (XAxiEthernet *InstancePtr, u32 Mode, int Dir)
 XAxiEthernet_SetVTagMode configures the VLAN tagging mode. More...
 
void XAxiEthernet_GetVTagMode (XAxiEthernet *InstancePtr, u8 *ModePtr, int Dir)
 XAxiEthernet_GetVTagMode gets VLAN tagging mode. More...
 
int XAxiEthernet_SetVStripMode (XAxiEthernet *InstancePtr, u32 Mode, int Dir)
 XAxiEthernet_SetVStripMode configures the VLAN strip mode. More...
 
void XAxiEthernet_GetVStripMode (XAxiEthernet *InstancePtr, u8 *ModePtr, int Dir)
 XAxiEthernet_GetVStripMode gets the VLAN stripping mode. More...
 
int XAxiEthernet_SetVTagValue (XAxiEthernet *InstancePtr, u32 VTagValue, int Dir)
 XAxiEthernet_SetVTagValue configures the VLAN tagging value. More...
 
void XAxiEthernet_GetVTagValue (XAxiEthernet *InstancePtr, u32 *VTagValuePtr, int Dir)
 XAxiEthernet_GetVTagValue gets the configured VLAN tagging value. More...
 
int XAxiEthernet_SetVidTable (XAxiEthernet *InstancePtr, u32 Entry, u32 Vid, u8 Strip, u8 Tag, int Dir)
 XAxiEthernet_SetVidTable sets VID table includes new VLAN ID, strip and tag enable bits. More...
 
void XAxiEthernet_GetVidTable (XAxiEthernet *InstancePtr, u32 Entry, u32 *VidPtr, u8 *StripPtr, u8 *TagPtr, int Dir)
 XAxiEthernet_GetVidTable gets VID table content includes new VLAN ID, strip and tag enable bits. More...
 
int XAxiEthernet_AddExtMulticastGroup (XAxiEthernet *InstancePtr, void *AddressPtr)
 XAxiEthernet_AddExtMulticastGroup adds an entry to the multicast Ethernet address table. More...
 
int XAxiEthernet_ClearExtMulticastGroup (XAxiEthernet *InstancePtr, void *AddressPtr)
 XAxiEthernet_ClearExtMulticastGroup clears input multicast Ethernet address group from table. More...
 
int XAxiEthernet_GetExtMulticastGroup (XAxiEthernet *InstancePtr, void *AddressPtr)
 XAxiEthernet_GetExtMulticastGroup returns whether the given Ethernet address group is stored in the table. More...
 
void XAxiEthernet_DumpExtMulticastGroup (XAxiEthernet *InstancePtr)
 XAxiEthernet_DumpExtMulticastGroup dumps ALL provisioned acceptable multicast MAC in the Axi Ethernet device's multicast table. More...