summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--share/man/man4/lxtphy.47
-rw-r--r--sys/dev/mii/lxtphy.c25
-rw-r--r--sys/dev/mii/miidevs4
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