diff options
author | silby <silby@FreeBSD.org> | 2002-10-22 02:33:50 +0000 |
---|---|---|
committer | silby <silby@FreeBSD.org> | 2002-10-22 02:33:50 +0000 |
commit | 2189f14fb731d78e03cf2731217ce6d0422a675e (patch) | |
tree | cf276417fd172d6f9d794b4bc3a29ed9eee112d9 /sys | |
parent | 94b30e0ab56f1ea0567adc39582f2a02f9c28344 (diff) | |
download | FreeBSD-src-2189f14fb731d78e03cf2731217ce6d0422a675e.zip FreeBSD-src-2189f14fb731d78e03cf2731217ce6d0422a675e.tar.gz |
Add some magic bits necessary to turn the transmitter on for some
(newer) 556B chips.
Requested & tested by: Dinesh Nambisan <dinesh@nambisan.net>
Magic bits found by: Dave Dribin & Donald Becker
MFC After: 3 days
Diffstat (limited to 'sys')
-rw-r--r-- | sys/pci/if_xl.c | 7 | ||||
-rw-r--r-- | sys/pci/if_xlreg.h | 3 |
2 files changed, 10 insertions, 0 deletions
diff --git a/sys/pci/if_xl.c b/sys/pci/if_xl.c index 20921e9..2487b33 100644 --- a/sys/pci/if_xl.c +++ b/sys/pci/if_xl.c @@ -1271,6 +1271,8 @@ xl_attach(dev) XL_FLAG_INVERT_LED_PWR | XL_FLAG_INVERT_MII_PWR; if (pci_get_device(dev) == TC_DEVICEID_HURRICANE_556) sc->xl_flags |= XL_FLAG_8BITROM; + if (pci_get_device(dev) == TC_DEVICEID_HURRICANE_556B) + sc->xl_flags |= XL_FLAG_NO_XCVR_PWR; if (pci_get_device(dev) == TC_DEVICEID_HURRICANE_575A || pci_get_device(dev) == TC_DEVICEID_HURRICANE_575B || @@ -1623,6 +1625,11 @@ xl_attach(dev) done: + if (sc->xl_flags & XL_FLAG_NO_XCVR_PWR) { + XL_SEL_WIN(0); + CSR_WRITE_2(sc, XL_W0_MFG_ID, XL_NO_XCVR_PWR_MAGICBITS); + } + /* * Call MI attach routine. */ diff --git a/sys/pci/if_xlreg.h b/sys/pci/if_xlreg.h index d255752..f373f02 100644 --- a/sys/pci/if_xlreg.h +++ b/sys/pci/if_xlreg.h @@ -560,6 +560,9 @@ struct xl_mii_frame { #define XL_FLAG_8BITROM 0x0010 #define XL_FLAG_INVERT_LED_PWR 0x0020 #define XL_FLAG_INVERT_MII_PWR 0x0040 +#define XL_FLAG_NO_XCVR_PWR 0x0080 + +#define XL_NO_XCVR_PWR_MAGICBITS 0x0900 struct xl_softc { struct arpcom arpcom; /* interface info */ |