mbox series

[v3,net-next,0/7] Raw PHY TDR data

Message ID 20200526222143.793613-1-andrew@lunn.ch
Headers show
Series Raw PHY TDR data | expand

Message

Andrew Lunn May 26, 2020, 10:21 p.m. UTC
Some ethernet PHYs allow access to raw TDR data in addition to summary
diagnostics information. Add support for retrieving this data via
netlink ethtool. The basic structure in the core is the same as for
normal phy diagnostics, the PHY driver simply uses different helpers
to fill the netlink message with different data.

There is a graphical tool under development, as well a ethtool(1)
which can dump the data as text and JSON.

A patched ethtool(1) can be found in
https://github.com/lunn/ethtool.git feature/cable-test-v5

Thanks for Chris Healy for lots of testing.

v2:
See the individual patches but:

Pass distances in centimeters, not meters

Allow the PHY to round distances to what it supports and report what
it actually used along with the results.

Make the Marvell PHY use steps a multiple of 0.805 meters, its native
step size.

v3:
Move the TDR configuration into a structure
Add a range check on step
Use NL_SET_ERR_MSG_ATTR() when appropriate
Move TDR configuration into a nest
Document attributes in the request
Unsquash the last two patches

Andrew Lunn (7):
  net: ethtool: Add attributes for cable test TDR data
  net: ethtool: Add generic parts of cable test TDR
  net: ethtool: Add helpers for cable test TDR data
  net: phy: marvell: Add support for amplitude graph
  net: ethtool: Allow PHY cable test TDR data to configured
  net : phy: marvell: Speedup TDR data retrieval by only changing page
    once
  net: phy: marvell: Configure TDR pulse based on measurement length

 Documentation/networking/ethtool-netlink.rst |  97 +++++++
 drivers/net/phy/marvell.c                    | 285 ++++++++++++++++++-
 drivers/net/phy/nxp-tja11xx.c                |   2 +-
 drivers/net/phy/phy.c                        |  66 ++++-
 include/linux/ethtool_netlink.h              |  25 +-
 include/linux/phy.h                          |  28 ++
 include/uapi/linux/ethtool_netlink.h         |  76 +++++
 net/ethtool/cabletest.c                      | 246 +++++++++++++++-
 net/ethtool/netlink.c                        |   5 +
 net/ethtool/netlink.h                        |   1 +
 10 files changed, 818 insertions(+), 13 deletions(-)