Home | History | Annotate | Download | only in mii
History log of /src/sys/dev/mii/atphy.c
RevisionDateAuthorComments
 1.33  04-Oct-2025  thorpej Use device_{get,set}prop_bool() for rgmii-related properties.
 1.32  20-Jul-2024  andvar fix typos in comments, mainly s/harware/hardware/.
 1.31  22-Feb-2023  msaitoh branches: 1.31.6;
Retry autonegotiation every mii_anegticks seconds instead of mii_anegticks+1.
 1.30  15-Mar-2020  thorpej branches: 1.30.22;
Define and implement a locking protocol for the ifmedia / mii layers:
- MP-safe drivers provide a mutex to ifmedia that is used to serialize
access to media-related structures / hardware regsiters. Converted
drivers use the new ifmedia_init_with_lock() function for this. The
new name is provided to ease the transition.
- Un-converted drivers continue to call ifmedia_init(), which will supply
a compatibility lock to be used instead. Several media-related entry
points must be aware of this compatibility lock, and are able to acquire
it recursively a limited number of times, if needed. This is a SPIN
mutex with priority IPL_NET.
- This same lock is used to serialize access to PHY registers and other
MII-related data structures.

The PHY drivers are modified to acquire and release the lock, as needed,
and assert the lock is held as a diagnostic aid.

The "usbnet" framework has had an overhaul of its internal locking
protocols to fit in with the media / mii changes, and the drivers adapted.

USB wifi drivers have been changed to provide their own adaptive mutex
to the ifmedia later via a new ieee80211_media_init_with_lock() function.
This is required because the USB drivers need an adaptive mutex.

Besised "usbnet", a few other drivers are converted: vmx, wm, ixgbe / ixv.

mcx also now calls ifmedia_init_with_lock() because it needs to also use
an adaptive mutex. The mcx driver still needs to be fully converted to
NET_MPSAFE.
 1.29  13-Mar-2020  msaitoh Fix a bug that atphy(4) doesn't work with Attansic L2 rev. 1.
Reported by Rocky Hotas.

- On ASUS M2N-MX SE Plus (NVIDIA MCP61 with Attansic L2 rev. 1), changing
debug port 0x29's value makes the next PHY read fail with error. Read any
register to ignore this problem if the PHY is Attansic L2 revision 1.
I don't know if this problem is from L2 rev. 1 itself or from the
combination because I have only one machine which has L2 rev. "1".
At least, ASUS eee pc 900 (Attansic L2 rev. "2") has no this problem.
- Add comment. AR8021 document has no description about the power saving
control register(debug port 0x29).
- Add comment. AR8031 document says the lower 14 bits are reserved and the
default value is 0x36d0. Shouldn't we clear those bits?
- I have no document neither L1(F1) nor L2(F2), so I don't know whether the
debug port access is correct or not.

Tested with the following machines:
- ASUS P5B SE, L1 rev. 5, age(4)
- ASUS K50IJ, L1 rev. 9, ale(4)
- ASUS eee pc 900, L2 rev. 2, lii(4)
- ASUS M2N-MX SE Plus, L2 rev. 1, nfe(4)
- Intel DP55WB, 82578(AR8021 rev. 2), wm(4)
- Dell inspiron 14z, AR0835 rev. 9, alc(4)
 1.28  13-Mar-2020  msaitoh 0x001374 is non-bitreversed value of Attansic OUI(0x00c82e).

Attansic/Atheros correctly uses ID1 and ID2 register, so delete all 0x001374
related entries.
 1.27  13-Dec-2019  msaitoh KNF. No functional change.
 1.26  27-Nov-2019  msaitoh - Simplify sc->mii_anegticks setting. Same as FreeBSD.

Don't set the default value not in the attach function. Instead, set the
default value (MII_ANEGTICKS) first in the beginning of the
mii_phy_add_media(). The function already has the code to change the value to
MII_ANEGTICKS_GIGE if it's gigabit capable.

- Remove extra pmf_device_register() call. It's done in mii_phy_add_media().
 1.25  20-Nov-2019  msaitoh Fix a bug that atphy(4) can't negotiate correctly when the media setting is
