diff --git a/sys/dev/mii/inphy.c b/sys/dev/mii/inphy.c index 79b40d28f77b..09bcd5a59447 100644 --- a/sys/dev/mii/inphy.c +++ b/sys/dev/mii/inphy.c @@ -87,20 +87,6 @@ inphy_probe(device_t dev) ma = device_get_ivars(dev); parent = device_get_parent(device_get_parent(dev)); - /* Intel 82555 */ - if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_INTEL && - MII_MODEL(ma->mii_id2) == MII_MODEL_INTEL_I82555) { - device_set_desc(dev, MII_STR_INTEL_I82555); - return (0); - } - - /* Intel 82553 C stepping */ - if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_INTEL && - MII_MODEL(ma->mii_id2) == MII_MODEL_INTEL_I82553C) { - device_set_desc(dev, MII_STR_INTEL_I82553C); - return (0); - } - /* Intel 82553 A/B steppings */ if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxINTEL && MII_MODEL(ma->mii_id2) == MII_MODEL_xxINTEL_I82553AB) { @@ -108,6 +94,23 @@ inphy_probe(device_t dev) return (0); } + if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_INTEL) { + switch (MII_MODEL(ma->mii_id2)) { + case MII_MODEL_INTEL_I82555: + device_set_desc(dev, MII_STR_INTEL_I82555); + return (0); + case MII_MODEL_INTEL_I82553C: + device_set_desc(dev, MII_STR_INTEL_I82553C); + return (0); + case MII_MODEL_INTEL_I82562EM: + device_set_desc(dev, MII_STR_INTEL_I82562EM); + return (0); + case MII_MODEL_INTEL_I82562ET: + device_set_desc(dev, MII_STR_INTEL_I82562ET); + return (0); + } + } + return (ENXIO); } diff --git a/sys/dev/mii/miidevs b/sys/dev/mii/miidevs index 27221c84ff2c..1d20d86de285 100644 --- a/sys/dev/mii/miidevs +++ b/sys/dev/mii/miidevs @@ -113,8 +113,10 @@ model xxICS 1890 0x0002 ICS1890 10/100 media interface /* Intel PHYs */ model xxINTEL I82553AB 0x0000 i83553 10/100 media interface -model INTEL I82553C 0x0035 i82553 10/100 media interface model INTEL I82555 0x0015 i82555 10/100 media interface +model INTEL I82562EM 0x0032 i82562EM 10/100 media interface +model INTEL I82562ET 0x0033 i82562ET 10/100 media interface +model INTEL I82553C 0x0035 i82553 10/100 media interface /* Level 1 PHYs */ model xxLEVEL1 LXT970 0x0000 LXT970 10/100 media interface