Module Name:    src
Committed By:   martin
Date:           Tue Apr 14 17:57:17 UTC 2020

Modified Files:
        src/sys/dev/mii [netbsd-8]: atphy.c brgphy.c etphy.c miidevs rdcphy.c

Log Message:
Pull up the following revisions, requested by msaitoh in ticket #1529:

        sys/dev/mii/miidevs                             1.154, 1.162-1.167
        sys/dev/mii/atphy.c                             1.28 via patch
        sys/dev/mii/brgphy.c                            1.87 via patch
        sys/dev/mii/etphy.c                             1.5, 1.6 via patch
        sys/dev/mii/rdcphy.c                            1.6, 1.8 via patch

- Add support Broadcom BCM54213PE and some new RDC devices.
- Rename RDC to xxRDC.
- Use xxVIA instead of VIA.
- etphy(4):
  - Rename ET1011 to ET1011C and add ET1011 support.
  - Use mii_phy_flowstatus() to reflect flow status from negotiated
    result.
- Use static.
- KNF.


To generate a diff of this commit:
cvs rdiff -u -r1.18.8.1 -r1.18.8.2 src/sys/dev/mii/atphy.c
cvs rdiff -u -r1.76.20.2 -r1.76.20.3 src/sys/dev/mii/brgphy.c
cvs rdiff -u -r1.1 -r1.1.54.1 src/sys/dev/mii/etphy.c \
    src/sys/dev/mii/rdcphy.c
