[PATCH net-next 00/13] Introduce an ethernet port representation

From: Maxime Chevallier
Date: Fri Feb 07 2025 - 17:36:55 EST


Hello everyone,

This series follows the 2 RFC that were sent a few weeks ago :
RFC V2: https://lore.kernel.org/netdev/20250122174252.82730-1-maxime.chevallier@xxxxxxxxxxx/
RFC V1: https://lore.kernel.org/netdev/20241220201506.2791940-1-maxime.chevallier@xxxxxxxxxxx/

The goal of this series is to introduce an internal way of representing
the "outputs" of ethernet devices, for now only focusing on PHYs.

This allows laying the groundwork for multi-port devices support (both 1
PHY 2 ports, or more exotic setups with 2 PHYs in parallel, or MII
multiplexers).

Compared to the RFCs, this series tries to properly support SFP,
especially PHY-driven SFPs through special phy_ports named "serdes"
ports. They have the particularity of outputing a generic interface,
that feeds into another component (usually, an SFP cage and therefore an
SFP module).

This allows getting a fairly generic PHY-driven SFP support (MAC-driven
SFP is handled by phylink).

This series doesn't address PHY-less interfaces (bare MAC devices, MACs
with embedded PHYs not driven by phylink, or MAC connected to optical
SFPs) to stay within the 15 patches limit, nor does it include the uAPI
part that exposes these ports to userspace.

I've kept the cover short, much more details can be found in the RFC
covers.

Thanks everyone,

Maxime

Maxime Chevallier (13):
net: ethtool: Introduce ETHTOOL_LINK_MEDIUM_* values
net: ethtool: Export the link_mode_params definitions
net: phy: Introduce PHY ports representation
net: phy: dp83822: Add support for phy_port representation
net: phy: Create a phy_port for PHY-driven SFPs
net: phy: Intrduce generic SFP handling for PHY drivers
net: phy: marvell-88x2222: Support SFP through phy_port interface
net: phy: marvell: Support SFP through phy_port interface
net: phy: marvell10g: Support SFP through phy_port
net: phy: at803x: Support SFP through phy_port interface
net: phy: Only rely on phy_port for PHY-driven SFP
net: phy: dp83822: Add SFP support through the phy_port interface
dt-bindings: net: Introduce the phy-port description

.../devicetree/bindings/net/ethernet-phy.yaml | 18 +
.../bindings/net/ethernet-port.yaml | 47 +++
drivers/net/phy/Makefile | 2 +-
drivers/net/phy/dp83822.c | 71 ++--
drivers/net/phy/marvell-88x2222.c | 96 +++---
drivers/net/phy/marvell.c | 100 +++---
drivers/net/phy/marvell10g.c | 37 +--
drivers/net/phy/phy_device.c | 307 +++++++++++++++++-
drivers/net/phy/phy_port.c | 176 ++++++++++
drivers/net/phy/phylink.c | 32 ++
drivers/net/phy/qcom/at803x.c | 64 +---
include/linux/ethtool.h | 73 +++++
include/linux/phy.h | 39 ++-
include/linux/phy_port.h | 92 ++++++
include/linux/phylink.h | 2 +
net/ethtool/common.c | 231 ++++++-------
net/ethtool/common.h | 7 -
17 files changed, 1048 insertions(+), 346 deletions(-)
create mode 100644 Documentation/devicetree/bindings/net/ethernet-port.yaml
create mode 100644 drivers/net/phy/phy_port.c
create mode 100644 include/linux/phy_port.h

--
2.48.1