summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornaddy <naddy@openbsd.org>2009-06-04 04:09:02 +0000
committernaddy <naddy@openbsd.org>2009-06-04 04:09:02 +0000
commit8eb45a7163d98f1b408760c9a67ff60d192be638 (patch)
tree5c30ad15da95ed1f8d9af5b1efa405496c834df3
parent"make ksh vi mode handle werase more like vi. It's really irritating to (diff)
downloadwireguard-openbsd-8eb45a7163d98f1b408760c9a67ff60d192be638.tar.xz
wireguard-openbsd-8eb45a7163d98f1b408760c9a67ff60d192be638.zip
enable IPv6 receive TCP/UDP checksum offload for the 5755 and later chips;
from Brad
-rw-r--r--share/man/man4/bge.414
-rw-r--r--sys/dev/pci/if_bge.c10
2 files changed, 15 insertions, 9 deletions
diff --git a/share/man/man4/bge.4 b/share/man/man4/bge.4
index 873bf168137..d71996b022a 100644
--- a/share/man/man4/bge.4
+++ b/share/man/man4/bge.4
@@ -1,4 +1,4 @@
-.\" $OpenBSD: bge.4,v 1.45 2009/06/01 14:17:38 jmc Exp $
+.\" $OpenBSD: bge.4,v 1.46 2009/06/04 04:09:02 naddy Exp $
.\" Copyright (c) 2001 Wind River Systems
.\" Copyright (c) 1997, 1998, 1999, 2000, 2001
.\" Bill Paul <wpaul@windriver.com>. All rights reserved.
@@ -30,7 +30,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
.\" THE POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd $Mdocdate: June 1 2009 $
+.Dd $Mdocdate: June 4 2009 $
.Dt BGE 4
.Os
.Sh NAME
@@ -112,11 +112,11 @@ SysKonnect SK-9D41 (1000baseSX)
.Pp
The
.Nm
-driver supports
-IP, TCP, and UDP checksum offload for receive,
-IP checksum offload for transmit,
-VLAN tag insertion and stripping, as well as a 256-bit multicast hash
-filter.
+driver supports IPv4 IP, TCP, and UDP checksum offload for receive,
+IP checksum offload for transmit, VLAN tag insertion and stripping,
+as well as a 256-bit multicast hash filter.
+The BCM5754, BCM5755, BCM5761, BCM5784, BCM5785, BCM5787 and BCM577x0
+chips also support IPv6 receive TCP/UDP checksum offload.
.Pp
The BCM5700, BCM5701, BCM5703 and BCM5704 chips are capable of
supporting Jumbo frames, which can be configured via the
diff --git a/sys/dev/pci/if_bge.c b/sys/dev/pci/if_bge.c
index 0668231d164..8a55d9e9ad9 100644
--- a/sys/dev/pci/if_bge.c
+++ b/sys/dev/pci/if_bge.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_bge.c,v 1.270 2009/06/04 00:59:21 naddy Exp $ */
+/* $OpenBSD: if_bge.c,v 1.271 2009/06/04 04:09:02 naddy Exp $ */
/*
* Copyright (c) 2001 Wind River Systems
@@ -3102,6 +3102,7 @@ bge_init(void *xsc)
struct bge_softc *sc = xsc;
struct ifnet *ifp;
u_int16_t *m;
+ u_int32_t rxmode;
int s;
s = splnet();
@@ -3187,8 +3188,13 @@ bge_init(void *xsc)
/* Turn on transmitter */
BGE_SETBIT(sc, BGE_TX_MODE, BGE_TXMODE_ENABLE);
+ rxmode = BGE_RXMODE_ENABLE;
+
+ if (BGE_IS_5755_PLUS(sc))
+ rxmode |= BGE_RXMODE_RX_IPV6_CSUM_ENABLE;
+
/* Turn on receiver */
- BGE_SETBIT(sc, BGE_RX_MODE, BGE_RXMODE_ENABLE);
+ BGE_SETBIT(sc, BGE_RX_MODE, rxmode);
CSR_WRITE_4(sc, BGE_MAX_RX_FRAME_LOWAT, 2);