cvs rdiff -u -r1.125.6.8 -r1.125.6.9 src/sys/dev/mii/miidevs

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/mii/atphy.c
diff -u src/sys/dev/mii/atphy.c:1.18.8.1 src/sys/dev/mii/atphy.c:1.18.8.2
--- src/sys/dev/mii/atphy.c:1.18.8.1	Thu Nov 21 14:06:16 2019
+++ src/sys/dev/mii/atphy.c	Tue Apr 14 17:57:17 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: atphy.c,v 1.18.8.1 2019/11/21 14:06:16 martin Exp $ */
+/*	$NetBSD: atphy.c,v 1.18.8.2 2020/04/14 17:57:17 martin Exp $ */
 /*	$OpenBSD: atphy.c,v 1.1 2008/09/25 20:47:16 brad Exp $	*/
 
 /*-
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: atphy.c,v 1.18.8.1 2019/11/21 14:06:16 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: atphy.c,v 1.18.8.2 2020/04/14 17:57:17 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -91,8 +91,6 @@ const struct mii_phy_funcs atphy_funcs =
 };
 
 static const struct mii_phydesc atphys[] = {
-	{ MII_OUI_ATHEROS,	MII_MODEL_ATHEROS_F1,
-	  MII_STR_ATHEROS_F1 },
 	{ MII_OUI_ATTANSIC,	MII_MODEL_ATTANSIC_L1,
 	  MII_STR_ATTANSIC_L1 },
 	{ MII_OUI_ATTANSIC,	MII_MODEL_ATTANSIC_L2,

Index: src/sys/dev/mii/brgphy.c
diff -u src/sys/dev/mii/brgphy.c:1.76.20.2 src/sys/dev/mii/brgphy.c:1.76.20.3
--- src/sys/dev/mii/brgphy.c:1.76.20.2	Mon May 13 12:40:13 2019
+++ src/sys/dev/mii/brgphy.c	Tue Apr 14 17:57:17 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: brgphy.c,v 1.76.20.2 2019/05/13 12:40:13 martin Exp $	*/
+/*	$NetBSD: brgphy.c,v 1.76.20.3 2020/04/14 17:57:17 martin Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: brgphy.c,v 1.76.20.2 2019/05/13 12:40:13 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: brgphy.c,v 1.76.20.3 2020/04/14 17:57:17 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -246,6 +246,9 @@ static const struct mii_phydesc brgphys[
 	{ MII_OUI_BROADCOM3,		MII_MODEL_BROADCOM3_BCM57780,
 	  MII_STR_BROADCOM3_BCM57780 },
 
+	{ MII_OUI_BROADCOM4,		MII_MODEL_BROADCOM4_BCM54213PE,
+	  MII_STR_BROADCOM4_BCM54213PE },
+
 	{ MII_OUI_BROADCOM4,		MII_MODEL_BROADCOM4_BCM5725C,
 	  MII_STR_BROADCOM4_BCM5725C },
 

Index: src/sys/dev/mii/etphy.c
diff -u src/sys/dev/mii/etphy.c:1.1 src/sys/dev/mii/etphy.c:1.1.54.1
--- src/sys/dev/mii/etphy.c:1.1	Sat Nov 13 00:47:24 2010
+++ src/sys/dev/mii/etphy.c	Tue Apr 14 17:57:17 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: etphy.c,v 1.1 2010/11/13 00:47:24 jnemeth Exp $	*/
+/*	$NetBSD: etphy.c,v 1.1.54.1 2020/04/14 17:57:17 martin Exp $	*/
 /*	$OpenBSD: etphy.c,v 1.4 2008/04/02 20:12:58 brad Exp $	*/
 
 /*
@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: etphy.c,v 1.1 2010/11/13 00:47:24 jnemeth Exp $");
+__KERNEL_RCSID(0, "$NetBSD: etphy.c,v 1.1.54.1 2020/04/14 17:57:17 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -77,19 +77,21 @@ __KERNEL_RCSID(0, "$NetBSD: etphy.c,v 1.
 #define ETPHY_SR_FDX		0x0080
 
 
-int	etphy_service(struct mii_softc *, struct mii_data *, int);
-void	etphy_attach(device_t, device_t, void *);
-int	etphy_match(device_t, cfdata_t, void *);
-void	etphy_reset(struct mii_softc *);
-void	etphy_status(struct mii_softc *);
+static int	etphy_service(struct mii_softc *, struct mii_data *, int);
+static void	etphy_attach(device_t, device_t, void *);
+static int	etphy_match(device_t, cfdata_t, void *);
+static void	etphy_reset(struct mii_softc *);
+static void	etphy_status(struct mii_softc *);
 
-const struct mii_phy_funcs etphy_funcs = {
+static const struct mii_phy_funcs etphy_funcs = {
 	etphy_service, etphy_status, etphy_reset,
 };
 
 static const struct mii_phydesc etphys[] = {
 	{ MII_OUI_AGERE,	MII_MODEL_AGERE_ET1011,
 	  MII_STR_AGERE_ET1011 },
+	{ MII_OUI_AGERE,	MII_MODEL_AGERE_ET1011C,
+	  MII_STR_AGERE_ET1011C },
 	{ 0,			0,
 	  NULL },
 };
@@ -135,7 +137,7 @@ static const struct etphy_dsp {
 	{ 0x8010,	46     }	/* IdlguardTime */
 };
 
