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.
This commit is contained in:
wpaul 2001-03-07 18:52:22 +00:00
parent b7b587b172
commit 1fcaee7fa4
2 changed files with 14 additions and 0 deletions

View File

@ -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);

View File

@ -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);