diff options
| author | Paul Saab <ps@FreeBSD.org> | 2005-06-03 19:14:02 +0000 |
|---|---|---|
| committer | Paul Saab <ps@FreeBSD.org> | 2005-06-03 19:14:02 +0000 |
| commit | 6bc7dcefa943937b169d99b6f99b6181b2e7eae0 (patch) | |
| tree | 3f46e3f53a9dd8823290ab25d1b7bba5ceb0b7e5 /sys | |
| parent | 317bbc486615efcf06211050e8c6978ee40a6691 (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/dev/bge/if_bge.c | 11 | ||||
| -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, 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 |