-int
+static int
 etphy_match(device_t parent, cfdata_t match, void *aux)
 {
 	struct mii_attach_args *ma = aux;
@@ -146,7 +148,7 @@ etphy_match(device_t parent, cfdata_t ma
 	return 0;
 }
 
-void
+static void
 etphy_attach(device_t parent, device_t self, void *aux)
 {
 	struct mii_softc *sc = device_private(self);
@@ -186,7 +188,7 @@ etphy_attach(device_t parent, device_t s
 		aprint_error_dev(self, "couldn't establish power handler\n");
 }
 
-int
+static int
 etphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd)
 {
 	struct ifmedia_entry *ife = mii->mii_media.ifm_cur;
@@ -232,7 +234,7 @@ etphy_service(struct mii_softc *sc, stru
 
 			if (IFM_SUBTYPE(ife->ifm_media) == IFM_1000_T) {
 				PHY_WRITE(sc, MII_BMCR,
-					  bmcr | BMCR_AUTOEN | BMCR_STARTNEG);
+				    bmcr | BMCR_AUTOEN | BMCR_STARTNEG);
 			}
 		}
 		break;
@@ -257,18 +259,22 @@ etphy_service(struct mii_softc *sc, stru
 	return 0;
 }
 
-void
+static void
 etphy_reset(struct mii_softc *sc)
 {
 	int i;
 
+	if (sc->mii_mpd_model == MII_MODEL_AGERE_ET1011) {
+		mii_phy_reset(sc);
+		return;
+	}
+
 	for (i = 0; i < 2; ++i) {
 		PHY_READ(sc, MII_PHYIDR1);
 		PHY_READ(sc, MII_PHYIDR2);
 
 		PHY_READ(sc, ETPHY_CTRL);
-		PHY_WRITE(sc, ETPHY_CTRL,
-		    ETPHY_CTRL_DIAG | ETPHY_CTRL_RSV1);
+		PHY_WRITE(sc, ETPHY_CTRL, ETPHY_CTRL_DIAG | ETPHY_CTRL_RSV1);
 
 		PHY_WRITE(sc, ETPHY_INDEX, ETPHY_INDEX_MAGIC);
 		PHY_READ(sc, ETPHY_DATA);
@@ -298,13 +304,13 @@ etphy_reset(struct mii_softc *sc)
 
 	PHY_READ(sc, MII_BMCR);
 	PHY_READ(sc, ETPHY_CTRL);
-	PHY_WRITE(sc, MII_BMCR, BMCR_AUTOEN |  BMCR_S1000);
+	PHY_WRITE(sc, MII_BMCR, BMCR_AUTOEN | BMCR_S1000);
 	PHY_WRITE(sc, ETPHY_CTRL, ETPHY_CTRL_RSV1);
 
 	mii_phy_reset(sc);
 }
 
-void
+static void
 etphy_status(struct mii_softc *sc)
 {
 	struct mii_data *mii = sc->mii_pdata;
@@ -343,7 +349,7 @@ etphy_status(struct mii_softc *sc)
 	}
 
 	if (sr & ETPHY_SR_FDX)
-		mii->mii_media_active |= IFM_FDX;
+		mii->mii_media_active |= IFM_FDX | mii_phy_flowstatus(sc);
 	else
 		mii->mii_media_active |= IFM_HDX;
 }
Index: src/sys/dev/mii/rdcphy.c
diff -u src/sys/dev/mii/rdcphy.c:1.1 src/sys/dev/mii/rdcphy.c:1.1.54.1
--- src/sys/dev/mii/rdcphy.c:1.1	Wed Jan 26 18:48:12 2011
+++ src/sys/dev/mii/rdcphy.c	Tue Apr 14 17:57:17 2020
@@ -1,4 +1,4 @@
-/*      $NetBSD: rdcphy.c,v 1.1 2011/01/26 18:48:12 bouyer Exp $        */
+/*      $NetBSD: rdcphy.c,v 1.1.54.1 2020/04/14 17:57:17 martin Exp $        */
 
 /*-
  * Copyright (c) 2010, Pyun YongHyeon <yong...@freebsd.org>
@@ -33,7 +33,7 @@
  * Driver for the RDC Semiconductor R6040 10/100 PHY.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rdcphy.c,v 1.1 2011/01/26 18:48:12 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rdcphy.c,v 1.1.54.1 2020/04/14 17:57:17 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -74,8 +74,12 @@ static const struct mii_phy_funcs rdcphy
 };
 
 static const struct mii_phydesc rdcphys[] = {
-	{ MII_OUI_RDC, MII_MODEL_RDC_R6040,
-	  MII_STR_RDC_R6040 },
+	{ MII_OUI_xxRDC, MII_MODEL_xxRDC_R6040,
+	  MII_STR_xxRDC_R6040 },
+	{ MII_OUI_xxRDC, MII_MODEL_xxRDC_R6040_2,
+	  MII_STR_xxRDC_R6040_2 },
+	{ MII_OUI_xxRDC, MII_MODEL_xxRDC_R6040_3,
+	  MII_STR_xxRDC_R6040_3 },
 	{ 0,                    0,
 	  NULL },
 };

Index: src/sys/dev/mii/miidevs
diff -u src/sys/dev/mii/miidevs:1.125.6.8 src/sys/dev/mii/miidevs:1.125.6.9
--- src/sys/dev/mii/miidevs:1.125.6.8	Mon Nov 25 15:57:23 2019
+++ src/sys/dev/mii/miidevs	Tue Apr 14 17:57:17 2020
@@ -1,4 +1,4 @@
-$NetBSD: miidevs,v 1.125.6.8 2019/11/25 15:57:23 martin Exp $
+$NetBSD: miidevs,v 1.125.6.9 2020/04/14 17:57:17 martin Exp $
 
 /*-
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
@@ -53,10 +53,12 @@ oui AMD				0x00001a	Advanced Micro Devic
 oui TRIDIUM			0x0001f0	Tridium
 oui DATATRACK			0x0002c6	Data Track Technology
 oui AGERE			0x00053d	Agere
+oui QUAKE			0x000897	Quake Technologies
 oui BANKSPEED			0x0006b8	Bankspeed Pty
 oui NETEXCELL			0x0008bb	NetExcell
 oui NETAS			0x0009c3	Netas
 oui BROADCOM2			0x000af7	Broadcom Corporation
+oui AELUROS			0x000b25	Aeluros
 oui RALINK			0x000c43	Ralink Technology
 oui ASIX			0x000ec6	ASIX
 oui BROADCOM			0x001018	Broadcom Corporation
@@ -64,13 +66,11 @@ oui MICREL			0x0010a1	Micrel
 oui ALTIMA			0x0010a9	Altima Communications
 oui ENABLESEMI			0x0010dd	Enable Semiconductor
 oui SUNPLUS			0x001105	Sunplus Technology
-oui ATHEROS			0x001374	Atheros
 oui TERANETICS			0x0014a6	Teranetics
 oui RALINK2			0x0017a5	Ralink Technology
 oui AQUANTIA			0x0017b6	Aquantia Corporation
 oui BROADCOM3			0x001be9	Broadcom Corporation
 oui LEVEL1			0x00207b	Level 1
-oui VIA				0x004063	VIA Technologies
 oui MARVELL			0x005043	Marvell Semiconductor
 oui QUALSEMI			0x006051	Quality Semiconductor
 oui AMLOGIC			0x006051	Amlogic
@@ -82,7 +82,6 @@ oui INTEL			0x00aa00	Intel
 oui TSC				0x00c039	TDK Semiconductor
 oui MYSON			0x00c0b4	Myson Technology
 oui ATTANSIC			0x00c82e	Attansic Technology
-oui RDC				0x00d02d	RDC Semiconductor
 oui JMICRON			0x00d831	JMicron
 oui PMCSIERRA			0x00e004	PMC-Sierra
 oui SIS				0x00e006	Silicon Integrated Systems
@@ -97,6 +96,7 @@ oui RENESAS			0x749050	Renesas
 /* Unregistered or wrong OUI */
 oui yyREALTEK			0x000004	Realtek
 oui yyAMD			0x000058	Advanced Micro Devices
+oui xxVIA			0x0002c6	VIA Technologies
 oui xxMYSON			0x00032d	Myson Technology
 oui xxTSC			0x00039c	TDK Semiconductor
 oui xxASIX			0x000674	Asix Semiconductor
@@ -115,6 +115,7 @@ oui yyASIX			0x007063	Asix Semiconductor
 oui xxVITESSE			0x008083	Vitesse Semiconductor
 oui xxPMCSIERRA2		0x009057	PMC-Sierra
 oui xxCICADA			0x00c08f	Cicada Semiconductor
+oui xxRDC			0x00d02d	RDC Semiconductor
 oui xxNATSEMI			0x1000e8	National Semiconductor
 oui xxLEVEL1			0x782000	Level 1
 oui xxXAQTI			0xace000	XaQti Corp.
@@ -126,7 +127,8 @@ oui xxXAQTI			0xace000	XaQti Corp.
 /*
  * Agere PHYs
  */
-model AGERE ET1011		0x0004 Agere ET1011 10/100/1000baseT PHY
+model AGERE ET1011		0x0001 ET1011 10/100/1000baseT PHY
+model AGERE ET1011C		0x0004 ET1011C 10/100/1000baseT PHY
 
 /* Asix semiconductor PHYs */
 model xxASIX AX88X9X		0x0031 Ax88x9x internal PHY
@@ -147,11 +149,7 @@ model ALTIMA Am79C874		0x0021 Am79C874 1
 model AMLOGIC GXL		0x0000 Meson GXL internal PHY
 model xxAMLOGIC GXL		0x0000 Meson GXL internal PHY
 
-/* Atheros PHYs */
-model ATHEROS F1		0x0001 F1 10/100/1000 PHY
-model ATHEROS F2		0x0002 F2 10/100 PHY
-
-/* Attansic PHYs */
+/* Attansic/Atheros PHYs */
 model ATTANSIC L1		0x0001 L1 10/100/1000 PHY
 model ATTANSIC L2		0x0002 L2 10/100 PHY
 model ATTANSIC AR8021		0x0004 Atheros AR8021 10/100/1000 PHY
@@ -218,6 +216,7 @@ model BROADCOM3 BCM5719C	0x0022 BCM5719C
 model BROADCOM3 BCM57765	0x0024 BCM57765 1000BASE-T media interface
 model BROADCOM3 BCM53125	0x0032 BCM53125 1000BASE-T switch
 model BROADCOM3 BCM5720C	0x0036 BCM5720C 1000BASE-T media interface
+model BROADCOM4 BCM54213PE	0x000a BCM54213PE 1000BASE-T media interface
 model BROADCOM4 BCM5725C	0x0038 BCM5725C 1000BASE-T media interface
 model xxBROADCOM_ALT1 BCM5906	0x0004 BCM5906 10/100baseTX media interface
 
@@ -353,7 +352,9 @@ model PMCSIERRA PM8354		0x0004 PM8354 Qu
 model xxQUALSEMI QS6612		0x0000 QS6612 10/100 media interface
 
 /* RDC Semiconductor PHYs */
-model RDC R6040			0x0003 R6040 10/100 media interface
+model xxRDC R6040		0x0003 R6040 10/100 media interface
+model xxRDC R6040_2		0x0005 R6040 10/100 media interface
+model xxRDC R6040_3		0x0006 R6040 10/100 media interface
 
 /* RealTek PHYs */
 model xxREALTEK RTL8169S	0x0011 RTL8169S/8110S/8211 1000BASE-T media interface
@@ -380,6 +381,9 @@ model SMSC LAN8740		0x0011 SMSC LAN8740 
 model SMSC LAN8741A		0x0012 SMSC LAN8741A 10/100 media interface
 model SMSC LAN8742		0x0013 SMSC LAN8742 10/100 media interface
 
+/* Teranetics PHY */
+model TERANETICS TN1010		0x0001 Teranetics TN1010 10GBase-T PHY
+
 /* Texas Instruments PHYs */
 model TI TLAN10T		0x0001 ThunderLAN 10BASE-T media interface
 model TI 100VGPMI		0x0002 ThunderLAN 100VG-AnyLan media interface
@@ -390,8 +394,8 @@ model xxTSC 78Q2120		0x0014 78Q2120 10/1
 model xxTSC 78Q2121		0x0015 78Q2121 100BASE-TX media interface
 
 /* VIA Technologies PHYs */
-model VIA VT6103		0x0032	VT6103 10/100 PHY
-model VIA VT6103_2		0x0034	VT6103 10/100 PHY
+model xxVIA VT6103		0x0032	VT6103 10/100 PHY
+model xxVIA VT6103_2		0x0034	VT6103 10/100 PHY
 
 /* Vitesse PHYs (Now Microsemi) */
 model xxVITESSE VSC8601		0x0002 VSC8601 10/100/1000 PHY

Reply via email to