summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorps <ps@FreeBSD.org>2003-05-02 19:53:40 +0000
committerps <ps@FreeBSD.org>2003-05-02 19:53:40 +0000
commit406073e21a464fdf53a031b29788cfc39341adb9 (patch)
treed1751c570ade82edd94f64773b6a7f668af65733 /sys
parentd28252389324dce4218951654f90d3ed3eac5317 (diff)
downloadFreeBSD-src-406073e21a464fdf53a031b29788cfc39341adb9.zip
FreeBSD-src-406073e21a464fdf53a031b29788cfc39341adb9.tar.gz
Add untested support for the Broadcom 5704.
Obtained from: NetBSD
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/bge/if_bge.c5
-rw-r--r--sys/dev/bge/if_bgereg.h5
-rw-r--r--sys/dev/mii/brgphy.c6
-rw-r--r--sys/dev/mii/miidevs1
4 files changed, 17 insertions, 0 deletions
diff --git a/sys/dev/bge/if_bge.c b/sys/dev/bge/if_bge.c
index 6bb5532..3eb7b60 100644
--- a/sys/dev/bge/if_bge.c
+++ b/sys/dev/bge/if_bge.c
@@ -139,6 +139,10 @@ static struct bge_type bge_devs[] = {
"Broadcom BCM5702X Gigabit Ethernet" },
{ BCOM_VENDORID, BCOM_DEVICEID_BCM5703X,
"Broadcom BCM5703X Gigabit Ethernet" },
+ { BCOM_VENDORID, BCOM_DEVICEID_BCM5704C,
+ "Broadcom BCM5704C Dual Gigabit Ethernet" },
+ { BCOM_VENDORID, BCOM_DEVICEID_BCM5704S,
+ "Broadcom BCM5704S Dual Gigabit Ethernet" },
{ SK_VENDORID, SK_DEVICEID_ALTIMA,
"SysKonnect Gigabit Ethernet" },
{ ALTIMA_VENDORID, ALTIMA_DEVICE_AC1000,
@@ -483,6 +487,7 @@ bge_miibus_readreg(dev, phy, reg)
switch(sc->bge_asicrev) {
case BGE_ASICREV_BCM5701_B5:
case BGE_ASICREV_BCM5703_A2:
+ case BGE_ASICREV_BCM5704_A0:
return(0);
}
diff --git a/sys/dev/bge/if_bgereg.h b/sys/dev/bge/if_bgereg.h
index 4057b18..7cb9b32 100644
--- a/sys/dev/bge/if_bgereg.h
+++ b/sys/dev/bge/if_bgereg.h
@@ -226,6 +226,9 @@
#define BGE_ASICREV_BCM5703_A0 0x10000000
#define BGE_ASICREV_BCM5703_A1 0x10010000
#define BGE_ASICREV_BCM5703_A2 0x10020000
+#define BGE_ASICREV_BCM5704_A0 0x20000000
+#define BGE_ASICREV_BCM5704_A1 0x20010000
+#define BGE_ASICREV_BCM5704_A2 0x20020000
/* shorthand one */
#define BGE_ASICREV_BCM5700 0x71000000
@@ -1781,6 +1784,8 @@ struct bge_status_block {
#define BCOM_DEVICEID_BCM5701 0x1645
#define BCOM_DEVICEID_BCM5702X 0x16A6
#define BCOM_DEVICEID_BCM5703X 0x16A7
+#define BCOM_DEVICEID_BCM5704C 0x1648
+#define BCOM_DEVICEID_BCM5704S 0x16A8
/*
* Alteon AceNIC PCI vendor/device ID.
diff --git a/sys/dev/mii/brgphy.c b/sys/dev/mii/brgphy.c
index 1839ab7..49c4601 100644
--- a/sys/dev/mii/brgphy.c
+++ b/sys/dev/mii/brgphy.c
@@ -121,6 +121,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_BCM5704) {
+ device_set_desc(dev, MII_STR_xxBROADCOM_BCM5704);
+ return(0);
+ }
+
return(ENXIO);
}
diff --git a/sys/dev/mii/miidevs b/sys/dev/mii/miidevs
index 3f3b762..6bac515 100644
--- a/sys/dev/mii/miidevs
+++ b/sys/dev/mii/miidevs
@@ -115,6 +115,7 @@ model xxBROADCOM BCM5401 0x0005 BCM5401 10/100/1000baseTX PHY
model xxBROADCOM BCM5411 0x0007 BCM5411 10/100/1000baseTX PHY
model xxBROADCOM BCM5701 0x0011 BCM5701 10/100/1000baseTX PHY
model xxBROADCOM BCM5703 0x0016 BCM5703 10/100/1000baseTX PHY
+model xxBROADCOM BCM5704 0x0019 BCM5704 10/100/1000baseTX PHY
/* Davicom Semiconductor PHYs */
model xxDAVICOM DM9101 0x0000 DM9101 10/100 media interface
OpenPOWER on IntegriCloud