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 <[email protected]>
@@ -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