40 #define ENET_FRAME_MAX_FRAMELEN 1518U
42 #define ENET_MIN_BUFFERSIZE 64U
45 #define ENET_BUFF_ALIGN(x) (((uint32_t)(x) + (FEATURE_ENET_BUFF_ALIGNMENT - 1)) & ~(FEATURE_ENET_BUFF_ALIGNMENT - 1))
46 #define ENET_BUFF_IS_ALIGNED(x) (((uint32_t)(x) & ~(FEATURE_ENET_BUFF_ALIGNMENT - 1)) != 0)
49 #define ENET_BUFFDESCR_ALIGN(x) (((uint32_t)(x) + (FEATURE_ENET_BUFFDESCR_ALIGNMENT - 1)) & ~(FEATURE_ENET_BUFFDESCR_ALIGNMENT - 1))
50 #define ENET_BUFFDESCR_IS_ALIGNED(x) (((uint32_t)(x) & ~(FEATURE_ENET_BUFFDESCR_ALIGNMENT - 1)) != 0)
130 #if FEATURE_ENET_HAS_AVB
131 ENET_RX_FLUSH_2_INTERRUPT = ENET_EIR_RXFLUSH_2_MASK,
132 ENET_RX_FLUSH_1_INTERRUPT = ENET_EIR_RXFLUSH_1_MASK,
133 ENET_RX_FLUSH_0_INTERRUPT = ENET_EIR_RXFLUSH_0_MASK,
134 ENET_TX_FRAME_1_INTERRUPT = ENET_EIR_TXF1_MASK,
135 ENET_TX_BUFFER_1_INTERRUPT = ENET_EIR_TXB1_MASK,
136 ENET_RX_FRAME_1_INTERRUPT = ENET_EIR_RXF1_MASK,
137 ENET_RX_BUFFER_1_INTERRUPT = ENET_EIR_RXB1_MASK,
138 ENET_TX_FRAME_2_INTERRUPT = ENET_EIR_TXF2_MASK,
139 ENET_TX_BUFFER_2_INTERRUPT = ENET_EIR_TXB2_MASK,
140 ENET_RX_FRAME_2_INTERRUPT = ENET_EIR_RXF2_MASK,
141 ENET_RX_BUFFER_2_INTERRUPT = ENET_EIR_RXB2_MASK,
143 #if FEATURE_ENET_HAS_RECEIVE_PARSER
144 ENET_PARSERERR_INTERRUPT = ENET_EIR_PARSERR_MASK,
145 ENET_PARSRF_INTERRUPT = ENET_EIR_PARSRF_MASK,
187 #if (defined(CORE_BIG_ENDIAN))
193 } enet_buffer_descriptor_t;
194 #elif (defined(CORE_LITTLE_ENDIAN))
200 } enet_buffer_descriptor_t;
202 #error "Endianness not defined!"
339 #if defined(__cplusplus)
505 bool miiPreambleDisabled);
640 #if defined(__cplusplus)
#define ENET_EIR_BABR_MASK
void ENET_DRV_GetMacAddr(uint8_t instance, uint8_t *macAddr)
Gets the physical address of the MAC.
#define ENET_EIR_GRA_MASK
Internal driver state structure Implements : enet_state_t_Class.
enet_event_t
Send/Receive internal buffer descriptor Implements : enet_buffer_descriptor_t_Class.
enet_mii_mode_t
Media Independent Interface mode selection Implements : enet_mii_mode_t_Class.
void ENET_DRV_SetUnicastForward(uint8_t instance, uint8_t *macAddr, bool enable)
Enables/Disables forwarding of unicast traffic having a specific MAC address as destination.
Send/Receive buffer information for the user Implements : enet_buffer_t_Class.
#define ENET_EIR_RXF_MASK
void ENET_DRV_GetDefaultConfig(enet_config_t *config)
Gets the default configuration structure.
void ENET_DRV_ConfigCounters(uint8_t instance, bool enable)
Enables/Disables the MIB counters.
status_t ENET_DRV_GetTransmitStatus(uint8_t instance, enet_buffer_t *buff)
Checks if the transmission of a buffer is complete.
#define ENET_TACC_IPCHK_MASK
Defines the ENET module configuration structure Implements : enet_config_t_Class. ...
#define ENET_EIR_PLR_MASK
#define ENET_EIR_TXF_MASK
#define ENET_EIR_BABT_MASK
enet_rx_special_config_t
Special receive control configurations Implements : enet_rx_special_config_t_Class.
enet_rx_accelerator_t
Receive accelerator configurations Implements : enet_rx_accelerator_t_Class.
#define ENET_EIR_TS_TIMER_MASK
void ENET_DRV_EnableMDIO(uint8_t instance, bool miiPreambleDisabled)
Enables the MDIO interface.
#define ENET_RACC_LINEDIS_MASK
void ENET_DRV_Deinit(uint8_t instance)
Deinitializes the ENET module.
enet_buffer_descriptor_t * rxBdCurrent
void ENET_DRV_ProvideRxBuff(uint8_t instance, enet_buffer_t *buff)
Provides a receive buffer to be used by the driver for reception.
enet_buffer_descriptor_t * rxBdAlloc
#define ENET_EIR_MII_MASK
void ENET_DRV_SetMacAddr(uint8_t instance, uint8_t *macAddr)
Configures the physical address of the MAC.
enet_mii_speed_t
Media Independent Interface speed selection Implements : enet_mii_speed_t_Class.
#define ENET_RACC_PRODIS_MASK
enet_counter_t
Statistics counters enumeration Implements : enet_counter_t_Class.
void ENET_DRV_SetMulticastForwardAll(uint8_t instance, bool enable)
Enables/Disables forwarding of the multicast traffic, irrespective of the destination MAC address...
status_t ENET_DRV_MDIOWrite(uint8_t instance, uint8_t phyAddr, uint8_t phyReg, uint16_t data, uint32_t timeoutMs)
Writes the selected register of the PHY.
#define ENET_TACC_SHIFT16_MASK
#define ENET_EIR_TS_AVAIL_MASK
enet_mii_duplex_t miiDuplex
#define ENET_RACC_SHIFT16_MASK
Defines the ENET buffer descriptors ring configuration structure Implements : enet_buffer_config_t_Cl...
status_t
Status return codes. Common error codes will be a unified enumeration (C enum) that will contain all ...
status_t ENET_DRV_SendFrame(uint8_t instance, enet_buffer_t *buff)
Sends an Ethernet frame.
#define ENET_EIR_TXB_MASK
enet_buffer_descriptor_t * rxRingAligned
enet_buffer_descriptor_t * txBdBase
enet_mii_speed_t miiSpeed
uint8_t * rxBufferAligned
enet_interrupt_enable_t
Interrupt sources Implements : enet_interrupt_enable_t_Class.
#define ENET_EIR_WAKEUP_MASK
enet_buffer_descriptor_t * txRingAligned
enet_buffer_descriptor_t * rxBdBase
#define ENET_TACC_PROCHK_MASK
void ENET_DRV_SetMulticastForward(uint8_t instance, uint8_t *macAddr, bool enable)
Enables/Disables forwarding of multicast traffic having a specific MAC address as destination...
enet_buffer_descriptor_t * txBdCurrent
#define ENET_EIR_EBERR_MASK
void(* enet_callback_t)(uint8_t instance, enet_event_t event)
Callback function invoked when one of the events in "enet_event_t" is encountered Implements : enet_c...
enet_tx_special_config_t
Special transmit control configurations Implements : enet_tx_special_config_t_Class.
uint32_t ENET_DRV_GetCounter(uint8_t instance, enet_counter_t counter)
Gets statistics from the specified counter.
#define ENET_EIR_RXB_MASK
enet_mii_duplex_t
Media Independent Interface full-/half-duplex selection Implements : enet_mii_duplex_t_Class.
enet_tx_accelerator_t
Transmit accelerator configurations Implements : enet_tx_accelerator_t_Class.
#define ENET_RACC_PADREM_MASK
void ENET_DRV_SetSleepMode(uint8_t instance, bool enable)
Sets the MAC in sleep mode or normal mode.
#define ENET_RACC_IPDIS_MASK
status_t ENET_DRV_ReadFrame(uint8_t instance, enet_buffer_t *buff)
Reads a received Ethernet frame.
status_t ENET_DRV_MDIORead(uint8_t instance, uint8_t phyAddr, uint8_t phyReg, uint16_t *data, uint32_t timeoutMs)
Reads the selected register of the PHY.
void ENET_DRV_Init(uint8_t instance, enet_state_t *state, const enet_config_t *config, const enet_buffer_config_t *bufferConfig, uint8_t *macAddr)
Initializes the ENET module.