diff --git a/sys/dev/mii/e1000phy.c b/sys/dev/mii/e1000phy.c --- a/sys/dev/mii/e1000phy.c +++ b/sys/dev/mii/e1000phy.c @@ -185,6 +185,11 @@ { uint16_t reg, page; + /* Undo power-down / isolate */ + reg = PHY_READ(sc, E1000_CR); + reg &= ~(E1000_CR_ISOLATE | E1000_CR_POWER_DOWN); + PHY_WRITE(sc, E1000_CR, reg); + reg = PHY_READ(sc, E1000_SCR); if ((sc->mii_flags & MIIF_HAVEFIBER) != 0) { reg &= ~E1000_SCR_AUTO_X_MODE; @@ -353,6 +358,8 @@ reg = PHY_READ(sc, E1000_CR); reg &= ~E1000_CR_AUTO_NEG_ENABLE; + /* Undo power-down / isolate */ + reg &= ~(E1000_CR_ISOLATE | E1000_CR_POWER_DOWN); PHY_WRITE(sc, E1000_CR, reg | E1000_CR_RESET); if (IFM_SUBTYPE(ife->ifm_media) == IFM_1000_T) {