neither auto nor 1000baseT. Use correct index for mii_media_table[].

History: mii_anar() is first added in OpenBSD and ported to NetBSD. On NetBSD,
only atphy(4) use this function. mii_physubr.c rev. 1.75 changed mii_anar()
for simplify. It changed the argument from the ifmedia word to ifm_data used
in our MII API, but the caller have not been changed. And then, PR kern/50206
was reported and the caller was modified by me to prevent panic but it was not
correct fix.
 1.24  18-Oct-2019  hkenken Modified atphy(4)

* Support CLK_25M clock out.
* Support internal delay for RGMII interface.
 1.23  02-Sep-2019  msaitoh s/etphy/atphy/. No functional change.
 1.22  11-Apr-2019  msaitoh branches: 1.22.4;
Simplify. No functional change.
 1.21  25-Mar-2019  msaitoh KNF. No functional change.
 1.20  24-Feb-2019  christos use a macro to tidy up the phydesc array initialization, from FreeBSD
 1.19  22-Jan-2019  msaitoh Change MII PHY read/write API from:

int (*mii_readreg_t)(device_t, int, int);
void (*mii_writereg_t)(device_t, int, int, int);
to:

int (*mii_readreg_t)(device_t, int, int, uint16_t *);
int (*mii_writereg_t)(device_t, int, int, uint16_t);

Now we can test if a read/write operation failed or not by the return value.

