summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Smith <brad@cvs.openbsd.org>2005-06-07 17:38:55 +0000
committerBrad Smith <brad@cvs.openbsd.org>2005-06-07 17:38:55 +0000
commit5496afd89186ea33b3dd12f19b537e0bd67d5044 (patch)
tree6ce174756be03d3a3450bc120de569f347b55bcd
parent7bc859a73ca783e25d09e84d2c7f8fb55ba45cc4 (diff)
add support for the BCM5714.
From FreeBSD
-rw-r--r--share/man/man4/bge.44
-rw-r--r--sys/dev/pci/if_bge.c15
2 files changed, 15 insertions, 4 deletions
diff --git a/share/man/man4/bge.4 b/share/man/man4/bge.4
index 0a94e5ec587..9ad214acf81 100644
--- a/share/man/man4/bge.4
+++ b/share/man/man4/bge.4
@@ -1,4 +1,4 @@
-.\" $OpenBSD: bge.4,v 1.20 2005/06/07 16:35:15 brad Exp $
+.\" $OpenBSD: bge.4,v 1.21 2005/06/07 17:38:54 brad Exp $
.\" Copyright (c) 2001 Wind River Systems
.\" Copyright (c) 1997, 1998, 1999, 2000, 2001
.\" Bill Paul <wpaul@windriver.com>. All rights reserved.
@@ -43,7 +43,7 @@
The
.Nm
driver provides support for various NICs based on the Broadcom BCM570x,
-572x, 575x, 578x, and 5901 families of Gigabit Ethernet controller
+5714, 572x, 575x, 578x, and 5901 families of Gigabit Ethernet controller
chips, including the following:
.Pp
.Bl -bullet -compact
diff --git a/sys/dev/pci/if_bge.c b/sys/dev/pci/if_bge.c
index 976c774c545..e89ec53a36e 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.59 2005/05/21 17:24:50 brad Exp $ */
+/* $OpenBSD: if_bge.c,v 1.60 2005/06/07 17:38:54 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);