lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <aKDhFCNwjDDwRKsI@pidgin.makrotopia.org>
Date: Sat, 16 Aug 2025 20:50:44 +0100
From: Daniel Golle <daniel@...rotopia.org>
To: Andrew Lunn <andrew@...n.ch>, Vladimir Oltean <olteanv@...il.com>,
	"David S. Miller" <davem@...emloft.net>,
	Eric Dumazet <edumazet@...gle.com>,
	Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
	Hauke Mehrtens <hauke@...ke-m.de>, Simon Horman <horms@...nel.org>,
	Russell King <linux@...linux.org.uk>,
	Florian Fainelli <f.fainelli@...il.com>,
	Arkadi Sharshevsky <arkadis@...lanox.com>,
	linux-kernel@...r.kernel.org, netdev@...r.kernel.org
Cc: Andreas Schirm <andreas.schirm@...mens.com>,
	Lukas Stockmann <lukas.stockmann@...mens.com>,
	Alexander Sverdlin <alexander.sverdlin@...mens.com>,
	Peter Christen <peter.christen@...mens.com>,
	Avinash Jayaraman <ajayaraman@...linear.com>,
	Bing tao Xu <bxu@...linear.com>, Liang Xu <lxu@...linear.com>,
	Juraj Povazanec <jpovazanec@...linear.com>,
	"Fanni (Fang-Yi) Chan" <fchan@...linear.com>,
	"Benny (Ying-Tsan) Weng" <yweng@...linear.com>,
	"Livia M. Rosu" <lrosu@...linear.com>,
	John Crispin <john@...ozen.org>
Subject: [PATCH RFC net-next 00/23] net: dsa: lantiq_gswip: Add support for
 MaxLinear GSW1xx switch family

This patch series extends the existing lantiq_gswip DSA driver to support
the MaxLinear GSW1xx family of dedicated Ethernet switch ICs. These switches
are based on the same IP as the Lantiq/Intel GSWIP found in VR9 and xRX
MIPS router SoCs, but are connected via MDIO instead of memory-mapped I/O.

The series includes several improvements and refactoring to prepare for the
new hardware support.

The GSW1xx family includes several variants:
- GSW120: 4 ports, 2 PHYs, RGMII & SGMII/2500Base-X
- GSW125: 4 ports, 2 PHYs, RGMII & SGMII/2500Base-X, industrial temperature
- GSW140: 6 ports, 4 PHYs, RGMII & SGMII/2500Base-X  
- GSW141: 6 ports, 4 PHYs, RGMII & SGMII
- GSW145: 6 ports, 4 PHYs, RGMII & SGMII/2500Base-X, industrial temperature

Key features implemented:
- MDIO-based register access using regmap
- Support for SGMII/1000Base-X/2500Base-X SerDes interfaces
- Configurable MII delays via device tree properties
- Energy Efficient Ethernet (EEE) support
- 4096 VLAN support on newer API versions
- Assisted learning on CPU port

This is submitted as RFC to gather feedback on the approach, particularly
regarding the prefered order of things, ie. should I first introduce all
features (some are already supported on GRX3xx), then split into MDIO and
common parts, then add new hardware like I did now, or rather first split
into MDIO and common parts, then add new hardware support and then new
features would follow (maybe even in follow series)?

Basic testing has be carried out on the GSW145 reference board, confirming
everything works as fine as it does on older Lantiq GSWIP hardware.
Brief testing also showed that nothing breaks on Lantiq VR9 (VRX208),
testing on slightly newer Intel GRX330 hardware is going to follow.

As Vladimir Oltean is working on a series of patches improving lantiq_gswip
the first patch of this series is likely to be replaced by his work and can
be ignored for now. I've included it anyway for completeness as that is also
what I have been testing.

Daniel Golle (23):
  net: dsa: lantiq_gswip: honor dsa_db passed to port_fdb_{add,del}
  net: dsa: lantiq_gswip: deduplicate dsa_switch_ops
  net: dsa: lantiq_gswip: prepare for more CPU port options
  net: dsa: lantiq_gswip: move definitions to header
  net: dsa: lantiq_gswip: introduce bitmaps for port types
  net: dsa: lantiq_gswip: load model-specific microcode
  net: dsa: lantiq_gswip: make DSA tag protocol model-specific
  net: dsa: lantiq_gswip: store switch API version in priv
  net: dsa: lantiq_gswip: add support for SWAPI version 2.3
  net: dsa: lantiq_gswip: support enable/disable learning
  net: dsa: lantiq_gswip: support Energy Efficient Ethernet
  net: dsa: lantiq_gswip: support 4k VLANs on API 2.2 or later
  net: dsa: lantiq_gswip: support model-specific mac_select_pcs()
  net: dsa: lantiq_gswip: support GSW1xx offset of MII register
  net: dsa: lantiq_gswip: allow adjusting MII delays
  net: dsa: lantiq_gswip: support standard MDIO node name
  net: dsa: lantiq_gswip: move MDIO bus registration to .setup()
  net: dsa: lantiq_gswip: convert to use regmap
  net: dsa: lantiq_gswip: split into common and MMIO parts
  net: dsa: lantiq_gswip: add registers specific for MaxLinear GSW1xx
  net: dsa: add tagging driver for MaxLinear GSW1xx switch family
  net: dsa: add driver for MaxLinear GSW1xx switch family
  net: dsa: lantiq_gswip: ignore SerDes modes in phylink_mac_config()

 drivers/net/dsa/Kconfig               |   17 +
 drivers/net/dsa/Makefile              |    2 +
 drivers/net/dsa/lantiq_gswip.c        | 1933 ++-----------------------
 drivers/net/dsa/lantiq_gswip.h        |  408 ++++++
 drivers/net/dsa/lantiq_gswip_common.c | 1778 +++++++++++++++++++++++
 drivers/net/dsa/lantiq_pce.h          |    9 +-
 drivers/net/dsa/mxl-gsw1xx.c          |  710 +++++++++
 drivers/net/dsa/mxl-gsw1xx_pce.h      |  160 ++
 include/net/dsa.h                     |    2 +
 net/dsa/Kconfig                       |    8 +
 net/dsa/Makefile                      |    1 +
 net/dsa/tag_mxl-gsw1xx.c              |  141 ++
 12 files changed, 3331 insertions(+), 1838 deletions(-)
 create mode 100644 drivers/net/dsa/lantiq_gswip.h
 create mode 100644 drivers/net/dsa/lantiq_gswip_common.c
 create mode 100644 drivers/net/dsa/mxl-gsw1xx.c
 create mode 100644 drivers/net/dsa/mxl-gsw1xx_pce.h
 create mode 100644 net/dsa/tag_mxl-gsw1xx.c

-- 
2.50.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