[PATCH net-next v2 0/5] TSN auto negotiation between 1G and 2.5G

Choong Yong Liang
2023-08-04T08:47:09Z

Intel platforms’ integrated Gigabit Ethernet controllers support
2.5Gbps mode statically using BIOS programming. In the current
implementation, the BIOS menu provides an option to select between
10/100/1000Mbps and 2.5Gbps modes. Based on the selection, the BIOS
programs the Phase Lock Loop (PLL) registers. The BIOS also read the
TSN lane registers from Flexible I/O Adapter (FIA) block and provided
10/100/1000Mbps/2.5Gbps information to the stmmac driver. But
auto-negotiation between 10/100/1000Mbps and 2.5Gbps is not allowed.
The new proposal is to support auto-negotiation between 10/100/1000Mbps
and 2.5Gbps . Auto-negotiation between 10, 100, 1000Mbps will use
in-band auto negotiation. Auto-negotiation between 10/100/1000Mbps and
2.5Gbps will work as the following proposed flow, the stmmac driver reads
the PHY link status registers then identifies the negotiated speed.
Based on the speed stmmac driver will identify TSN lane registers from
FIA then send IPC command to the Power Management controller (PMC)
through PMC driver/API. PMC will act as a proxy to programs the
PLL registers.

changelog:
v1 -> v2:
- Created intel_pmc_core.h in include/linux/platform_data/x86/ and
export the desired functionality.
- Add cur_link_an_mode to the kernel doc
- Update cfg_link_an_mode value during phy driver changed
- Combine 2 commits i.e. "stmmac: intel: Separate driver_data of ADL-N
from TGL" and "net: stmmac: Add 1G/2.5G auto-negotiation
support for ADL-N" into 1 commit.

v1 -> v2:
- Add static to pmc_lpm_modes declaration
- Add cur_link_an_mode to the kernel doc
- Combine 2 commits i.e. "stmmac: intel: Separate driver_data of ADL-N
from TGL" and "net: stmmac: Add 1G/2.5G auto-negotiation
support for ADL-N" into 1 commit.
---
Choong Yong Liang (1):
stmmac: intel: Add 1G/2.5G auto-negotiation support for ADL-N

David E. Box (1):
platform/x86: intel_pmc_core: Add IPC mailbox accessor function and
add SoC register access

Tan, Tee Min (3):
net: pcs: xpcs: combine C37 SGMII AN and 2500BASEX for Intel mGbE
controller
net: phy: update in-band AN mode when changing interface by PHY driver
net: stmmac: enable Intel mGbE 1G/2.5G auto-negotiation support

MAINTAINERS | 1 +
drivers/net/ethernet/stmicro/stmmac/Kconfig | 1 +
.../net/ethernet/stmicro/stmmac/dwmac-intel.c | 183 +++++++++++++++++-
.../net/ethernet/stmicro/stmmac/dwmac-intel.h | 81 ++++++++
.../net/ethernet/stmicro/stmmac/stmmac_main.c | 20 ++
drivers/net/pcs/pcs-xpcs.c | 72 +++++--
drivers/net/phy/marvell10g.c | 6 +
drivers/net/phy/phylink.c | 4 +
drivers/platform/x86/intel/pmc/core.c | 60 ++++++
include/linux/pcs/pcs-xpcs.h | 1 +
include/linux/phy.h | 3 +
.../linux/platform_data/x86/intel_pmc_core.h | 41 ++++
include/linux/stmmac.h | 1 +
13 files changed, 458 insertions(+), 16 deletions(-)
create mode 100644 include/linux/platform_data/x86/intel_pmc_core.h

--
2.25.1