diff options
author | yongari <yongari@FreeBSD.org> | 2005-05-23 05:45:36 +0000 |
---|---|---|
committer | yongari <yongari@FreeBSD.org> | 2005-05-23 05:45:36 +0000 |
commit | 8e7b8f0de7bb03153ad6c2aac12c2db813990c0b (patch) | |
tree | 8360d5e4c0244ec737e01a48e239c429a4ff86ba /sys/dev/hme | |
parent | c14acaa6c1aa74ae04838d29e1508e39563289dc (diff) | |
download | FreeBSD-src-8e7b8f0de7bb03153ad6c2aac12c2db813990c0b.zip FreeBSD-src-8e7b8f0de7bb03153ad6c2aac12c2db813990c0b.tar.gz |
According to STP2002QFP User's Guide, it seems that driver should
program RXMAC to discard frames with SA field matching the stations's
MAC address. Experimentation shows that HME receives its own frames
when it operates at 10Mbps half-duplex. With this change HME runs at
10Mbps half-duplx should work with IPv6.
(No more "DAD detected duplicate IPv6 address".)
Reported by: jacques brierre <jbrierre AT bellsouth DOT net>
Reviewed by: marius
Diffstat (limited to 'sys/dev/hme')
-rw-r--r-- | sys/dev/hme/if_hme.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/hme/if_hme.c b/sys/dev/hme/if_hme.c index e8be309..c5c66d5 100644 --- a/sys/dev/hme/if_hme.c +++ b/sys/dev/hme/if_hme.c @@ -1645,6 +1645,8 @@ hme_setladrf(struct hme_softc *sc, int reenable) HME_MAC_RXCFG_HENABLE, 0)) return; + /* make RXMAC really SIMPLEX */ + macc |= HME_MAC_RXCFG_ME; if (reenable) macc |= HME_MAC_RXCFG_ENABLE; else @@ -1692,5 +1694,6 @@ chipit: HME_MAC_WRITE_4(sc, HME_MACI_HASHTAB2, hash[2]); HME_MAC_WRITE_4(sc, HME_MACI_HASHTAB3, hash[3]); hme_mac_bitflip(sc, HME_MACI_RXCFG, macc, 0, - macc & (HME_MAC_RXCFG_ENABLE | HME_MAC_RXCFG_HENABLE)); + macc & (HME_MAC_RXCFG_ENABLE | HME_MAC_RXCFG_HENABLE | + HME_MAC_RXCFG_ME)); } |