diff --git a/docs/en/api-reference/network/esp_eth.rst b/docs/en/api-reference/network/esp_eth.rst index 4546c7e2a3..a8f01e26e5 100644 --- a/docs/en/api-reference/network/esp_eth.rst +++ b/docs/en/api-reference/network/esp_eth.rst @@ -296,13 +296,13 @@ The Ethernet driver is implemented in an Object-Oriented style. Any operation on eth_mac_config_t mac_config = ETH_MAC_DEFAULT_CONFIG(); // apply default common MAC configuration eth_esp32_emac_config_t esp32_emac_config = ETH_ESP32_EMAC_DEFAULT_CONFIG(); // apply default vendor-specific MAC configuration - esp32_emac_config.smi_gpio.mdc_num = CONFIG_EXAMPLE_ETH_MDC_GPIO; // alter the GPIO used for MDC signal - esp32_emac_config.smi_gpio.mdio_num = CONFIG_EXAMPLE_ETH_MDIO_GPIO; // alter the GPIO used for MDIO signal + esp32_emac_config.smi_gpio.mdc_num = CONFIG_ETHERNET_MDC_GPIO; // alter the GPIO used for MDC signal + esp32_emac_config.smi_gpio.mdio_num = CONFIG_ETHERNET_MDIO_GPIO; // alter the GPIO used for MDIO signal esp_eth_mac_t *mac = esp_eth_mac_new_esp32(&esp32_emac_config, &mac_config); // create MAC instance eth_phy_config_t phy_config = ETH_PHY_DEFAULT_CONFIG(); // apply default PHY configuration - phy_config.phy_addr = CONFIG_EXAMPLE_ETH_PHY_ADDR; // alter the PHY address according to your board design - phy_config.reset_gpio_num = CONFIG_EXAMPLE_ETH_PHY_RST_GPIO; // alter the GPIO used for PHY reset + phy_config.phy_addr = CONFIG_ETHERNET_PHY_ADDR; // alter the PHY address according to your board design + phy_config.reset_gpio_num = CONFIG_ETHERNET_PHY_RST_GPIO; // alter the GPIO used for PHY reset esp_eth_phy_t *phy = esp_eth_phy_new_generic(&phy_config); // create generic PHY instance // ESP-IDF officially supports several different specific Ethernet PHY chip driver // esp_eth_phy_t *phy = esp_eth_phy_new_ip101(&phy_config); @@ -341,30 +341,30 @@ SPI-Ethernet Module eth_mac_config_t mac_config = ETH_MAC_DEFAULT_CONFIG(); // apply default common MAC configuration eth_phy_config_t phy_config = ETH_PHY_DEFAULT_CONFIG(); // apply default PHY configuration - phy_config.phy_addr = CONFIG_EXAMPLE_ETH_PHY_ADDR; // alter the PHY address according to your board design - phy_config.reset_gpio_num = CONFIG_EXAMPLE_ETH_PHY_RST_GPIO; // alter the GPIO used for PHY reset + phy_config.phy_addr = CONFIG_ETHERNET_PHY_ADDR; // alter the PHY address according to your board design + phy_config.reset_gpio_num = CONFIG_ETHERNET_PHY_RST_GPIO; // alter the GPIO used for PHY reset // Install GPIO interrupt service (as the SPI-Ethernet module is interrupt-driven) gpio_install_isr_service(0); // SPI bus configuration spi_device_handle_t spi_handle = NULL; spi_bus_config_t buscfg = { - .miso_io_num = CONFIG_EXAMPLE_ETH_SPI_MISO_GPIO, - .mosi_io_num = CONFIG_EXAMPLE_ETH_SPI_MOSI_GPIO, - .sclk_io_num = CONFIG_EXAMPLE_ETH_SPI_SCLK_GPIO, + .miso_io_num = CONFIG_ETHERNET_SPI_MISO_GPIO, + .mosi_io_num = CONFIG_ETHERNET_SPI_MOSI_GPIO, + .sclk_io_num = CONFIG_ETHERNET_SPI_SCLK_GPIO, .quadwp_io_num = -1, .quadhd_io_num = -1, }; - ESP_ERROR_CHECK(spi_bus_initialize(CONFIG_EXAMPLE_ETH_SPI_HOST, &buscfg, 1)); + ESP_ERROR_CHECK(spi_bus_initialize(CONFIG_ETHERNET_SPI_HOST, &buscfg, 1)); // Configure SPI device spi_device_interface_config_t spi_devcfg = { .mode = 0, - .clock_speed_hz = CONFIG_EXAMPLE_ETH_SPI_CLOCK_MHZ * 1000 * 1000, - .spics_io_num = CONFIG_EXAMPLE_ETH_SPI_CS_GPIO, + .clock_speed_hz = CONFIG_ETHERNET_SPI_CLOCK_MHZ * 1000 * 1000, + .spics_io_num = CONFIG_ETHERNET_SPI_CS_GPIO, .queue_size = 20 }; /* dm9051 ethernet driver is based on spi driver */ - eth_dm9051_config_t dm9051_config = ETH_DM9051_DEFAULT_CONFIG(CONFIG_EXAMPLE_ETH_SPI_HOST, &spi_devcfg); - dm9051_config.int_gpio_num = CONFIG_EXAMPLE_ETH_SPI_INT_GPIO; + eth_dm9051_config_t dm9051_config = ETH_DM9051_DEFAULT_CONFIG(CONFIG_ETHERNET_SPI_HOST, &spi_devcfg); + dm9051_config.int_gpio_num = CONFIG_ETHERNET_SPI_INT_GPIO; esp_eth_mac_t *mac = esp_eth_mac_new_dm9051(&dm9051_config, &mac_config); esp_eth_phy_t *phy = esp_eth_phy_new_dm9051(&phy_config); diff --git a/docs/zh_CN/api-reference/network/esp_eth.rst b/docs/zh_CN/api-reference/network/esp_eth.rst index dd27e87bf0..fa54ada849 100644 --- a/docs/zh_CN/api-reference/network/esp_eth.rst +++ b/docs/zh_CN/api-reference/network/esp_eth.rst @@ -297,13 +297,13 @@ ESP-IDF 在宏 :c:macro:`ETH_MAC_DEFAULT_CONFIG` 和 :c:macro:`ETH_PHY_DEFAULT_C eth_mac_config_t mac_config = ETH_MAC_DEFAULT_CONFIG(); // 应用默认的通用 MAC 配置 eth_esp32_emac_config_t esp32_emac_config = ETH_ESP32_EMAC_DEFAULT_CONFIG(); // 应用默认的供应商特定 MAC 配置 - esp32_emac_config.smi_gpio.mdc_num = CONFIG_EXAMPLE_ETH_MDC_GPIO; // 更改用于 MDC 信号的 GPIO - esp32_emac_config.smi_gpio.mdio_num = CONFIG_EXAMPLE_ETH_MDIO_GPIO; // 更改用于 MDIO 信号的 GPIO + esp32_emac_config.smi_gpio.mdc_num = CONFIG_ETHERNET_MDC_GPIO; // 更改用于 MDC 信号的 GPIO + esp32_emac_config.smi_gpio.mdio_num = CONFIG_ETHERNET_MDIO_GPIO; // 更改用于 MDIO 信号的 GPIO esp_eth_mac_t *mac = esp_eth_mac_new_esp32(&esp32_emac_config, &mac_config); // 创建 MAC 实例 eth_phy_config_t phy_config = ETH_PHY_DEFAULT_CONFIG(); // 应用默认的 PHY 配置 - phy_config.phy_addr = CONFIG_EXAMPLE_ETH_PHY_ADDR; // 根据开发板设计更改 PHY 地址 - phy_config.reset_gpio_num = CONFIG_EXAMPLE_ETH_PHY_RST_GPIO; // 更改用于 PHY 复位的 GPIO + phy_config.phy_addr = CONFIG_ETHERNET_PHY_ADDR; // 根据开发板设计更改 PHY 地址 + phy_config.reset_gpio_num = CONFIG_ETHERNET_PHY_RST_GPIO; // 更改用于 PHY 复位的 GPIO esp_eth_phy_t *phy = esp_eth_phy_new_generic(&phy_config); // 创建通用 PHY 实例 // ESP-IDF 为数种特定以太网 PHY 芯片驱动提供官方支持 // esp_eth_phy_t *phy = esp_eth_phy_new_ip101(&phy_config); @@ -342,30 +342,30 @@ SPI-Ethernet 模块 eth_mac_config_t mac_config = ETH_MAC_DEFAULT_CONFIG(); // 应用默认的通用 MAC 配置 eth_phy_config_t phy_config = ETH_PHY_DEFAULT_CONFIG(); // 应用默认的 PHY 配置 - phy_config.phy_addr = CONFIG_EXAMPLE_ETH_PHY_ADDR; // 根据开发板设计更改 PHY 地址 - phy_config.reset_gpio_num = CONFIG_EXAMPLE_ETH_PHY_RST_GPIO; // 更改用于 PHY 复位的 GPIO + phy_config.phy_addr = CONFIG_ETHERNET_PHY_ADDR; // 根据开发板设计更改 PHY 地址 + phy_config.reset_gpio_num = CONFIG_ETHERNET_PHY_RST_GPIO; // 更改用于 PHY 复位的 GPIO // 安装 GPIO 中断服务(因为 SPI-Ethernet 模块为中断驱动) gpio_install_isr_service(0); // 配置 SPI 总线 spi_device_handle_t spi_handle = NULL; spi_bus_config_t buscfg = { - .miso_io_num = CONFIG_EXAMPLE_ETH_SPI_MISO_GPIO, - .mosi_io_num = CONFIG_EXAMPLE_ETH_SPI_MOSI_GPIO, - .sclk_io_num = CONFIG_EXAMPLE_ETH_SPI_SCLK_GPIO, + .miso_io_num = CONFIG_ETHERNET_SPI_MISO_GPIO, + .mosi_io_num = CONFIG_ETHERNET_SPI_MOSI_GPIO, + .sclk_io_num = CONFIG_ETHERNET_SPI_SCLK_GPIO, .quadwp_io_num = -1, .quadhd_io_num = -1, }; - ESP_ERROR_CHECK(spi_bus_initialize(CONFIG_EXAMPLE_ETH_SPI_HOST, &buscfg, 1)); + ESP_ERROR_CHECK(spi_bus_initialize(CONFIG_ETHERNET_SPI_HOST, &buscfg, 1)); // 配置 SPI 从机设备 spi_device_interface_config_t spi_devcfg = { .mode = 0, - .clock_speed_hz = CONFIG_EXAMPLE_ETH_SPI_CLOCK_MHZ * 1000 * 1000, - .spics_io_num = CONFIG_EXAMPLE_ETH_SPI_CS_GPIO, + .clock_speed_hz = CONFIG_ETHERNET_SPI_CLOCK_MHZ * 1000 * 1000, + .spics_io_num = CONFIG_ETHERNET_SPI_CS_GPIO, .queue_size = 20 }; /* dm9051 ethernet driver is based on spi driver */ - eth_dm9051_config_t dm9051_config = ETH_DM9051_DEFAULT_CONFIG(CONFIG_EXAMPLE_ETH_SPI_HOST, &spi_devcfg); - dm9051_config.int_gpio_num = CONFIG_EXAMPLE_ETH_SPI_INT_GPIO; + eth_dm9051_config_t dm9051_config = ETH_DM9051_DEFAULT_CONFIG(CONFIG_ETHERNET_SPI_HOST, &spi_devcfg); + dm9051_config.int_gpio_num = CONFIG_ETHERNET_SPI_INT_GPIO; esp_eth_mac_t *mac = esp_eth_mac_new_dm9051(&dm9051_config, &mac_config); esp_eth_phy_t *phy = esp_eth_phy_new_dm9051(&phy_config); diff --git a/examples/ethernet/basic/pytest_eth_basic.py b/examples/ethernet/basic/pytest_eth_basic.py index d9109007ac..5c7ec3ccac 100644 --- a/examples/ethernet/basic/pytest_eth_basic.py +++ b/examples/ethernet/basic/pytest_eth_basic.py @@ -11,8 +11,8 @@ from pytest_embedded_idf.utils import idf_parametrize @pytest.mark.parametrize( 'config', [ - pytest.param('default_ip101', marks=[pytest.mark.ethernet_router]), - pytest.param('default_generic', marks=[pytest.mark.ethernet_router]), + pytest.param('default_ip101', marks=[pytest.mark.eth_ip101]), + pytest.param('default_generic', marks=[pytest.mark.eth_ip101]), pytest.param('default_dm9051', marks=[pytest.mark.eth_dm9051]), ], indirect=True, diff --git a/examples/ethernet/iperf/main/ethernet_iperf_main.c b/examples/ethernet/iperf/main/ethernet_iperf_main.c index a1259dd0c1..cd899aad77 100644 --- a/examples/ethernet/iperf/main/ethernet_iperf_main.c +++ b/examples/ethernet/iperf/main/ethernet_iperf_main.c @@ -47,7 +47,7 @@ void init_ethernet_and_netif(void) { ESP_ERROR_CHECK(esp_event_loop_create_default()); - ESP_ERROR_CHECK(example_eth_init(&s_eth_handles, &s_eth_port_cnt)); + ESP_ERROR_CHECK(ethernet_init_all(&s_eth_handles, &s_eth_port_cnt)); ESP_ERROR_CHECK(esp_netif_init()); esp_netif_inherent_config_t esp_netif_config = ESP_NETIF_INHERENT_DEFAULT_ETH(); diff --git a/examples/ethernet/iperf/main/idf_component.yml b/examples/ethernet/iperf/main/idf_component.yml index 463d384fa3..b8529906d9 100644 --- a/examples/ethernet/iperf/main/idf_component.yml +++ b/examples/ethernet/iperf/main/idf_component.yml @@ -1,7 +1,7 @@ dependencies: cmd_system: path: ${IDF_PATH}/examples/system/console/advanced/components/cmd_system - ethernet_init: - path: ${IDF_PATH}/examples/ethernet/basic/components/ethernet_init + espressif/ethernet_init: + version: "*" espressif/iperf-cmd: version: "~0.1.1" diff --git a/examples/ethernet/iperf/pytest_eth_iperf.py b/examples/ethernet/iperf/pytest_eth_iperf.py index 86d7dbae29..57a14174ec 100644 --- a/examples/ethernet/iperf/pytest_eth_iperf.py +++ b/examples/ethernet/iperf/pytest_eth_iperf.py @@ -115,7 +115,7 @@ def test_esp_eth_iperf( ) -@pytest.mark.ethernet_router +@pytest.mark.eth_ip101 @pytest.mark.parametrize( 'config', [ @@ -150,7 +150,6 @@ def test_esp_eth_iperf_ip101_esp32p4( @pytest.mark.eth_lan8720 -@pytest.mark.temp_skip_ci(targets=['esp32'], reason='IDF-14059') @pytest.mark.parametrize( 'config', [ @@ -185,7 +184,6 @@ def test_esp_eth_iperf_rtl8201( @pytest.mark.eth_dp83848 -@pytest.mark.temp_skip_ci(targets=['esp32'], reason='IDF-14059') @pytest.mark.parametrize( 'config', [ diff --git a/examples/ethernet/iperf/sdkconfig.ci.default_dm9051 b/examples/ethernet/iperf/sdkconfig.ci.default_dm9051 index 24446492c6..811427ed65 100644 --- a/examples/ethernet/iperf/sdkconfig.ci.default_dm9051 +++ b/examples/ethernet/iperf/sdkconfig.ci.default_dm9051 @@ -31,12 +31,14 @@ CONFIG_ESP_TASK_WDT_EN=n # Enable lwIP IRAM optimization CONFIG_LWIP_IRAM_OPTIMIZATION=y +CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION=y # Enable Ethernet IRAM optimization CONFIG_ETH_IRAM_OPTIMIZATION=y -CONFIG_EXAMPLE_USE_SPI_ETHERNET=y -CONFIG_EXAMPLE_USE_INTERNAL_ETHERNET=n -CONFIG_EXAMPLE_SPI_ETHERNETS_NUM=1 -CONFIG_EXAMPLE_USE_DM9051=y -CONFIG_EXAMPLE_ETH_SPI_CLOCK_MHZ=20 +# Config Ethernet Init +CONFIG_ETHERNET_SPI_SUPPORT=y +CONFIG_ETHERNET_INTERNAL_SUPPORT=n +CONFIG_ETHERNET_SPI_NUMBER=1 +CONFIG_ETHERNET_SPI_DEV0_DM9051=y +CONFIG_ETHERNET_SPI_CLOCK_MHZ=20 diff --git a/examples/ethernet/iperf/sdkconfig.ci.default_dp83848 b/examples/ethernet/iperf/sdkconfig.ci.default_dp83848 index b523576ece..46f2df3e2b 100644 --- a/examples/ethernet/iperf/sdkconfig.ci.default_dp83848 +++ b/examples/ethernet/iperf/sdkconfig.ci.default_dp83848 @@ -31,17 +31,22 @@ CONFIG_ESP_TASK_WDT_EN=n # Enable lwIP IRAM optimization CONFIG_LWIP_IRAM_OPTIMIZATION=y +CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION=y # Enable Ethernet IRAM optimization CONFIG_ETH_IRAM_OPTIMIZATION=y -CONFIG_EXAMPLE_USE_INTERNAL_ETHERNET=y -CONFIG_EXAMPLE_ETH_PHY_DP83848=y -CONFIG_EXAMPLE_ETH_MDC_GPIO=23 -CONFIG_EXAMPLE_ETH_MDIO_GPIO=18 -CONFIG_EXAMPLE_ETH_PHY_RST_GPIO=5 -CONFIG_EXAMPLE_ETH_PHY_ADDR=1 - CONFIG_ETH_ENABLED=y CONFIG_ETH_USE_ESP32_EMAC=y -# IDF-14059 + +# Config Ethernet Init +CONFIG_ETHERNET_INTERNAL_SUPPORT=y +CONFIG_ETHERNET_PHY_DP83848=y +CONFIG_ETHERNET_PHY_INTERFACE_RMII=y +CONFIG_ETHERNET_RMII_CLK_OUTPUT=y +CONFIG_ETHERNET_RMII_CLK_EXT_LOOPBACK_EN=n +CONFIG_ETHERNET_RMII_CLK_GPIO=17 +CONFIG_ETHERNET_MDC_GPIO=23 +CONFIG_ETHERNET_MDIO_GPIO=18 +CONFIG_ETHERNET_PHY_RST_GPIO=5 +CONFIG_ETHERNET_PHY_ADDR=1 diff --git a/examples/ethernet/iperf/sdkconfig.ci.default_ip101 b/examples/ethernet/iperf/sdkconfig.ci.default_ip101 index 20331a469e..a26d45ecbe 100644 --- a/examples/ethernet/iperf/sdkconfig.ci.default_ip101 +++ b/examples/ethernet/iperf/sdkconfig.ci.default_ip101 @@ -31,16 +31,20 @@ CONFIG_ESP_TASK_WDT_EN=n # Enable lwIP IRAM optimization CONFIG_LWIP_IRAM_OPTIMIZATION=y +CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION=y # Enable Ethernet IRAM optimization CONFIG_ETH_IRAM_OPTIMIZATION=y -CONFIG_EXAMPLE_USE_INTERNAL_ETHERNET=y -CONFIG_EXAMPLE_ETH_PHY_IP101=y -CONFIG_EXAMPLE_ETH_MDC_GPIO=23 -CONFIG_EXAMPLE_ETH_MDIO_GPIO=18 -CONFIG_EXAMPLE_ETH_PHY_RST_GPIO=5 -CONFIG_EXAMPLE_ETH_PHY_ADDR=1 - CONFIG_ETH_ENABLED=y CONFIG_ETH_USE_ESP32_EMAC=y + +# Config Ethernet Init +CONFIG_ETHERNET_INTERNAL_SUPPORT=y +CONFIG_ETHERNET_PHY_IP101=y +CONFIG_ETHERNET_PHY_INTERFACE_RMII=y +CONFIG_ETHERNET_RMII_CLK_INPUT=y +CONFIG_ETHERNET_MDC_GPIO=23 +CONFIG_ETHERNET_MDIO_GPIO=18 +CONFIG_ETHERNET_PHY_RST_GPIO=5 +CONFIG_ETHERNET_PHY_ADDR=1 diff --git a/examples/ethernet/iperf/sdkconfig.ci.default_ip101_esp32p4 b/examples/ethernet/iperf/sdkconfig.ci.default_ip101_esp32p4 index 017a9a7298..e76b29ba1b 100644 --- a/examples/ethernet/iperf/sdkconfig.ci.default_ip101_esp32p4 +++ b/examples/ethernet/iperf/sdkconfig.ci.default_ip101_esp32p4 @@ -33,16 +33,19 @@ CONFIG_ESP_TASK_WDT_EN=n # Enable lwIP IRAM optimization CONFIG_LWIP_IRAM_OPTIMIZATION=y +CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION=y # Enable Ethernet IRAM optimization CONFIG_ETH_IRAM_OPTIMIZATION=y -CONFIG_EXAMPLE_USE_INTERNAL_ETHERNET=y -CONFIG_EXAMPLE_ETH_PHY_IP101=y -CONFIG_EXAMPLE_ETH_MDC_GPIO=31 -CONFIG_EXAMPLE_ETH_MDIO_GPIO=52 -CONFIG_EXAMPLE_ETH_PHY_RST_GPIO=51 -CONFIG_EXAMPLE_ETH_PHY_ADDR=1 - CONFIG_ETH_ENABLED=y CONFIG_ETH_USE_ESP32_EMAC=y + +# Config Ethernet Init +CONFIG_ETHERNET_INTERNAL_SUPPORT=y +CONFIG_ETHERNET_PHY_IP101=y +CONFIG_ETHERNET_PHY_INTERFACE_RMII=y +CONFIG_ETHERNET_MDC_GPIO=31 +CONFIG_ETHERNET_MDIO_GPIO=52 +CONFIG_ETHERNET_PHY_RST_GPIO=51 +CONFIG_ETHERNET_PHY_ADDR=1 diff --git a/examples/ethernet/iperf/sdkconfig.ci.default_ksz8041 b/examples/ethernet/iperf/sdkconfig.ci.default_ksz8041 index 830cc6f1ba..875e0adb12 100644 --- a/examples/ethernet/iperf/sdkconfig.ci.default_ksz8041 +++ b/examples/ethernet/iperf/sdkconfig.ci.default_ksz8041 @@ -31,16 +31,21 @@ CONFIG_ESP_TASK_WDT_EN=n # Enable lwIP IRAM optimization CONFIG_LWIP_IRAM_OPTIMIZATION=y +CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION=y # Enable Ethernet IRAM optimization CONFIG_ETH_IRAM_OPTIMIZATION=y -CONFIG_EXAMPLE_USE_INTERNAL_ETHERNET=y -CONFIG_EXAMPLE_ETH_PHY_KSZ80XX=y -CONFIG_EXAMPLE_ETH_MDC_GPIO=23 -CONFIG_EXAMPLE_ETH_MDIO_GPIO=18 -CONFIG_EXAMPLE_ETH_PHY_RST_GPIO=5 -CONFIG_EXAMPLE_ETH_PHY_ADDR=1 - CONFIG_ETH_ENABLED=y CONFIG_ETH_USE_ESP32_EMAC=y + +# Config Ethernet Init +CONFIG_ETHERNET_INTERNAL_SUPPORT=y +CONFIG_ETHERNET_PHY_KSZ80XX=y +CONFIG_ETHERNET_PHY_INTERFACE_RMII=y +CONFIG_ETHERNET_RMII_CLK_INPUT=y +CONFIG_ETHERNET_RMII_CLK_GPIO=0 +CONFIG_ETHERNET_MDC_GPIO=23 +CONFIG_ETHERNET_MDIO_GPIO=18 +CONFIG_ETHERNET_PHY_RST_GPIO=5 +CONFIG_ETHERNET_PHY_ADDR=1 diff --git a/examples/ethernet/iperf/sdkconfig.ci.default_ksz8851snl b/examples/ethernet/iperf/sdkconfig.ci.default_ksz8851snl index e821789d8a..3afa041a4a 100644 --- a/examples/ethernet/iperf/sdkconfig.ci.default_ksz8851snl +++ b/examples/ethernet/iperf/sdkconfig.ci.default_ksz8851snl @@ -31,12 +31,14 @@ CONFIG_ESP_TASK_WDT_EN=n # Enable lwIP IRAM optimization CONFIG_LWIP_IRAM_OPTIMIZATION=y +CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION=y # Enable Ethernet IRAM optimization CONFIG_ETH_IRAM_OPTIMIZATION=y -CONFIG_EXAMPLE_USE_SPI_ETHERNET=y -CONFIG_EXAMPLE_USE_INTERNAL_ETHERNET=n -CONFIG_EXAMPLE_SPI_ETHERNETS_NUM=1 -CONFIG_EXAMPLE_USE_KSZ8851SNL=y -CONFIG_EXAMPLE_ETH_SPI_CLOCK_MHZ=20 +# Config Ethernet Init +CONFIG_ETHERNET_SPI_SUPPORT=y +CONFIG_ETHERNET_INTERNAL_SUPPORT=n +CONFIG_ETHERNET_SPI_NUMBER=1 +CONFIG_ETHERNET_SPI_DEV0_KSZ8851SNL=y +CONFIG_ETHERNET_SPI_CLOCK_MHZ=20 diff --git a/examples/ethernet/iperf/sdkconfig.ci.default_lan8720 b/examples/ethernet/iperf/sdkconfig.ci.default_lan8720 index c44e6ab5b5..123348d1a4 100644 --- a/examples/ethernet/iperf/sdkconfig.ci.default_lan8720 +++ b/examples/ethernet/iperf/sdkconfig.ci.default_lan8720 @@ -31,17 +31,22 @@ CONFIG_ESP_TASK_WDT_EN=n # Enable lwIP IRAM optimization CONFIG_LWIP_IRAM_OPTIMIZATION=y +CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION=y # Enable Ethernet IRAM optimization CONFIG_ETH_IRAM_OPTIMIZATION=y -CONFIG_EXAMPLE_USE_INTERNAL_ETHERNET=y -CONFIG_EXAMPLE_ETH_PHY_LAN87XX=y -CONFIG_EXAMPLE_ETH_MDC_GPIO=23 -CONFIG_EXAMPLE_ETH_MDIO_GPIO=18 -CONFIG_EXAMPLE_ETH_PHY_RST_GPIO=5 -CONFIG_EXAMPLE_ETH_PHY_ADDR=0 - CONFIG_ETH_ENABLED=y CONFIG_ETH_USE_ESP32_EMAC=y -# IDF-14059 + +# Config Ethernet Init +CONFIG_ETHERNET_INTERNAL_SUPPORT=y +CONFIG_ETHERNET_PHY_LAN87XX=y +CONFIG_ETHERNET_PHY_INTERFACE_RMII=y +CONFIG_ETHERNET_RMII_CLK_OUTPUT=y +CONFIG_ETHERNET_RMII_CLK_EXT_LOOPBACK_EN=n +CONFIG_ETHERNET_RMII_CLK_GPIO=17 +CONFIG_ETHERNET_MDC_GPIO=23 +CONFIG_ETHERNET_MDIO_GPIO=18 +CONFIG_ETHERNET_PHY_RST_GPIO=5 +CONFIG_ETHERNET_PHY_ADDR=0 diff --git a/examples/ethernet/iperf/sdkconfig.ci.default_rtl8201 b/examples/ethernet/iperf/sdkconfig.ci.default_rtl8201 index 530e62bbf0..ff69e18ceb 100644 --- a/examples/ethernet/iperf/sdkconfig.ci.default_rtl8201 +++ b/examples/ethernet/iperf/sdkconfig.ci.default_rtl8201 @@ -31,14 +31,18 @@ CONFIG_ESP_TASK_WDT_EN=n # Enable lwIP IRAM optimization CONFIG_LWIP_IRAM_OPTIMIZATION=y +CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION=y # Enable Ethernet IRAM optimization CONFIG_ETH_IRAM_OPTIMIZATION=y -CONFIG_EXAMPLE_ETH_MDC_GPIO=16 -CONFIG_EXAMPLE_ETH_MDIO_GPIO=17 -CONFIG_EXAMPLE_ETH_PHY_RST_GPIO=-1 -CONFIG_EXAMPLE_ETH_PHY_ADDR=0 - -CONFIG_EXAMPLE_USE_INTERNAL_ETHERNET=y -CONFIG_EXAMPLE_ETH_PHY_RTL8201=y +# Config Ethernet Init +CONFIG_ETHERNET_PHY_RTL8201=y +CONFIG_ETHERNET_INTERNAL_SUPPORT=y +CONFIG_ETHERNET_RMII_CLK_INPUT=y +# CONFIG_ETHERNET_RMII_CLK_OUTPUT is not set +CONFIG_ETHERNET_RMII_CLK_GPIO=0 +CONFIG_ETHERNET_MDC_GPIO=16 +CONFIG_ETHERNET_MDIO_GPIO=17 +CONFIG_ETHERNET_PHY_RST_GPIO=-1 +CONFIG_ETHERNET_PHY_ADDR=0 diff --git a/examples/ethernet/iperf/sdkconfig.ci.default_w5500 b/examples/ethernet/iperf/sdkconfig.ci.default_w5500 index ab71d29bf1..e83c4041db 100644 --- a/examples/ethernet/iperf/sdkconfig.ci.default_w5500 +++ b/examples/ethernet/iperf/sdkconfig.ci.default_w5500 @@ -31,12 +31,14 @@ CONFIG_ESP_TASK_WDT_EN=n # Enable lwIP IRAM optimization CONFIG_LWIP_IRAM_OPTIMIZATION=y +CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION=y # Enable Ethernet IRAM optimization CONFIG_ETH_IRAM_OPTIMIZATION=y -CONFIG_EXAMPLE_USE_SPI_ETHERNET=y -CONFIG_EXAMPLE_USE_INTERNAL_ETHERNET=n -CONFIG_EXAMPLE_SPI_ETHERNETS_NUM=1 -CONFIG_EXAMPLE_USE_W5500=y -CONFIG_EXAMPLE_ETH_SPI_CLOCK_MHZ=20 +# Config Ethernet Init +CONFIG_ETHERNET_SPI_SUPPORT=y +CONFIG_ETHERNET_INTERNAL_SUPPORT=n +CONFIG_ETHERNET_SPI_NUMBER=1 +CONFIG_ETHERNET_SPI_DEV0_W5500=y +CONFIG_ETHERNET_SPI_CLOCK_MHZ=20 diff --git a/examples/ethernet/iperf/sdkconfig.ci.worst_case_perf_w5500_c2 b/examples/ethernet/iperf/sdkconfig.ci.worst_case_perf_w5500_c2 index a6ab0f4437..189d986c41 100644 --- a/examples/ethernet/iperf/sdkconfig.ci.worst_case_perf_w5500_c2 +++ b/examples/ethernet/iperf/sdkconfig.ci.worst_case_perf_w5500_c2 @@ -36,9 +36,9 @@ CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION=n # Disable Ethernet IRAM optimization CONFIG_ETH_IRAM_OPTIMIZATION=n -# Choose w5500 -CONFIG_EXAMPLE_USE_SPI_ETHERNET=y -CONFIG_EXAMPLE_USE_INTERNAL_ETHERNET=n -CONFIG_EXAMPLE_SPI_ETHERNETS_NUM=1 -CONFIG_EXAMPLE_USE_W5500=y -CONFIG_EXAMPLE_ETH_SPI_CLOCK_MHZ=20 +# Config Ethernet Init and Choose w5500 +CONFIG_ETHERNET_SPI_SUPPORT=y +CONFIG_ETHERNET_INTERNAL_SUPPORT=n +CONFIG_ETHERNET_SPI_NUMBER=1 +CONFIG_ETHERNET_SPI_DEV0_W5500=y +CONFIG_ETHERNET_SPI_CLOCK_MHZ=20 diff --git a/examples/ethernet/iperf/sdkconfig.defaults b/examples/ethernet/iperf/sdkconfig.defaults index 057bd579cc..ac3bc061a4 100644 --- a/examples/ethernet/iperf/sdkconfig.defaults +++ b/examples/ethernet/iperf/sdkconfig.defaults @@ -31,6 +31,7 @@ CONFIG_ESP_TASK_WDT_EN=n # Enable lwIP IRAM optimization CONFIG_LWIP_IRAM_OPTIMIZATION=y +CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION=y # Enable Ethernet IRAM optimization CONFIG_ETH_IRAM_OPTIMIZATION=y diff --git a/examples/ethernet/ptp/main/idf_component.yml b/examples/ethernet/ptp/main/idf_component.yml index cbf926ba80..085ba89ab4 100644 --- a/examples/ethernet/ptp/main/idf_component.yml +++ b/examples/ethernet/ptp/main/idf_component.yml @@ -1,6 +1,6 @@ dependencies: - ethernet_init: - path: ${IDF_PATH}/examples/ethernet/basic/components/ethernet_init + espressif/ethernet_init: + version: "*" esp_eth_time: path: ${IDF_PATH}/examples/ethernet/ptp/components/esp_eth_time ptpd: diff --git a/examples/ethernet/ptp/main/ptp_main.c b/examples/ethernet/ptp/main/ptp_main.c index 7954b17966..5bb2a61715 100644 --- a/examples/ethernet/ptp/main/ptp_main.c +++ b/examples/ethernet/ptp/main/ptp_main.c @@ -28,7 +28,7 @@ void init_ethernet_and_netif(void) ESP_ERROR_CHECK(esp_event_loop_create_default()); - ESP_ERROR_CHECK(example_eth_init(ð_handles, ð_port_cnt)); + ESP_ERROR_CHECK(ethernet_init_all(ð_handles, ð_port_cnt)); ESP_ERROR_CHECK(esp_netif_init()); diff --git a/examples/ethernet/ptp/sdkconfig.defaults b/examples/ethernet/ptp/sdkconfig.defaults index 0f922b5824..13456045e8 100644 --- a/examples/ethernet/ptp/sdkconfig.defaults +++ b/examples/ethernet/ptp/sdkconfig.defaults @@ -2,8 +2,8 @@ CONFIG_IDF_TARGET="esp32p4" CONFIG_ESP_NETIF_L2_TAP=y -CONFIG_EXAMPLE_USE_INTERNAL_ETHERNET=y -CONFIG_EXAMPLE_ETH_PHY_IP101=y +CONFIG_ETHERNET_INTERNAL_SUPPORT=y +CONFIG_ETHERNET_PHY_IP101=y CONFIG_NETUTILS_PTPD=y CONFIG_NETUTILS_PTPD_CLIENT=y diff --git a/examples/network/bridge/main/bridge_example_main.c b/examples/network/bridge/main/bridge_example_main.c index 719c0af3bb..2ad5681ca7 100644 --- a/examples/network/bridge/main/bridge_example_main.c +++ b/examples/network/bridge/main/bridge_example_main.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Unlicense OR CC0-1.0 */ @@ -101,10 +101,14 @@ static void example_wifi_init(void) void app_main(void) { + // Create default event loop that running in background + ESP_ERROR_CHECK(esp_event_loop_create_default()); + // Initialize Ethernet driver uint8_t eth_port_cnt = 0; esp_eth_handle_t *eth_handles; - ESP_ERROR_CHECK(example_eth_init(ð_handles, ð_port_cnt)); + + ESP_ERROR_CHECK(ethernet_init_all(ð_handles, ð_port_cnt)); // The same MAC address will be used for all Ethernet ports since the bridge acts as one device uint8_t common_mac_addr[ETH_ADDR_LEN]; @@ -117,8 +121,6 @@ void app_main(void) // Initialize TCP/IP network interface ESP_ERROR_CHECK(esp_netif_init()); - // Create default event loop that running in background - ESP_ERROR_CHECK(esp_event_loop_create_default()); // Create instances of esp-netif for Ethernet ports esp_netif_t **eth_netifs = calloc(eth_port_cnt, sizeof(esp_netif_t *)); diff --git a/examples/network/bridge/main/idf_component.yml b/examples/network/bridge/main/idf_component.yml index 8453ecc219..fbdd147ac6 100644 --- a/examples/network/bridge/main/idf_component.yml +++ b/examples/network/bridge/main/idf_component.yml @@ -1,3 +1,3 @@ dependencies: - ethernet_init: - path: ${IDF_PATH}/examples/ethernet/basic/components/ethernet_init + espressif/ethernet_init: + version: "*" diff --git a/examples/network/bridge/sdkconfig.ci b/examples/network/bridge/sdkconfig.ci index 3b6f91d882..ef5097e8bb 100644 --- a/examples/network/bridge/sdkconfig.ci +++ b/examples/network/bridge/sdkconfig.ci @@ -2,5 +2,6 @@ # Note that it enables SPI Ethernet, so it uses eth-eth bridge (to support targets that don't have Wi-Fi) CONFIG_ESP_NETIF_TCPIP_LWIP=y CONFIG_ESP_NETIF_BRIDGE_EN=y -CONFIG_EXAMPLE_USE_SPI_ETHERNET=y +CONFIG_ETHERNET_SPI_SUPPORT=y CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=1 +# CONFIG_ETHERNET_INTERNAL_SUPPORT is not set diff --git a/examples/network/bridge/sdkconfig.ci.w5500 b/examples/network/bridge/sdkconfig.ci.w5500 index 155bd4eff2..f7abfeeabb 100644 --- a/examples/network/bridge/sdkconfig.ci.w5500 +++ b/examples/network/bridge/sdkconfig.ci.w5500 @@ -8,20 +8,21 @@ CONFIG_ESP_NETIF_BRIDGE_EN=y CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=1 # Configure network interface -# CONFIG_EXAMPLE_USE_INTERNAL_ETHERNET is not set -CONFIG_EXAMPLE_USE_SPI_ETHERNET=y -CONFIG_EXAMPLE_SPI_ETHERNETS_NUM=2 -# CONFIG_EXAMPLE_USE_DM9051 is not set -# CONFIG_EXAMPLE_USE_KSZ8851SNL is not set -CONFIG_EXAMPLE_USE_W5500=y -CONFIG_EXAMPLE_ETH_SPI_HOST=1 -CONFIG_EXAMPLE_ETH_SPI_SCLK_GPIO=14 -CONFIG_EXAMPLE_ETH_SPI_MOSI_GPIO=13 -CONFIG_EXAMPLE_ETH_SPI_MISO_GPIO=12 -CONFIG_EXAMPLE_ETH_SPI_CLOCK_MHZ=20 -CONFIG_EXAMPLE_ETH_SPI_CS0_GPIO=15 -CONFIG_EXAMPLE_ETH_SPI_CS1_GPIO=32 -CONFIG_EXAMPLE_ETH_SPI_INT0_GPIO=4 -CONFIG_EXAMPLE_ETH_SPI_INT1_GPIO=33 -CONFIG_EXAMPLE_ETH_SPI_PHY_RST0_GPIO=-1 -CONFIG_EXAMPLE_ETH_SPI_PHY_RST1_GPIO=-1 +# CONFIG_ETHERNET_INTERNAL_SUPPORT is not set +CONFIG_ETHERNET_SPI_SUPPORT=y +CONFIG_ETHERNET_SPI_NUMBER=2 +# CONFIG_ETHERNET_SPI_DEV0_DM9051 is not set +# CONFIG_ETHERNET_SPI_DEV0_KSZ8851SNL is not set +CONFIG_ETHERNET_SPI_DEV0_W5500=y +CONFIG_ETHERNET_SPI_DEV1_W5500=y +CONFIG_ETHERNET_SPI_HOST=1 +CONFIG_ETHERNET_SPI_SCLK_GPIO=14 +CONFIG_ETHERNET_SPI_MOSI_GPIO=13 +CONFIG_ETHERNET_SPI_MISO_GPIO=12 +CONFIG_ETHERNET_SPI_CLOCK_MHZ=20 +CONFIG_ETHERNET_SPI_CS0_GPIO=15 +CONFIG_ETHERNET_SPI_CS1_GPIO=32 +CONFIG_ETHERNET_SPI_INT0_GPIO=4 +CONFIG_ETHERNET_SPI_INT1_GPIO=33 +CONFIG_ETHERNET_SPI_PHY_RST0_GPIO=-1 +CONFIG_ETHERNET_SPI_PHY_RST1_GPIO=-1 diff --git a/examples/network/bridge/sdkconfig.ci.wifi b/examples/network/bridge/sdkconfig.ci.wifi index e73fdc644c..925db2bf28 100644 --- a/examples/network/bridge/sdkconfig.ci.wifi +++ b/examples/network/bridge/sdkconfig.ci.wifi @@ -5,5 +5,5 @@ CONFIG_ESP_NETIF_TCPIP_LWIP=y CONFIG_ESP_NETIF_BRIDGE_EN=y CONFIG_EXAMPLE_BR_DHCPS=y CONFIG_EXAMPLE_BR_WIFI=y -CONFIG_EXAMPLE_USE_SPI_ETHERNET=y +CONFIG_ETHERNET_SPI_SUPPORT=y CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=1 diff --git a/examples/network/eth2ap/main/ethernet_example_main.c b/examples/network/eth2ap/main/ethernet_example_main.c index 27ed39a3b5..a151c390be 100644 --- a/examples/network/eth2ap/main/ethernet_example_main.c +++ b/examples/network/eth2ap/main/ethernet_example_main.c @@ -156,7 +156,7 @@ static void initialize_ethernet(void) { uint8_t eth_port_cnt = 0; esp_eth_handle_t *eth_handles; - ESP_ERROR_CHECK(example_eth_init(ð_handles, ð_port_cnt)); + ESP_ERROR_CHECK(ethernet_init_all(ð_handles, ð_port_cnt)); if (eth_port_cnt > 1) { ESP_LOGW(TAG, "multiple Ethernet devices detected, the first initialized is to be used!"); } diff --git a/examples/network/eth2ap/main/idf_component.yml b/examples/network/eth2ap/main/idf_component.yml index 8453ecc219..fbdd147ac6 100644 --- a/examples/network/eth2ap/main/idf_component.yml +++ b/examples/network/eth2ap/main/idf_component.yml @@ -1,3 +1,3 @@ dependencies: - ethernet_init: - path: ${IDF_PATH}/examples/ethernet/basic/components/ethernet_init + espressif/ethernet_init: + version: "*" diff --git a/examples/network/simple_sniffer/main/idf_component.yml b/examples/network/simple_sniffer/main/idf_component.yml index 45810f2f6b..2193888327 100644 --- a/examples/network/simple_sniffer/main/idf_component.yml +++ b/examples/network/simple_sniffer/main/idf_component.yml @@ -1,4 +1,4 @@ dependencies: pcap: "^1.0.0" - ethernet_init: - path: ${IDF_PATH}/examples/ethernet/basic/components/ethernet_init + espressif/ethernet_init: + version: "*" diff --git a/examples/network/simple_sniffer/main/simple_sniffer_example_main.c b/examples/network/simple_sniffer/main/simple_sniffer_example_main.c index a7505a8bdc..7eab272f59 100644 --- a/examples/network/simple_sniffer/main/simple_sniffer_example_main.c +++ b/examples/network/simple_sniffer/main/simple_sniffer_example_main.c @@ -127,7 +127,7 @@ static void initialize_eth(void) // Initialize Ethernet driver uint8_t eth_port_cnt = 0; esp_eth_handle_t *eth_handles; - ESP_ERROR_CHECK(example_eth_init(ð_handles, ð_port_cnt)); + ESP_ERROR_CHECK(ethernet_init_all(ð_handles, ð_port_cnt)); if (eth_port_cnt > 0) { // Register user defined event handlers diff --git a/examples/network/simple_sniffer/sdkconfig.defaults b/examples/network/simple_sniffer/sdkconfig.defaults index a190affdc5..404a08b148 100644 --- a/examples/network/simple_sniffer/sdkconfig.defaults +++ b/examples/network/simple_sniffer/sdkconfig.defaults @@ -21,5 +21,5 @@ CONFIG_FATFS_LFN_HEAP=y CONFIG_FATFS_MAX_LFN=31 # Network Interfaces -CONFIG_EXAMPLE_USE_INTERNAL_ETHERNET=n -CONFIG_EXAMPLE_USE_SPI_ETHERNET=n +CONFIG_ETHERNET_INTERNAL_SUPPORT=n +CONFIG_ETHERNET_SPI_SUPPORT=n diff --git a/examples/network/sta2eth/main/ethernet_iface.c b/examples/network/sta2eth/main/ethernet_iface.c index c856a05537..2f731ea040 100644 --- a/examples/network/sta2eth/main/ethernet_iface.c +++ b/examples/network/sta2eth/main/ethernet_iface.c @@ -271,7 +271,7 @@ esp_err_t wired_bridge_init(wired_rx_cb_t rx_cb, wired_free_cb_t free_cb) { uint8_t eth_port_cnt = 0; esp_eth_handle_t *eth_handles; - ESP_ERROR_CHECK(example_eth_init(ð_handles, ð_port_cnt)); + ESP_ERROR_CHECK(ethernet_init_all(ð_handles, ð_port_cnt)); // Check for multiple Ethernet interfaces if (1 < eth_port_cnt) { @@ -324,7 +324,7 @@ esp_err_t wired_netif_init(void) { uint8_t eth_port_cnt = 0; esp_eth_handle_t *eth_handles; - ESP_ERROR_CHECK(example_eth_init(ð_handles, ð_port_cnt)); + ESP_ERROR_CHECK(ethernet_init_all(ð_handles, ð_port_cnt)); // Check or multiple ethernet interface if (1 < eth_port_cnt) { diff --git a/examples/network/sta2eth/main/idf_component.yml b/examples/network/sta2eth/main/idf_component.yml index a900441662..a42f222d2e 100644 --- a/examples/network/sta2eth/main/idf_component.yml +++ b/examples/network/sta2eth/main/idf_component.yml @@ -7,5 +7,5 @@ dependencies: - if: "target in [esp32s2, esp32s3]" dns_server: path: ${IDF_PATH}/examples/protocols/http_server/captive_portal/components/dns_server - ethernet_init: - path: ${IDF_PATH}/examples/ethernet/basic/components/ethernet_init + espressif/ethernet_init: + version: "*" diff --git a/examples/network/vlan_support/main/idf_component.yml b/examples/network/vlan_support/main/idf_component.yml index 8453ecc219..fbdd147ac6 100644 --- a/examples/network/vlan_support/main/idf_component.yml +++ b/examples/network/vlan_support/main/idf_component.yml @@ -1,3 +1,3 @@ dependencies: - ethernet_init: - path: ${IDF_PATH}/examples/ethernet/basic/components/ethernet_init + espressif/ethernet_init: + version: "*" diff --git a/examples/network/vlan_support/main/vlan_support_main.c b/examples/network/vlan_support/main/vlan_support_main.c index 30c5c891b3..dc0cb6cb2e 100644 --- a/examples/network/vlan_support/main/vlan_support_main.c +++ b/examples/network/vlan_support/main/vlan_support_main.c @@ -132,7 +132,7 @@ void app_main(void) // Initialize Ethernet driver uint8_t eth_port_cnt = 0; esp_eth_handle_t *eth_handle; - ESP_ERROR_CHECK(example_eth_init(ð_handle, ð_port_cnt)); + ESP_ERROR_CHECK(ethernet_init_all(ð_handle, ð_port_cnt)); // Check or multiple ethernet interface if (1 < eth_port_cnt) {