diff options
author | Paul Saab <ps@FreeBSD.org> | 2005-05-19 21:08:59 +0000 |
---|---|---|
committer | Paul Saab <ps@FreeBSD.org> | 2005-05-19 21:08:59 +0000 |
commit | 419c028b362fe4652f97d7f5507035d6781e1fb8 (patch) | |
tree | db9fce258664da1df5237f7560b1cea1e7b1c5b3 | |
parent | fff7ff711b38ca4f3b647b50c27c252e1cc8cc52 (diff) | |
download | src-419c028b362fe4652f97d7f5507035d6781e1fb8.tar.gz src-419c028b362fe4652f97d7f5507035d6781e1fb8.zip |
Support the 5714C
Submitted by: John Cagle <john dot cagle at hp dot com>
Notes
Notes:
svn path=/head/; revision=146413
-rw-r--r-- | sys/dev/bge/if_bge.c | 9 | ||||
-rw-r--r-- | sys/dev/bge/if_bgereg.h | 3 | ||||
-rw-r--r-- | sys/dev/mii/brgphy.c | 7 | ||||
-rw-r--r-- | sys/dev/mii/miidevs | 1 |
4 files changed, 20 insertions, 0 deletions
diff --git a/sys/dev/bge/if_bge.c b/sys/dev/bge/if_bge.c index bf785edf7c6d..d5a6d27f2c7c 100644 --- a/sys/dev/bge/if_bge.c +++ b/sys/dev/bge/if_bge.c @@ -155,6 +155,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, @@ -2297,6 +2299,13 @@ bge_attach(dev) sc->bge_chiprev = BGE_CHIPREV(sc->bge_chipid); /* + * 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? */ diff --git a/sys/dev/bge/if_bgereg.h b/sys/dev/bge/if_bgereg.h index ac12570a1635..3296bd1c648f 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) @@ -1868,6 +1870,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 9e62df19ac1f..25a81ef9efef 100644 --- a/sys/dev/mii/brgphy.c +++ b/sys/dev/mii/brgphy.c @@ -153,6 +153,12 @@ 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); } @@ -631,6 +637,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 993f261e5910..b694036dad04 100644 --- a/sys/dev/mii/miidevs +++ b/sys/dev/mii/miidevs @@ -122,6 +122,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 /* Cicada Semiconductor PHYs (now owned by Vitesse?) */ model CICADA CS8201 0x0001 Cicada CS8201 10/100/1000TX PHY |