Go to file
Jakub Kicinski 2bd29748fc Merge branch 'net-fec-fix-temporary-rmii-clock-reset-on-link-up'
Laurent Badel says:

====================
net: fec: Fix temporary RMII clock reset on link up

v2: fixed a compilation warning

The FEC drivers performs a "hardware reset" of the MAC module when the
link is reported to be up. This causes a short glitch in the RMII clock
due to the hardware reset clearing the receive control register which
controls the MII mode. It seems that some link partners do not tolerate
this glitch, and invalidate the link, which leads to a never-ending loop
of negotiation-link up-link down events.

This was observed with the iMX28 Soc and LAN8720/LAN8742 PHYs, with two
Intel adapters I218-LM and X722-DA2 as link partners, though a number of
other link partners do not seem to mind the clock glitch. Changing the
hardware reset to a software reset (clearing bit 1 of the ECR register)
cured the issue.

Attempts to optimize fec_restart() in order to minimize the duration of
the glitch were unsuccessful. Furthermore manually producing the glitch by
setting MII mode and then back to RMII in two consecutive instructions,
resulting in a clock glitch <10us in duration, was enough to cause the
partner to invalidate the link. This strongly suggests that the root cause
of the link being dropped is indeed the change in clock frequency.

In an effort to minimize changes to driver, the patch proposes to use
soft reset only for tested SoCs (iMX28) and only if the link is up. This
preserves hardware reset in other situations, which might be required for
proper setup of the MAC.
====================

Link: https://lore.kernel.org/r/20210125100745.5090-1-laurentbadel@eaton.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-01-26 18:24:46 -08:00
Documentation doc: networking: ip-sysctl: Document conf/all/disable_ipv6 and conf/default/disable_ipv6 2021-01-23 13:33:12 -08:00
LICENSES
arch xen: branch for v5.11-rc5 2021-01-20 11:46:38 -08:00
block
certs
crypto X.509: Fix crash caused by NULL pointer 2021-01-20 11:33:51 -08:00
drivers net: fec: Fix temporary RMII clock reset on link up 2021-01-26 18:24:39 -08:00
fs cachefiles: Drop superfluous readpages aops NULL check 2021-01-20 11:33:51 -08:00
include net: lapb: Add locking to the lapb module 2021-01-26 17:53:45 -08:00
init
ipc
kernel Networking fixes for 5.11-rc5, including fixes from bpf, wireless, 2021-01-20 11:52:21 -08:00
lib
mm
net net: lapb: Add locking to the lapb module 2021-01-26 17:53:45 -08:00
samples
scripts
security
sound
tools Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec 2021-01-21 11:05:10 -08:00
usr
virt
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS MAINTAINERS: add David Ahern to IPv4/IPv6 maintainers 2021-01-26 16:46:32 -08:00
Makefile
README

README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.