diff options
author | yong tan - Sun Microsystems - Beijing China <Yong.Tan@Sun.COM> | 2009-10-25 13:36:34 +0800 |
---|---|---|
committer | yong tan - Sun Microsystems - Beijing China <Yong.Tan@Sun.COM> | 2009-10-25 13:36:34 +0800 |
commit | d744196318f8bf4407268965e338f2d4abce91d2 (patch) | |
tree | 71ba73d2d5e675fc0da2d4117cec0206fadb2be0 /usr/src | |
parent | 87219db7f64d5002b5a8311fd76f7900fda2c4e8 (diff) | |
download | illumos-gate-d744196318f8bf4407268965e338f2d4abce91d2.tar.gz |
6877356 BGE should support BCM5764
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/pkgdefs/SUNWbge/postinstall | 1 | ||||
-rw-r--r-- | usr/src/uts/common/io/bge/bge_chip2.c | 16 | ||||
-rw-r--r-- | usr/src/uts/common/io/bge/bge_hw.h | 4 | ||||
-rw-r--r-- | usr/src/uts/common/io/bge/bge_main2.c | 2 |
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 |