In 802.3 spec says that the PHY shall not respond to read/write transaction
to the unimplemented register(22.2.4.3). Detecting timeout can be used to
check whether a register is implemented or not (if the register conforms to
the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.

Note that I noticed that the following code do infinite loop in the
read/wirte function. If it accesses unimplemented PHY register, it will hang.
It should be fixed:

arm/at91/at91emac.c
arm/ep93xx/epe.c
arm/omap/omapl1x_emac.c
mips/ralink/ralink_eth.c
arch/powerpc/booke/dev/pq3etsec.c(read)
dev/cadence/if_cemac.c <- hkenken
dev/ic/lan9118.c


Tested with the following device:

axe+ukphy
axe+rgephy
axen+rgephy (tested by Andrius V)
wm+atphy
wm+ukphy
wm+igphy
wm+ihphy
wm+makphy
sk+makphy
sk+brgphy
sk+gentbi
msk+makphy
sip+icsphy
sip+ukphy
re+rgephy
bge+brgphy
bnx+brgphy
gsip+gphyter
rtk+rlphy
fxp+inphy (tested by Andrius V)
tlp+acphy
ex+exphy
epic+qsphy
vge+ciphy (tested by Andrius V)
vr+ukphy (tested by Andrius V)
vte+ukphy (tested by Andrius V)

Not tested (MAC):
arm:at91emac
arm:cemac
arm:epe
arm:geminigmac
arm:enet
arm:cpsw
arm:emac(omac)
arm:emac(sunxi)
arm:npe
evbppc:temac
macppc:bm
macppc:gm
mips:aumac
mips:ae
mips:cnmac
mips:reth
mips:sbmac
playstation2:smap
powerpc:tsec
powerpc:emac(ibm4xx)
sgimips:mec
sparc:be
sf
ne(ax88190, dl10019)
awge
ep
gem
hme
smsh
mtd
sm
age
alc
ale
bce
cas
et
jme
lii
nfe
pcn
ste
stge
tl
xi
aue
mue
smsc
udav
url

Not tested (PHY):
amhphy
bmtphy
dmphy
etphy
glxtphy
ikphy
iophy
lxtphy
nsphyter
pnaphy
rdcphy
sqphy
tlphy
tqphy
urlphy
 1.18  02-Nov-2016  msaitoh branches: 1.18.8; 1.18.14; 1.18.16;
Set mii_mpd_{oui,model,rev}.
 1.17  08-Sep-2015  msaitoh branches: 1.17.2;
Fix incorrect argument of mii_anar(). Fixes PR#50206.
XXX pullup -[567]
 1.16  16-Jun-2014  msaitoh branches: 1.16.2; 1.16.4; 1.16.6;
Fix a bug that atphy doesn't set the capability of pause function correctly.
This bug was added in "mii.h" rev. 1.17.
 1.15  16-Jun-2013  msaitoh branches: 1.15.6;
The bit location of link ability is different between 1000Base-X and others
(See annex 28B.2 and 28D). The old mii.h defined ANAR_X_PAUSE_* macros. Those
macros were named for 1000Base-X, but the bit definitions were not for
1000Base-X but for others (e.g. 1000BaseT). So there was bug in auto
negotiation for 1000Base-X, but there was no bug for other media. Define new
macro named ANAR_PAUSE_* and ANLPAR_PAUSE_* for other than 1000Base-X and fix
the bit definitions of ANAR_X_PAUSE_* and ANLPPAR_X_*. Change some PHY drivers
to use true macro. Same as other *BSDs.
 1.14  09-Jun-2013  msaitoh atphy, ciphy, ihphy and rgephy are gigabit PHY, so not only check IFM_AUTO
for autonegotiation but also check IFM_1000_T, too.
 1.13  06-Jun-2013  msaitoh Fix a bug that the auto negotiation timer isn't cleard as we expected.
To not to forget clearing the timer and to reduce the code duplication,
clear mii_ticks in *mii_phy_auto().
 1.12  23-Jul-2012  matt branches: 1.12.2;
Make it match AR8035
 1.11  02-Oct-2011  jmcneill branches: 1.11.2; 1.11.8; 1.11.12; 1.11.14;
Attansic L2 is 10/100 but the status registers report 1000 Mbps, so don't
bother reading MII_EXTSR for this part. Also use MII_ANEGTICKS instead of
MII_ANEGTICKS_GIGE for this part.
 1.10  23-Feb-2011  jmcneill match on MII_MODEL_ATTANSIC_L2

alc0 at pci3 dev 0 function 0: Atheros AR8152 v2.0 PCIe Fast Ethernet
alc0: ioapic0 pin 17
alc0: Ethernet address 00:26:6c:9e:d4:c1
atphy0 at alc0 phy 0: L2 10/100 PHY, rev. 5
atphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, auto
 1.9  22-Jan-2011  cegger fix comment. from PR kern/44395
 1.8  22-Jan-2011  cegger Fixes from PR kern/44395 Masanori Kanaoka:
- Fix register address in ale_phy_reset(). from linux
- Fix mask value in ale_stop_mac().
- Fix multicast handling. from openbsd
- Fix phy reset handling.
 1.7  11-Dec-2010  matt branches: 1.7.2; 1.7.4;
Recognize AR8021
 1.6  25-Jul-2009  cegger branches: 1.6.4; 1.6.6;
- replace magic number with proper define from mii.h. From OpenBSD.
- fix typo in comment. From OpenBSD.
 1.5  27-Mar-2009  cegger branches: 1.5.2; 1.5.4;
use auto-negotiation for manual media type selection.
This should fix establishment of 10/100Mbps link on L1E.
Helpful to reduce watchdog timeout problems on L1 (age(4)) reported by Jochen Kunz.
From FreeBSD via OpenBSD.
 1.4  12-Feb-2009  cegger pretty print atphy's supported medias in dmesg.
 1.3  11-Feb-2009  cegger Attach atphy(4) on ATTANSIC oui.
ok cube@
 1.2  16-Jan-2009  cegger branches: 1.2.2; 1.2.4; 1.2.6;
add RCSID
 1.1  16-Jan-2009  cegger Driver for Attansic Technology F1 10/100/1000 Ethernet PHY.

Written by Pyun YongHyeon for FreeBSD, ported to OpenBSD by Kevin Lo, ported to
NetBSD by me.
 1.2.6.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.2.4.4  28-Apr-2009  skrll Sync with HEAD.
 1.2.4.3  03-Mar-2009  skrll Sync with HEAD.
 1.2.4.2  19-Jan-2009  skrll Sync with HEAD.
 1.2.4.1  16-Jan-2009  skrll file atphy.c was added on branch nick-hppapmap on 2009-01-19 13:18:14 +0000
 1.2.2.2  17-Jan-2009  mjf Sync with HEAD.
 1.2.2.1  16-Jan-2009  mjf file atphy.c was added on branch mjf-devfs2 on 2009-01-17 13:28:57 +0000
 1.5.4.3  19-Aug-2009  yamt sync with head.
 1.5.4.2  04-May-2009  yamt sync with head.
 1.5.4.1  27-Mar-2009  yamt file atphy.c was added on branch yamt-nfs-mp on 2009-05-04 08:12:52 +0000
 1.5.2.3  07-Nov-2015  snj Pull up following revision(s) (requested by msaitoh in ticket #1978):
sys/dev/mii/atphy.c: revision 1.17
Fix incorrect argument of mii_anar(). Fixes PR#50206.
XXX pullup -[567]
 1.5.2.2  03-May-2009  snj branches: 1.5.2.2.2; 1.5.2.2.4; 1.5.2.2.6;
Pull up following revision(s) (requested by cegger in ticket #735):
sys/dev/pci/if_age.c: revisions 1.1-1.28
sys/dev/pci/if_agereg.h: revisions 1.1-1.2
sys/dev/pci/if_ale.c: revisions 1.1-1.3
sys/dev/pci/if_alereg.h: revisions 1.1-1.2
sys/dev/pci/files.pci: revisions 1.310-1.313
sys/dev/mii/atphy.c: revisions 1.1-1.5
sys/dev/mii/files.mii: revision 1.42
share/man/man4/age.4: revisions 1.1-1.3
share/man/man4/ale.4: revisions 1.1-1.2
share/man/man4/atphy.4: revisions 1.1-1.2
share/man/man4/Makefile: revisions 1.486, 1.489
distrib/sets/lists/man/mi: revisions 1.1118, 1.1132
sys/arch/i386/conf/GENERIC: revisions 1.928, 1.933
sys/arch/i386/conf/XEN2_DOM0: revisions 1.57, 1.60
sys/arch/amd64/conf/GENERIC: revisions 1.239, 1.241
sys/arch/amd64/conf/XEN3_DOM0: revisions 1.38, 1.42
Add the age(4) and ale(4) drivers for Attansic L1 and Atheros
AR8121/AR8113/AR8114 devices respectively.
 1.5.2.1  27-Mar-2009  snj file atphy.c was added on branch netbsd-5 on 2009-05-03 23:45:47 +0000
 1.5.2.2.6.1  07-Nov-2015  snj Pull up following revision(s) (requested by msaitoh in ticket #1978):
sys/dev/mii/atphy.c: revision 1.17
Fix incorrect argument of mii_anar(). Fixes PR#50206.
 1.5.2.2.4.1  07-Jan-2011  matt Match some more phys.
 1.5.2.2.2.1  07-Nov-2015  snj Pull up following revision(s) (requested by msaitoh in ticket #1978):
sys/dev/mii/atphy.c: revision 1.17
Fix incorrect argument of mii_anar(). Fixes PR#50206.
 1.6.6.2  21-Apr-2010  matt sync to netbsd-5
 1.6.6.1  25-Jul-2009  matt file atphy.c was added on branch matt-nb5-mips64 on 2010-04-21 00:27:39 +0000
 1.6.4.1  05-Mar-2011  rmind sync with head
 1.7.4.2  05-Mar-2011  bouyer Sync with HEAD
 1.7.4.1  08-Feb-2011  bouyer Sync with HEAD
 1.7.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.11.14.1  15-Nov-2015  bouyer Pull up following revision(s) (requested by msaitoh in ticket #1325):
sys/dev/mii/atphy.c: revision 1.17
Fix incorrect argument of mii_anar(). Fixes PR#50206.
XXX pullup -[567]
 1.11.12.1  15-Nov-2015  bouyer Pull up following revision(s) (requested by msaitoh in ticket #1325):
sys/dev/mii/atphy.c: revision 1.17
Fix incorrect argument of mii_anar(). Fixes PR#50206.
XXX pullup -[567]
 1.11.8.3  15-Nov-2015  bouyer Pull up following revision(s) (requested by msaitoh in ticket #1325):
sys/dev/mii/atphy.c: revision 1.17
Fix incorrect argument of mii_anar(). Fixes PR#50206.
XXX pullup -[567]
 1.11.8.2  04-Feb-2015  martin Pull up following revision(s) (requested by msaitoh in ticket #1245):
sys/dev/mii/rgephy.c: revision 1.30
sys/dev/mii/brgphy.c: revision 1.64
sys/dev/mii/atphy.c: revision 1.13
sys/dev/mii/urlphy.c: revision 1.26
sys/dev/mii/ciphy.c: revision 1.20
sys/dev/mii/mii_physubr.c: revision 1.76
Fix a bug that the auto negotiation timer isn't cleard as we expected.
To not to forget clearing the timer and to reduce the code duplication,
clear mii_ticks in *mii_phy_auto().
 1.11.8.1  04-Nov-2014  martin Pull up following revision(s) (requested by msaitoh in ticket #1146):
sys/dev/mii/mii_physubr.c: revision 1.79
sys/dev/mii/rgephy.c: revision 1.33
sys/dev/mii/brgphy.c: revision 1.66
sys/dev/mii/atphy.c: revision 1.15
sys/dev/mii/mii.h: revision 1.17
The bit location of link ability is different between 1000Base-X and others
(See annex 28B.2 and 28D). The old mii.h defined ANAR_X_PAUSE_* macros. Those
macros were named for 1000Base-X, but the bit definitions were not for
1000Base-X but for others (e.g. 1000BaseT). So there was bug in auto
negotiation for 1000Base-X, but there was no bug for other media. Define new
macro named ANAR_PAUSE_* and ANLPAR_PAUSE_* for other than 1000Base-X and fix
the bit definitions of ANAR_X_PAUSE_* and ANLPPAR_X_*. Change some PHY drivers
to use true macro. Same as other *BSDs.
 1.11.2.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.11.2.1  30-Oct-2012  yamt sync with head
 1.12.2.3  03-Dec-2017  jdolecek update from HEAD
 1.12.2.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.12.2.1  23-Jun-2013  tls resync from head
 1.15.6.1  10-Aug-2014  tls Rebase.
 1.16.6.1  04-Nov-2015  riz Pull up following revision(s) (requested by msaitoh in ticket #971):
sys/dev/mii/atphy.c: revision 1.17
Fix incorrect argument of mii_anar(). Fixes PR#50206.
XXX pullup -[567]
 1.16.4.2  05-Dec-2016  skrll Sync with HEAD
 1.16.4.1  22-Sep-2015  skrll Sync with HEAD
 1.16.2.2  12-Dec-2016  snj Pull up following revision(s) (requested by msaitoh in ticket #1301):
sys/dev/mii/inphy.c: revision 1.55
sys/dev/mii/makphy.c: revision 1.42
sys/dev/mii/ikphy.c: revision 1.12
sys/dev/mii/atphy.c: revision 1.18
sys/dev/mii/ihphy.c: revision 1.10
Set mii_mpd_{oui,model,rev}.
--
Set mii_mpd_{oui,model,rev}.
--
Set mii_mpd_{oui,model,rev}.
--
Set mii_mpd_{oui,rev}.
 1.16.2.1  04-Nov-2015  riz branches: 1.16.2.1.2;
Pull up following revision(s) (requested by msaitoh in ticket #971):
sys/dev/mii/atphy.c: revision 1.17
Fix incorrect argument of mii_anar(). Fixes PR#50206.
XXX pullup -[567]
 1.16.2.1.2.1  18-Jan-2017  skrll Sync with netbsd-5
 1.17.2.1  04-Nov-2016  pgoyette Sync with HEAD
 1.18.16.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.18.16.1  10-Jun-2019  christos Sync with HEAD
 1.18.14.1  26-Jan-2019  pgoyette Sync with HEAD
 1.18.8.2  14-Apr-2020  martin 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.
 1.18.8.1  21-Nov-2019  martin Pull up the following revisions, requested by msaitoh in ticket #1454:

sys/dev/mii/atphy.c 1.22-1.23, 1.25 via patch
sys/dev/mii/mii_physubr.c 1.88 via patch
sys/dev/mii/miivar.h 1.69 via patch

- Fix a bug that atphy(4) can't negotiate correctly when the media
setting is neither auto nor 1000baseT.
- Code cleanup.
 1.22.4.2  19-Mar-2020  martin Pull up following revision(s) (requested by msaitoh in ticket #786):

sys/dev/pci/if_nfe.c: revision 1.77
sys/dev/pci/if_nfe.c: revision 1.78
sys/dev/mii/atphy.c: revision 1.28
sys/dev/mii/atphy.c: revision 1.29
sys/dev/mii/miidevs: revision 1.166

Use unsigned to avoid undefined behavior. Found by kUBSan.
0x001374 is non-bitreversed value of Attansic OUI(0x00c82e).
Attansic/Atheros correctly uses ID1 and ID2 register, so delete all 0x001374
related entries.

Improve error check:
- We check PHY register read error correctly (timeout and NFE_PHY_ERROR), so
don't check NFE_PHY_DATA register's value with 0xffffffff or 0. At least,
some registers may have 0.
- Check NFE_PHY_ERROR bit in nfe_miibus_writereg().
- Improve debug printf

Fix a bug that atphy(4) doesn't work with Attansic L2 rev. 1.
Reported by Rocky Hotas.

- On ASUS M2N-MX SE Plus (NVIDIA MCP61 with Attansic L2 rev. 1), changing
debug port 0x29's value makes the next PHY read fail with error. Read any
register to ignore this problem if the PHY is Attansic L2 revision 1.
I don't know if this problem is from L2 rev. 1 itself or from the
combination because I have only one machine which has L2 rev. "1".
At least, ASUS eee pc 900 (Attansic L2 rev. "2") has no this problem.
- Add comment. AR8021 document has no description about the power saving
control register(debug port 0x29).
- Add comment. AR8031 document says the lower 14 bits are reserved and the
default value is 0x36d0. Shouldn't we clear those bits?
- I have no document neither L1(F1) nor L2(F2), so I don't know whether the
debug port access is correct or not.
Tested with the following machines:
- ASUS P5B SE, L1 rev. 5, age(4)
- ASUS K50IJ, L1 rev. 9, ale(4)
- ASUS eee pc 900, L2 rev. 2, lii(4)
- ASUS M2N-MX SE Plus, L2 rev. 1, nfe(4)
- Intel DP55WB, 82578(AR8021 rev. 2), wm(4)
- Dell inspiron 14z, AR0835 rev. 9, alc(4)
 1.22.4.1  21-Nov-2019  martin Pull up following revision(s) (requested by msaitoh in ticket #459):

sys/dev/mii/atphy.c: revision 1.23
sys/dev/mii/atphy.c: revision 1.25
sys/dev/mii/miivar.h: revision 1.69
sys/dev/mii/mii_physubr.c: revision 1.88

s/etphy/atphy/. No functional change.

Fix a bug that atphy(4) can't negotiate correctly when the media setting is
neither auto nor 1000baseT. Use correct index for mii_media_table[].

History: mii_anar() is first added in OpenBSD and ported to NetBSD. On NetBSD,
only atphy(4) use this function. mii_physubr.c rev. 1.75 changed mii_anar()
for simplify. It changed the argument from the ifmedia word to ifm_data used
in our MII API, but the caller have not been changed. And then, PR kern/50206
was reported and the caller was modified by me to prevent panic but it was not
correct fix.
 1.30.22.1  21-Jun-2023  martin Pull up following revision(s) (requested by msaitoh in ticket #208):

sys/dev/mii/ciphy.c: revision 1.42
sys/dev/mii/brgphy.c: revision 1.91
sys/dev/mii/mii_physubr.c: revision 1.102
sys/dev/mii/ipgphy.c: revision 1.11
sys/dev/mii/tlphy.c: revision 1.72
sys/dev/mii/jmphy.c: revision 1.5
sys/dev/mii/urlphy.c: revision 1.40
sys/dev/mii/atphy.c: revision 1.31

Retry autonegotiation every mii_anegticks seconds instead of mii_anegticks+1.
 1.31.6.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed