summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Smith <brad@cvs.openbsd.org>2005-06-07 20:39:08 +0000
committerBrad Smith <brad@cvs.openbsd.org>2005-06-07 20:39:08 +0000
commit3cfae91f6071be87a5ff4440f8f925014a9eb82b (patch)
tree51917288cbb213999c94c12591b245fb306a694f
parent690a8921fbb6985f4a10178f323f51f01895bfd0 (diff)
put the whole thing in this time.
add support for the BCM5714.
-rw-r--r--sys/dev/pci/if_bge.c15
-rw-r--r--sys/dev/pci/if_bgereg.h4
2 files changed, 16 insertions, 3 deletions
diff --git a/sys/dev/pci/if_bge.c b/sys/dev/pci/if_bge.c
index 77b909e55d9..13126aa7eaf 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.61 2005/06/07 20:24:20 deraadt Exp $ */
+/* $OpenBSD: if_bge.c,v 1.62 2005/06/07 20:39:07 brad Exp $ */
/*
* Copyright (c) 2001 Wind River Systems
* Copyright (c) 1997, 1998, 1999, 2001
@@ -221,6 +221,7 @@ const struct pci_matchid bge_devices[] = {
{ PCI_VENDOR_BROADCOM, PCI_PRODUCT_BROADCOM_BCM5705K },
{ PCI_VENDOR_BROADCOM, PCI_PRODUCT_BROADCOM_BCM5705M },
{ PCI_VENDOR_BROADCOM, PCI_PRODUCT_BROADCOM_BCM5705M_ALT },
+ { PCI_VENDOR_BROADCOM, PCI_PRODUCT_BROADCOM_BCM5714C },
{ PCI_VENDOR_BROADCOM, PCI_PRODUCT_BROADCOM_BCM5720 },
{ PCI_VENDOR_BROADCOM, PCI_PRODUCT_BROADCOM_BCM5721 },
{ PCI_VENDOR_BROADCOM, PCI_PRODUCT_BROADCOM_BCM5750 },
@@ -1083,6 +1084,7 @@ bge_chipinit(sc)
if (BGE_ASICREV(sc->bge_chipid) == BGE_ASICREV_BCM5703 ||
BGE_ASICREV(sc->bge_chipid) == BGE_ASICREV_BCM5704 ||
BGE_ASICREV(sc->bge_chipid) == BGE_ASICREV_BCM5705 ||
+ BGE_ASICREV(sc->bge_chipid) == BGE_ASICREV_BCM5714 ||
BGE_ASICREV(sc->bge_chipid) == BGE_ASICREV_BCM5750)
dma_rw_ctl &= ~BGE_PCIDMARWCTL_MINDMA;
@@ -1612,6 +1614,10 @@ static const struct bge_revision {
BGE_QUIRK_ONLY_PHY_1|BGE_QUIRK_5705_CORE,
"BCM5705 A3" },
+ { BGE_CHIPID_BCM5714_A0,
+ BGE_QUIRK_ONLY_PHY_1|BGE_QUIRK_5705_CORE,
+ "BCM5714 A0" },
+
{ BGE_CHIPID_BCM5750_A0,
BGE_QUIRK_ONLY_PHY_1|BGE_QUIRK_5705_CORE,
"BCM5750 A1" },
@@ -1648,6 +1654,10 @@ static const struct bge_revision bge_majorrevs[] = {
BGE_QUIRK_ONLY_PHY_1|BGE_QUIRK_5705_CORE,
"unknown BCM5705" },
+ { BGE_ASICREV_BCM5714,
+ BGE_QUIRK_ONLY_PHY_1|BGE_QUIRK_5705_CORE,
+ "unknown BCM5714" },
+
{ BGE_ASICREV_BCM5750,
BGE_QUIRK_ONLY_PHY_1|BGE_QUIRK_5705_CORE,
"unknown BCM5750" },
@@ -1796,7 +1806,8 @@ bge_attach(parent, self, aux)
* XXX: Broadcom Linux driver. Not in specs or eratta.
* PCI-Express?
*/
- if (BGE_ASICREV(sc->bge_chipid) == BGE_ASICREV_BCM5750) {
+ if (BGE_ASICREV(sc->bge_chipid) == BGE_ASICREV_BCM5714 ||
+ BGE_ASICREV(sc->bge_chipid) == BGE_ASICREV_BCM5750) {
u_int32_t v;
v = pci_conf_read(pc, pa->pa_tag, BGE_PCI_MSI_CAPID);
diff --git a/sys/dev/pci/if_bgereg.h b/sys/dev/pci/if_bgereg.h
index 941da0988ce..47a1179cf3e 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.21 2005/04/05 01:12:52 brad Exp $ */
+/* $OpenBSD: if_bgereg.h,v 1.22 2005/06/07 20:39:07 brad Exp $ */
/*
* Copyright (c) 2001 Wind River Systems
* Copyright (c) 1997, 1998, 1999, 2001
@@ -250,6 +250,7 @@
#define BGE_CHIPID_BCM5705_A3 0x30030000
#define BGE_CHIPID_BCM5750_A0 0x40000000
#define BGE_CHIPID_BCM5750_A1 0x40010000
+#define BGE_CHIPID_BCM5714_A0 0x50000000
/* shorthand one */
#define BGE_ASICREV(x) ((x) >> 28)
@@ -259,6 +260,7 @@
#define BGE_ASICREV_BCM5704 0x02
#define BGE_ASICREV_BCM5705 0x03
#define BGE_ASICREV_BCM5750 0x04
+#define BGE_ASICREV_BCM5714 0x05
/* chip revisions */
#define BGE_CHIPREV(x) ((x) >> 24)