linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v3 0/5] TSN auto negotiation between 1G and 2.5G
@ 2023-09-21 12:19 Choong Yong Liang
  2023-09-21 12:19 ` [PATCH net-next v3 1/5] arch: x86: Add IPC mailbox accessor function and add SoC register access Choong Yong Liang
                   ` (5 more replies)
  0 siblings, 6 replies; 20+ messages in thread
From: Choong Yong Liang @ 2023-09-21 12:19 UTC (permalink / raw)
  To: Rajneesh Bhardwaj, David E Box, Hans de Goede, Mark Gross,
	Jose Abreu, Andrew Lunn, Heiner Kallweit, Russell King,
	David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Marek Behún, Jean Delvare, Guenter Roeck, Giuseppe Cavallaro,
	Alexandre Torgue, Jose Abreu, Maxime Coquelin, Richard Cochran,
	Philipp Zabel, Alexei Starovoitov, Daniel Borkmann,
	Jesper Dangaard Brouer, John Fastabend, Wong Vee Khee, Jon Hunter,
	Jesse Brandeburg, Revanth Kumar Uppala, Shenwei Wang,
	Andrey Konovalov, Jochen Henneberg
  Cc: David E Box, Andrew Halaney, Simon Horman, Bartosz Golaszewski,
	netdev, linux-kernel, linux-stm32, linux-arm-kernel,
	platform-driver-x86, linux-hwmon, bpf, Voon Wei Feng, Tan Tee Min,
	Michael Sit Wei Hong, Lai Peter Jun Ann

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: 
 - 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.

v2 -> v3:
 - Create `pmc_ipc.c` file for `intel_pmc_ipc()` function and 
 allocate the file in `arch/x86/platform/intel/` directory.
 - Update phylink's AN mode during phy interface change and 
 not exposing phylink's AN mode into phylib.

---

Choong Yong Liang (2):
  net: phy: update in-band AN mode when changing interface by PHY driver
  stmmac: intel: Add 1G/2.5G auto-negotiation support for ADL-N

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

Tan, Tee Min (2):
  net: pcs: xpcs: combine C37 SGMII AN and 2500BASEX for Intel mGbE
    controller
  net: stmmac: enable Intel mGbE 1G/2.5G auto-negotiation support

 MAINTAINERS                                   |   2 +
 arch/x86/Kconfig                              |   9 +
 arch/x86/platform/intel/Makefile              |   1 +
 arch/x86/platform/intel/pmc_ipc.c             |  75 +++++++
 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/phylink.c                     |  30 ++-
 include/linux/pcs/pcs-xpcs.h                  |   1 +
 .../linux/platform_data/x86/intel_pmc_ipc.h   |  34 ++++
 include/linux/stmmac.h                        |   1 +
 13 files changed, 493 insertions(+), 17 deletions(-)
 create mode 100644 arch/x86/platform/intel/pmc_ipc.c
 create mode 100644 include/linux/platform_data/x86/intel_pmc_ipc.h

-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2024-02-02  3:08 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-21 12:19 [PATCH net-next v3 0/5] TSN auto negotiation between 1G and 2.5G Choong Yong Liang
2023-09-21 12:19 ` [PATCH net-next v3 1/5] arch: x86: Add IPC mailbox accessor function and add SoC register access Choong Yong Liang
2023-09-22  9:45   ` Simon Horman
2023-09-21 12:19 ` [PATCH net-next v3 2/5] net: pcs: xpcs: combine C37 SGMII AN and 2500BASEX for Intel mGbE controller Choong Yong Liang
2023-09-21 13:06   ` Russell King (Oracle)
2023-09-26 10:51   ` Serge Semin
2024-01-29 13:15     ` Choong Yong Liang
2023-09-21 12:19 ` [PATCH net-next v3 3/5] net: phy: update in-band AN mode when changing interface by PHY driver Choong Yong Liang
2023-09-21 14:04   ` Russell King (Oracle)
2024-01-29 13:18     ` Choong Yong Liang
2023-09-21 12:19 ` [PATCH net-next v3 4/5] net: stmmac: enable Intel mGbE 1G/2.5G auto-negotiation support Choong Yong Liang
2023-09-21 13:28   ` Russell King (Oracle)
2023-09-26 10:55   ` Serge Semin
2024-01-29 13:19     ` Choong Yong Liang
2024-01-29 13:41       ` Andrew Lunn
2024-02-02  3:07         ` Choong Yong Liang
2023-09-21 12:19 ` [PATCH net-next v3 5/5] stmmac: intel: Add 1G/2.5G auto-negotiation support for ADL-N Choong Yong Liang
2023-09-21 13:14 ` [PATCH net-next v3 0/5] TSN auto negotiation between 1G and 2.5G Andrew Lunn
2023-09-21 14:09   ` Russell King (Oracle)
2024-01-29 13:13     ` Choong Yong Liang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).