diff options
author | wpaul <wpaul@FreeBSD.org> | 2000-09-01 23:59:54 +0000 |
---|---|---|
committer | wpaul <wpaul@FreeBSD.org> | 2000-09-01 23:59:54 +0000 |
commit | 069ba53edaed2243ea0664f9d371176a76a24dd2 (patch) | |
tree | 5467ccac126cbe20f509f0ab9feaae22e862ae39 /sys | |
parent | 8221b137c1637fd489edff43924af352ba2c1d20 (diff) | |
download | FreeBSD-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.c | 11 | ||||
-rw-r--r-- | sys/pci/if_dc.c | 11 |
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 |