[net-next,0/3] Introduce support for USGMII Inband Extensions

Message ID 20240212173307.1124120-1-maxime.chevallier@bootlin.com
Headers
Series Introduce support for USGMII Inband Extensions |

Message

Maxime Chevallier Feb. 12, 2024, 5:33 p.m. UTC
  Hello everyone,

This series follows (albeit with a lot of delay) the work that was
initiated when USGMII support was added a while ago [1], through the QUSGMII
variant. One of the differences between the QUSGMII mode and QSGMII is
the possibility to pass so-called "Extensions" within the preamble. So
far, the only extension documented in the USGMII standard is to pass
a 32-bits timestamp through the preamble, but the standard mentions
other possible usages in the future, such as a MACSec sectag for
example.

This series aims at adding support for such extensions and proposes a
phylib API to manipulate these.

It includes an example using the lan8814 PHY driver and the LAN966x MAC
driver, where both have to agree on using this mode to convey the
nanoseconds part of a PTP timestamp (the seconds part is still retreived
through MDIO accesses).

Thanks,

Maxime

[1] : https://lore.kernel.org/netdev/20220519135647.465653-1-maxime.chevallier@bootlin.com/

Maxime Chevallier (3):
  net: phy: Add support for inband extensions
  net: lan966x: Allow using PCH extension for PTP
  net: phy: micrel: Add QUSGMII support and PCH extension

 Documentation/networking/phy.rst              | 70 ++++++++++++++
 .../ethernet/microchip/lan966x/lan966x_main.h |  1 +
 .../ethernet/microchip/lan966x/lan966x_port.c | 12 +++
 .../ethernet/microchip/lan966x/lan966x_ptp.c  | 94 +++++++++++++++++--
 .../ethernet/microchip/lan966x/lan966x_regs.h | 64 +++++++++++++
 drivers/net/phy/micrel.c                      | 84 ++++++++++++++++-
 drivers/net/phy/phy.c                         | 86 +++++++++++++++++
 include/linux/phy.h                           | 28 ++++++
 8 files changed, 425 insertions(+), 14 deletions(-)