summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Smith <brad@cvs.openbsd.org>2006-10-07 23:08:51 +0000
committerBrad Smith <brad@cvs.openbsd.org>2006-10-07 23:08:51 +0000
commit3dabbc85753d59433925bc3aac8ca0b6bc702b30 (patch)
treedfdc08778315177c798d134afaa4c79ef5cd2b59
parent0de9d691c8f06957047f34597d548083cc3c43b7 (diff)
add a no Ethernet@Wirespeed flag.
-rw-r--r--sys/dev/pci/if_bge.c9
-rw-r--r--sys/dev/pci/if_bgereg.h3
2 files changed, 10 insertions, 2 deletions
diff --git a/sys/dev/pci/if_bge.c b/sys/dev/pci/if_bge.c
index 5c57eb935a7..ab8f3236432 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.185 2006/10/07 20:28:48 brad Exp $ */
+/* $OpenBSD: if_bge.c,v 1.186 2006/10/07 23:08:50 brad Exp $ */
/*
* Copyright (c) 2001 Wind River Systems
@@ -1805,6 +1805,13 @@ bge_attach(struct device *parent, struct device *self, void *aux)
BGE_ASICREV(sc->bge_chipid) == BGE_ASICREV_BCM5906)
sc->bge_flags |= BGE_10_100_ONLY;
+ if (BGE_ASICREV(sc->bge_chipid) == BGE_ASICREV_BCM5700 ||
+ (BGE_ASICREV(sc->bge_chipid) == BGE_ASICREV_BCM5705 &&
+ (sc->bge_chipid != BGE_CHIPID_BCM5705_A0 &&
+ sc->bge_chipid != BGE_CHIPID_BCM5705_A1)) ||
+ BGE_ASICREV(sc->bge_chipid) == BGE_ASICREV_BCM5906)
+ sc->bge_flags |= BGE_NO_ETH_WIRE_SPEED;
+
if (BGE_CHIPREV(sc->bge_chipid) == BGE_CHIPREV_5703_AX ||
BGE_CHIPREV(sc->bge_chipid) == BGE_CHIPREV_5704_AX)
sc->bge_flags |= BGE_PHY_ADC_BUG;
diff --git a/sys/dev/pci/if_bgereg.h b/sys/dev/pci/if_bgereg.h
index e0ce274d5bf..44244fea565 100644
--- a/sys/dev/pci/if_bgereg.h
+++ b/sys/dev/pci/if_bgereg.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_bgereg.h,v 1.63 2006/10/07 20:28:48 brad Exp $ */
+/* $OpenBSD: if_bgereg.h,v 1.64 2006/10/07 23:08:50 brad Exp $ */
/*
* Copyright (c) 2001 Wind River Systems
@@ -2366,6 +2366,7 @@ struct bge_softc {
#define BGE_PHY_5704_A0_BUG 0x00004000
#define BGE_PHY_JITTER_BUG 0x00008000
#define BGE_PHY_BER_BUG 0x00010000
+#define BGE_NO_ETH_WIRE_SPEED 0x00020000
bus_dma_tag_t bge_dmatag;
u_int32_t bge_chipid;