--- if_vr.c.orig 2008-03-06 10:02:05.000000000 +0900 +++ if_vr.c 2008-03-06 10:01:29.000000000 +0900 @@ -1995,6 +1995,7 @@ { struct ifnet *ifp; struct mii_data *mii; + struct mii_softc *miisc; bus_addr_t addr; int i; @@ -2102,6 +2103,12 @@ CSR_WRITE_2(sc, VR_MII_IMR, 0); sc->vr_link = 0; + /* + * It seems that some revisions require PHY reset to + * establish valid link with link partner. + */ + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + mii_phy_reset(miisc); mii_mediachg(mii); ifp->if_drv_flags |= IFF_DRV_RUNNING;