summaryrefslogtreecommitdiff
path: root/sys/dev/pci/if_bge.c
diff options
context:
space:
mode:
authorBrad Smith <brad@cvs.openbsd.org>2008-04-20 01:32:44 +0000
committerBrad Smith <brad@cvs.openbsd.org>2008-04-20 01:32:44 +0000
commit3907efe166bb0680d214330544f0a8be0c698ee2 (patch)
treea57e29bd7337b5dd62620b2a01f9ffa09117e028 /sys/dev/pci/if_bge.c
parent72af29d7a22fd5a1e4f31d18f0f94f7bb2bb2d88 (diff)
Add a workaround for a CRC bug errata with BCM5701 A0 and B0 chipset
revisions. From Linux via FreeBSD. ok dlg@
Diffstat (limited to 'sys/dev/pci/if_bge.c')
-rw-r--r--sys/dev/pci/if_bge.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/pci/if_bge.c b/sys/dev/pci/if_bge.c
index 16d19c15c27..8459839c612 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.224 2008/04/03 22:50:24 brad Exp $ */
+/* $OpenBSD: if_bge.c,v 1.225 2008/04/20 01:32:43 brad Exp $ */
/*
* Copyright (c) 2001 Wind River Systems
@@ -1920,6 +1920,9 @@ bge_attach(struct device *parent, struct device *self, void *aux)
BGE_ASICREV(sc->bge_chipid) == BGE_ASICREV_BCM5906)
sc->bge_flags |= BGE_NO_ETH_WIRE_SPEED;
+ if (sc->bge_chipid == BGE_CHIPID_BCM5701_A0 ||
+ sc->bge_chipid == BGE_CHIPID_BCM5701_B0)
+ sc->bge_flags |= BGE_PHY_CRC_BUG;
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;