20#include "../source/eth/sdrv_mac_lld.h"
21#include "../source/eth/phy/phy.h"
23#ifndef CONFIG_ETH_RX_DESCRIPTOR_NUM
24#define CONFIG_ETH_RX_DESCRIPTOR_NUM 32
27#ifndef CONFIG_ETH_TX_DESCRIPTOR_NUM
28#define CONFIG_ETH_TX_DESCRIPTOR_NUM 32
32#define ARCH_DMA_MINALIGN CONFIG_ARCH_CACHE_LINE
34#define EQOS_DESCRIPTOR_ALIGN ARCH_DMA_MINALIGN
35#define EQOS_DESCRIPTORS_TX CONFIG_ETH_TX_DESCRIPTOR_NUM
36#define EQOS_DESCRIPTORS_RX CONFIG_ETH_RX_DESCRIPTOR_NUM
37#define EQOS_DESCRIPTORS_NUM (EQOS_DESCRIPTORS_TX + EQOS_DESCRIPTORS_RX)
38#define EQOS_BUFFER_ALIGN ARCH_DMA_MINALIGN
39#define EQOS_MAX_PACKET_SIZE ALIGN(1568, ARCH_DMA_MINALIGN)
40#define EQOS_RX_BUFFER_SIZE (EQOS_DESCRIPTORS_RX * EQOS_MAX_PACKET_SIZE)
41#define EQOS_TX_BUFFER_SIZE (EQOS_DESCRIPTORS_TX * EQOS_MAX_PACKET_SIZE)
47#define EQOS_RX_LOCK(eqos)
50#define EQOS_RX_UNLOCK(eqos)
57#define EQOS_TX_LOCK(eqos)
60#define EQOS_TX_UNLOCK(eqos)
77#define EQOS_DESC3_OWN BIT(31)
78#define EQOS_DESC3_IOC BIT(30)
79#define EQOS_DESC3_FD BIT(29)
80#define EQOS_DESC3_LD BIT(28)
81#define EQOS_DESC3_BUF1V BIT(24)
158 void (*set_phy_intf)(uint32_t base,
188 void *(*to_cpu_addr)(
void *slave_addr);
SemiDrive clock generator driver header file.
eth_mac_layer_speed_type
Definition: sdrv_eth.h:103
@ ETH_MAC_LAYER_SPEED_1G
Definition: sdrv_eth.h:107
@ ETH_MAC_LAYER_SPEED_10G
Definition: sdrv_eth.h:105
@ ETH_MAC_LAYER_SPEED_10M
Definition: sdrv_eth.h:106
@ ETH_MAC_LAYER_SPEED_100M
Definition: sdrv_eth.h:104
eth_mode_type
Definition: sdrv_eth.h:88
@ ETH_MODE_DOWN
Definition: sdrv_eth.h:90
@ ETH_MODE_ACTIVE
Definition: sdrv_eth.h:92
eth_phy_intf_mode_type
Definition: sdrv_eth.h:128
@ ETH_PHY_INTF_SEL_SGMII
Definition: sdrv_eth.h:131
@ ETH_PHY_INTF_SEL_RMII
Definition: sdrv_eth.h:133
@ ETH_PHY_INTF_SEL_SMII
Definition: sdrv_eth.h:135
@ ETH_PHY_INTF_SEL_RTBI
Definition: sdrv_eth.h:134
@ ETH_PHY_INTF_SEL_RGMII
Definition: sdrv_eth.h:130
@ ETH_PHY_INTF_SEL_TBI
Definition: sdrv_eth.h:132
@ ETH_PHY_INTF_SEL_MII
Definition: sdrv_eth.h:137
@ ETH_PHY_INTF_SEL_REVMII
Definition: sdrv_eth.h:136
@ ETH_PHY_INTF_SEL_GMII
Definition: sdrv_eth.h:129
int dwc_eth_rx(struct net_driver_s *dev, bool pool)
try to read rx packet and send the packet to lwip stack. Should be called in thread context....
eth_filter_action_type
Definition: sdrv_eth.h:95
@ ETH_ADD_TO_FILTER
Definition: sdrv_eth.h:97
@ ETH_REMOVE_FROM_FILTER
Definition: sdrv_eth.h:99
eth_mac_layer_sub_type
Definition: sdrv_eth.h:119
@ REVERSED
Definition: sdrv_eth.h:122
@ STANDARD
Definition: sdrv_eth.h:124
@ REDUCED
Definition: sdrv_eth.h:121
@ SERIAL
Definition: sdrv_eth.h:123
@ UNIVERSAL_SERIAL
Definition: sdrv_eth.h:125
@ LIGHT
Definition: sdrv_eth.h:120
void(* dma_rx_int_cb_t)(struct net_driver_s *dev)
Definition: sdrv_eth.h:180
int dwc_eth_probe(struct net_driver_s *dev, dwc_eth_config_t *cfg)
Initializes net driver.
eth_mac_layer_type
Definition: sdrv_eth.h:110
@ ETH_MAC_LAYER_TYPE_XMII
Definition: sdrv_eth.h:114
@ ETH_MAC_LAYER_TYPE_XXGMII
Definition: sdrv_eth.h:116
@ ETH_MAC_LAYER_TYPE_XGMII
Definition: sdrv_eth.h:112
eth_idx_type
Definition: sdrv_eth.h:83
@ ETHERNET1_IDX
Definition: sdrv_eth.h:84
@ ETHERNET2_IDX
Definition: sdrv_eth.h:85
struct dwc_eth_dev dwc_eth_dev_t
void dwc_eth_enable_dma_rx_int(struct net_driver_s *dev, dma_rx_int_cb_t callback)
Enable rx interrupt.
SemiDrive Reset driver header file.
Definition: sdrv_eth.h:140
uint32_t base
Definition: sdrv_eth.h:141
uint8_t * mac_addr
Definition: sdrv_eth.h:144
uint8_t dma_bus_width
Definition: sdrv_eth.h:147
uint32_t mtu
Definition: sdrv_eth.h:143
sdrv_ckgen_node_t * rmii_clk
Definition: sdrv_eth.h:151
eth_phy_intf_mode_type phy_intf_mode
Definition: sdrv_eth.h:157
sdrv_ckgen_node_t * phy_ref_clk
Definition: sdrv_eth.h:152
phy_dev_t * phy
Definition: sdrv_eth.h:166
sdrv_rstgen_sig_t * rst
Definition: sdrv_eth.h:154
sdrv_ckgen_node_t * timer_sec_clk
Definition: sdrv_eth.h:153
sdrv_ckgen_node_t * tx_clk
Definition: sdrv_eth.h:150
uint32_t irq_num
Definition: sdrv_eth.h:142
Definition: sdrv_eth.h:182
struct eqos_priv * eqos
Definition: sdrv_eth.h:185
bool init
Definition: sdrv_eth.h:183
dma_rx_int_cb_t rx_cb
Definition: sdrv_eth.h:186
phy_bus_t phy_bus
Definition: sdrv_eth.h:187
dwc_eth_config_t * config
Definition: sdrv_eth.h:184
Definition: sdrv_eth.h:70
volatile uint32_t des3
Definition: sdrv_eth.h:74
volatile uint32_t des2
Definition: sdrv_eth.h:73
volatile uint32_t des1
Definition: sdrv_eth.h:72
volatile uint32_t des0
Definition: sdrv_eth.h:71
Definition: sdrv_eth.h:169
void * rx_dma_buf
Definition: sdrv_eth.h:176
void * descs
Definition: sdrv_eth.h:170
void * tx_dma_buf
Definition: sdrv_eth.h:175
bool started
Definition: sdrv_eth.h:177
int rx_desc_idx
Definition: sdrv_eth.h:171
int tx_desc_idx
Definition: sdrv_eth.h:171
uint32_t dsl
Definition: sdrv_eth.h:174
unsigned int desc_size
Definition: sdrv_eth.h:172
Abstract clock common node for driver operate.
Definition: sdrv_ckgen.h:175
SDRV rstgen signal.
Definition: sdrv_rstgen.h:84