summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authoryong tan - Sun Microsystems - Beijing China <Yong.Tan@Sun.COM>2009-10-25 13:36:34 +0800
committeryong tan - Sun Microsystems - Beijing China <Yong.Tan@Sun.COM>2009-10-25 13:36:34 +0800
commitd744196318f8bf4407268965e338f2d4abce91d2 (patch)
tree71ba73d2d5e675fc0da2d4117cec0206fadb2be0 /usr/src
parent87219db7f64d5002b5a8311fd76f7900fda2c4e8 (diff)
downloadillumos-gate-d744196318f8bf4407268965e338f2d4abce91d2.tar.gz
6877356 BGE should support BCM5764
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/pkgdefs/SUNWbge/postinstall1
-rw-r--r--usr/src/uts/common/io/bge/bge_chip2.c16
-rw-r--r--usr/src/uts/common/io/bge/bge_hw.h4
-rw-r--r--usr/src/uts/common/io/bge/bge_main2.c2
4 files changed, 19 insertions, 4 deletions
diff --git a/usr/src/pkgdefs/SUNWbge/postinstall b/usr/src/pkgdefs/SUNWbge/postinstall
index 49748d8b7f..7cbe802f23 100644
--- a/usr/src/pkgdefs/SUNWbge/postinstall
+++ b/usr/src/pkgdefs/SUNWbge/postinstall
@@ -169,6 +169,7 @@ then
"pci14e4,167d"
"pciex14e4,1680"
"pciex14e4,1681"
+ "pciex14e4,1684"
"pci14e4,1693"
"pci14e4,169b"
"pciex14e4,16fd"
diff --git a/usr/src/uts/common/io/bge/bge_chip2.c b/usr/src/uts/common/io/bge/bge_chip2.c
index 0c2922d6ad..143b573098 100644
--- a/usr/src/uts/common/io/bge/bge_chip2.c
+++ b/usr/src/uts/common/io/bge/bge_chip2.c
@@ -1870,6 +1870,7 @@ bge_nvmem_id(bge_t *bgep)
case DEVICE_ID_5723:
case DEVICE_ID_5761:
case DEVICE_ID_5761E:
+ case DEVICE_ID_5764:
case DEVICE_ID_5714C:
case DEVICE_ID_5714S:
case DEVICE_ID_5715C:
@@ -2141,9 +2142,20 @@ bge_chip_id_init(bge_t *bgep)
case DEVICE_ID_5723:
case DEVICE_ID_5761:
case DEVICE_ID_5761E:
- cidp->chip_label = cidp->device == DEVICE_ID_5723 ? 5723: 5761;
- cidp->bge_dma_rwctrl = bge_dma_rwctrl_5721;
cidp->msi_enabled = bge_enable_msi;
+ /*
+ * We don't use MSI for BCM5764, as the status block may
+ * fail to update when the network traffic is heavy.
+ */
+ /* FALLTHRU */
+ case DEVICE_ID_5764:
+ if (cidp->device == DEVICE_ID_5723)
+ cidp->chip_label = 5723;
+ else if (cidp->device == DEVICE_ID_5764)
+ cidp->chip_label = 5764;
+ else
+ cidp->chip_label = 5761;
+ cidp->bge_dma_rwctrl = bge_dma_rwctrl_5721;
cidp->pci_type = BGE_PCI_E;
cidp->mbuf_lo_water_rdma = RDMA_MBUF_LOWAT_5705;
cidp->mbuf_lo_water_rmac = MAC_RX_MBUF_LOWAT_5705;
diff --git a/usr/src/uts/common/io/bge/bge_hw.h b/usr/src/uts/common/io/bge/bge_hw.h
index ea9c3071ae..dc060654b5 100644
--- a/usr/src/uts/common/io/bge/bge_hw.h
+++ b/usr/src/uts/common/io/bge/bge_hw.h
@@ -91,6 +91,7 @@ extern "C" {
#define DEVICE_ID_5715S 0x1679
#define DEVICE_ID_5761E 0x1680
#define DEVICE_ID_5761 0x1681
+#define DEVICE_ID_5764 0x1684
#define DEVICE_ID_5906 0x1712
#define DEVICE_ID_5906M 0x1713
@@ -184,7 +185,8 @@ extern "C" {
#define DEVICE_5723_SERIES_CHIPSETS(bgep) \
((bgep->chipid.device == DEVICE_ID_5723) ||\
(bgep->chipid.device == DEVICE_ID_5761) ||\
- (bgep->chipid.device == DEVICE_ID_5761E))
+ (bgep->chipid.device == DEVICE_ID_5761E) ||\
+ (bgep->chipid.device == DEVICE_ID_5764))
#define DEVICE_5714_SERIES_CHIPSETS(bgep) \
((bgep->chipid.device == DEVICE_ID_5714C) ||\
diff --git a/usr/src/uts/common/io/bge/bge_main2.c b/usr/src/uts/common/io/bge/bge_main2.c
index 4a17e623c0..dabf976278 100644
--- a/usr/src/uts/common/io/bge/bge_main2.c
+++ b/usr/src/uts/common/io/bge/bge_main2.c
@@ -37,7 +37,7 @@ static char bge_ident[] = "Broadcom Gb Ethernet";
/*
* Make sure you keep the version ID up to date!
*/
-static char bge_version[] = "Broadcom Gb Ethernet v1.11";
+static char bge_version[] = "Broadcom Gb Ethernet v1.12";
/*
* Property names