summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorJonathan Gray <jsg@cvs.openbsd.org>2009-03-29 14:36:35 +0000
committerJonathan Gray <jsg@cvs.openbsd.org>2009-03-29 14:36:35 +0000
commit7e176a9ed8b4c3d7d61a8dd00b1a342bb8253545 (patch)
tree92b4721c2c282484291946bb0a21ebe82aedc518 /sys
parent411f09d88bf2ce87a1b0767340ec1bffaa0444c5 (diff)
Bypass macsec on extreme/supreme based chips.
Makes my 88E8072 work. ok kettenis@
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/pci/if_msk.c7
-rw-r--r--sys/dev/pci/if_skreg.h5
2 files changed, 10 insertions, 2 deletions
diff --git a/sys/dev/pci/if_msk.c b/sys/dev/pci/if_msk.c
index 78ac4483782..9cc0ef3dad6 100644
--- a/sys/dev/pci/if_msk.c
+++ b/sys/dev/pci/if_msk.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_msk.c,v 1.74 2009/03/29 12:53:41 jsg Exp $ */
+/* $OpenBSD: if_msk.c,v 1.75 2009/03/29 14:36:34 jsg Exp $ */
/*
* Copyright (c) 1997, 1998, 1999, 2000
@@ -698,6 +698,11 @@ mskc_reset(struct sk_softc *sc)
CSR_WRITE_2(sc, SK_LINK_CTRL, SK_LINK_RESET_CLEAR);
CSR_WRITE_2(sc, SK_LINK_CTRL + SK_WIN_LEN, SK_LINK_RESET_CLEAR);
+ if (sc->sk_type == SK_YUKON_EX || sc->sk_type == SK_YUKON_SUPR) {
+ CSR_WRITE_2(sc, SK_GMAC_CTRL, SK_GMAC_BYP_MACSECRX |
+ SK_GMAC_BYP_MACSECTX | SK_GMAC_BYP_RETR_FIFO);
+ }
+
sk_win_write_1(sc, SK_TESTCTL1, 1);
DPRINTFN(2, ("mskc_reset: sk_csr=%x\n", CSR_READ_1(sc, SK_CSR)));
diff --git a/sys/dev/pci/if_skreg.h b/sys/dev/pci/if_skreg.h
index 2df4e59d857..4ba7a9580c4 100644
--- a/sys/dev/pci/if_skreg.h
+++ b/sys/dev/pci/if_skreg.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_skreg.h,v 1.52 2009/03/27 10:16:17 jsg Exp $ */
+/* $OpenBSD: if_skreg.h,v 1.53 2009/03/29 14:36:34 jsg Exp $ */
/*
* Copyright (c) 1997, 1998, 1999, 2000
@@ -1291,6 +1291,9 @@
#define SK_PAT_CTR6 0x0f3e /* Pattern Counter 6 */
#define SK_PAT_CTR7 0x0f3f /* Pattern Counter 7 */
+#define SK_GMAC_BYP_MACSECRX 0x00002000 /* Bypass macsec for Rx */
+#define SK_GMAC_BYP_MACSECTX 0x00000800 /* Bypass macsec for Tx */
+#define SK_GMAC_BYP_RETR_FIFO 0x00000200 /* Bypass retransmit FIFO */
#define SK_GMAC_LOOP_ON 0x00000020 /* Loopback mode for testing */
#define SK_GMAC_LOOP_OFF 0x00000010 /* purposes */
#define SK_GMAC_PAUSE_ON 0x00000008 /* enable forward of pause */