From 0a4ab69e52941f5b035f4c54aa6bac0f7b2c753d Mon Sep 17 00:00:00 2001 From: "Daniel P. Carvalho" Date: Mon, 21 Sep 2026 19:29:52 -0300 Subject: [PATCH] arch/arm/stm32h7: fail the PHY initialization when the reset times out. When the PHY did not clear the reset bit in time, stm32_phyinit() returned the result of the last MDIO read. The bus reads all ones when the PHY does not answer yet, and that read succeeds, so the function returned OK and the driver went on with its default of 10 Mbps and half duplex, while the PHY negotiated 100 Mbps and full duplex. The interface was up and could not talk to anyone. Return -ETIMEDOUT, so that bringing the interface up fails and the failure is not hidden. Signed-off-by: Daniel P. Carvalho Assisted-by: Claude:claude-sonnet-5 --- arch/arm/src/stm32h7/stm32_ethernet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/src/stm32h7/stm32_ethernet.c b/arch/arm/src/stm32h7/stm32_ethernet.c index bda84f897a3..1c88e21ad98 100644 --- a/arch/arm/src/stm32h7/stm32_ethernet.c +++ b/arch/arm/src/stm32h7/stm32_ethernet.c @@ -3696,7 +3696,7 @@ static int stm32_phyinit(struct stm32_ethmac_s *priv) if (to <= 0) { nerr("ERROR: Phy reset timeout\n"); - return ret; + return -ETIMEDOUT; } else {