[PATCH net-next v2 0/2] net: phy: Add ability to debug RGMII

From: Florian Fainelli
Date: Thu Oct 17 2019 - 17:45:09 EST

Hi all,

This patch series is primarily intended to reduce the amount of support
involved with bringing up RGMII connections with the PHY library (or
PHYLINK) for that matter. The idea consists in looping back a packet we
just crafted and check whether it did came back correctly, if that is
the case, we are good, else we must try configuring the PHY for
different delays until it either works or we bail out.

As indicated in the commit message, future improvements could probably
be done in order to converge faster on the appropriate configuration.
This is intended to be PHY centric, and we are not playing with delays
on the MAC side other than through the parsing of the phydev->interface.

The typical output would look like this:

[ 62.668701] bcmgenet 8f00000.ethernet eth0: Trying "rgmii-txid" PHY
[ 62.676094] bcmgenet 8f00000.ethernet eth0: Determined "rgmii-txid"
to be correct

Feedback highly welcome on this!

Changes in v2:

- differenciate c22 vs. c45 PHYs in phy_loopback()
- print SKB length mismatch
- check that link comes back up between each iteration since we go in
and out of loopback mode
- prevent NPD by checking attached_dev later
- moved check for af_packet_priv earlier

Florian Fainelli (2):
net: phy: Use genphy_loopback() by default
net: phy: Add ability to debug RGMII connections

.../ABI/testing/sysfs-class-net-phydev | 11 +
drivers/net/phy/Kconfig | 9 +
drivers/net/phy/Makefile | 1 +
drivers/net/phy/phy-rgmii-debug.c | 284 ++++++++++++++++++
drivers/net/phy/phy_device.c | 35 ++-
include/linux/phy.h | 9 +
6 files changed, 348 insertions(+), 1 deletion(-)
create mode 100644 drivers/net/phy/phy-rgmii-debug.c