From e2ac22e58901e18b0b567b85d93a8f68335180bc Mon Sep 17 00:00:00 2001 From: Luke Hoersten Date: Sat, 13 Jun 2026 21:57:47 -0500 Subject: M1: Ethernet bring-up net_eth module brings up the Waveshare ESP32-P4-ETH-POE Ethernet interface (internal EMAC + IP101GRI PHY) and waits for a DHCP lease. Pin map confirmed via Waveshare wiki + ESPHome's working config: MDC=31, MDIO=52, REF_CLK=50 (CLK_EXT_IN from PHY) TX_EN=49, TXD0=34, TXD1=35 CRS_DV=28, RXD0=30, RXD1=29 PHY reset/enable=51, PHY addr=1 app_main initializes NVS, netif, the default event loop, then starts the Ethernet driver and waits up to 30s for an IP. On success it logs the IP; on timeout it logs a warning and proceeds (the driver keeps retrying in the background). sdkconfig: declare 16 MB flash so partitions.csv (6.1 MB) fits. main/CMakeLists.txt: explicit REQUIRES esp_eth esp_event esp_netif nvs_flash. Acceptance (per M1 in the impl guide): device gets a DHCP lease over Ethernet and prints its IP. Build is clean against ESP-IDF 5.4 for target esp32p4. --- main/net_eth.h | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 main/net_eth.h (limited to 'main/net_eth.h') diff --git a/main/net_eth.h b/main/net_eth.h new file mode 100644 index 0000000..23f2450 --- /dev/null +++ b/main/net_eth.h @@ -0,0 +1,10 @@ +#pragma once + +#include +#include +#include "esp_err.h" + +esp_err_t net_eth_init(void); +esp_err_t net_eth_wait_for_ip(uint32_t timeout_ms); +bool net_eth_is_up(void); +const char *net_eth_get_ip_str(void); -- cgit v1.2.3