summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorwpaul <wpaul@FreeBSD.org>2000-09-01 23:59:54 +0000
committerwpaul <wpaul@FreeBSD.org>2000-09-01 23:59:54 +0000
commit069ba53edaed2243ea0664f9d371176a76a24dd2 (patch)
tree5467ccac126cbe20f509f0ab9feaae22e862ae39 /sys
parent8221b137c1637fd489edff43924af352ba2c1d20 (diff)
downloadFreeBSD-src-069ba53edaed2243ea0664f9d371176a76a24dd2.zip
FreeBSD-src-069ba53edaed2243ea0664f9d371176a76a24dd2.tar.gz
Make the blinkylights on non-MII 21143 cards work. We need to enable
the link and activity LED control bits in CSR15 in order for the controller to drive the LEDs correctly. This was largely done for the ZNYX multiport cards, but should also work with the DEC DE500-BA and other non-MII cards.
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/dc/if_dc.c11
-rw-r--r--sys/pci/if_dc.c11
2 files changed, 22 insertions, 0 deletions
diff --git a/sys/dev/dc/if_dc.c b/sys/dev/dc/if_dc.c
index f0f1608..659fa87 100644
--- a/sys/dev/dc/if_dc.c
+++ b/sys/dev/dc/if_dc.c
@@ -2726,6 +2726,17 @@ static void dc_init(xsc)
DC_SETBIT(sc, DC_NETCFG, DC_NETCFG_TX_ON);
/*
+ * If this is an Intel 21143 and we're not using the
+ * MII port, program the LED control pins so we get
+ * link and activity indications.
+ */
+ if (DC_IS_INTEL(sc) && sc->dc_pmode == DC_PMODE_SYM) {
+ CSR_WRITE_4(sc, DC_WATCHDOG,
+ DC_WDOG_CTLWREN|DC_WDOG_LINK|DC_WDOG_ACTIVITY);
+ CSR_WRITE_4(sc, DC_WATCHDOG, DC_WDOG_LINK|DC_WDOG_ACTIVITY);
+ }
+
+ /*
* Load the RX/multicast filter. We do this sort of late
* because the filter programming scheme on the 21143 and
* some clones requires DMAing a setup frame via the TX
diff --git a/sys/pci/if_dc.c b/sys/pci/if_dc.c
index f0f1608..659fa87 100644
--- a/sys/pci/if_dc.c
+++ b/sys/pci/if_dc.c
@@ -2726,6 +2726,17 @@ static void dc_init(xsc)
DC_SETBIT(sc, DC_NETCFG, DC_NETCFG_TX_ON);
/*
+ * If this is an Intel 21143 and we're not using the
+ * MII port, program the LED control pins so we get
+ * link and activity indications.
+ */
+ if (DC_IS_INTEL(sc) && sc->dc_pmode == DC_PMODE_SYM) {
+ CSR_WRITE_4(sc, DC_WATCHDOG,
+ DC_WDOG_CTLWREN|DC_WDOG_LINK|DC_WDOG_ACTIVITY);
+ CSR_WRITE_4(sc, DC_WATCHDOG, DC_WDOG_LINK|DC_WDOG_ACTIVITY);
+ }
+
+ /*
* Load the RX/multicast filter. We do this sort of late
* because the filter programming scheme on the 21143 and
* some clones requires DMAing a setup frame via the TX
OpenPOWER on IntegriCloud