summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authoritojun <itojun@NetBSD.org>2003-08-15 07:29:34 +0000
committeritojun <itojun@NetBSD.org>2003-08-15 07:29:34 +0000
commitf80fd2c5ea4b0efa1f5d0cac2ff29ecf84bd61fa (patch)
tree5c0c07f5e46b54cd37736cbb5de544497acb2528 /sys/dev
parentc2ab035d779cbbd0cd042409c006032dd5376a92 (diff)
accept 1518-byte frames (needed for vlan). Valtteri Vuorikoski
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/pci/if_sip.c12
-rw-r--r--sys/dev/pci/if_sipreg.h4
2 files changed, 12 insertions, 4 deletions
diff --git a/sys/dev/pci/if_sip.c b/sys/dev/pci/if_sip.c
index da3a8312ff8..ab085ef6d3e 100644
--- a/sys/dev/pci/if_sip.c
+++ b/sys/dev/pci/if_sip.c
@@ -1,4 +1,4 @@
-/* $NetBSD: if_sip.c,v 1.78 2003/03/23 00:56:15 thorpej Exp $ */
+/* $NetBSD: if_sip.c,v 1.79 2003/08/15 07:29:34 itojun Exp $ */
/*-
* Copyright (c) 2001, 2002 The NetBSD Foundation, Inc.
@@ -80,7 +80,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_sip.c,v 1.78 2003/03/23 00:56:15 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_sip.c,v 1.79 2003/08/15 07:29:34 itojun Exp $");
#include "bpfilter.h"
#include "rnd.h"
@@ -2314,6 +2314,14 @@ SIP_DECL(init)(struct ifnet *ifp)
* Initialize the prototype RXCFG register.
*/
sc->sc_rxcfg |= (sc->sc_rx_drain_thresh << RXCFG_DRTH_SHIFT);
+#ifndef DP83820
+ /*
+ * Accept packets >1518 bytes (including FCS) so we can handle
+ * 802.1q-tagged frames properly.
+ */
+ if (sc->sc_ethercom.ec_capenable & ETHERCAP_VLAN_MTU)
+ sc->sc_rxcfg |= RXCFG_ALP;
+#endif
bus_space_write_4(st, sh, SIP_RXCFG, sc->sc_rxcfg);
#ifdef DP83820
diff --git a/sys/dev/pci/if_sipreg.h b/sys/dev/pci/if_sipreg.h
index a1e372d282a..35d200d06d4 100644
--- a/sys/dev/pci/if_sipreg.h
+++ b/sys/dev/pci/if_sipreg.h
@@ -1,4 +1,4 @@
-/* $NetBSD: if_sipreg.h,v 1.11 2002/06/30 18:04:12 thorpej Exp $ */
+/* $NetBSD: if_sipreg.h,v 1.12 2003/08/15 07:29:35 itojun Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -450,7 +450,7 @@ struct sip_desc {
#define RXCFG_STRIPCRC 0x20000000 /* strip CRC */
#endif /* DP83820 */
#define RXCFG_ATX 0x10000000 /* accept transmit packets */
-#define RXCFG_AJAB 0x08000000 /* accept jabber packets */
+#define RXCFG_ALP 0x08000000 /* accept long packets */
#ifdef DP83820
#define RXCFG_AIRL 0x04000000 /* accept in-range length err packets */
#define RXCFG_MXDMA 0x00700000 /* max DMA burst size */