diff options
author | yongari <yongari@FreeBSD.org> | 2010-09-29 00:00:45 +0000 |
---|---|---|
committer | yongari <yongari@FreeBSD.org> | 2010-09-29 00:00:45 +0000 |
commit | 018d101e23c0b00e0eac3c07fa0341bd0a2a2c91 (patch) | |
tree | 0eb739aa3a9dfa3a2161f6f6029a948ae6154b95 /sys/dev/bge | |
parent | c0dff81a760d578b010415f095a0a01e2657eced (diff) | |
download | FreeBSD-src-018d101e23c0b00e0eac3c07fa0341bd0a2a2c91.zip FreeBSD-src-018d101e23c0b00e0eac3c07fa0341bd0a2a2c91.tar.gz |
Set the number of RX frames to receive after RX MBUF low watermark
has reached. This reduced number of dropped frames when
flow-control is enabled. Previously it dropped incoming frames once
RX MBUF low watermark has reached. The value used in MAC RX MBUF
low watermark is greater than or equal to 4 so receiving two more
RX frames should not be a problem.
Obtained from: OpenBSD
Diffstat (limited to 'sys/dev/bge')
-rw-r--r-- | sys/dev/bge/if_bge.c | 8 | ||||
-rw-r--r-- | sys/dev/bge/if_bgereg.h | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/sys/dev/bge/if_bge.c b/sys/dev/bge/if_bge.c index 1ff206d..9bc7026 100644 --- a/sys/dev/bge/if_bge.c +++ b/sys/dev/bge/if_bge.c @@ -4220,6 +4220,14 @@ bge_init_locked(struct bge_softc *sc) /* Turn on receiver. */ BGE_SETBIT(sc, BGE_RX_MODE, BGE_RXMODE_ENABLE); + /* + * Set the number of good frames to receive after RX MBUF + * Low Watermark has been reached. After the RX MAC receives + * this number of frames, it will drop subsequent incoming + * frames until the MBUF High Watermark is reached. + */ + CSR_WRITE_4(sc, BGE_MAX_RX_FRAME_LOWAT, 2); + /* Tell firmware we're alive. */ BGE_SETBIT(sc, BGE_MODE_CTL, BGE_MODECTL_STACKUP); diff --git a/sys/dev/bge/if_bgereg.h b/sys/dev/bge/if_bgereg.h index d17d56d..f6d2c7b 100644 --- a/sys/dev/bge/if_bgereg.h +++ b/sys/dev/bge/if_bgereg.h @@ -632,6 +632,7 @@ #define BGE_RX_BD_RULES_CTL15 0x04F8 #define BGE_RX_BD_RULES_MASKVAL15 0x04FC #define BGE_RX_RULES_CFG 0x0500 +#define BGE_MAX_RX_FRAME_LOWAT 0x0504 #define BGE_SERDES_CFG 0x0590 #define BGE_SERDES_STS 0x0594 #define BGE_SGDIG_CFG 0x05B0 |