From 73e89fa2d4dba2c457b784b38168a89fe4498252 Mon Sep 17 00:00:00 2001 From: Bill Paul Date: Wed, 7 Mar 2001 18:52:22 +0000 Subject: [PATCH] Remember to actually program the MAC address into the unicast filter in vr_init(). The VIA Rhine chip happens to be able to automatically read its station address from the EEPROM automatically when reset, so you don't need to program the filter if you want to keep using the factory default address, but if you want to change it with "ifconfig vr0 ether xx:xx:xx:xx:xx:xx" then we need to manually set it in the init routine. --- sys/dev/vr/if_vr.c | 7 +++++++ sys/pci/if_vr.c | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/sys/dev/vr/if_vr.c b/sys/dev/vr/if_vr.c index 9c6591bfaa9..2d1468024c2 100644 --- a/sys/dev/vr/if_vr.c +++ b/sys/dev/vr/if_vr.c @@ -1388,6 +1388,7 @@ static void vr_init(xsc) struct vr_softc *sc = xsc; struct ifnet *ifp = &sc->arpcom.ac_if; struct mii_data *mii; + int i; VR_LOCK(sc); @@ -1399,6 +1400,12 @@ static void vr_init(xsc) vr_stop(sc); vr_reset(sc); + /* + * Set our station address. + */ + for (i = 0; i < ETHER_ADDR_LEN; i++) + CSR_WRITE_1(sc, VR_PAR0 + i, sc->arpcom.ac_enaddr[i]); + VR_CLRBIT(sc, VR_RXCFG, VR_RXCFG_RX_THRESH); VR_SETBIT(sc, VR_RXCFG, VR_RXTHRESH_STORENFWD); diff --git a/sys/pci/if_vr.c b/sys/pci/if_vr.c index 9c6591bfaa9..2d1468024c2 100644 --- a/sys/pci/if_vr.c +++ b/sys/pci/if_vr.c @@ -1388,6 +1388,7 @@ static void vr_init(xsc) struct vr_softc *sc = xsc; struct ifnet *ifp = &sc->arpcom.ac_if; struct mii_data *mii; + int i; VR_LOCK(sc); @@ -1399,6 +1400,12 @@ static void vr_init(xsc) vr_stop(sc); vr_reset(sc); + /* + * Set our station address. + */ + for (i = 0; i < ETHER_ADDR_LEN; i++) + CSR_WRITE_1(sc, VR_PAR0 + i, sc->arpcom.ac_enaddr[i]); + VR_CLRBIT(sc, VR_RXCFG, VR_RXCFG_RX_THRESH); VR_SETBIT(sc, VR_RXCFG, VR_RXTHRESH_STORENFWD);