* [RFC net-next PATCH 00/13] Add PCS core support
@ 2025-04-03 18:18 Sean Anderson
2025-04-03 18:18 ` [RFC net-next PATCH 01/13] dt-bindings: net: Add binding for Xilinx PCS Sean Anderson
` (4 more replies)
0 siblings, 5 replies; 21+ messages in thread
From: Sean Anderson @ 2025-04-03 18:18 UTC (permalink / raw)
To: netdev, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Russell King
Cc: linux-kernel, Christian Marangi, upstream, Heiner Kallweit,
Sean Anderson, Alexandre Belloni, Alexandre Torgue,
Christophe Leroy, Clark Wang, Claudiu Beznea, Claudiu Manoil,
Conor Dooley, Ioana Ciornei, Jonathan Corbet, Joyce Ooi,
Krzysztof Kozlowski, Krzysztof Kozlowski, Li Yang, Madalin Bucur,
Madhavan Srinivasan, Maxime Coquelin, Michael Ellerman,
Michal Simek, Naveen N Rao, Nicholas Piggin, Nicolas Ferre,
Radhey Shyam Pandey, Rob Herring, Rob Herring, Robert Hancock,
Saravana Kannan, Shawn Guo, UNGLinuxDriver, Vladimir Oltean,
Wei Fang, devicetree, imx, linux-arm-kernel, linux-doc,
linux-stm32, linuxppc-dev
This series adds support for creating PCSs as devices on a bus with a
driver (patch 3). As initial users,
- The Lynx PCS (and all of its users) is converted to this system (patch 5)
- The Xilinx PCS is broken out from the AXI Ethernet driver (patches 6-8)
- The Cadence MACB driver is converted to support external PCSs (namely
the Xilinx PCS) (patches 9-10).
The last few patches add device links for pcs-handle to improve boot times,
and add compatibles for all Lynx PCSs.
Care has been taken to ensure backwards-compatibility. The main source
of this is that many PCS devices lack compatibles and get detected as
PHYs. To address this, pcs_get_by_fwnode_compat allows drivers to edit
the devicetree to add appropriate compatibles.
This is technically a v3 (with [1,2] being v1 and v2, respectively), but
there have been so many architectural changes that I didn't bother
maintaining the series changelog. I think it is best to review this
series independently of its past iterations. I submitted this as an RFC
since net-next is closed, but I believe this series is fully tested and
ready to be applied.
[1] https://lore.kernel.org/netdev/20211004191527.1610759-1-sean.anderson@seco.com/
[2] https://lore.kernel.org/netdev/20221103210650.2325784-1-sean.anderson@seco.com/
Sean Anderson (12):
dt-bindings: net: Add binding for Xilinx PCS
net: phylink: Support setting PCS link change callbacks
net: pcs: Add subsystem
net: pcs: lynx: Convert to an MDIO driver
net: phy: Export some functions
net: pcs: Add Xilinx PCS driver
net: axienet: Convert to use PCS subsystem
net: macb: Move most of mac_config to mac_prepare
net: macb: Support external PCSs
of: property: Add device link support for PCS
arm64: dts: Add compatible strings for Lynx PCSs
powerpc: dts: Add compatible strings for Lynx PCSs
Vladimir Oltean (1):
net: dsa: ocelot: suppress PHY device scanning on the internal MDIO
bus
.../devicetree/bindings/net/xilinx,pcs.yaml | 129 ++++
Documentation/networking/index.rst | 1 +
Documentation/networking/kapi.rst | 4 +
Documentation/networking/pcs.rst | 99 +++
MAINTAINERS | 8 +
.../arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 48 +-
.../arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 54 +-
.../dts/freescale/qoriq-fman3-0-10g-0.dtsi | 3 +-
.../dts/freescale/qoriq-fman3-0-10g-1.dtsi | 3 +-
.../dts/freescale/qoriq-fman3-0-1g-0.dtsi | 3 +-
.../dts/freescale/qoriq-fman3-0-1g-1.dtsi | 3 +-
.../dts/freescale/qoriq-fman3-0-1g-2.dtsi | 3 +-
.../dts/freescale/qoriq-fman3-0-1g-3.dtsi | 3 +-
.../dts/freescale/qoriq-fman3-0-1g-4.dtsi | 3 +-
.../dts/freescale/qoriq-fman3-0-1g-5.dtsi | 3 +-
.../fsl/qoriq-fman3-0-10g-0-best-effort.dtsi | 3 +-
.../boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi | 3 +-
.../fsl/qoriq-fman3-0-10g-1-best-effort.dtsi | 3 +-
.../boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi | 3 +-
.../boot/dts/fsl/qoriq-fman3-0-10g-2.dtsi | 3 +-
.../boot/dts/fsl/qoriq-fman3-0-10g-3.dtsi | 3 +-
.../boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi | 3 +-
.../boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi | 3 +-
.../boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi | 3 +-
.../boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi | 3 +-
.../boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi | 3 +-
.../boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi | 3 +-
.../boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi | 3 +-
.../boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi | 3 +-
.../boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi | 3 +-
.../boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi | 3 +-
.../boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi | 3 +-
.../boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi | 3 +-
.../boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi | 3 +-
.../boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi | 3 +-
drivers/net/dsa/ocelot/Kconfig | 4 +
drivers/net/dsa/ocelot/felix_vsc9959.c | 15 +-
drivers/net/dsa/ocelot/seville_vsc9953.c | 16 +-
drivers/net/ethernet/altera/Kconfig | 2 +
drivers/net/ethernet/altera/altera_tse_main.c | 7 +-
drivers/net/ethernet/cadence/macb.h | 1 +
drivers/net/ethernet/cadence/macb_main.c | 229 ++++--
drivers/net/ethernet/freescale/dpaa/Kconfig | 2 +-
drivers/net/ethernet/freescale/dpaa2/Kconfig | 3 +
.../net/ethernet/freescale/dpaa2/dpaa2-mac.c | 11 +-
drivers/net/ethernet/freescale/enetc/Kconfig | 2 +
.../net/ethernet/freescale/enetc/enetc_pf.c | 8 +-
.../net/ethernet/freescale/enetc/enetc_pf.h | 1 -
.../freescale/enetc/enetc_pf_common.c | 4 +-
drivers/net/ethernet/freescale/fman/Kconfig | 4 +-
.../net/ethernet/freescale/fman/fman_memac.c | 27 +-
drivers/net/ethernet/stmicro/stmmac/Kconfig | 3 +
.../ethernet/stmicro/stmmac/dwmac-socfpga.c | 6 +-
drivers/net/ethernet/xilinx/Kconfig | 1 +
drivers/net/ethernet/xilinx/xilinx_axienet.h | 4 +-
.../net/ethernet/xilinx/xilinx_axienet_main.c | 104 +--
drivers/net/pcs/Kconfig | 51 +-
drivers/net/pcs/Makefile | 4 +
drivers/net/pcs/core.c | 701 ++++++++++++++++++
drivers/net/pcs/pcs-lynx.c | 115 +--
drivers/net/pcs/pcs-xilinx.c | 481 ++++++++++++
drivers/net/phy/mdio_device.c | 1 +
drivers/net/phy/phy_device.c | 3 +-
drivers/net/phy/phylink.c | 24 +-
drivers/of/property.c | 2 +
include/linux/pcs-lynx.h | 13 +-
include/linux/pcs-xilinx.h | 36 +
include/linux/pcs.h | 122 +++
include/linux/phy.h | 1 +
include/linux/phylink.h | 27 +-
70 files changed, 2104 insertions(+), 358 deletions(-)
create mode 100644 Documentation/devicetree/bindings/net/xilinx,pcs.yaml
create mode 100644 Documentation/networking/pcs.rst
create mode 100644 drivers/net/pcs/core.c
create mode 100644 drivers/net/pcs/pcs-xilinx.c
create mode 100644 include/linux/pcs-xilinx.h
create mode 100644 include/linux/pcs.h
--
2.35.1.1320.gc452695387.dirty
^ permalink raw reply [flat|nested] 21+ messages in thread
* [RFC net-next PATCH 01/13] dt-bindings: net: Add binding for Xilinx PCS
2025-04-03 18:18 [RFC net-next PATCH 00/13] Add PCS core support Sean Anderson
@ 2025-04-03 18:18 ` Sean Anderson
2025-04-04 10:37 ` Krzysztof Kozlowski
2025-04-03 18:27 ` [RFC net-next PATCH 11/13] of: property: Add device link support for PCS Sean Anderson
` (3 subsequent siblings)
4 siblings, 1 reply; 21+ messages in thread
From: Sean Anderson @ 2025-04-03 18:18 UTC (permalink / raw)
To: netdev, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Russell King
Cc: linux-kernel, Christian Marangi, upstream, Heiner Kallweit,
Sean Anderson, Conor Dooley, Krzysztof Kozlowski, Michal Simek,
Radhey Shyam Pandey, Rob Herring, Robert Hancock, devicetree
This adds a binding for the Xilinx 1G/2.5G Ethernet PCS/PMA or SGMII
LogiCORE IP. This device is a soft device typically used to adapt
between GMII and SGMII or 1000BASE-X (possbilty in combination with a
serdes). pcs-modes reflects the modes available with the as configured
when the device is synthesized. Multiple modes may be specified if
dynamic reconfiguration is supported.
One PCS may contain "shared logic in core" which can be connected to
other PCSs with "shared logic in example design." This primarily refers
to clocking resources, allowing a reference clock to be shared by a bank
of PCSs. To support this, if #clock-cells is defined then the PCS will
register itself as a clock provider for other PCSs.
Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
---
.../devicetree/bindings/net/xilinx,pcs.yaml | 129 ++++++++++++++++++
1 file changed, 129 insertions(+)
create mode 100644 Documentation/devicetree/bindings/net/xilinx,pcs.yaml
diff --git a/Documentation/devicetree/bindings/net/xilinx,pcs.yaml b/Documentation/devicetree/bindings/net/xilinx,pcs.yaml
new file mode 100644
index 000000000000..56a3ce0c4ef0
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/xilinx,pcs.yaml
@@ -0,0 +1,129 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/xilinx,pcs.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Xilinx 1G/2.5G Ethernet PCS/PMA or SGMII LogiCORE IP
+
+maintainers:
+ - Sean Anderson <sean.anderson@seco.com>
+
+description:
+ This is a soft device which implements the PCS and (depending on
+ configuration) PMA layers of an IEEE Ethernet PHY. On the MAC side, it
+ implements GMII. It may have an attached SERDES (internal or external), or
+ may directly use LVDS IO resources. Depending on the configuration, it may
+ implement 1000BASE-X, SGMII, 2500BASE-X, or 2.5G SGMII.
+
+ This device has a notion of "shared logic" such as reset and clocking
+ resources which must be shared between multiple PCSs using the same I/O
+ banks. Each PCS can be configured to have the shared logic in the "core"
+ (instantiated internally and made available to other PCSs) or in the "example
+ design" (provided by another PCS). PCSs with shared logic in the core are
+ reset controllers, and generally provide several resets for other PCSs in the
+ same bank.
+
+allOf:
+ - $ref: ethernet-controller.yaml#
+
+properties:
+ compatible:
+ contains:
+ const: xilinx,pcs-16.2
+
+ reg:
+ maxItems: 1
+
+ "#clock-cells":
+ const: 0
+ description:
+ Register a clock representing the clocking resources shared with other
+ PCSs.
+
+ clocks:
+ items:
+ - description:
+ The reference clock for the PCS. Depending on your setup, this may be
+ the gtrefclk, refclk, clk125m signal, or clocks from another PCS.
+
+ clock-names:
+ const: refclk
+
+ done-gpios:
+ maxItems: 1
+ description:
+ GPIO connected to the reset-done output, if present.
+
+ interrupts:
+ items:
+ - description:
+ The an_interrupt autonegotiation-complete interrupt.
+
+ interrupt-names:
+ const: an
+
+ pcs-modes:
+ description:
+ The interfaces that the PCS supports.
+ oneOf:
+ - const: sgmii
+ - const: 1000base-x
+ - const: 2500base-x
+ - items:
+ - const: sgmii
+ - const: 1000base-x
+
+ reset-gpios:
+ maxItems: 1
+ description:
+ GPIO connected to the reset input.
+
+required:
+ - compatible
+ - reg
+ - pcs-modes
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pcs0: ethernet-pcs@0 {
+ #clock-cells = <0>;
+ compatible = "xlnx,pcs-16.2";
+ reg = <0>;
+ clocks = <&si570>;
+ clock-names = "refclk";
+ interrupts-extended = <&gic GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "an";
+ reset-gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
+ done-gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
+ pcs-modes = "sgmii", "1000base-x";
+ };
+
+ pcs1: ethernet-pcs@1 {
+ compatible = "xlnx,pcs-16.2";
+ reg = <1>;
+ clocks = <&pcs0>;
+ clock-names = "refclk";
+ interrupts-extended = <&gic GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "an";
+ reset-gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
+ done-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
+ pcs-modes = "sgmii", "1000base-x";
+ };
+
+ pcs2: ethernet-pcs@2 {
+ compatible = "xlnx,pcs-16.2";
+ reg = <2>;
+ pcs-modes = "sgmii";
+ };
+ };
--
2.35.1.1320.gc452695387.dirty
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [RFC net-next PATCH 11/13] of: property: Add device link support for PCS
2025-04-03 18:18 [RFC net-next PATCH 00/13] Add PCS core support Sean Anderson
2025-04-03 18:18 ` [RFC net-next PATCH 01/13] dt-bindings: net: Add binding for Xilinx PCS Sean Anderson
@ 2025-04-03 18:27 ` Sean Anderson
2025-04-03 18:32 ` Saravana Kannan
2025-04-03 18:28 ` [RFC net-next PATCH 12/13] arm64: dts: Add compatible strings for Lynx PCSs Sean Anderson
` (2 subsequent siblings)
4 siblings, 1 reply; 21+ messages in thread
From: Sean Anderson @ 2025-04-03 18:27 UTC (permalink / raw)
To: netdev, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Russell King
Cc: Christian Marangi, Heiner Kallweit, linux-kernel, upstream,
Rob Herring, Saravana Kannan, devicetree, Sean Anderson
This adds device link support for PCS devices, providing
better probe ordering.
Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
---
drivers/of/property.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/of/property.c b/drivers/of/property.c
index c1feb631e383..f3e0c390ddba 100644
--- a/drivers/of/property.c
+++ b/drivers/of/property.c
@@ -1379,6 +1379,7 @@ DEFINE_SIMPLE_PROP(pses, "pses", "#pse-cells")
DEFINE_SIMPLE_PROP(power_supplies, "power-supplies", NULL)
DEFINE_SUFFIX_PROP(regulators, "-supply", NULL)
DEFINE_SUFFIX_PROP(gpio, "-gpio", "#gpio-cells")
+DEFINE_SIMPLE_PROP(pcs_handle, "pcs-handle", NULL)
static struct device_node *parse_gpios(struct device_node *np,
const char *prop_name, int index)
@@ -1535,6 +1536,7 @@ static const struct supplier_bindings of_supplier_bindings[] = {
.parse_prop = parse_post_init_providers,
.fwlink_flags = FWLINK_FLAG_IGNORE,
},
+ { .parse_prop = parse_pcs_handle, },
{}
};
--
2.35.1.1320.gc452695387.dirty
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [RFC net-next PATCH 12/13] arm64: dts: Add compatible strings for Lynx PCSs
2025-04-03 18:18 [RFC net-next PATCH 00/13] Add PCS core support Sean Anderson
2025-04-03 18:18 ` [RFC net-next PATCH 01/13] dt-bindings: net: Add binding for Xilinx PCS Sean Anderson
2025-04-03 18:27 ` [RFC net-next PATCH 11/13] of: property: Add device link support for PCS Sean Anderson
@ 2025-04-03 18:28 ` Sean Anderson
2025-04-03 18:30 ` [RFC net-next PATCH 13/13] powerpc: " Sean Anderson
2025-04-07 16:27 ` [RFC net-next PATCH 00/13] Add PCS core support Kory Maincent
4 siblings, 0 replies; 21+ messages in thread
From: Sean Anderson @ 2025-04-03 18:28 UTC (permalink / raw)
To: netdev, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Russell King
Cc: Christian Marangi, Heiner Kallweit, linux-kernel, upstream,
Conor Dooley, Krzysztof Kozlowski, Rob Herring, Shawn Guo,
devicetree, linux-arm-kernel, Sean Anderson
This adds appropriate compatible strings for Lynx PCSs on arm64 QorIQ
platforms. This also changes the node name to avoid warnings from
ethernet-phy.yaml.
Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
---
.../arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 48 +++++++++++------
.../arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 54 ++++++++++++-------
.../dts/freescale/qoriq-fman3-0-10g-0.dtsi | 3 +-
.../dts/freescale/qoriq-fman3-0-10g-1.dtsi | 3 +-
.../dts/freescale/qoriq-fman3-0-1g-0.dtsi | 3 +-
.../dts/freescale/qoriq-fman3-0-1g-1.dtsi | 3 +-
.../dts/freescale/qoriq-fman3-0-1g-2.dtsi | 3 +-
.../dts/freescale/qoriq-fman3-0-1g-3.dtsi | 3 +-
.../dts/freescale/qoriq-fman3-0-1g-4.dtsi | 3 +-
.../dts/freescale/qoriq-fman3-0-1g-5.dtsi | 3 +-
10 files changed, 84 insertions(+), 42 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
index 9421fdd7e30e..90c1631c958e 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
@@ -554,7 +554,8 @@ pcs_mdio1: mdio@8c07000 {
#size-cells = <0>;
status = "disabled";
- pcs1: ethernet-phy@0 {
+ pcs1: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -567,7 +568,8 @@ pcs_mdio2: mdio@8c0b000 {
#size-cells = <0>;
status = "disabled";
- pcs2: ethernet-phy@0 {
+ pcs2: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -580,7 +582,8 @@ pcs_mdio3: mdio@8c0f000 {
#size-cells = <0>;
status = "disabled";
- pcs3: ethernet-phy@0 {
+ pcs3: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -593,7 +596,8 @@ pcs_mdio4: mdio@8c13000 {
#size-cells = <0>;
status = "disabled";
- pcs4: ethernet-phy@0 {
+ pcs4: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -606,7 +610,8 @@ pcs_mdio5: mdio@8c17000 {
#size-cells = <0>;
status = "disabled";
- pcs5: ethernet-phy@0 {
+ pcs5: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -619,7 +624,8 @@ pcs_mdio6: mdio@8c1b000 {
#size-cells = <0>;
status = "disabled";
- pcs6: ethernet-phy@0 {
+ pcs6: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -632,7 +638,8 @@ pcs_mdio7: mdio@8c1f000 {
#size-cells = <0>;
status = "disabled";
- pcs7: ethernet-phy@0 {
+ pcs7: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -645,7 +652,8 @@ pcs_mdio8: mdio@8c23000 {
#size-cells = <0>;
status = "disabled";
- pcs8: ethernet-phy@0 {
+ pcs8: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -658,7 +666,8 @@ pcs_mdio9: mdio@8c27000 {
#size-cells = <0>;
status = "disabled";
- pcs9: ethernet-phy@0 {
+ pcs9: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -671,7 +680,8 @@ pcs_mdio10: mdio@8c2b000 {
#size-cells = <0>;
status = "disabled";
- pcs10: ethernet-phy@0 {
+ pcs10: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -684,7 +694,8 @@ pcs_mdio11: mdio@8c2f000 {
#size-cells = <0>;
status = "disabled";
- pcs11: ethernet-phy@0 {
+ pcs11: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -697,7 +708,8 @@ pcs_mdio12: mdio@8c33000 {
#size-cells = <0>;
status = "disabled";
- pcs12: ethernet-phy@0 {
+ pcs12: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -710,7 +722,8 @@ pcs_mdio13: mdio@8c37000 {
#size-cells = <0>;
status = "disabled";
- pcs13: ethernet-phy@0 {
+ pcs13: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -723,7 +736,8 @@ pcs_mdio14: mdio@8c3b000 {
#size-cells = <0>;
status = "disabled";
- pcs14: ethernet-phy@0 {
+ pcs14: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -736,7 +750,8 @@ pcs_mdio15: mdio@8c3f000 {
#size-cells = <0>;
status = "disabled";
- pcs15: ethernet-phy@0 {
+ pcs15: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -749,7 +764,8 @@ pcs_mdio16: mdio@8c43000 {
#size-cells = <0>;
status = "disabled";
- pcs16: ethernet-phy@0 {
+ pcs16: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
index c9541403bcd8..f35da67b6e61 100644
--- a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
@@ -1474,7 +1474,8 @@ pcs_mdio1: mdio@8c07000 {
#size-cells = <0>;
status = "disabled";
- pcs1: ethernet-phy@0 {
+ pcs1: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -1487,7 +1488,8 @@ pcs_mdio2: mdio@8c0b000 {
#size-cells = <0>;
status = "disabled";
- pcs2: ethernet-phy@0 {
+ pcs2: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -1500,7 +1502,8 @@ pcs_mdio3: mdio@8c0f000 {
#size-cells = <0>;
status = "disabled";
- pcs3: ethernet-phy@0 {
+ pcs3: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -1513,7 +1516,8 @@ pcs_mdio4: mdio@8c13000 {
#size-cells = <0>;
status = "disabled";
- pcs4: ethernet-phy@0 {
+ pcs4: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -1526,7 +1530,8 @@ pcs_mdio5: mdio@8c17000 {
#size-cells = <0>;
status = "disabled";
- pcs5: ethernet-phy@0 {
+ pcs5: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -1539,7 +1544,8 @@ pcs_mdio6: mdio@8c1b000 {
#size-cells = <0>;
status = "disabled";
- pcs6: ethernet-phy@0 {
+ pcs6: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -1552,7 +1558,8 @@ pcs_mdio7: mdio@8c1f000 {
#size-cells = <0>;
status = "disabled";
- pcs7: ethernet-phy@0 {
+ pcs7: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -1565,7 +1572,8 @@ pcs_mdio8: mdio@8c23000 {
#size-cells = <0>;
status = "disabled";
- pcs8: ethernet-phy@0 {
+ pcs8: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -1578,7 +1586,8 @@ pcs_mdio9: mdio@8c27000 {
#size-cells = <0>;
status = "disabled";
- pcs9: ethernet-phy@0 {
+ pcs9: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -1591,7 +1600,8 @@ pcs_mdio10: mdio@8c2b000 {
#size-cells = <0>;
status = "disabled";
- pcs10: ethernet-phy@0 {
+ pcs10: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -1604,7 +1614,8 @@ pcs_mdio11: mdio@8c2f000 {
#size-cells = <0>;
status = "disabled";
- pcs11: ethernet-phy@0 {
+ pcs11: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -1617,7 +1628,8 @@ pcs_mdio12: mdio@8c33000 {
#size-cells = <0>;
status = "disabled";
- pcs12: ethernet-phy@0 {
+ pcs12: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -1630,7 +1642,8 @@ pcs_mdio13: mdio@8c37000 {
#size-cells = <0>;
status = "disabled";
- pcs13: ethernet-phy@0 {
+ pcs13: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -1643,7 +1656,8 @@ pcs_mdio14: mdio@8c3b000 {
#size-cells = <0>;
status = "disabled";
- pcs14: ethernet-phy@0 {
+ pcs14: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -1656,7 +1670,8 @@ pcs_mdio15: mdio@8c3f000 {
#size-cells = <0>;
status = "disabled";
- pcs15: ethernet-phy@0 {
+ pcs15: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -1669,7 +1684,8 @@ pcs_mdio16: mdio@8c43000 {
#size-cells = <0>;
status = "disabled";
- pcs16: ethernet-phy@0 {
+ pcs16: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -1682,7 +1698,8 @@ pcs_mdio17: mdio@8c47000 {
#size-cells = <0>;
status = "disabled";
- pcs17: ethernet-phy@0 {
+ pcs17: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
@@ -1695,7 +1712,8 @@ pcs_mdio18: mdio@8c4b000 {
#size-cells = <0>;
status = "disabled";
- pcs18: ethernet-phy@0 {
+ pcs18: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0>;
};
};
diff --git a/arch/arm64/boot/dts/freescale/qoriq-fman3-0-10g-0.dtsi b/arch/arm64/boot/dts/freescale/qoriq-fman3-0-10g-0.dtsi
index 1b2b20c6126d..e11c6ddab457 100644
--- a/arch/arm64/boot/dts/freescale/qoriq-fman3-0-10g-0.dtsi
+++ b/arch/arm64/boot/dts/freescale/qoriq-fman3-0-10g-0.dtsi
@@ -36,7 +36,8 @@ mdio@f1000 {
compatible = "fsl,fman-memac-mdio";
reg = <0xf1000 0x1000>;
- pcsphy6: ethernet-phy@0 {
+ pcsphy6: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/arm64/boot/dts/freescale/qoriq-fman3-0-10g-1.dtsi b/arch/arm64/boot/dts/freescale/qoriq-fman3-0-10g-1.dtsi
index 55d78f6f7c6c..c8b7f2c61a8f 100644
--- a/arch/arm64/boot/dts/freescale/qoriq-fman3-0-10g-1.dtsi
+++ b/arch/arm64/boot/dts/freescale/qoriq-fman3-0-10g-1.dtsi
@@ -36,7 +36,8 @@ mdio@f3000 {
compatible = "fsl,fman-memac-mdio";
reg = <0xf3000 0x1000>;
- pcsphy7: ethernet-phy@0 {
+ pcsphy7: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-0.dtsi b/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-0.dtsi
index 18916a860c2e..1a4bcb38646e 100644
--- a/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-0.dtsi
+++ b/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-0.dtsi
@@ -35,7 +35,8 @@ mdio@e1000 {
compatible = "fsl,fman-memac-mdio";
reg = <0xe1000 0x1000>;
- pcsphy0: ethernet-phy@0 {
+ pcsphy0: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-1.dtsi b/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-1.dtsi
index e90af445a293..6a4d55f9d045 100644
--- a/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-1.dtsi
+++ b/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-1.dtsi
@@ -35,7 +35,8 @@ mdio@e3000 {
compatible = "fsl,fman-memac-mdio";
reg = <0xe3000 0x1000>;
- pcsphy1: ethernet-phy@0 {
+ pcsphy1: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-2.dtsi b/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-2.dtsi
index fec93905bc81..0de30065aa3b 100644
--- a/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-2.dtsi
+++ b/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-2.dtsi
@@ -35,7 +35,8 @@ mdio@e5000 {
compatible = "fsl,fman-memac-mdio";
reg = <0xe5000 0x1000>;
- pcsphy2: ethernet-phy@0 {
+ pcsphy2: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-3.dtsi b/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-3.dtsi
index 2aa953faa62b..2f8064b1039f 100644
--- a/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-3.dtsi
+++ b/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-3.dtsi
@@ -35,7 +35,8 @@ mdio@e7000 {
compatible = "fsl,fman-memac-mdio";
reg = <0xe7000 0x1000>;
- pcsphy3: ethernet-phy@0 {
+ pcsphy3: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-4.dtsi b/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-4.dtsi
index 948e39411415..6246f1fdac2d 100644
--- a/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-4.dtsi
+++ b/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-4.dtsi
@@ -35,7 +35,8 @@ mdio@e9000 {
compatible = "fsl,fman-memac-mdio";
reg = <0xe9000 0x1000>;
- pcsphy4: ethernet-phy@0 {
+ pcsphy4: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-5.dtsi b/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-5.dtsi
index 01b78c0463a7..c205e1e8bfc8 100644
--- a/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-5.dtsi
+++ b/arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-5.dtsi
@@ -34,7 +34,8 @@ mdio@eb000 {
compatible = "fsl,fman-memac-mdio";
reg = <0xeb000 0x1000>;
- pcsphy5: ethernet-phy@0 {
+ pcsphy5: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
--
2.35.1.1320.gc452695387.dirty
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [RFC net-next PATCH 13/13] powerpc: dts: Add compatible strings for Lynx PCSs
2025-04-03 18:18 [RFC net-next PATCH 00/13] Add PCS core support Sean Anderson
` (2 preceding siblings ...)
2025-04-03 18:28 ` [RFC net-next PATCH 12/13] arm64: dts: Add compatible strings for Lynx PCSs Sean Anderson
@ 2025-04-03 18:30 ` Sean Anderson
2025-04-07 16:27 ` [RFC net-next PATCH 00/13] Add PCS core support Kory Maincent
4 siblings, 0 replies; 21+ messages in thread
From: Sean Anderson @ 2025-04-03 18:30 UTC (permalink / raw)
To: netdev, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Russell King
Cc: Christian Marangi, Heiner Kallweit, linux-kernel, upstream,
Conor Dooley, Krzysztof Kozlowski, Rob Herring, devicetree,
Christophe Leroy, Madhavan Srinivasan, Michael Ellerman,
Naveen N Rao, Nicholas Piggin, linuxppc-dev, Sean Anderson
This adds appropriate compatible strings for Lynx PCSs on PowerPC QorIQ
platforms. This also changes the node name to avoid warnings from
ethernet-phy.yaml.
Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
---
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-2.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-3.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi | 3 ++-
20 files changed, 40 insertions(+), 20 deletions(-)
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi
index 7e70977f282a..61d52044e7b4 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0-best-effort.dtsi
@@ -66,7 +66,8 @@ mdio@e1000 {
reg = <0xe1000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy0: ethernet-phy@0 {
+ pcsphy0: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi
index 5f89f7c1761f..78d6e49655f4 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-0.dtsi
@@ -70,7 +70,8 @@ mdio@f1000 {
reg = <0xf1000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy6: ethernet-phy@0 {
+ pcsphy6: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi
index 71eb75e82c2e..5ffd1c2efaee 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1-best-effort.dtsi
@@ -73,7 +73,8 @@ mdio@e3000 {
reg = <0xe3000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy1: ethernet-phy@0 {
+ pcsphy1: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi
index fb7032ddb7fc..e0325f09ce5f 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-1.dtsi
@@ -70,7 +70,8 @@ mdio@f3000 {
reg = <0xf3000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy7: ethernet-phy@0 {
+ pcsphy7: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-2.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-2.dtsi
index 6b3609574b0f..8e6f6c5f0f2e 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-2.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-2.dtsi
@@ -38,7 +38,8 @@ mdio@e1000 {
reg = <0xe1000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy0: ethernet-phy@0 {
+ pcsphy0: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-3.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-3.dtsi
index 28ed1a85a436..2cd3f0688cb1 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-3.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-10g-3.dtsi
@@ -38,7 +38,8 @@ mdio@e3000 {
reg = <0xe3000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy1: ethernet-phy@0 {
+ pcsphy1: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi
index 1089d6861bfb..9f8c38a629cb 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-0.dtsi
@@ -62,7 +62,8 @@ mdio@e1000 {
reg = <0xe1000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy0: ethernet-phy@0 {
+ pcsphy0: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi
index a95bbb4fc827..248a57129d40 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-1.dtsi
@@ -69,7 +69,8 @@ mdio@e3000 {
reg = <0xe3000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy1: ethernet-phy@0 {
+ pcsphy1: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi
index 7d5af0147a25..73cef28db890 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-2.dtsi
@@ -69,7 +69,8 @@ mdio@e5000 {
reg = <0xe5000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy2: ethernet-phy@0 {
+ pcsphy2: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi
index 61e5466ec854..4657b6a8fb78 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-3.dtsi
@@ -69,7 +69,8 @@ mdio@e7000 {
reg = <0xe7000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy3: ethernet-phy@0 {
+ pcsphy3: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi
index 3ba0cdafc069..ac322e5803c2 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-4.dtsi
@@ -62,7 +62,8 @@ mdio@e9000 {
reg = <0xe9000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy4: ethernet-phy@0 {
+ pcsphy4: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi
index 51748de0a289..68ffa2c65e03 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-0-1g-5.dtsi
@@ -69,7 +69,8 @@ mdio@eb000 {
reg = <0xeb000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy5: ethernet-phy@0 {
+ pcsphy5: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi
index ee4f5170f632..caf28fcbd55c 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-0.dtsi
@@ -70,7 +70,8 @@ mdio@f1000 {
reg = <0xf1000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy14: ethernet-phy@0 {
+ pcsphy14: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi
index 83d2e0ce8f7b..6128b9fb5381 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-10g-1.dtsi
@@ -70,7 +70,8 @@ mdio@f3000 {
reg = <0xf3000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy15: ethernet-phy@0 {
+ pcsphy15: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi
index 3132fc73f133..a7dffe6bbe5b 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-0.dtsi
@@ -62,7 +62,8 @@ mdio@e1000 {
reg = <0xe1000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy8: ethernet-phy@0 {
+ pcsphy8: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi
index 75e904d96602..d0ad92f2ca2d 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-1.dtsi
@@ -69,7 +69,8 @@ mdio@e3000 {
reg = <0xe3000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy9: ethernet-phy@0 {
+ pcsphy9: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi
index 69f2cc7b8f19..b4b893eead2a 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-2.dtsi
@@ -69,7 +69,8 @@ mdio@e5000 {
reg = <0xe5000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy10: ethernet-phy@0 {
+ pcsphy10: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi
index b3aaf01d7da0..6c15a6ff0926 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-3.dtsi
@@ -69,7 +69,8 @@ mdio@e7000 {
reg = <0xe7000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy11: ethernet-phy@0 {
+ pcsphy11: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi
index 18e020432807..14fa4d067ffd 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-4.dtsi
@@ -62,7 +62,8 @@ mdio@e9000 {
reg = <0xe9000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy12: ethernet-phy@0 {
+ pcsphy12: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
diff --git a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi
index 55f329d13f19..64737187a577 100644
--- a/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi
+++ b/arch/powerpc/boot/dts/fsl/qoriq-fman3-1-1g-5.dtsi
@@ -69,7 +69,8 @@ mdio@eb000 {
reg = <0xeb000 0x1000>;
fsl,erratum-a011043; /* must ignore read errors */
- pcsphy13: ethernet-phy@0 {
+ pcsphy13: ethernet-pcs@0 {
+ compatible = "fsl,lynx-pcs";
reg = <0x0>;
};
};
--
2.35.1.1320.gc452695387.dirty
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [RFC net-next PATCH 11/13] of: property: Add device link support for PCS
2025-04-03 18:27 ` [RFC net-next PATCH 11/13] of: property: Add device link support for PCS Sean Anderson
@ 2025-04-03 18:32 ` Saravana Kannan
2025-04-03 19:04 ` Sean Anderson
0 siblings, 1 reply; 21+ messages in thread
From: Saravana Kannan @ 2025-04-03 18:32 UTC (permalink / raw)
To: Sean Anderson
Cc: netdev, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Russell King, Christian Marangi,
Heiner Kallweit, linux-kernel, upstream, Rob Herring, devicetree
On Thu, Apr 3, 2025 at 11:28 AM Sean Anderson <sean.anderson@linux.dev> wrote:
>
> This adds device link support for PCS devices, providing
> better probe ordering.
>
> Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
> ---
>
> drivers/of/property.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/of/property.c b/drivers/of/property.c
> index c1feb631e383..f3e0c390ddba 100644
> --- a/drivers/of/property.c
> +++ b/drivers/of/property.c
> @@ -1379,6 +1379,7 @@ DEFINE_SIMPLE_PROP(pses, "pses", "#pse-cells")
> DEFINE_SIMPLE_PROP(power_supplies, "power-supplies", NULL)
> DEFINE_SUFFIX_PROP(regulators, "-supply", NULL)
> DEFINE_SUFFIX_PROP(gpio, "-gpio", "#gpio-cells")
> +DEFINE_SIMPLE_PROP(pcs_handle, "pcs-handle", NULL)
>
> static struct device_node *parse_gpios(struct device_node *np,
> const char *prop_name, int index)
> @@ -1535,6 +1536,7 @@ static const struct supplier_bindings of_supplier_bindings[] = {
> .parse_prop = parse_post_init_providers,
> .fwlink_flags = FWLINK_FLAG_IGNORE,
> },
> + { .parse_prop = parse_pcs_handle, },
Can you add this in the right order please? All the simple ones come
before the SUFFIX ones so that it's less expensive/fewer comparisons
before you parse the simple properties.
-Saravana
> {}
> };
>
> --
> 2.35.1.1320.gc452695387.dirty
>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC net-next PATCH 11/13] of: property: Add device link support for PCS
2025-04-03 18:32 ` Saravana Kannan
@ 2025-04-03 19:04 ` Sean Anderson
0 siblings, 0 replies; 21+ messages in thread
From: Sean Anderson @ 2025-04-03 19:04 UTC (permalink / raw)
To: Saravana Kannan
Cc: netdev, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Russell King, Christian Marangi,
Heiner Kallweit, linux-kernel, upstream, Rob Herring, devicetree
On 4/3/25 14:32, Saravana Kannan wrote:
> On Thu, Apr 3, 2025 at 11:28 AM Sean Anderson <sean.anderson@linux.dev> wrote:
>>
>> This adds device link support for PCS devices, providing
>> better probe ordering.
>>
>> Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
>> ---
>>
>> drivers/of/property.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/of/property.c b/drivers/of/property.c
>> index c1feb631e383..f3e0c390ddba 100644
>> --- a/drivers/of/property.c
>> +++ b/drivers/of/property.c
>> @@ -1379,6 +1379,7 @@ DEFINE_SIMPLE_PROP(pses, "pses", "#pse-cells")
>> DEFINE_SIMPLE_PROP(power_supplies, "power-supplies", NULL)
>> DEFINE_SUFFIX_PROP(regulators, "-supply", NULL)
>> DEFINE_SUFFIX_PROP(gpio, "-gpio", "#gpio-cells")
>> +DEFINE_SIMPLE_PROP(pcs_handle, "pcs-handle", NULL)
>>
>> static struct device_node *parse_gpios(struct device_node *np,
>> const char *prop_name, int index)
>> @@ -1535,6 +1536,7 @@ static const struct supplier_bindings of_supplier_bindings[] = {
>> .parse_prop = parse_post_init_providers,
>> .fwlink_flags = FWLINK_FLAG_IGNORE,
>> },
>> + { .parse_prop = parse_pcs_handle, },
>
> Can you add this in the right order please? All the simple ones come
> before the SUFFIX ones so that it's less expensive/fewer comparisons
> before you parse the simple properties.
Ah, I couldn't figure out what the intended order was so I just stuck
it at the end.
--Sean
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC net-next PATCH 01/13] dt-bindings: net: Add binding for Xilinx PCS
2025-04-03 18:18 ` [RFC net-next PATCH 01/13] dt-bindings: net: Add binding for Xilinx PCS Sean Anderson
@ 2025-04-04 10:37 ` Krzysztof Kozlowski
2025-04-04 10:39 ` Krzysztof Kozlowski
2025-04-04 15:19 ` Sean Anderson
0 siblings, 2 replies; 21+ messages in thread
From: Krzysztof Kozlowski @ 2025-04-04 10:37 UTC (permalink / raw)
To: Sean Anderson
Cc: netdev, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Russell King, linux-kernel,
Christian Marangi, upstream, Heiner Kallweit, Conor Dooley,
Krzysztof Kozlowski, Michal Simek, Radhey Shyam Pandey,
Rob Herring, Robert Hancock, devicetree
On Thu, Apr 03, 2025 at 02:18:55PM GMT, Sean Anderson wrote:
> This adds a binding for the Xilinx 1G/2.5G Ethernet PCS/PMA or SGMII
Incomplete review, since this is an RFC.
Please do not use "This commit/patch/change", but imperative mood. See
longer explanation here:
https://elixir.bootlin.com/linux/v5.17.1/source/Documentation/process/submitting-patches.rst#L95
A nit, subject: drop second/last, redundant "binding for". The
"dt-bindings" prefix is already stating that these are bindings.
See also:
https://elixir.bootlin.com/linux/v6.7-rc8/source/Documentation/devicetree/bindings/submitting-patches.rst#L18
> LogiCORE IP. This device is a soft device typically used to adapt
> between GMII and SGMII or 1000BASE-X (possbilty in combination with a
> serdes). pcs-modes reflects the modes available with the as configured
> when the device is synthesized. Multiple modes may be specified if
> dynamic reconfiguration is supported.
>
> One PCS may contain "shared logic in core" which can be connected to
> other PCSs with "shared logic in example design." This primarily refers
> to clocking resources, allowing a reference clock to be shared by a bank
> of PCSs. To support this, if #clock-cells is defined then the PCS will
> register itself as a clock provider for other PCSs.
>
> Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
> ---
>
> .../devicetree/bindings/net/xilinx,pcs.yaml | 129 ++++++++++++++++++
> 1 file changed, 129 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/net/xilinx,pcs.yaml
>
> diff --git a/Documentation/devicetree/bindings/net/xilinx,pcs.yaml b/Documentation/devicetree/bindings/net/xilinx,pcs.yaml
> new file mode 100644
> index 000000000000..56a3ce0c4ef0
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/xilinx,pcs.yaml
> @@ -0,0 +1,129 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/xilinx,pcs.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Xilinx 1G/2.5G Ethernet PCS/PMA or SGMII LogiCORE IP
> +
> +maintainers:
> + - Sean Anderson <sean.anderson@seco.com>
> +
> +description:
> + This is a soft device which implements the PCS and (depending on
> + configuration) PMA layers of an IEEE Ethernet PHY. On the MAC side, it
> + implements GMII. It may have an attached SERDES (internal or external), or
> + may directly use LVDS IO resources. Depending on the configuration, it may
> + implement 1000BASE-X, SGMII, 2500BASE-X, or 2.5G SGMII.
> +
> + This device has a notion of "shared logic" such as reset and clocking
> + resources which must be shared between multiple PCSs using the same I/O
> + banks. Each PCS can be configured to have the shared logic in the "core"
> + (instantiated internally and made available to other PCSs) or in the "example
> + design" (provided by another PCS). PCSs with shared logic in the core are
> + reset controllers, and generally provide several resets for other PCSs in the
> + same bank.
> +
> +allOf:
> + - $ref: ethernet-controller.yaml#
> +
> +properties:
> + compatible:
> + contains:
From where did you get such syntax? What do you want to express?
> + const: xilinx,pcs-16.2
What does the number mean?
> +
> + reg:
> + maxItems: 1
> +
> + "#clock-cells":
> + const: 0
> + description:
> + Register a clock representing the clocking resources shared with other
> + PCSs.
Drop description, redundant.
> +
> + clocks:
> + items:
> + - description:
> + The reference clock for the PCS. Depending on your setup, this may be
> + the gtrefclk, refclk, clk125m signal, or clocks from another PCS.
> +
> + clock-names:
> + const: refclk
> +
> + done-gpios:
> + maxItems: 1
> + description:
> + GPIO connected to the reset-done output, if present.
> +
> + interrupts:
> + items:
> + - description:
> + The an_interrupt autonegotiation-complete interrupt.
> +
> + interrupt-names:
> + const: an
> +
> + pcs-modes:
> + description:
> + The interfaces that the PCS supports.
> + oneOf:
> + - const: sgmii
> + - const: 1000base-x
> + - const: 2500base-x
> + - items:
> + - const: sgmii
> + - const: 1000base-x
This is confusing. Why fallbacks? Shouldn't this be just enum? And
where is the type or constraints about number of items?
> +
> + reset-gpios:
> + maxItems: 1
> + description:
> + GPIO connected to the reset input.
> +
> +required:
> + - compatible
> + - reg
> + - pcs-modes
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + #include <dt-bindings/interrupt-controller/irq.h>
> +
> + mdio {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + pcs0: ethernet-pcs@0 {
> + #clock-cells = <0>;
Follow DTS coding style. clock-cells are never the first property.
> + compatible = "xlnx,pcs-16.2";
> + reg = <0>;
> + clocks = <&si570>;
> + clock-names = "refclk";
> + interrupts-extended = <&gic GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-names = "an";
> + reset-gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
> + done-gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
> + pcs-modes = "sgmii", "1000base-x";
> + };
> +
> + pcs1: ethernet-pcs@1 {
> + compatible = "xlnx,pcs-16.2";
> + reg = <1>;
> + clocks = <&pcs0>;
> + clock-names = "refclk";
> + interrupts-extended = <&gic GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-names = "an";
> + reset-gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
> + done-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
> + pcs-modes = "sgmii", "1000base-x";
Drop example, basically the same as previous.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC net-next PATCH 01/13] dt-bindings: net: Add binding for Xilinx PCS
2025-04-04 10:37 ` Krzysztof Kozlowski
@ 2025-04-04 10:39 ` Krzysztof Kozlowski
2025-04-04 15:12 ` Sean Anderson
2025-04-04 15:19 ` Sean Anderson
1 sibling, 1 reply; 21+ messages in thread
From: Krzysztof Kozlowski @ 2025-04-04 10:39 UTC (permalink / raw)
To: Sean Anderson
Cc: netdev, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Russell King, linux-kernel,
Christian Marangi, upstream, Heiner Kallweit, Conor Dooley,
Krzysztof Kozlowski, Michal Simek, Radhey Shyam Pandey,
Rob Herring, Robert Hancock, devicetree
On 04/04/2025 12:37, Krzysztof Kozlowski wrote:
>> + pcs-modes:
>> + description:
>> + The interfaces that the PCS supports.
>> + oneOf:
>> + - const: sgmii
>> + - const: 1000base-x
>> + - const: 2500base-x
>> + - items:
>> + - const: sgmii
>> + - const: 1000base-x
>
> This is confusing. Why fallbacks? Shouldn't this be just enum? And
> where is the type or constraints about number of items?
>
I just double checked now in dtschema and latest next - there is no such
property.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC net-next PATCH 01/13] dt-bindings: net: Add binding for Xilinx PCS
2025-04-04 10:39 ` Krzysztof Kozlowski
@ 2025-04-04 15:12 ` Sean Anderson
0 siblings, 0 replies; 21+ messages in thread
From: Sean Anderson @ 2025-04-04 15:12 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: netdev, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Russell King, linux-kernel,
Christian Marangi, upstream, Heiner Kallweit, Conor Dooley,
Krzysztof Kozlowski, Michal Simek, Radhey Shyam Pandey,
Rob Herring, Robert Hancock, devicetree
On 4/4/25 06:39, Krzysztof Kozlowski wrote:
> On 04/04/2025 12:37, Krzysztof Kozlowski wrote:
>>> + pcs-modes:
>>> + description:
>>> + The interfaces that the PCS supports.
>>> + oneOf:
>>> + - const: sgmii
>>> + - const: 1000base-x
>>> + - const: 2500base-x
>>> + - items:
>>> + - const: sgmii
>>> + - const: 1000base-x
>>
>> This is confusing. Why fallbacks? Shouldn't this be just enum? And
>> where is the type or constraints about number of items?
>>
> I just double checked now in dtschema and latest next - there is no such
> property.
OK, so you would prefer xlnx,pcs-modes?
--Sean
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC net-next PATCH 01/13] dt-bindings: net: Add binding for Xilinx PCS
2025-04-04 10:37 ` Krzysztof Kozlowski
2025-04-04 10:39 ` Krzysztof Kozlowski
@ 2025-04-04 15:19 ` Sean Anderson
1 sibling, 0 replies; 21+ messages in thread
From: Sean Anderson @ 2025-04-04 15:19 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: netdev, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Russell King, linux-kernel,
Christian Marangi, upstream, Heiner Kallweit, Conor Dooley,
Krzysztof Kozlowski, Michal Simek, Radhey Shyam Pandey,
Rob Herring, Robert Hancock, devicetree
On 4/4/25 06:37, Krzysztof Kozlowski wrote:
> On Thu, Apr 03, 2025 at 02:18:55PM GMT, Sean Anderson wrote:
>> This adds a binding for the Xilinx 1G/2.5G Ethernet PCS/PMA or SGMII
>
> Incomplete review, since this is an RFC.
Only an RFC due to netdev's rules. I consider this patchset complete.
> Please do not use "This commit/patch/change", but imperative mood. See
> longer explanation here:
> https://elixir.bootlin.com/linux/v5.17.1/source/Documentation/process/submitting-patches.rst#L95
>
> A nit, subject: drop second/last, redundant "binding for". The
> "dt-bindings" prefix is already stating that these are bindings.
> See also:
> https://elixir.bootlin.com/linux/v6.7-rc8/source/Documentation/devicetree/bindings/submitting-patches.rst#L18
>
>> LogiCORE IP. This device is a soft device typically used to adapt
>> between GMII and SGMII or 1000BASE-X (possbilty in combination with a
>> serdes). pcs-modes reflects the modes available with the as configured
>> when the device is synthesized. Multiple modes may be specified if
>> dynamic reconfiguration is supported.
>>
>> One PCS may contain "shared logic in core" which can be connected to
>> other PCSs with "shared logic in example design." This primarily refers
>> to clocking resources, allowing a reference clock to be shared by a bank
>> of PCSs. To support this, if #clock-cells is defined then the PCS will
>> register itself as a clock provider for other PCSs.
>>
>> Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
>> ---
>>
>> .../devicetree/bindings/net/xilinx,pcs.yaml | 129 ++++++++++++++++++
>> 1 file changed, 129 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/net/xilinx,pcs.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/net/xilinx,pcs.yaml b/Documentation/devicetree/bindings/net/xilinx,pcs.yaml
>> new file mode 100644
>> index 000000000000..56a3ce0c4ef0
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/net/xilinx,pcs.yaml
>> @@ -0,0 +1,129 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/net/xilinx,pcs.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Xilinx 1G/2.5G Ethernet PCS/PMA or SGMII LogiCORE IP
>> +
>> +maintainers:
>> + - Sean Anderson <sean.anderson@seco.com>
>> +
>> +description:
>> + This is a soft device which implements the PCS and (depending on
>> + configuration) PMA layers of an IEEE Ethernet PHY. On the MAC side, it
>> + implements GMII. It may have an attached SERDES (internal or external), or
>> + may directly use LVDS IO resources. Depending on the configuration, it may
>> + implement 1000BASE-X, SGMII, 2500BASE-X, or 2.5G SGMII.
>> +
>> + This device has a notion of "shared logic" such as reset and clocking
>> + resources which must be shared between multiple PCSs using the same I/O
>> + banks. Each PCS can be configured to have the shared logic in the "core"
>> + (instantiated internally and made available to other PCSs) or in the "example
>> + design" (provided by another PCS). PCSs with shared logic in the core are
>> + reset controllers, and generally provide several resets for other PCSs in the
>> + same bank.
>> +
>> +allOf:
>> + - $ref: ethernet-controller.yaml#
>> +
>> +properties:
>> + compatible:
>> + contains:
>
> From where did you get such syntax? What do you want to express?
The compatible should contain this value, but we don't really care what else it
contains. This aligns with how the kernel matches drivers to devices.
>> + const: xilinx,pcs-16.2
>
> What does the number mean?
It's the version of the IP.
>> +
>> + reg:
>> + maxItems: 1
>> +
>> + "#clock-cells":
>> + const: 0
>> + description:
>> + Register a clock representing the clocking resources shared with other
>> + PCSs.
>
> Drop description, redundant.
>
>> +
>> + clocks:
>> + items:
>> + - description:
>> + The reference clock for the PCS. Depending on your setup, this may be
>> + the gtrefclk, refclk, clk125m signal, or clocks from another PCS.
>> +
>> + clock-names:
>> + const: refclk
>> +
>> + done-gpios:
>> + maxItems: 1
>> + description:
>> + GPIO connected to the reset-done output, if present.
>> +
>> + interrupts:
>> + items:
>> + - description:
>> + The an_interrupt autonegotiation-complete interrupt.
>> +
>> + interrupt-names:
>> + const: an
>> +
>> + pcs-modes:
>> + description:
>> + The interfaces that the PCS supports.
>> + oneOf:
>> + - const: sgmii
>> + - const: 1000base-x
>> + - const: 2500base-x
>> + - items:
>> + - const: sgmii
>> + - const: 1000base-x
>
> This is confusing. Why fallbacks? Shouldn't this be just enum? And
> where is the type or constraints about number of items?
As stated in the commit message, multiple modes may be specified if
dynamic reconfiguration is supported. So I want to allow
pcs-modes = "sgmii"
pcs-modes = "1000base-x"
pcs-modes = "2500base-x"
pcs-modes = "sgmii", "1000base-x"
>> +
>> + reset-gpios:
>> + maxItems: 1
>> + description:
>> + GPIO connected to the reset input.
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - pcs-modes
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/gpio/gpio.h>
>> + #include <dt-bindings/interrupt-controller/arm-gic.h>
>> + #include <dt-bindings/interrupt-controller/irq.h>
>> +
>> + mdio {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + pcs0: ethernet-pcs@0 {
>> + #clock-cells = <0>;
>
> Follow DTS coding style. clock-cells are never the first property.
Where is this documented?
>> + compatible = "xlnx,pcs-16.2";
>> + reg = <0>;
>> + clocks = <&si570>;
>> + clock-names = "refclk";
>> + interrupts-extended = <&gic GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
>> + interrupt-names = "an";
>> + reset-gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
>> + done-gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
>> + pcs-modes = "sgmii", "1000base-x";
>> + };
>> +
>> + pcs1: ethernet-pcs@1 {
>> + compatible = "xlnx,pcs-16.2";
>> + reg = <1>;
>> + clocks = <&pcs0>;
>> + clock-names = "refclk";
>> + interrupts-extended = <&gic GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
>> + interrupt-names = "an";
>> + reset-gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
>> + done-gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
>> + pcs-modes = "sgmii", "1000base-x";
>
> Drop example, basically the same as previous.
>
> Best regards,
> Krzysztof
>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC net-next PATCH 00/13] Add PCS core support
2025-04-03 18:18 [RFC net-next PATCH 00/13] Add PCS core support Sean Anderson
` (3 preceding siblings ...)
2025-04-03 18:30 ` [RFC net-next PATCH 13/13] powerpc: " Sean Anderson
@ 2025-04-07 16:27 ` Kory Maincent
2025-04-07 16:33 ` Sean Anderson
4 siblings, 1 reply; 21+ messages in thread
From: Kory Maincent @ 2025-04-07 16:27 UTC (permalink / raw)
To: Sean Anderson
Cc: netdev, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Russell King, linux-kernel,
Christian Marangi, upstream, Heiner Kallweit, Alexandre Belloni,
Alexandre Torgue, Christophe Leroy, Clark Wang, Claudiu Beznea,
Claudiu Manoil, Conor Dooley, Ioana Ciornei, Jonathan Corbet,
Joyce Ooi, Krzysztof Kozlowski, Krzysztof Kozlowski, Li Yang,
Madalin Bucur, Madhavan Srinivasan, Maxime Coquelin,
Michael Ellerman, Michal Simek, Naveen N Rao, Nicholas Piggin,
Nicolas Ferre, Radhey Shyam Pandey, Rob Herring, Rob Herring,
Robert Hancock, Saravana Kannan, Shawn Guo, UNGLinuxDriver,
Vladimir Oltean, Wei Fang, devicetree, imx, linux-arm-kernel,
linux-doc, linux-stm32, linuxppc-dev
On Thu, 3 Apr 2025 14:18:54 -0400
Sean Anderson <sean.anderson@linux.dev> wrote:
> This series adds support for creating PCSs as devices on a bus with a
> driver (patch 3). As initial users,
>
> - The Lynx PCS (and all of its users) is converted to this system (patch 5)
> - The Xilinx PCS is broken out from the AXI Ethernet driver (patches 6-8)
> - The Cadence MACB driver is converted to support external PCSs (namely
> the Xilinx PCS) (patches 9-10).
>
> The last few patches add device links for pcs-handle to improve boot times,
> and add compatibles for all Lynx PCSs.
>
> Care has been taken to ensure backwards-compatibility. The main source
> of this is that many PCS devices lack compatibles and get detected as
> PHYs. To address this, pcs_get_by_fwnode_compat allows drivers to edit
> the devicetree to add appropriate compatibles.
I don't dive into your patch series and I don't know if you have heard about it
but Christian Marangi is currently working on fwnode for PCS:
https://lore.kernel.org/netdev/20250406221423.9723-1-ansuelsmth@gmail.com
Maybe you should sync with him!
Regards,
--
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC net-next PATCH 00/13] Add PCS core support
2025-04-07 16:27 ` [RFC net-next PATCH 00/13] Add PCS core support Kory Maincent
@ 2025-04-07 16:33 ` Sean Anderson
2025-04-07 16:46 ` Christian Marangi (Ansuel)
2025-04-07 16:51 ` Kory Maincent
0 siblings, 2 replies; 21+ messages in thread
From: Sean Anderson @ 2025-04-07 16:33 UTC (permalink / raw)
To: Kory Maincent
Cc: netdev, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Russell King, linux-kernel,
Christian Marangi, upstream, Heiner Kallweit, Alexandre Belloni,
Alexandre Torgue, Christophe Leroy, Clark Wang, Claudiu Beznea,
Claudiu Manoil, Conor Dooley, Ioana Ciornei, Jonathan Corbet,
Joyce Ooi, Krzysztof Kozlowski, Krzysztof Kozlowski, Li Yang,
Madalin Bucur, Madhavan Srinivasan, Maxime Coquelin,
Michael Ellerman, Michal Simek, Naveen N Rao, Nicholas Piggin,
Nicolas Ferre, Radhey Shyam Pandey, Rob Herring, Rob Herring,
Robert Hancock, Saravana Kannan, Shawn Guo, UNGLinuxDriver,
Vladimir Oltean, Wei Fang, devicetree, imx, linux-arm-kernel,
linux-doc, linux-stm32, linuxppc-dev
On 4/7/25 12:27, Kory Maincent wrote:
> On Thu, 3 Apr 2025 14:18:54 -0400
> Sean Anderson <sean.anderson@linux.dev> wrote:
>
>> This series adds support for creating PCSs as devices on a bus with a
>> driver (patch 3). As initial users,
>>
>> - The Lynx PCS (and all of its users) is converted to this system (patch 5)
>> - The Xilinx PCS is broken out from the AXI Ethernet driver (patches 6-8)
>> - The Cadence MACB driver is converted to support external PCSs (namely
>> the Xilinx PCS) (patches 9-10).
>>
>> The last few patches add device links for pcs-handle to improve boot times,
>> and add compatibles for all Lynx PCSs.
>>
>> Care has been taken to ensure backwards-compatibility. The main source
>> of this is that many PCS devices lack compatibles and get detected as
>> PHYs. To address this, pcs_get_by_fwnode_compat allows drivers to edit
>> the devicetree to add appropriate compatibles.
>
> I don't dive into your patch series and I don't know if you have heard about it
> but Christian Marangi is currently working on fwnode for PCS:
> https://lore.kernel.org/netdev/20250406221423.9723-1-ansuelsmth@gmail.com
>
> Maybe you should sync with him!
I saw that series and made some comments. He is CC'd on this one.
I think this approach has two advantages:
- It completely solves the problem of the PCS being unregistered while the netdev
(or whatever) is up
- I have designed the interface to make it easy to convert existing
drivers that may not be able to use the "standard" probing process
(because they have to support other devicetree structures for
backwards-compatibility).
--Sean
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC net-next PATCH 00/13] Add PCS core support
2025-04-07 16:33 ` Sean Anderson
@ 2025-04-07 16:46 ` Christian Marangi (Ansuel)
2025-04-07 17:00 ` Sean Anderson
2025-04-07 16:51 ` Kory Maincent
1 sibling, 1 reply; 21+ messages in thread
From: Christian Marangi (Ansuel) @ 2025-04-07 16:46 UTC (permalink / raw)
To: Sean Anderson
Cc: Kory Maincent, netdev, Andrew Lunn, David S . Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Russell King,
linux-kernel, upstream, Heiner Kallweit, Alexandre Belloni,
Alexandre Torgue, Christophe Leroy, Clark Wang, Claudiu Beznea,
Claudiu Manoil, Conor Dooley, Ioana Ciornei, Jonathan Corbet,
Joyce Ooi, Krzysztof Kozlowski, Krzysztof Kozlowski, Li Yang,
Madalin Bucur, Madhavan Srinivasan, Maxime Coquelin,
Michael Ellerman, Michal Simek, Naveen N Rao, Nicholas Piggin,
Nicolas Ferre, Radhey Shyam Pandey, Rob Herring, Rob Herring,
Robert Hancock, Saravana Kannan, Shawn Guo, UNGLinuxDriver,
Vladimir Oltean, Wei Fang, devicetree, imx, linux-arm-kernel,
linux-doc, linux-stm32, linuxppc-dev
Il giorno lun 7 apr 2025 alle ore 18:33 Sean Anderson
<sean.anderson@linux.dev> ha scritto:
>
> On 4/7/25 12:27, Kory Maincent wrote:
> > On Thu, 3 Apr 2025 14:18:54 -0400
> > Sean Anderson <sean.anderson@linux.dev> wrote:
> >
> >> This series adds support for creating PCSs as devices on a bus with a
> >> driver (patch 3). As initial users,
> >>
> >> - The Lynx PCS (and all of its users) is converted to this system (patch 5)
> >> - The Xilinx PCS is broken out from the AXI Ethernet driver (patches 6-8)
> >> - The Cadence MACB driver is converted to support external PCSs (namely
> >> the Xilinx PCS) (patches 9-10).
> >>
> >> The last few patches add device links for pcs-handle to improve boot times,
> >> and add compatibles for all Lynx PCSs.
> >>
> >> Care has been taken to ensure backwards-compatibility. The main source
> >> of this is that many PCS devices lack compatibles and get detected as
> >> PHYs. To address this, pcs_get_by_fwnode_compat allows drivers to edit
> >> the devicetree to add appropriate compatibles.
> >
> > I don't dive into your patch series and I don't know if you have heard about it
> > but Christian Marangi is currently working on fwnode for PCS:
> > https://lore.kernel.org/netdev/20250406221423.9723-1-ansuelsmth@gmail.com
> >
> > Maybe you should sync with him!
>
> I saw that series and made some comments. He is CC'd on this one.
>
> I think this approach has two advantages:
>
> - It completely solves the problem of the PCS being unregistered while the netdev
> (or whatever) is up
> - I have designed the interface to make it easy to convert existing
> drivers that may not be able to use the "standard" probing process
> (because they have to support other devicetree structures for
> backwards-compatibility).
>
I notice this and it's my fault for taking too long to post v2 of the PCS patch.
There was also this idea of entering the wrapper hell but I scrapped that early
as I really feel it's a workaround to the current problem present for
PCS handling.
And the real problem IMHO is that currently PCS handling is fragile and with too
many assumptions. With Daniel we also discussed backwards-compatibility.
(mainly needed for mt7621 and mt7986 (for mediatek side those are the 2
that slipped in before it was correctly complained that things were
taking a bad path)
We feel v2 permits correct support of old implementations.
The ""legacy"" implementation pose the assumption that PCS is never removed
(unless the MAC driver is removed)
That fits v2 where a MAC has to initially provide a list of PCS to
phylink instance.
With this implementation, a MAC can manually parse whatever PCS node structure
is in place and fill the PCS.
As really the "late" removal/addition of a PCS can only be supported with fwnode
implementation as dedicated PCS driver will make use of that.
I honestly hope we can skip having to enter the wrapper hell.
Anyway I also see you made REALLY GOOD documentation. Would be ideal to
collaborate for that. Anyway it's up to net maintainers on what path to follow.
Just my 2 cent on the PCS topic.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC net-next PATCH 00/13] Add PCS core support
2025-04-07 16:33 ` Sean Anderson
2025-04-07 16:46 ` Christian Marangi (Ansuel)
@ 2025-04-07 16:51 ` Kory Maincent
1 sibling, 0 replies; 21+ messages in thread
From: Kory Maincent @ 2025-04-07 16:51 UTC (permalink / raw)
To: Sean Anderson
Cc: netdev, Andrew Lunn, David S . Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, Russell King, linux-kernel,
Christian Marangi, upstream, Heiner Kallweit, Alexandre Belloni,
Alexandre Torgue, Christophe Leroy, Clark Wang, Claudiu Beznea,
Claudiu Manoil, Conor Dooley, Ioana Ciornei, Jonathan Corbet,
Joyce Ooi, Krzysztof Kozlowski, Krzysztof Kozlowski, Li Yang,
Madalin Bucur, Madhavan Srinivasan, Maxime Coquelin,
Michael Ellerman, Michal Simek, Naveen N Rao, Nicholas Piggin,
Nicolas Ferre, Radhey Shyam Pandey, Rob Herring, Rob Herring,
Robert Hancock, Saravana Kannan, Shawn Guo, UNGLinuxDriver,
Vladimir Oltean, Wei Fang, devicetree, imx, linux-arm-kernel,
linux-doc, linux-stm32, linuxppc-dev
On Mon, 7 Apr 2025 12:33:28 -0400
Sean Anderson <sean.anderson@linux.dev> wrote:
> On 4/7/25 12:27, Kory Maincent wrote:
> > On Thu, 3 Apr 2025 14:18:54 -0400
> > Sean Anderson <sean.anderson@linux.dev> wrote:
> >
> >> This series adds support for creating PCSs as devices on a bus with a
> >> driver (patch 3). As initial users,
> >>
> >> - The Lynx PCS (and all of its users) is converted to this system (patch 5)
> >> - The Xilinx PCS is broken out from the AXI Ethernet driver (patches 6-8)
> >> - The Cadence MACB driver is converted to support external PCSs (namely
> >> the Xilinx PCS) (patches 9-10).
> >>
> >> The last few patches add device links for pcs-handle to improve boot times,
> >> and add compatibles for all Lynx PCSs.
> >>
> >> Care has been taken to ensure backwards-compatibility. The main source
> >> of this is that many PCS devices lack compatibles and get detected as
> >> PHYs. To address this, pcs_get_by_fwnode_compat allows drivers to edit
> >> the devicetree to add appropriate compatibles.
> >
> > I don't dive into your patch series and I don't know if you have heard
> > about it but Christian Marangi is currently working on fwnode for PCS:
> > https://lore.kernel.org/netdev/20250406221423.9723-1-ansuelsmth@gmail.com
> >
> > Maybe you should sync with him!
>
> I saw that series and made some comments. He is CC'd on this one.
Oh indeed, you have replied on his v1, sorry I missed it.
It seems he forgot to add you in CC in the v2.
> I think this approach has two advantages:
>
> - It completely solves the problem of the PCS being unregistered while the
> netdev (or whatever) is up
> - I have designed the interface to make it easy to convert existing
> drivers that may not be able to use the "standard" probing process
> (because they have to support other devicetree structures for
> backwards-compatibility).
Ok, thanks for the clarification!
I was working on the axienet driver to add support for the 10G version that's
why I discovered your series.
Regards,
--
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC net-next PATCH 00/13] Add PCS core support
2025-04-07 16:46 ` Christian Marangi (Ansuel)
@ 2025-04-07 17:00 ` Sean Anderson
2025-04-07 17:21 ` Christian Marangi (Ansuel)
0 siblings, 1 reply; 21+ messages in thread
From: Sean Anderson @ 2025-04-07 17:00 UTC (permalink / raw)
To: Christian Marangi (Ansuel)
Cc: Kory Maincent, netdev, Andrew Lunn, David S . Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Russell King,
linux-kernel, upstream, Heiner Kallweit, Alexandre Belloni,
Alexandre Torgue, Christophe Leroy, Clark Wang, Claudiu Beznea,
Claudiu Manoil, Conor Dooley, Ioana Ciornei, Jonathan Corbet,
Joyce Ooi, Krzysztof Kozlowski, Krzysztof Kozlowski, Li Yang,
Madalin Bucur, Madhavan Srinivasan, Maxime Coquelin,
Michael Ellerman, Michal Simek, Naveen N Rao, Nicholas Piggin,
Nicolas Ferre, Radhey Shyam Pandey, Rob Herring, Rob Herring,
Robert Hancock, Saravana Kannan, Shawn Guo, UNGLinuxDriver,
Vladimir Oltean, Wei Fang, devicetree, imx, linux-arm-kernel,
linux-doc, linux-stm32, linuxppc-dev
On 4/7/25 12:46, Christian Marangi (Ansuel) wrote:
> Il giorno lun 7 apr 2025 alle ore 18:33 Sean Anderson
> <sean.anderson@linux.dev> ha scritto:
>>
>> On 4/7/25 12:27, Kory Maincent wrote:
>> > On Thu, 3 Apr 2025 14:18:54 -0400
>> > Sean Anderson <sean.anderson@linux.dev> wrote:
>> >
>> >> This series adds support for creating PCSs as devices on a bus with a
>> >> driver (patch 3). As initial users,
>> >>
>> >> - The Lynx PCS (and all of its users) is converted to this system (patch 5)
>> >> - The Xilinx PCS is broken out from the AXI Ethernet driver (patches 6-8)
>> >> - The Cadence MACB driver is converted to support external PCSs (namely
>> >> the Xilinx PCS) (patches 9-10).
>> >>
>> >> The last few patches add device links for pcs-handle to improve boot times,
>> >> and add compatibles for all Lynx PCSs.
>> >>
>> >> Care has been taken to ensure backwards-compatibility. The main source
>> >> of this is that many PCS devices lack compatibles and get detected as
>> >> PHYs. To address this, pcs_get_by_fwnode_compat allows drivers to edit
>> >> the devicetree to add appropriate compatibles.
>> >
>> > I don't dive into your patch series and I don't know if you have heard about it
>> > but Christian Marangi is currently working on fwnode for PCS:
>> > https://lore.kernel.org/netdev/20250406221423.9723-1-ansuelsmth@gmail.com
>> >
>> > Maybe you should sync with him!
>>
>> I saw that series and made some comments. He is CC'd on this one.
>>
>> I think this approach has two advantages:
>>
>> - It completely solves the problem of the PCS being unregistered while the netdev
>> (or whatever) is up
>> - I have designed the interface to make it easy to convert existing
>> drivers that may not be able to use the "standard" probing process
>> (because they have to support other devicetree structures for
>> backwards-compatibility).
>>
>
> I notice this and it's my fault for taking too long to post v2 of the PCS patch.
> There was also this idea of entering the wrapper hell but I scrapped that early
> as I really feel it's a workaround to the current problem present for
> PCS handling.
It's no workaround. The fundamental problem is that drivers can become
unbound at any time, and we cannot make consumers drop their references.
Every subsystem must deal with this reality, or suffer from
user-after-free bugs. See [1-3] for discussion of this problem in
relation to PCSs and PHYs, and [4] for more discussion of my approach.
[1] https://lore.kernel.org/netdev/YV7Kp2k8VvN7J0fY@shell.armlinux.org.uk/
[2] https://lore.kernel.org/netdev/20220816163701.1578850-1-sean.anderson@seco.com/
[3] https://lore.kernel.org/netdev/9747f8ef-66b3-0870-cbc0-c1783896b30d@seco.com/
[3] https://lpc.events/event/17/contributions/1627/
> And the real problem IMHO is that currently PCS handling is fragile and with too
> many assumptions. With Daniel we also discussed backwards-compatibility.
> (mainly needed for mt7621 and mt7986 (for mediatek side those are the 2
> that slipped in before it was correctly complained that things were
> taking a bad path)
>
> We feel v2 permits correct support of old implementations.
> The ""legacy"" implementation pose the assumption that PCS is never removed
> (unless the MAC driver is removed)
> That fits v2 where a MAC has to initially provide a list of PCS to
> phylink instance.
And what happens when the driver is unbound from the device and suddenly
a PCS on that list is free'd memory but is in active use by a netdev?
> With this implementation, a MAC can manually parse whatever PCS node structure
> is in place and fill the PCS.
>
> As really the "late" removal/addition of a PCS can only be supported with fwnode
> implementation as dedicated PCS driver will make use of that.
I agree that a "cells" approach would require this, but
- There are no in-tree examples of where this is necessary
- I think this would be easy to add when necessary
> I honestly hope we can skip having to enter the wrapper hell.
Unfortunately, this is required by the kernel driver model :l
> Anyway I also see you made REALLY GOOD documentation.
Thanks. One of my peeves is subsystems that have zero docs...
> Would be ideal to
> collaborate for that. Anyway it's up to net maintainers on what path to follow.
>
> Just my 2 cent on the PCS topic.
--Sean
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC net-next PATCH 00/13] Add PCS core support
2025-04-07 17:00 ` Sean Anderson
@ 2025-04-07 17:21 ` Christian Marangi (Ansuel)
2025-04-07 17:25 ` Daniel Golle
2025-04-07 18:06 ` Sean Anderson
0 siblings, 2 replies; 21+ messages in thread
From: Christian Marangi (Ansuel) @ 2025-04-07 17:21 UTC (permalink / raw)
To: Sean Anderson
Cc: Kory Maincent, netdev, Andrew Lunn, David S . Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Russell King,
linux-kernel, upstream, Heiner Kallweit, Alexandre Belloni,
Alexandre Torgue, Christophe Leroy, Clark Wang, Claudiu Beznea,
Claudiu Manoil, Conor Dooley, Ioana Ciornei, Jonathan Corbet,
Joyce Ooi, Krzysztof Kozlowski, Krzysztof Kozlowski, Li Yang,
Madalin Bucur, Madhavan Srinivasan, Maxime Coquelin,
Michael Ellerman, Michal Simek, Naveen N Rao, Nicholas Piggin,
Nicolas Ferre, Radhey Shyam Pandey, Rob Herring, Rob Herring,
Robert Hancock, Saravana Kannan, Shawn Guo, UNGLinuxDriver,
Vladimir Oltean, Wei Fang, devicetree, imx, linux-arm-kernel,
linux-doc, linux-stm32, linuxppc-dev
Il giorno lun 7 apr 2025 alle ore 19:00 Sean Anderson
<sean.anderson@linux.dev> ha scritto:
>
> On 4/7/25 12:46, Christian Marangi (Ansuel) wrote:
> > Il giorno lun 7 apr 2025 alle ore 18:33 Sean Anderson
> > <sean.anderson@linux.dev> ha scritto:
> >>
> >> On 4/7/25 12:27, Kory Maincent wrote:
> >> > On Thu, 3 Apr 2025 14:18:54 -0400
> >> > Sean Anderson <sean.anderson@linux.dev> wrote:
> >> >
> >> >> This series adds support for creating PCSs as devices on a bus with a
> >> >> driver (patch 3). As initial users,
> >> >>
> >> >> - The Lynx PCS (and all of its users) is converted to this system (patch 5)
> >> >> - The Xilinx PCS is broken out from the AXI Ethernet driver (patches 6-8)
> >> >> - The Cadence MACB driver is converted to support external PCSs (namely
> >> >> the Xilinx PCS) (patches 9-10).
> >> >>
> >> >> The last few patches add device links for pcs-handle to improve boot times,
> >> >> and add compatibles for all Lynx PCSs.
> >> >>
> >> >> Care has been taken to ensure backwards-compatibility. The main source
> >> >> of this is that many PCS devices lack compatibles and get detected as
> >> >> PHYs. To address this, pcs_get_by_fwnode_compat allows drivers to edit
> >> >> the devicetree to add appropriate compatibles.
> >> >
> >> > I don't dive into your patch series and I don't know if you have heard about it
> >> > but Christian Marangi is currently working on fwnode for PCS:
> >> > https://lore.kernel.org/netdev/20250406221423.9723-1-ansuelsmth@gmail.com
> >> >
> >> > Maybe you should sync with him!
> >>
> >> I saw that series and made some comments. He is CC'd on this one.
> >>
> >> I think this approach has two advantages:
> >>
> >> - It completely solves the problem of the PCS being unregistered while the netdev
> >> (or whatever) is up
> >> - I have designed the interface to make it easy to convert existing
> >> drivers that may not be able to use the "standard" probing process
> >> (because they have to support other devicetree structures for
> >> backwards-compatibility).
> >>
> >
> > I notice this and it's my fault for taking too long to post v2 of the PCS patch.
> > There was also this idea of entering the wrapper hell but I scrapped that early
> > as I really feel it's a workaround to the current problem present for
> > PCS handling.
>
> It's no workaround. The fundamental problem is that drivers can become
> unbound at any time, and we cannot make consumers drop their references.
> Every subsystem must deal with this reality, or suffer from
> user-after-free bugs. See [1-3] for discussion of this problem in
> relation to PCSs and PHYs, and [4] for more discussion of my approach.
>
> [1] https://lore.kernel.org/netdev/YV7Kp2k8VvN7J0fY@shell.armlinux.org.uk/
> [2] https://lore.kernel.org/netdev/20220816163701.1578850-1-sean.anderson@seco.com/
> [3] https://lore.kernel.org/netdev/9747f8ef-66b3-0870-cbc0-c1783896b30d@seco.com/
> [3] https://lpc.events/event/17/contributions/1627/
>
> > And the real problem IMHO is that currently PCS handling is fragile and with too
> > many assumptions. With Daniel we also discussed backwards-compatibility.
> > (mainly needed for mt7621 and mt7986 (for mediatek side those are the 2
> > that slipped in before it was correctly complained that things were
> > taking a bad path)
> >
> > We feel v2 permits correct support of old implementations.
> > The ""legacy"" implementation pose the assumption that PCS is never removed
> > (unless the MAC driver is removed)
> > That fits v2 where a MAC has to initially provide a list of PCS to
> > phylink instance.
>
> And what happens when the driver is unbound from the device and suddenly
> a PCS on that list is free'd memory but is in active use by a netdev?
>
driver bug for not correctly implementing the removal task.
The approach is remove as provider and call phylink removal phase
under rtnl lock.
We tested this with unbind, that is actually the main problem we are
trying to address
and works correctly.
> > With this implementation, a MAC can manually parse whatever PCS node structure
> > is in place and fill the PCS.
> >
> > As really the "late" removal/addition of a PCS can only be supported with fwnode
> > implementation as dedicated PCS driver will make use of that.
>
> I agree that a "cells" approach would require this, but
>
> - There are no in-tree examples of where this is necessary
> - I think this would be easy to add when necessary
>
There are no in-tree cause only now we are starting to support
complex configuration with multiple PCS placed outside the MAC.
I feel it's better to define a standard API for them now before
we permit even more MAC driver to implement custom property
and have to address tons of workaround for compatibility.
> > I honestly hope we can skip having to enter the wrapper hell.
>
> Unfortunately, this is required by the kernel driver model :l
>
> > Anyway I also see you made REALLY GOOD documentation.
>
> Thanks. One of my peeves is subsystems that have zero docs...
>
> > Would be ideal to
> > collaborate for that. Anyway it's up to net maintainers on what path to follow.
> >
> > Just my 2 cent on the PCS topic.
>
> --Sean
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC net-next PATCH 00/13] Add PCS core support
2025-04-07 17:21 ` Christian Marangi (Ansuel)
@ 2025-04-07 17:25 ` Daniel Golle
2025-04-07 17:40 ` Sean Anderson
2025-04-08 15:17 ` Sean Anderson
2025-04-07 18:06 ` Sean Anderson
1 sibling, 2 replies; 21+ messages in thread
From: Daniel Golle @ 2025-04-07 17:25 UTC (permalink / raw)
To: Christian Marangi (Ansuel)
Cc: Sean Anderson, Kory Maincent, netdev, Andrew Lunn,
David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Russell King, linux-kernel, upstream, Heiner Kallweit,
Alexandre Belloni, Alexandre Torgue, Christophe Leroy, Clark Wang,
Claudiu Beznea, Claudiu Manoil, Conor Dooley, Ioana Ciornei,
Jonathan Corbet, Joyce Ooi, Krzysztof Kozlowski,
Krzysztof Kozlowski, Li Yang, Madalin Bucur, Madhavan Srinivasan,
Maxime Coquelin, Michael Ellerman, Michal Simek, Naveen N Rao,
Nicholas Piggin, Nicolas Ferre, Radhey Shyam Pandey, Rob Herring,
Rob Herring, Robert Hancock, Saravana Kannan, Shawn Guo,
UNGLinuxDriver, Vladimir Oltean, Wei Fang, devicetree, imx,
linux-arm-kernel, linux-doc, linux-stm32, linuxppc-dev
On Mon, Apr 07, 2025 at 07:21:38PM +0200, Christian Marangi (Ansuel) wrote:
> Il giorno lun 7 apr 2025 alle ore 19:00 Sean Anderson
> > I agree that a "cells" approach would require this, but
> >
> > - There are no in-tree examples of where this is necessary
> > - I think this would be easy to add when necessary
> >
>
> There are no in-tree cause only now we are starting to support
> complex configuration with multiple PCS placed outside the MAC.
>
> I feel it's better to define a standard API for them now before
> we permit even more MAC driver to implement custom property
> and have to address tons of workaround for compatibility.
Qualcomm's PCS driver will require offering multiple phylink_pcs by a
single device/of_node. So while it's true that there is currently no
in-tree user for that, that very user is already knocking on our doors.
See
https://patchwork.kernel.org/project/netdevbpf/list/?series=931658&state=*
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC net-next PATCH 00/13] Add PCS core support
2025-04-07 17:25 ` Daniel Golle
@ 2025-04-07 17:40 ` Sean Anderson
2025-04-08 15:17 ` Sean Anderson
1 sibling, 0 replies; 21+ messages in thread
From: Sean Anderson @ 2025-04-07 17:40 UTC (permalink / raw)
To: Daniel Golle, Christian Marangi (Ansuel)
Cc: Kory Maincent, netdev, Andrew Lunn, David S . Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Russell King,
linux-kernel, upstream, Heiner Kallweit, Alexandre Belloni,
Alexandre Torgue, Christophe Leroy, Clark Wang, Claudiu Beznea,
Claudiu Manoil, Conor Dooley, Ioana Ciornei, Jonathan Corbet,
Joyce Ooi, Krzysztof Kozlowski, Krzysztof Kozlowski, Li Yang,
Madalin Bucur, Madhavan Srinivasan, Maxime Coquelin,
Michael Ellerman, Michal Simek, Naveen N Rao, Nicholas Piggin,
Nicolas Ferre, Radhey Shyam Pandey, Rob Herring, Rob Herring,
Robert Hancock, Saravana Kannan, Shawn Guo, UNGLinuxDriver,
Vladimir Oltean, Wei Fang, devicetree, imx, linux-arm-kernel,
linux-doc, linux-stm32, linuxppc-dev
On 4/7/25 13:25, Daniel Golle wrote:
> On Mon, Apr 07, 2025 at 07:21:38PM +0200, Christian Marangi (Ansuel) wrote:
>> Il giorno lun 7 apr 2025 alle ore 19:00 Sean Anderson
>> > I agree that a "cells" approach would require this, but
>> >
>> > - There are no in-tree examples of where this is necessary
>> > - I think this would be easy to add when necessary
>> >
>>
>> There are no in-tree cause only now we are starting to support
>> complex configuration with multiple PCS placed outside the MAC.
>>
>> I feel it's better to define a standard API for them now before
>> we permit even more MAC driver to implement custom property
>> and have to address tons of workaround for compatibility.
>
> Qualcomm's PCS driver will require offering multiple phylink_pcs by a
> single device/of_node. So while it's true that there is currently no
> in-tree user for that, that very user is already knocking on our doors.
>
> See
> https://patchwork.kernel.org/project/netdevbpf/list/?series=931658&state=*
OK, but I still think this is quite easy to add.
--Sean
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC net-next PATCH 00/13] Add PCS core support
2025-04-07 17:21 ` Christian Marangi (Ansuel)
2025-04-07 17:25 ` Daniel Golle
@ 2025-04-07 18:06 ` Sean Anderson
1 sibling, 0 replies; 21+ messages in thread
From: Sean Anderson @ 2025-04-07 18:06 UTC (permalink / raw)
To: Christian Marangi (Ansuel)
Cc: Kory Maincent, netdev, Andrew Lunn, David S . Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Russell King,
linux-kernel, upstream, Heiner Kallweit, Alexandre Belloni,
Alexandre Torgue, Christophe Leroy, Clark Wang, Claudiu Beznea,
Claudiu Manoil, Conor Dooley, Ioana Ciornei, Jonathan Corbet,
Joyce Ooi, Krzysztof Kozlowski, Krzysztof Kozlowski, Li Yang,
Madalin Bucur, Madhavan Srinivasan, Maxime Coquelin,
Michael Ellerman, Michal Simek, Naveen N Rao, Nicholas Piggin,
Nicolas Ferre, Radhey Shyam Pandey, Rob Herring, Rob Herring,
Robert Hancock, Saravana Kannan, Shawn Guo, UNGLinuxDriver,
Vladimir Oltean, Wei Fang, devicetree, imx, linux-arm-kernel,
linux-doc, linux-stm32, linuxppc-dev
On 4/7/25 13:21, Christian Marangi (Ansuel) wrote:
> Il giorno lun 7 apr 2025 alle ore 19:00 Sean Anderson
> <sean.anderson@linux.dev> ha scritto:
>>
>> On 4/7/25 12:46, Christian Marangi (Ansuel) wrote:
>> > Il giorno lun 7 apr 2025 alle ore 18:33 Sean Anderson
>> > <sean.anderson@linux.dev> ha scritto:
>> >>
>> >> On 4/7/25 12:27, Kory Maincent wrote:
>> >> > On Thu, 3 Apr 2025 14:18:54 -0400
>> >> > Sean Anderson <sean.anderson@linux.dev> wrote:
>> >> >
>> >> >> This series adds support for creating PCSs as devices on a bus with a
>> >> >> driver (patch 3). As initial users,
>> >> >>
>> >> >> - The Lynx PCS (and all of its users) is converted to this system (patch 5)
>> >> >> - The Xilinx PCS is broken out from the AXI Ethernet driver (patches 6-8)
>> >> >> - The Cadence MACB driver is converted to support external PCSs (namely
>> >> >> the Xilinx PCS) (patches 9-10).
>> >> >>
>> >> >> The last few patches add device links for pcs-handle to improve boot times,
>> >> >> and add compatibles for all Lynx PCSs.
>> >> >>
>> >> >> Care has been taken to ensure backwards-compatibility. The main source
>> >> >> of this is that many PCS devices lack compatibles and get detected as
>> >> >> PHYs. To address this, pcs_get_by_fwnode_compat allows drivers to edit
>> >> >> the devicetree to add appropriate compatibles.
>> >> >
>> >> > I don't dive into your patch series and I don't know if you have heard about it
>> >> > but Christian Marangi is currently working on fwnode for PCS:
>> >> > https://lore.kernel.org/netdev/20250406221423.9723-1-ansuelsmth@gmail.com
>> >> >
>> >> > Maybe you should sync with him!
>> >>
>> >> I saw that series and made some comments. He is CC'd on this one.
>> >>
>> >> I think this approach has two advantages:
>> >>
>> >> - It completely solves the problem of the PCS being unregistered while the netdev
>> >> (or whatever) is up
>> >> - I have designed the interface to make it easy to convert existing
>> >> drivers that may not be able to use the "standard" probing process
>> >> (because they have to support other devicetree structures for
>> >> backwards-compatibility).
>> >>
>> >
>> > I notice this and it's my fault for taking too long to post v2 of the PCS patch.
>> > There was also this idea of entering the wrapper hell but I scrapped that early
>> > as I really feel it's a workaround to the current problem present for
>> > PCS handling.
>>
>> It's no workaround. The fundamental problem is that drivers can become
>> unbound at any time, and we cannot make consumers drop their references.
>> Every subsystem must deal with this reality, or suffer from
>> user-after-free bugs. See [1-3] for discussion of this problem in
>> relation to PCSs and PHYs, and [4] for more discussion of my approach.
>>
>> [1] https://lore.kernel.org/netdev/YV7Kp2k8VvN7J0fY@shell.armlinux.org.uk/
>> [2] https://lore.kernel.org/netdev/20220816163701.1578850-1-sean.anderson@seco.com/
>> [3] https://lore.kernel.org/netdev/9747f8ef-66b3-0870-cbc0-c1783896b30d@seco.com/
>> [3] https://lpc.events/event/17/contributions/1627/
>>
>> > And the real problem IMHO is that currently PCS handling is fragile and with too
>> > many assumptions. With Daniel we also discussed backwards-compatibility.
>> > (mainly needed for mt7621 and mt7986 (for mediatek side those are the 2
>> > that slipped in before it was correctly complained that things were
>> > taking a bad path)
>> >
>> > We feel v2 permits correct support of old implementations.
>> > The ""legacy"" implementation pose the assumption that PCS is never removed
>> > (unless the MAC driver is removed)
>> > That fits v2 where a MAC has to initially provide a list of PCS to
>> > phylink instance.
>>
>> And what happens when the driver is unbound from the device and suddenly
>> a PCS on that list is free'd memory but is in active use by a netdev?
>>
>
> driver bug for not correctly implementing the removal task.
>
> The approach is remove as provider and call phylink removal phase
> under rtnl lock.
> We tested this with unbind, that is actually the main problem we are
> trying to address
> and works correctly.
OK, so this is a different approach since your last submission. Please
CC me on your series.
- Fundamentally this is going to make backwards compatibility very
difficult, since your approach cannot work with mac_select_pcs. How
are you going to handle the case of MAC-internal PCSs? Are you going
to make them create a swnode and bind to it just to create a PCS for
e.g. MMIO registers? And how is the MAC supposed to know how to select
the PCS? From what I can tell you don't even notify the MAC about
which PCS it's using.
I considered an approach like this, where the phylink would be in the
driver's seat (so to speak), but I decided not to persue it due to
the problems listed above. A lot of PCSs are tightly-integrated with
their MACs, so it does not make sense to introduce this little
coupling. I think it is better to let the MAC select the PCS e.g.
based on the phy interface. This tends to be a few lines of code for
the MAC and saves so much complexity in phylink.
I think you should try doing the macb and lynx conversions for your
approach. It will make the above problems obvious.
- Your approach is very intrusive. There are lots of changes all over
phylink across several patches and it is hard to verify all the
assumptions. Whereas a wrapper keeps everything contained to one file,
and most of the functions can be evaluated independently.
--Sean
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [RFC net-next PATCH 00/13] Add PCS core support
2025-04-07 17:25 ` Daniel Golle
2025-04-07 17:40 ` Sean Anderson
@ 2025-04-08 15:17 ` Sean Anderson
1 sibling, 0 replies; 21+ messages in thread
From: Sean Anderson @ 2025-04-08 15:17 UTC (permalink / raw)
To: Daniel Golle, Christian Marangi (Ansuel)
Cc: Kory Maincent, netdev, Andrew Lunn, David S . Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Russell King,
linux-kernel, upstream, Heiner Kallweit, Alexandre Belloni,
Alexandre Torgue, Christophe Leroy, Clark Wang, Claudiu Beznea,
Claudiu Manoil, Conor Dooley, Ioana Ciornei, Jonathan Corbet,
Joyce Ooi, Krzysztof Kozlowski, Krzysztof Kozlowski, Li Yang,
Madalin Bucur, Madhavan Srinivasan, Maxime Coquelin,
Michael Ellerman, Michal Simek, Naveen N Rao, Nicholas Piggin,
Nicolas Ferre, Radhey Shyam Pandey, Rob Herring, Rob Herring,
Robert Hancock, Saravana Kannan, Shawn Guo, UNGLinuxDriver,
Vladimir Oltean, Wei Fang, devicetree, imx, linux-arm-kernel,
linux-doc, linux-stm32, linuxppc-dev
On 4/7/25 13:25, Daniel Golle wrote:
> On Mon, Apr 07, 2025 at 07:21:38PM +0200, Christian Marangi (Ansuel) wrote:
>> Il giorno lun 7 apr 2025 alle ore 19:00 Sean Anderson
>> > I agree that a "cells" approach would require this, but
>> >
>> > - There are no in-tree examples of where this is necessary
>> > - I think this would be easy to add when necessary
>> >
>>
>> There are no in-tree cause only now we are starting to support
>> complex configuration with multiple PCS placed outside the MAC.
>>
>> I feel it's better to define a standard API for them now before
>> we permit even more MAC driver to implement custom property
>> and have to address tons of workaround for compatibility.
>
> Qualcomm's PCS driver will require offering multiple phylink_pcs by a
> single device/of_node. So while it's true that there is currently no
> in-tree user for that, that very user is already knocking on our doors.
>
> See
> https://patchwork.kernel.org/project/netdevbpf/list/?series=931658&state=*
OK, but you have separate nodes for each PCS? So maybe the best thing is to
allow customizing the fwnode? E.g. something like
pcs_register_fwnode(struct device *dev, struct phylink_pcs *pcs, struct fwnode_handle *fwnode)
--Sean
^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2025-04-08 15:18 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-03 18:18 [RFC net-next PATCH 00/13] Add PCS core support Sean Anderson
2025-04-03 18:18 ` [RFC net-next PATCH 01/13] dt-bindings: net: Add binding for Xilinx PCS Sean Anderson
2025-04-04 10:37 ` Krzysztof Kozlowski
2025-04-04 10:39 ` Krzysztof Kozlowski
2025-04-04 15:12 ` Sean Anderson
2025-04-04 15:19 ` Sean Anderson
2025-04-03 18:27 ` [RFC net-next PATCH 11/13] of: property: Add device link support for PCS Sean Anderson
2025-04-03 18:32 ` Saravana Kannan
2025-04-03 19:04 ` Sean Anderson
2025-04-03 18:28 ` [RFC net-next PATCH 12/13] arm64: dts: Add compatible strings for Lynx PCSs Sean Anderson
2025-04-03 18:30 ` [RFC net-next PATCH 13/13] powerpc: " Sean Anderson
2025-04-07 16:27 ` [RFC net-next PATCH 00/13] Add PCS core support Kory Maincent
2025-04-07 16:33 ` Sean Anderson
2025-04-07 16:46 ` Christian Marangi (Ansuel)
2025-04-07 17:00 ` Sean Anderson
2025-04-07 17:21 ` Christian Marangi (Ansuel)
2025-04-07 17:25 ` Daniel Golle
2025-04-07 17:40 ` Sean Anderson
2025-04-08 15:17 ` Sean Anderson
2025-04-07 18:06 ` Sean Anderson
2025-04-07 16:51 ` Kory Maincent
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).