aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorPaul Saab <ps@FreeBSD.org>2005-06-03 19:14:02 +0000
committerPaul Saab <ps@FreeBSD.org>2005-06-03 19:14:02 +0000
commit6bc7dcefa943937b169d99b6f99b6181b2e7eae0 (patch)
tree3f46e3f53a9dd8823290ab25d1b7bba5ceb0b7e5 /sys
parent317bbc486615efcf06211050e8c6978ee40a6691 (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/bge/if_bge.c11
-rw-r--r--sys/dev/bge/if_bgereg.h3
-rw-r--r--sys/dev/mii/brgphy.c7
-rw-r--r--sys/dev/mii/miidevs1
4 files changed, 21 insertions, 1 deletions
diff --git a/sys/dev/bge/if_bge.c b/sys/dev/bge/if_bge.c
index 5e8cfa6ff737..4ca503658cd4 100644
--- a/sys/dev/bge/if_bge.c
+++ b/sys/dev/bge/if_bge.c
@@ -161,6 +161,8 @@ static struct bge_type bge_devs[] = {
"Broadcom BCM5705M Gigabit Ethernet" },
{ BCOM_VENDORID, BCOM_DEVICEID_BCM5705M_ALT,
"Broadcom BCM5705M Gigabit Ethernet" },
+ { BCOM_VENDORID, BCOM_DEVICEID_BCM5714C,
+ "Broadcom BCM5714C Gigabit Ethernet" },
{ BCOM_VENDORID, BCOM_DEVICEID_BCM5721,
"Broadcom BCM5721 Gigabit Ethernet" },
{ BCOM_VENDORID, BCOM_DEVICEID_BCM5750,
@@ -1771,7 +1773,14 @@ bge_attach(dev)
sc->bge_chiprev = BGE_CHIPREV(sc->bge_chipid);
/*
- * XX: Broadcom Linux driver. Not in specs or eratta.
+ * Treat the 5714 like the 5750 until we have more info
+ * on this chip.
+ */
+ if (sc->bge_asicrev == BGE_ASICREV_BCM5714)
+ sc->bge_asicrev = BGE_ASICREV_BCM5750;
+
+ /*
+ * XXX: Broadcom Linux driver. Not in specs or eratta.
* PCI-Express?
*/
if (sc->bge_asicrev == BGE_ASICREV_BCM5750) {
diff --git a/sys/dev/bge/if_bgereg.h b/sys/dev/bge/if_bgereg.h
index a2d2ddc22472..3e93c8a7e084 100644
--- a/sys/dev/bge/if_bgereg.h
+++ b/sys/dev/bge/if_bgereg.h
@@ -239,6 +239,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)
@@ -248,6 +249,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)
@@ -1862,6 +1864,7 @@ struct bge_status_block {
#define BCOM_DEVICEID_BCM5721 0x1659
#define BCOM_DEVICEID_BCM5705M 0x165D
#define BCOM_DEVICEID_BCM5705M_ALT 0x165E
+#define BCOM_DEVICEID_BCM5714C 0x1668
#define BCOM_DEVICEID_BCM5750 0x1676
#define BCOM_DEVICEID_BCM5750M 0x167C
#define BCOM_DEVICEID_BCM5751 0x1677
diff --git a/sys/dev/mii/brgphy.c b/sys/dev/mii/brgphy.c
index 7daf173d3e92..ab00c87ada31 100644
--- a/sys/dev/mii/brgphy.c
+++ b/sys/dev/mii/brgphy.c
@@ -153,6 +153,12 @@ static int brgphy_probe(dev)
return(0);
}
+ if (MII_OUI(ma->mii_id1, ma->mii_id2) == MII_OUI_xxBROADCOM &&
+ MII_MODEL(ma->mii_id2) == MII_MODEL_xxBROADCOM_BCM5714) {
+ device_set_desc(dev, MII_STR_xxBROADCOM_BCM5714);
+ return(0);
+ }
+
return(ENXIO);
}
@@ -628,6 +634,7 @@ brgphy_reset(struct mii_softc *sc)
bcm5704_load_dspcode(sc);
break;
case MII_MODEL_xxBROADCOM_BCM5750:
+ case MII_MODEL_xxBROADCOM_BCM5714:
bcm5750_load_dspcode(sc);
break;
}
diff --git a/sys/dev/mii/miidevs b/sys/dev/mii/miidevs
index f56ca9a94930..4ba963071085 100644
--- a/sys/dev/mii/miidevs
+++ b/sys/dev/mii/miidevs
@@ -113,6 +113,7 @@ model xxBROADCOM BCM5703 0x0016 BCM5703 10/100/1000baseTX PHY
model xxBROADCOM BCM5704 0x0019 BCM5704 10/100/1000baseTX PHY
model xxBROADCOM BCM5705 0x001a BCM5705 10/100/1000baseTX PHY
model xxBROADCOM BCM5750 0x0018 BCM5750 10/100/1000baseTX PHY
+model xxBROADCOM BCM5714 0x0034 BCM5714 10/100/1000baseTX PHY
/* Davicom Semiconductor PHYs */
model xxDAVICOM DM9101 0x0000 DM9101 10/100 media interface