summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorPyun YongHyeon <yongari@FreeBSD.org>2008-10-23 00:54:07 +0000
committerPyun YongHyeon <yongari@FreeBSD.org>2008-10-23 00:54:07 +0000
commit6a3a75ea6050959c82f415675d6938512bf4bd66 (patch)
treeb3861417439c9369634337844c32355e427769c8 /sys/dev
parent7086227a555813d5c6658eec972fb3235b0dea90 (diff)
Notes
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/mii/e1000phy.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/sys/dev/mii/e1000phy.c b/sys/dev/mii/e1000phy.c
index ae45077d62ba..55ea4e0616f1 100644
--- a/sys/dev/mii/e1000phy.c
+++ b/sys/dev/mii/e1000phy.c
@@ -152,6 +152,20 @@ e1000phy_attach(device_t dev)
if (PHY_READ(sc, E1000_ESSR) & E1000_ESSR_FIBER_LINK)
sc->mii_flags |= MIIF_HAVEFIBER;
break;
+ case MII_MODEL_MARVELL_E1149:
+ /*
+ * Some 88E1149 PHY's page select is initialized to
+ * point to other bank instead of copper/fiber bank
+ * which in turn resulted in wrong registers were
+ * accessed during PHY operation. It is believed that
+ * page 0 should be used for copper PHY so reinitialize
+ * E1000_EADR to select default copper PHY. If parent
+ * device know the type of PHY(either copper or fiber),
+ * that information should be used to select default
+ * type of PHY.
+ */
+ PHY_WRITE(sc, E1000_EADR, 0);
+ break;
case MII_MODEL_MARVELL_E3082:
/* 88E3082 10/100 Fast Ethernet PHY. */
sc->mii_anegticks = MII_ANEGTICKS;