On Thu, Oct 23, 2025 at 04:48:53PM +0200, Emanuele Ghidoli wrote:
While the DP83867 PHYs report EEE capability through their feature registers, the actual hardware does not support EEE (see Links). When the connected MAC enables EEE, it causes link instability and communication failures.
The issue is reproducible with a iMX8MP and relevant stmmac ethernet port. Since the introduction of phylink-managed EEE support in the stmmac driver, EEE is now enabled by default, leading to issues on systems using the DP83867 PHY.
Wasn't it enabled before? See commit 4218647d4556 ("net: stmmac: convert to phylink managed EEE support").
stmmac's mac_link_up() was:
- if (phy && priv->dma_cap.eee) { - phy_eee_rx_clock_stop(phy, !(priv->plat->flags & - STMMAC_FLAG_RX_CLK_RUNS_IN_LPI)); - priv->tx_lpi_timer = phy->eee_cfg.tx_lpi_timer; - stmmac_eee_init(priv, phy->enable_tx_lpi); stmmac_set_eee_pls(priv, priv->hw, true); - }
So, if EEE is enabled in the core synthesis, then EEE will be configured depending on what phylib says.
In stmmac_init_phy(), there was this:
- if (priv->dma_cap.eee) - phy_support_eee(phydev); - ret = phylink_connect_phy(priv->phylink, phydev);
So phylib was told to enable EEE support on the PHY if the dwmac core supports EEE.
So, from what I can see, converting to phylink managed EEE didn't change this. So what really did change?