Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Mar 2010 19:04:56 +0000 (UTC)
From:      Marius Strobl <marius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-6@freebsd.org
Subject:   svn commit: r205188 - stable/6/sys/dev/mii
Message-ID:  <201003151904.o2FJ4uT3049654@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marius
Date: Mon Mar 15 19:04:56 2010
New Revision: 205188
URL: http://svn.freebsd.org/changeset/base/205188

Log:
  MFC: r204144
  
  Add support for BCM54K2 found in combination with Apple K2 GMAC.
  
  Submitted by:   Andreas Tobler
  Obtained from:  OpenBSD

Modified:
  stable/6/sys/dev/mii/brgphy.c
  stable/6/sys/dev/mii/miidevs
Directory Properties:
  stable/6/sys/   (props changed)
  stable/6/sys/contrib/pf/   (props changed)
  stable/6/sys/dev/cxgb/   (props changed)

Modified: stable/6/sys/dev/mii/brgphy.c
==============================================================================
--- stable/6/sys/dev/mii/brgphy.c	Mon Mar 15 19:04:51 2010	(r205187)
+++ stable/6/sys/dev/mii/brgphy.c	Mon Mar 15 19:04:56 2010	(r205188)
@@ -104,6 +104,7 @@ static void	brgphy_reset(struct mii_soft
 static void	brgphy_enable_loopback(struct mii_softc *);
 static void	bcm5401_load_dspcode(struct mii_softc *);
 static void	bcm5411_load_dspcode(struct mii_softc *);
+static void	bcm54k2_load_dspcode(struct mii_softc *);
 static void	brgphy_fixup_5704_a0_bug(struct mii_softc *);
 static void	brgphy_fixup_adc_bug(struct mii_softc *);
 static void	brgphy_fixup_adjust_trim(struct mii_softc *);
@@ -117,6 +118,7 @@ static const struct mii_phydesc brgphys[
 	MII_PHY_DESC(xxBROADCOM, BCM5400),
 	MII_PHY_DESC(xxBROADCOM, BCM5401),
 	MII_PHY_DESC(xxBROADCOM, BCM5411),
+	MII_PHY_DESC(xxBROADCOM, BCM54K2),
 	MII_PHY_DESC(xxBROADCOM, BCM5701),
 	MII_PHY_DESC(xxBROADCOM, BCM5703),
 	MII_PHY_DESC(xxBROADCOM, BCM5704),
@@ -418,6 +420,9 @@ brgphy_service(struct mii_softc *sc, str
 			case MII_MODEL_xxBROADCOM_BCM5411:
 				bcm5411_load_dspcode(sc);
 				break;
+			case MII_MODEL_xxBROADCOM_BCM54K2:
+				bcm54k2_load_dspcode(sc);
+				break;
 			}
 			break;
 		case MII_OUI_xxBROADCOM_ALT1:
@@ -717,6 +722,24 @@ bcm5411_load_dspcode(struct mii_softc *s
 		PHY_WRITE(sc, dspcode[i].reg, dspcode[i].val);
 }
 
+void
+bcm54k2_load_dspcode(struct mii_softc *sc)
+{
+	static const struct {
+		int		reg;
+		uint16_t	val;
+	} dspcode[] = {
+		{ 4,				0x01e1 },
+		{ 9,				0x0300 },
+		{ 0,				0 },
+	};
+	int i;
+
+	for (i = 0; dspcode[i].reg != 0; i++)
+		PHY_WRITE(sc, dspcode[i].reg, dspcode[i].val);
+
+}
+
 static void
 brgphy_fixup_5704_a0_bug(struct mii_softc *sc)
 {
@@ -917,6 +940,9 @@ brgphy_reset(struct mii_softc *sc)
 		case MII_MODEL_xxBROADCOM_BCM5411:
 			bcm5411_load_dspcode(sc);
 			break;
+		case MII_MODEL_xxBROADCOM_BCM54K2:
+			bcm54k2_load_dspcode(sc);
+			break;
 		}
 		break;
 	case MII_OUI_xxBROADCOM_ALT1:

Modified: stable/6/sys/dev/mii/miidevs
==============================================================================
--- stable/6/sys/dev/mii/miidevs	Mon Mar 15 19:04:51 2010	(r205187)
+++ stable/6/sys/dev/mii/miidevs	Mon Mar 15 19:04:56 2010	(r205188)
@@ -131,6 +131,7 @@ model xxBROADCOM BCM5703	0x0016 BCM5703 
 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 BCM54K2	0x002e BCM54K2 10/100/1000baseTX PHY
 model xxBROADCOM BCM5714	0x0034 BCM5714 10/100/1000baseTX PHY
 model xxBROADCOM BCM5780	0x0035 BCM5780 10/100/1000baseTX PHY
 model xxBROADCOM BCM5708C	0x0036 BCM5708C 10/100/1000baseTX PHY



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201003151904.o2FJ4uT3049654>