diff options
-rw-r--r-- | share/man/man4/lxtphy.4 | 7 | ||||
-rw-r--r-- | sys/dev/mii/lxtphy.c | 25 | ||||
-rw-r--r-- | sys/dev/mii/miidevs | 4 |
3 files changed, 26 insertions, 10 deletions
diff --git a/share/man/man4/lxtphy.4 b/share/man/man4/lxtphy.4 index cf3e69e8f5f..6bdf7c6a0d1 100644 --- a/share/man/man4/lxtphy.4 +++ b/share/man/man4/lxtphy.4 @@ -1,4 +1,4 @@ -.\" $OpenBSD: lxtphy.4,v 1.4 2000/10/18 02:38:23 aaron Exp $ +.\" $OpenBSD: lxtphy.4,v 1.5 2001/12/15 02:41:47 deraadt Exp $ .\" $NetBSD: lxtphy.4,v 1.1 1998/11/04 05:53:59 thorpej Exp $ .\" .\" Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -41,13 +41,14 @@ .Os .Sh NAME .Nm lxtphy -.Nd Level One LXT-970 10/100 Ethernet PHY driver +.Nd Level One LXT-970/971 10/100 Ethernet PHY driver .Sh SYNOPSIS .Cd "lxtphy* at mii? phy ?" .Sh DESCRIPTION The .Nm -driver supports the Level One LXT-970 and LXT-970A 10/100 Ethernet PHYs. +driver supports the Level One LXT-970, LXT-970A and LXT-971 10/100 Ethernet +PHYs. These PHYs are found on a variety of high-performance Ethernet interfaces. .Sh SEE ALSO .Xr ifmedia 4 , diff --git a/sys/dev/mii/lxtphy.c b/sys/dev/mii/lxtphy.c index b0340b2ce39..4713550e802 100644 --- a/sys/dev/mii/lxtphy.c +++ b/sys/dev/mii/lxtphy.c @@ -1,4 +1,4 @@ -/* $OpenBSD: lxtphy.c,v 1.6 2001/04/14 03:22:43 aaron Exp $ */ +/* $OpenBSD: lxtphy.c,v 1.7 2001/12/15 02:41:33 deraadt Exp $ */ /* $NetBSD: lxtphy.c,v 1.19 2000/02/02 23:34:57 thorpej Exp $ */ /*- @@ -68,7 +68,7 @@ */ /* - * driver for Level One's LXT-970 ethernet 10/100 PHY + * driver for Level One's LXT-970/971 ethernet 10/100 PHY * datasheet from www.level1.com */ @@ -117,6 +117,10 @@ lxtphymatch(parent, match, aux) MII_MODEL(ma->mii_id2) == MII_MODEL_xxLEVEL1_LXT970) return (10); + if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxLEVEL1a && + MII_MODEL(ma->mii_id2) == MII_MODEL_xxLEVEL1a_LXT971) + return (10); + return (0); } @@ -129,13 +133,22 @@ lxtphyattach(parent, self, aux) struct mii_attach_args *ma = aux; struct mii_data *mii = ma->mii_data; - printf(": %s, rev. %d\n", MII_STR_xxLEVEL1_LXT970, - MII_REV(ma->mii_id2)); - + if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxLEVEL1 && + MII_MODEL(ma->mii_id2) == MII_MODEL_xxLEVEL1_LXT970) { + printf(": %s, rev. %d\n", MII_STR_xxLEVEL1_LXT970, + MII_REV(ma->mii_id2)); + sc->mii_status = lxtphy_status; + } + if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxLEVEL1a && + MII_MODEL(ma->mii_id2) == MII_MODEL_xxLEVEL1a_LXT971) { + printf(": %s, rev. %d\n", MII_STR_xxLEVEL1a_LXT971, + MII_REV(ma->mii_id2)); + sc->mii_status = ukphy_status; + } + sc->mii_inst = mii->mii_instance; sc->mii_phy = ma->mii_phyno; sc->mii_service = lxtphy_service; - sc->mii_status = lxtphy_status; sc->mii_pdata = mii; sc->mii_flags = mii->mii_flags; diff --git a/sys/dev/mii/miidevs b/sys/dev/mii/miidevs index 707214885e5..1d2efd2d33e 100644 --- a/sys/dev/mii/miidevs +++ b/sys/dev/mii/miidevs @@ -1,4 +1,4 @@ -$OpenBSD: miidevs,v 1.25 2001/12/14 22:06:46 jason Exp $ +$OpenBSD: miidevs,v 1.26 2001/12/15 02:41:33 deraadt Exp $ /* $NetBSD: miidevs,v 1.3 1998/11/05 03:43:43 thorpej Exp $ */ /*- @@ -79,6 +79,7 @@ oui xxXAQTI 0x350700 XaQti Corp. /* Level 1 is completely different - from right to left. (Two bits get lost in the third OUI byte.) */ oui xxLEVEL1 0x1e0400 Level 1 +oui xxLEVEL1a 0x0004de Level 1 /* Don't know what's going on here. */ oui xxDAVICOM 0x006040 Davicom Semiconductor @@ -135,6 +136,7 @@ model INTEL I82553 0x0035 i82553 10/100 media interface /* Level 1 PHYs */ model xxLEVEL1 LXT970 0x0000 LXT970 10/100 media interface +model xxLEVEL1a LXT971 0x000e LXT971 10/100 media interface /* Myson Technology PHYs */ model MYSON MTD972 0x0000 MTD972 10/100 media interface |