summaryrefslogtreecommitdiffstats
path: root/sys/dev/mii/e1000phyreg.h
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2009-05-25 02:36:29 +0000
committeryongari <yongari@FreeBSD.org>2009-05-25 02:36:29 +0000
commitb9dc9ef8236af98d0fd9f041822f82e0055195ea (patch)
tree3ff11510936bff39bb1cca3953945efa092a0a61 /sys/dev/mii/e1000phyreg.h
parentfd45d782d18ffb1d516ed5570957017ba2c2d392 (diff)
downloadFreeBSD-src-b9dc9ef8236af98d0fd9f041822f82e0055195ea.zip
FreeBSD-src-b9dc9ef8236af98d0fd9f041822f82e0055195ea.tar.gz
Add driver support for 88E3016 PHY which is found on Marvell Yukon
FE+ controller. Due to the severe silicon bugs for Yukon FE+, 88E3016 seems to require more workarounds. However I'm not sure whether the workaround is PHY specific or only applicable to Yukon FE+. The datasheet for the PHY is publicly available but it lacks several details for the workaround used in this change. The workaround information was obtained from Linux. Many thanks to Yukon FE+ users who helped me add 88E3016 support. Tested by: bz, Tanguy Bouzeloc ( the.zauron <> gmail dot com ) Bruce Cran ( bruce <> cran dot org dot uk ) Michael Reifenberger ( mike <> reifenberger dot com ) Stephen Montgomery-Smith ( stephen <> missouri dot edu )
Diffstat (limited to 'sys/dev/mii/e1000phyreg.h')
-rw-r--r--sys/dev/mii/e1000phyreg.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/dev/mii/e1000phyreg.h b/sys/dev/mii/e1000phyreg.h
index 6f30f5c..0b72224 100644
--- a/sys/dev/mii/e1000phyreg.h
+++ b/sys/dev/mii/e1000phyreg.h
@@ -236,6 +236,16 @@
#define E1000_SCR_TX_FIFO_DEPTH_10 0x8000
#define E1000_SCR_TX_FIFO_DEPTH_12 0xC000
+/* 88E3016 only */
+#define E1000_SCR_AUTO_MDIX 0x0030
+#define E1000_SCR_SIGDET_POLARITY 0x0040
+#define E1000_SCR_EXT_DISTANCE 0x0080
+#define E1000_SCR_FEFI_DISABLE 0x0100
+#define E1000_SCR_NLP_GEN_DISABLE 0x0800
+#define E1000_SCR_LPNP 0x1000
+#define E1000_SCR_NLP_CHK_DISABLE 0x2000
+#define E1000_SCR_EN_DETECT 0x4000
+
#define E1000_SCR_EN_DETECT_MASK 0x0300
/* 88E1112 page 2 */
OpenPOWER on IntegriCloud