* [PATCH 0/5] Add GMAC support for S32 SoC family @ 2022-10-31 10:10 Chester Lin 2022-10-31 10:10 ` [PATCH 1/5] dt-bindings: net: snps, dwmac: add NXP S32CC support Chester Lin 2022-10-31 10:10 ` [PATCH 2/5] dt-bindings: net: add schema for NXP S32CC dwmac glue driver Chester Lin 0 siblings, 2 replies; 16+ messages in thread From: Chester Lin @ 2022-10-31 10:10 UTC (permalink / raw) To: Giuseppe Cavallaro, Alexandre Torgue, Jose Abreu, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Rob Herring, Krzysztof Kozlowski, Jan Petrous, Ondrej Spacek, Ghennadi Procopciuc Cc: Chester Lin, netdev, s32, devicetree, linux-kernel, linux-arm-kernel, Andreas Färber, Matthias Brugger Hello, Here I want to introduce a new patch series, which aims to support GMAC functions on S32 SoCs, such as S32G2. This series is originally from NXP's implementation on CodeAurora[1] and it will be required by upstream kernel to configure platform settings at the DWMAC glue layer before activating the DWMAC core on different S32G boards. In this patchset I also introduce more register fields needed by S32 SoCs, such as higher CSR clock ranges and cache coherency settings. For more information please see NXP's GMACSUBSYS Reference Manual[2]. Currently, the whole architecture relies on FDTs offered by ATF[3] on CodeAurora to keep the flexibility of handling multiple S32 platforms since now S32 clks can be triggered via the ARM SCMI clock protocol and clk IDs/ settings can vary according to different board designs. To ensure that the driver can work properly, the dt-binding schemas in this patchset is still required as a reference. Thanks, Chester [1] https://source.codeaurora.org/external/autobsps32/linux/tree/drivers/net/ethernet/stmicro/stmmac?h=bsp34.0-5.10.120-rt [2] https://www.nxp.com/webapp/Download?colCode=GMACSUBSYSRM [3] https://source.codeaurora.org/external/autobsps32/arm-trusted-firmware/tag/?h=bsp34.0-2.5 Chester Lin (5): dt-bindings: net: snps, dwmac: add NXP S32CC support dt-bindings: net: add schema for NXP S32CC dwmac glue driver net: stmmac: Add CSR clock 500Mhz/800Mhz support net: stmmac: Add AXI4 ACE control support net: stmmac: Add NXP S32 SoC family support .../bindings/net/nxp,s32cc-dwmac.yaml | 145 ++++++++ .../devicetree/bindings/net/snps,dwmac.yaml | 5 +- drivers/net/ethernet/stmicro/stmmac/Kconfig | 13 + drivers/net/ethernet/stmicro/stmmac/Makefile | 1 + drivers/net/ethernet/stmicro/stmmac/common.h | 2 + .../net/ethernet/stmicro/stmmac/dwmac-s32cc.c | 318 ++++++++++++++++++ .../net/ethernet/stmicro/stmmac/dwmac4_dma.c | 10 + .../net/ethernet/stmicro/stmmac/dwmac4_dma.h | 4 +- drivers/net/ethernet/stmicro/stmmac/hwif.h | 5 + .../net/ethernet/stmicro/stmmac/stmmac_main.c | 7 + include/linux/stmmac.h | 9 + 11 files changed, 516 insertions(+), 3 deletions(-) create mode 100644 Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwmac-s32cc.c -- 2.37.3 ^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 1/5] dt-bindings: net: snps, dwmac: add NXP S32CC support 2022-10-31 10:10 [PATCH 0/5] Add GMAC support for S32 SoC family Chester Lin @ 2022-10-31 10:10 ` Chester Lin 2022-10-31 10:10 ` [PATCH 2/5] dt-bindings: net: add schema for NXP S32CC dwmac glue driver Chester Lin 1 sibling, 0 replies; 16+ messages in thread From: Chester Lin @ 2022-10-31 10:10 UTC (permalink / raw) To: Alexandre Torgue, Giuseppe Cavallaro, Jose Abreu, Rob Herring, Krzysztof Kozlowski Cc: Chester Lin, netdev, s32, devicetree, linux-kernel, linux-arm-kernel, Andreas Färber, Matthias Brugger, Jan Petrous Add a new compatible string for NXP S32CC DWMAC glue driver. The maxItems of clock and clock-names need be increased because S32CC has up to 11 clocks for its DWMAC. Signed-off-by: Chester Lin <clin@suse.com> --- Documentation/devicetree/bindings/net/snps,dwmac.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml index 13b984076af5..c174d173591e 100644 --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml @@ -65,6 +65,7 @@ properties: - ingenic,x2000-mac - loongson,ls2k-dwmac - loongson,ls7a-dwmac + - nxp,s32cc-dwmac - renesas,r9a06g032-gmac - renesas,rzn1-gmac - rockchip,px30-gmac @@ -110,7 +111,7 @@ properties: clocks: minItems: 1 - maxItems: 8 + maxItems: 11 additionalItems: true items: - description: GMAC main clock @@ -122,7 +123,7 @@ properties: clock-names: minItems: 1 - maxItems: 8 + maxItems: 11 additionalItems: true contains: enum: -- 2.37.3 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH 2/5] dt-bindings: net: add schema for NXP S32CC dwmac glue driver 2022-10-31 10:10 [PATCH 0/5] Add GMAC support for S32 SoC family Chester Lin 2022-10-31 10:10 ` [PATCH 1/5] dt-bindings: net: snps, dwmac: add NXP S32CC support Chester Lin @ 2022-10-31 10:10 ` Chester Lin 2022-11-02 15:55 ` Rob Herring 1 sibling, 1 reply; 16+ messages in thread From: Chester Lin @ 2022-10-31 10:10 UTC (permalink / raw) To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Rob Herring, Krzysztof Kozlowski, Jan Petrous Cc: Chester Lin, netdev, s32, devicetree, linux-kernel, linux-arm-kernel, Andreas Färber, Matthias Brugger Add the DT schema for the DWMAC Ethernet controller on NXP S32 Common Chassis. Signed-off-by: Jan Petrous <jan.petrous@nxp.com> Signed-off-by: Chester Lin <clin@suse.com> --- .../bindings/net/nxp,s32cc-dwmac.yaml | 145 ++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml diff --git a/Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml b/Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml new file mode 100644 index 000000000000..f6b8486f9d42 --- /dev/null +++ b/Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml @@ -0,0 +1,145 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +# Copyright 2021-2022 NXP +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/net/nxp,s32cc-dwmac.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" + +title: NXP S32CC DWMAC Ethernet controller + +maintainers: + - Jan Petrous <jan.petrous@nxp.com> + - Chester Lin <clin@suse.com> + +select: + properties: + compatible: + contains: + enum: + - nxp,s32cc-dwmac + required: + - compatible + +allOf: + - $ref: "snps,dwmac.yaml#" + +properties: + compatible: + contains: + enum: + - nxp,s32cc-dwmac + + reg: + items: + - description: Main GMAC registers + - description: S32 MAC control registers + + dma-coherent: + description: + Declares GMAC device as DMA coherent + + clocks: + items: + - description: Main GMAC clock + - description: Peripheral registers clock + - description: Transmit SGMII clock + - description: Transmit RGMII clock + - description: Transmit RMII clock + - description: Transmit MII clock + - description: Receive SGMII clock + - description: Receive RGMII clock + - description: Receive RMII clock + - description: Receive MII clock + - description: + PTP reference clock. This clock is used for programming the + Timestamp Addend Register. If not passed then the system + clock will be used. + + clock-names: + items: + - const: stmmaceth + - const: pclk + - const: tx_sgmii + - const: tx_rgmii + - const: tx_rmii + - const: tx_mii + - const: rx_sgmii + - const: rx_rgmii + - const: rx_rmii + - const: rx_mii + - const: ptp_ref + + tx-fifo-depth: + const: 20480 + + rx-fifo-depth: + const: 20480 + +required: + - compatible + - reg + - tx-fifo-depth + - rx-fifo-depth + - clocks + - clock-names + +additionalProperties: true + +examples: + - | + #include <dt-bindings/interrupt-controller/arm-gic.h> + #include <dt-bindings/interrupt-controller/irq.h> + + #define S32GEN1_SCMI_CLK_GMAC0_AXI + #define S32GEN1_SCMI_CLK_GMAC0_TX_SGMII + #define S32GEN1_SCMI_CLK_GMAC0_TX_RGMII + #define S32GEN1_SCMI_CLK_GMAC0_TX_RMII + #define S32GEN1_SCMI_CLK_GMAC0_TX_MII + #define S32GEN1_SCMI_CLK_GMAC0_RX_SGMII + #define S32GEN1_SCMI_CLK_GMAC0_RX_RGMII + #define S32GEN1_SCMI_CLK_GMAC0_RX_RMII + #define S32GEN1_SCMI_CLK_GMAC0_RX_MII + #define S32GEN1_SCMI_CLK_GMAC0_TS + + soc { + #address-cells = <1>; + #size-cells = <1>; + + gmac0: ethernet@4033c000 { + compatible = "nxp,s32cc-dwmac"; + reg = <0x4033c000 0x2000>, /* gmac IP */ + <0x4007C004 0x4>; /* S32 CTRL_STS reg */ + interrupt-parent = <&gic>; + interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "macirq"; + phy-mode = "rgmii-id"; + tx-fifo-depth = <20480>; + rx-fifo-depth = <20480>; + dma-coherent; + clocks = <&clks S32GEN1_SCMI_CLK_GMAC0_AXI>, + <&clks S32GEN1_SCMI_CLK_GMAC0_AXI>, + <&clks S32GEN1_SCMI_CLK_GMAC0_TX_SGMII>, + <&clks S32GEN1_SCMI_CLK_GMAC0_TX_RGMII>, + <&clks S32GEN1_SCMI_CLK_GMAC0_TX_RMII>, + <&clks S32GEN1_SCMI_CLK_GMAC0_TX_MII>, + <&clks S32GEN1_SCMI_CLK_GMAC0_RX_SGMII>, + <&clks S32GEN1_SCMI_CLK_GMAC0_RX_RGMII>, + <&clks S32GEN1_SCMI_CLK_GMAC0_RX_RMII>, + <&clks S32GEN1_SCMI_CLK_GMAC0_RX_MII>, + <&clks S32GEN1_SCMI_CLK_GMAC0_TS>; + clock-names = "stmmaceth", "pclk", + "tx_sgmii", "tx_rgmii", "tx_rmii", "tx_mii", + "rx_sgmii", "rx_rgmii", "rx_rmii", "rx_mii", + "ptp_ref"; + + gmac0_mdio: mdio { + #address-cells = <1>; + #size-cells = <0>; + compatible = "snps,dwmac-mdio"; + + ethernet-phy@4 { + reg = <0x04>; + }; + }; + }; + }; -- 2.37.3 ^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH 2/5] dt-bindings: net: add schema for NXP S32CC dwmac glue driver 2022-10-31 10:10 ` [PATCH 2/5] dt-bindings: net: add schema for NXP S32CC dwmac glue driver Chester Lin @ 2022-11-02 15:55 ` Rob Herring 2022-11-02 17:13 ` Andreas Färber 0 siblings, 1 reply; 16+ messages in thread From: Rob Herring @ 2022-11-02 15:55 UTC (permalink / raw) To: Chester Lin Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Krzysztof Kozlowski, Jan Petrous, netdev, s32, devicetree, linux-kernel, linux-arm-kernel, Andreas Färber, Matthias Brugger On Mon, Oct 31, 2022 at 06:10:49PM +0800, Chester Lin wrote: > Add the DT schema for the DWMAC Ethernet controller on NXP S32 Common > Chassis. > > Signed-off-by: Jan Petrous <jan.petrous@nxp.com> > Signed-off-by: Chester Lin <clin@suse.com> > --- > .../bindings/net/nxp,s32cc-dwmac.yaml | 145 ++++++++++++++++++ > 1 file changed, 145 insertions(+) > create mode 100644 Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml > > diff --git a/Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml b/Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml > new file mode 100644 > index 000000000000..f6b8486f9d42 > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml > @@ -0,0 +1,145 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +# Copyright 2021-2022 NXP > +%YAML 1.2 > +--- > +$id: "http://devicetree.org/schemas/net/nxp,s32cc-dwmac.yaml#" > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > + > +title: NXP S32CC DWMAC Ethernet controller > + > +maintainers: > + - Jan Petrous <jan.petrous@nxp.com> > + - Chester Lin <clin@suse.com> > + > +select: Don't need this. > + properties: > + compatible: > + contains: > + enum: > + - nxp,s32cc-dwmac > + required: > + - compatible > + > +allOf: > + - $ref: "snps,dwmac.yaml#" > + > +properties: > + compatible: > + contains: Drop 'contains'. > + enum: > + - nxp,s32cc-dwmac > + > + reg: > + items: > + - description: Main GMAC registers > + - description: S32 MAC control registers > + > + dma-coherent: > + description: > + Declares GMAC device as DMA coherent Don't need a generic description. Just 'true' is enough. > + > + clocks: > + items: > + - description: Main GMAC clock > + - description: Peripheral registers clock > + - description: Transmit SGMII clock > + - description: Transmit RGMII clock > + - description: Transmit RMII clock > + - description: Transmit MII clock > + - description: Receive SGMII clock > + - description: Receive RGMII clock > + - description: Receive RMII clock > + - description: Receive MII clock > + - description: > + PTP reference clock. This clock is used for programming the > + Timestamp Addend Register. If not passed then the system > + clock will be used. If optional, then you need 'minItems'. > + > + clock-names: > + items: > + - const: stmmaceth > + - const: pclk > + - const: tx_sgmii > + - const: tx_rgmii > + - const: tx_rmii > + - const: tx_mii > + - const: rx_sgmii > + - const: rx_rgmii > + - const: rx_rmii > + - const: rx_mii > + - const: ptp_ref > + > + tx-fifo-depth: > + const: 20480 > + > + rx-fifo-depth: > + const: 20480 > + > +required: > + - compatible > + - reg > + - tx-fifo-depth > + - rx-fifo-depth > + - clocks > + - clock-names > + > +additionalProperties: true 'true' is only allowed for common, incomplete schemas. Should be: unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + #include <dt-bindings/interrupt-controller/irq.h> > + > + #define S32GEN1_SCMI_CLK_GMAC0_AXI > + #define S32GEN1_SCMI_CLK_GMAC0_TX_SGMII > + #define S32GEN1_SCMI_CLK_GMAC0_TX_RGMII > + #define S32GEN1_SCMI_CLK_GMAC0_TX_RMII > + #define S32GEN1_SCMI_CLK_GMAC0_TX_MII > + #define S32GEN1_SCMI_CLK_GMAC0_RX_SGMII > + #define S32GEN1_SCMI_CLK_GMAC0_RX_RGMII > + #define S32GEN1_SCMI_CLK_GMAC0_RX_RMII > + #define S32GEN1_SCMI_CLK_GMAC0_RX_MII > + #define S32GEN1_SCMI_CLK_GMAC0_TS > + > + soc { > + #address-cells = <1>; > + #size-cells = <1>; > + > + gmac0: ethernet@4033c000 { > + compatible = "nxp,s32cc-dwmac"; > + reg = <0x4033c000 0x2000>, /* gmac IP */ > + <0x4007C004 0x4>; /* S32 CTRL_STS reg */ > + interrupt-parent = <&gic>; > + interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "macirq"; > + phy-mode = "rgmii-id"; > + tx-fifo-depth = <20480>; > + rx-fifo-depth = <20480>; > + dma-coherent; > + clocks = <&clks S32GEN1_SCMI_CLK_GMAC0_AXI>, > + <&clks S32GEN1_SCMI_CLK_GMAC0_AXI>, > + <&clks S32GEN1_SCMI_CLK_GMAC0_TX_SGMII>, > + <&clks S32GEN1_SCMI_CLK_GMAC0_TX_RGMII>, > + <&clks S32GEN1_SCMI_CLK_GMAC0_TX_RMII>, > + <&clks S32GEN1_SCMI_CLK_GMAC0_TX_MII>, > + <&clks S32GEN1_SCMI_CLK_GMAC0_RX_SGMII>, > + <&clks S32GEN1_SCMI_CLK_GMAC0_RX_RGMII>, > + <&clks S32GEN1_SCMI_CLK_GMAC0_RX_RMII>, > + <&clks S32GEN1_SCMI_CLK_GMAC0_RX_MII>, > + <&clks S32GEN1_SCMI_CLK_GMAC0_TS>; > + clock-names = "stmmaceth", "pclk", > + "tx_sgmii", "tx_rgmii", "tx_rmii", "tx_mii", > + "rx_sgmii", "rx_rgmii", "rx_rmii", "rx_mii", > + "ptp_ref"; > + > + gmac0_mdio: mdio { > + #address-cells = <1>; > + #size-cells = <0>; > + compatible = "snps,dwmac-mdio"; > + > + ethernet-phy@4 { > + reg = <0x04>; > + }; > + }; > + }; > + }; > -- > 2.37.3 > > ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 2/5] dt-bindings: net: add schema for NXP S32CC dwmac glue driver 2022-11-02 15:55 ` Rob Herring @ 2022-11-02 17:13 ` Andreas Färber 2022-11-02 21:44 ` Rob Herring ` (2 more replies) 0 siblings, 3 replies; 16+ messages in thread From: Andreas Färber @ 2022-11-02 17:13 UTC (permalink / raw) To: Rob Herring, Chester Lin Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Krzysztof Kozlowski, Jan Petrous, netdev, s32, devicetree, linux-kernel, linux-arm-kernel, Matthias Brugger Hi Rob, On 02.11.22 16:55, Rob Herring wrote: > On Mon, Oct 31, 2022 at 06:10:49PM +0800, Chester Lin wrote: >> Add the DT schema for the DWMAC Ethernet controller on NXP S32 Common >> Chassis. >> >> Signed-off-by: Jan Petrous <jan.petrous@nxp.com> >> Signed-off-by: Chester Lin <clin@suse.com> >> --- >> .../bindings/net/nxp,s32cc-dwmac.yaml | 145 ++++++++++++++++++ >> 1 file changed, 145 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml >> >> diff --git a/Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml b/Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml >> new file mode 100644 >> index 000000000000..f6b8486f9d42 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml >> @@ -0,0 +1,145 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +# Copyright 2021-2022 NXP >> +%YAML 1.2 >> +--- >> +$id: "http://devicetree.org/schemas/net/nxp,s32cc-dwmac.yaml#" >> +$schema: "http://devicetree.org/meta-schemas/core.yaml#" >> + >> +title: NXP S32CC DWMAC Ethernet controller >> + >> +maintainers: >> + - Jan Petrous <jan.petrous@nxp.com> >> + - Chester Lin <clin@suse.com> [...] >> +properties: >> + compatible: >> + contains: > > Drop 'contains'. > >> + enum: >> + - nxp,s32cc-dwmac In the past you were adamant that we use concrete SoC-specific strings. Here that would mean s32g2 or s32g274 instead of s32cc (which aims to share with S32G3 IIUC). [...] >> + clocks: >> + items: >> + - description: Main GMAC clock >> + - description: Peripheral registers clock >> + - description: Transmit SGMII clock >> + - description: Transmit RGMII clock >> + - description: Transmit RMII clock >> + - description: Transmit MII clock >> + - description: Receive SGMII clock >> + - description: Receive RGMII clock >> + - description: Receive RMII clock >> + - description: Receive MII clock >> + - description: >> + PTP reference clock. This clock is used for programming the >> + Timestamp Addend Register. If not passed then the system >> + clock will be used. > > If optional, then you need 'minItems'. [snip] Do we have any precedence of bindings with *MII clocks like these? AFAIU the reason there are so many here is that there are in fact physically just five, but different parent clock configurations that SCMI does not currently expose to Linux. Thus I was raising that we may want to extend the SCMI protocol with some SET_PARENT operation that could allow us to use less input clocks here, but obviously such a standardization process will take time... What are your thoughts on how to best handle this here? Not clear to me has been whether the PHY mode can be switched at runtime (like DPAA2 on Layerscape allows for SFPs) or whether this is fixed by board design. If the latter, the two out of six SCMI IDs could get selected in TF-A, to have only physical clocks here in the binding. Regards, Andreas -- SUSE Software Solutions Germany GmbH Frankenstr. 146, 90461 Nürnberg, Germany GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman HRB 36809 (AG Nürnberg) ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 2/5] dt-bindings: net: add schema for NXP S32CC dwmac glue driver 2022-11-02 17:13 ` Andreas Färber @ 2022-11-02 21:44 ` Rob Herring 2022-11-04 10:11 ` Chester Lin 2022-11-03 22:05 ` Andrew Lunn 2022-11-09 22:55 ` Jan Petrous 2 siblings, 1 reply; 16+ messages in thread From: Rob Herring @ 2022-11-02 21:44 UTC (permalink / raw) To: Andreas Färber Cc: Chester Lin, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Krzysztof Kozlowski, Jan Petrous, netdev, s32, devicetree, linux-kernel, linux-arm-kernel, Matthias Brugger On Wed, Nov 02, 2022 at 06:13:35PM +0100, Andreas Färber wrote: > Hi Rob, > > On 02.11.22 16:55, Rob Herring wrote: > > On Mon, Oct 31, 2022 at 06:10:49PM +0800, Chester Lin wrote: > > > Add the DT schema for the DWMAC Ethernet controller on NXP S32 Common > > > Chassis. > > > > > > Signed-off-by: Jan Petrous <jan.petrous@nxp.com> > > > Signed-off-by: Chester Lin <clin@suse.com> > > > --- > > > .../bindings/net/nxp,s32cc-dwmac.yaml | 145 ++++++++++++++++++ > > > 1 file changed, 145 insertions(+) > > > create mode 100644 Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml > > > > > > diff --git a/Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml b/Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml > > > new file mode 100644 > > > index 000000000000..f6b8486f9d42 > > > --- /dev/null > > > +++ b/Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml > > > @@ -0,0 +1,145 @@ > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > +# Copyright 2021-2022 NXP > > > +%YAML 1.2 > > > +--- > > > +$id: "http://devicetree.org/schemas/net/nxp,s32cc-dwmac.yaml#" > > > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > > > + > > > +title: NXP S32CC DWMAC Ethernet controller > > > + > > > +maintainers: > > > + - Jan Petrous <jan.petrous@nxp.com> > > > + - Chester Lin <clin@suse.com> > [...] > > > +properties: > > > + compatible: > > > + contains: > > > > Drop 'contains'. > > > > > + enum: > > > + - nxp,s32cc-dwmac > > In the past you were adamant that we use concrete SoC-specific strings. Here > that would mean s32g2 or s32g274 instead of s32cc (which aims to share with > S32G3 IIUC). Yes they should be SoC specific. Really, 1 per maskset or die is fine if that level of detail is known. No need for different compatibles for different part numbers created by fused off features or package pinout differences. > [...] > > > + clocks: > > > + items: > > > + - description: Main GMAC clock > > > + - description: Peripheral registers clock > > > + - description: Transmit SGMII clock > > > + - description: Transmit RGMII clock > > > + - description: Transmit RMII clock > > > + - description: Transmit MII clock > > > + - description: Receive SGMII clock > > > + - description: Receive RGMII clock > > > + - description: Receive RMII clock > > > + - description: Receive MII clock > > > + - description: > > > + PTP reference clock. This clock is used for programming the > > > + Timestamp Addend Register. If not passed then the system > > > + clock will be used. > > > > If optional, then you need 'minItems'. > [snip] > > Do we have any precedence of bindings with *MII clocks like these? Don't know... > AFAIU the reason there are so many here is that there are in fact physically > just five, but different parent clock configurations that SCMI does not > currently expose to Linux. Thus I was raising that we may want to extend the > SCMI protocol with some SET_PARENT operation that could allow us to use less > input clocks here, but obviously such a standardization process will take > time... > > What are your thoughts on how to best handle this here? Perhaps use assigned-clocks if it is static for a board. > Not clear to me has been whether the PHY mode can be switched at runtime > (like DPAA2 on Layerscape allows for SFPs) or whether this is fixed by board > design. If the latter, the two out of six SCMI IDs could get selected in > TF-A, to have only physical clocks here in the binding. > > Regards, > Andreas ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 2/5] dt-bindings: net: add schema for NXP S32CC dwmac glue driver 2022-11-02 21:44 ` Rob Herring @ 2022-11-04 10:11 ` Chester Lin 0 siblings, 0 replies; 16+ messages in thread From: Chester Lin @ 2022-11-04 10:11 UTC (permalink / raw) To: Rob Herring Cc: Andreas Färber, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Krzysztof Kozlowski, Jan Petrous, netdev, s32, devicetree, linux-kernel, linux-arm-kernel, Matthias Brugger, Chester Lin Hi Rob and Andreas, On Wed, Nov 02, 2022 at 04:44:56PM -0500, Rob Herring wrote: > On Wed, Nov 02, 2022 at 06:13:35PM +0100, Andreas Färber wrote: > > Hi Rob, > > > > On 02.11.22 16:55, Rob Herring wrote: > > > On Mon, Oct 31, 2022 at 06:10:49PM +0800, Chester Lin wrote: > > > > Add the DT schema for the DWMAC Ethernet controller on NXP S32 Common > > > > Chassis. > > > > > > > > Signed-off-by: Jan Petrous <jan.petrous@nxp.com> > > > > Signed-off-by: Chester Lin <clin@suse.com> > > > > --- > > > > .../bindings/net/nxp,s32cc-dwmac.yaml | 145 ++++++++++++++++++ > > > > 1 file changed, 145 insertions(+) > > > > create mode 100644 Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml > > > > > > > > diff --git a/Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml b/Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml > > > > new file mode 100644 > > > > index 000000000000..f6b8486f9d42 > > > > --- /dev/null > > > > +++ b/Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml > > > > @@ -0,0 +1,145 @@ > > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > > +# Copyright 2021-2022 NXP > > > > +%YAML 1.2 > > > > +--- > > > > +$id: "http://devicetree.org/schemas/net/nxp,s32cc-dwmac.yaml#" > > > > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > > > > + > > > > +title: NXP S32CC DWMAC Ethernet controller > > > > + > > > > +maintainers: > > > > + - Jan Petrous <jan.petrous@nxp.com> > > > > + - Chester Lin <clin@suse.com> > > [...] > > > > +properties: > > > > + compatible: > > > > + contains: > > > > > > Drop 'contains'. > > > > > > > + enum: > > > > + - nxp,s32cc-dwmac > > > > In the past you were adamant that we use concrete SoC-specific strings. Here > > that would mean s32g2 or s32g274 instead of s32cc (which aims to share with > > S32G3 IIUC). > > Yes they should be SoC specific. Really, 1 per maskset or die is fine if > that level of detail is known. No need for different compatibles for > different part numbers created by fused off features or package pinout > differences. > If I understand correctly from NXP, the GMAC0 belongs to a common hardware sub-architecture called "S32 Common Chassis", which is a common IP set applied in many S32 SoC series, such as S32G2/G3 and S32R45. Therefore this binding is not specifically for S32G2 but it supports all S32 SoC series who adopt S32CC sub-arch if they could all be upstreamed in the future. Logically S32G2 and S32R45 have the same subset *S32CC* but it doesn't mean that S32G2 and S32R45 are derived from each other. Regards, Chester > > [...] > > > > + clocks: > > > > + items: > > > > + - description: Main GMAC clock > > > > + - description: Peripheral registers clock > > > > + - description: Transmit SGMII clock > > > > + - description: Transmit RGMII clock > > > > + - description: Transmit RMII clock > > > > + - description: Transmit MII clock > > > > + - description: Receive SGMII clock > > > > + - description: Receive RGMII clock > > > > + - description: Receive RMII clock > > > > + - description: Receive MII clock > > > > + - description: > > > > + PTP reference clock. This clock is used for programming the > > > > + Timestamp Addend Register. If not passed then the system > > > > + clock will be used. > > > > > > If optional, then you need 'minItems'. > > [snip] > > > > Do we have any precedence of bindings with *MII clocks like these? > > Don't know... > > > AFAIU the reason there are so many here is that there are in fact physically > > just five, but different parent clock configurations that SCMI does not > > currently expose to Linux. Thus I was raising that we may want to extend the > > SCMI protocol with some SET_PARENT operation that could allow us to use less > > input clocks here, but obviously such a standardization process will take > > time... > > > > What are your thoughts on how to best handle this here? > > Perhaps use assigned-clocks if it is static for a board. > > > Not clear to me has been whether the PHY mode can be switched at runtime > > (like DPAA2 on Layerscape allows for SFPs) or whether this is fixed by board > > design. If the latter, the two out of six SCMI IDs could get selected in > > TF-A, to have only physical clocks here in the binding. > > > > Regards, > > Andreas ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 2/5] dt-bindings: net: add schema for NXP S32CC dwmac glue driver 2022-11-02 17:13 ` Andreas Färber 2022-11-02 21:44 ` Rob Herring @ 2022-11-03 22:05 ` Andrew Lunn 2022-11-04 11:39 ` Chester Lin 2022-11-09 22:55 ` Jan Petrous 2 siblings, 1 reply; 16+ messages in thread From: Andrew Lunn @ 2022-11-03 22:05 UTC (permalink / raw) To: Andreas Färber Cc: Rob Herring, Chester Lin, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Krzysztof Kozlowski, Jan Petrous, netdev, s32, devicetree, linux-kernel, linux-arm-kernel, Matthias Brugger > > > + - description: Main GMAC clock > > > + - description: Peripheral registers clock > > > + - description: Transmit SGMII clock > > > + - description: Transmit RGMII clock > > > + - description: Transmit RMII clock > > > + - description: Transmit MII clock > > > + - description: Receive SGMII clock > > > + - description: Receive RGMII clock > > > + - description: Receive RMII clock > > > + - description: Receive MII clock > > > + - description: > > > + PTP reference clock. This clock is used for programming the > > > + Timestamp Addend Register. If not passed then the system > > > + clock will be used. > Not clear to me has been whether the PHY mode can be switched at runtime > (like DPAA2 on Layerscape allows for SFPs) or whether this is fixed by board > design. Does the hardware support 1000BaseX? Often the hardware implementing SGMII can also do 1000BaseX, since SGMII is an extended/hacked up 1000BaseX. If you have an SFP connected to the SERDES, a fibre module will want 1000BaseX and a copper module will want SGMII. phylink will tell you what phy-mode you need to use depending on what module is in the socket. This however might be a mute point, since both of these are probably using the SGMII clocks. Of the other MII modes listed, it is very unlikely a runtime swap will occur. Andrew ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 2/5] dt-bindings: net: add schema for NXP S32CC dwmac glue driver 2022-11-03 22:05 ` Andrew Lunn @ 2022-11-04 11:39 ` Chester Lin 2022-11-04 13:30 ` Andrew Lunn 2022-11-09 22:55 ` [EXT] " Jan Petrous 0 siblings, 2 replies; 16+ messages in thread From: Chester Lin @ 2022-11-04 11:39 UTC (permalink / raw) To: Andrew Lunn Cc: Andreas Färber, Rob Herring, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Krzysztof Kozlowski, Jan Petrous, netdev, s32, devicetree, linux-kernel, linux-arm-kernel, Matthias Brugger, Chester Lin Hi Andrew and Andreas, On Thu, Nov 03, 2022 at 11:05:30PM +0100, Andrew Lunn wrote: > > > > + - description: Main GMAC clock > > > > + - description: Peripheral registers clock > > > > + - description: Transmit SGMII clock > > > > + - description: Transmit RGMII clock > > > > + - description: Transmit RMII clock > > > > + - description: Transmit MII clock > > > > + - description: Receive SGMII clock > > > > + - description: Receive RGMII clock > > > > + - description: Receive RMII clock > > > > + - description: Receive MII clock > > > > + - description: > > > > + PTP reference clock. This clock is used for programming the > > > > + Timestamp Addend Register. If not passed then the system > > > > + clock will be used. > > > Not clear to me has been whether the PHY mode can be switched at runtime > > (like DPAA2 on Layerscape allows for SFPs) or whether this is fixed by board > > design. > > Does the hardware support 1000BaseX? Often the hardware implementing > SGMII can also do 1000BaseX, since SGMII is an extended/hacked up > 1000BaseX. > > If you have an SFP connected to the SERDES, a fibre module will want > 1000BaseX and a copper module will want SGMII. phylink will tell you > what phy-mode you need to use depending on what module is in the > socket. This however might be a mute point, since both of these are > probably using the SGMII clocks. > > Of the other MII modes listed, it is very unlikely a runtime swap will > occur. > > Andrew Here I just focus on GMAC since there are other LAN interfaces that S32 family uses [e.g. PFE]. According to the public GMACSUBSYS ref manual rev2[1] provided on NXP website, theoretically GMAC can run SGMII in 1000Mbps and 2500Mbps so I assume that supporting 1000BASE-X could be achievable. I'm not sure if any S32 board variant might have SFP ports but RJ-45 [1000BASE-T] should be the major type used on S32G-EVB and S32G-RDB2. @NXP, please feel free to correct me if anything wrong. Thanks, Chester [1] https://www.nxp.com/webapp/Download?colCode=GMACSUBSYSRM -> Membership subscription is required although it's free IIRC. ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 2/5] dt-bindings: net: add schema for NXP S32CC dwmac glue driver 2022-11-04 11:39 ` Chester Lin @ 2022-11-04 13:30 ` Andrew Lunn 2022-11-09 8:09 ` Chester Lin 2022-11-09 22:55 ` [EXT] " Jan Petrous 1 sibling, 1 reply; 16+ messages in thread From: Andrew Lunn @ 2022-11-04 13:30 UTC (permalink / raw) To: Chester Lin Cc: Andreas Färber, Rob Herring, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Krzysztof Kozlowski, Jan Petrous, netdev, s32, devicetree, linux-kernel, linux-arm-kernel, Matthias Brugger > Here I just focus on GMAC since there are other LAN interfaces that S32 family > uses [e.g. PFE]. According to the public GMACSUBSYS ref manual rev2[1] provided > on NXP website, theoretically GMAC can run SGMII in 1000Mbps and 2500Mbps so I > assume that supporting 1000BASE-X could be achievable. I'm not sure if any S32 > board variant might have SFP ports but RJ-45 [1000BASE-T] should be the major > type used on S32G-EVB and S32G-RDB2. SGMII at 2500Mbps does not exist. Lots of people get this wrong. It will be 2500Base-X. Does the clock need to change in order to support 2500Base-X? If i understand you correctly, Linux does not control the clocks, and so cannot change the clocks? So that probably means you cannot actually support 2500Base-X? Once you have Linux actually controlling the hardware, you can then make use of an SFP or a copper PHY which supports 2.5G. The PHY will swap its host side between SGMII and 2500Base-X depending on what the line side negotiates, 1000Base-T or 2500Base-T. The MAC driver then needs to change its configuration to suite. Andrew ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 2/5] dt-bindings: net: add schema for NXP S32CC dwmac glue driver 2022-11-04 13:30 ` Andrew Lunn @ 2022-11-09 8:09 ` Chester Lin 0 siblings, 0 replies; 16+ messages in thread From: Chester Lin @ 2022-11-09 8:09 UTC (permalink / raw) To: Andrew Lunn Cc: Andreas Färber, Rob Herring, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Krzysztof Kozlowski, Jan Petrous, netdev, s32, devicetree, linux-kernel, linux-arm-kernel, Matthias Brugger, Chester Lin Hi Andrew, On Fri, Nov 04, 2022 at 02:30:11PM +0100, Andrew Lunn wrote: > > Here I just focus on GMAC since there are other LAN interfaces that S32 family > > uses [e.g. PFE]. According to the public GMACSUBSYS ref manual rev2[1] provided > > on NXP website, theoretically GMAC can run SGMII in 1000Mbps and 2500Mbps so I > > assume that supporting 1000BASE-X could be achievable. I'm not sure if any S32 > > board variant might have SFP ports but RJ-45 [1000BASE-T] should be the major > > type used on S32G-EVB and S32G-RDB2. > > SGMII at 2500Mbps does not exist. Lots of people get this wrong. It > will be 2500Base-X. > Thanks for your correction. > Does the clock need to change in order to support 2500Base-X? If i Since I'm not a hardware designer from NXP and I can't find any board that S32G2 CPUs could integrate SFP, so I am not able to tell how the clock could be configured while supporting 2500Base-X. > understand you correctly, Linux does not control the clocks, and so > cannot change the clocks? So that probably means you cannot actually To be more precise, the SCMI clock protocol in ATF [ARM Trusted Firmware] doesn't design any interface to get/set parents of a clock so that re-parenting clocks via the SCMI clk driver [clk-scmi.c] in Linux Kernel is impossible for this case. That means, if any board design allows run-time swap on different phys, the dedicated clks which represent each phy-mode are required in order to trigger clock re-parenting in ATF since different phy connections would need different clock sources. > support 2500Base-X? Once you have Linux actually controlling the > hardware, you can then make use of an SFP or a copper PHY which > supports 2.5G. The PHY will swap its host side between SGMII and > 2500Base-X depending on what the line side negotiates, 1000Base-T or > 2500Base-T. The MAC driver then needs to change its configuration to > suite. > > Andrew ^ permalink raw reply [flat|nested] 16+ messages in thread
* RE: [EXT] Re: [PATCH 2/5] dt-bindings: net: add schema for NXP S32CC dwmac glue driver 2022-11-04 11:39 ` Chester Lin 2022-11-04 13:30 ` Andrew Lunn @ 2022-11-09 22:55 ` Jan Petrous 2022-11-09 23:00 ` Andrew Lunn 1 sibling, 1 reply; 16+ messages in thread From: Jan Petrous @ 2022-11-09 22:55 UTC (permalink / raw) To: Chester Lin, Andrew Lunn Cc: Andreas Färber, Rob Herring, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Krzysztof Kozlowski, netdev@vger.kernel.org, dl-S32, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Matthias Brugger Hi Chester, > Hi Andrew and Andreas, > > On Thu, Nov 03, 2022 at 11:05:30PM +0100, Andrew Lunn wrote: > > > > > + - description: Main GMAC clock > > > > > + - description: Peripheral registers clock > > > > > + - description: Transmit SGMII clock > > > > > + - description: Transmit RGMII clock > > > > > + - description: Transmit RMII clock > > > > > + - description: Transmit MII clock > > > > > + - description: Receive SGMII clock > > > > > + - description: Receive RGMII clock > > > > > + - description: Receive RMII clock > > > > > + - description: Receive MII clock > > > > > + - description: > > > > > + PTP reference clock. This clock is used for programming the > > > > > + Timestamp Addend Register. If not passed then the system > > > > > + clock will be used. > > > > > Not clear to me has been whether the PHY mode can be switched at > runtime > > > (like DPAA2 on Layerscape allows for SFPs) or whether this is fixed by > board > > > design. > > > > Does the hardware support 1000BaseX? Often the hardware implementing > > SGMII can also do 1000BaseX, since SGMII is an extended/hacked up > > 1000BaseX. > > > > If you have an SFP connected to the SERDES, a fibre module will want > > 1000BaseX and a copper module will want SGMII. phylink will tell you > > what phy-mode you need to use depending on what module is in the > > socket. This however might be a mute point, since both of these are > > probably using the SGMII clocks. > > > > Of the other MII modes listed, it is very unlikely a runtime swap will > > occur. > > > > Andrew > > Here I just focus on GMAC since there are other LAN interfaces that S32 > family > uses [e.g. PFE]. According to the public GMACSUBSYS ref manual rev2[1] > provided > on NXP website, theoretically GMAC can run SGMII in 1000Mbps and > 2500Mbps so I > assume that supporting 1000BASE-X could be achievable. I'm not sure if any > S32 > board variant might have SFP ports but RJ-45 [1000BASE-T] should be the > major > type used on S32G-EVB and S32G-RDB2. > > @NXP, please feel free to correct me if anything wrong. > NXP eval boards (EVB or RDB) have also 2.5G PHYs, so together with SerDes driver we support 100M/1G/2.5G on such copper PHYs. /Jan -- NXP Czechia, AP Ethernet ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [EXT] Re: [PATCH 2/5] dt-bindings: net: add schema for NXP S32CC dwmac glue driver 2022-11-09 22:55 ` [EXT] " Jan Petrous @ 2022-11-09 23:00 ` Andrew Lunn 2022-11-10 8:51 ` Jan Petrous 0 siblings, 1 reply; 16+ messages in thread From: Andrew Lunn @ 2022-11-09 23:00 UTC (permalink / raw) To: Jan Petrous Cc: Chester Lin, Andreas Färber, Rob Herring, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Krzysztof Kozlowski, netdev@vger.kernel.org, dl-S32, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Matthias Brugger > > Here I just focus on GMAC since there are other LAN interfaces that S32 > > family > > uses [e.g. PFE]. According to the public GMACSUBSYS ref manual rev2[1] > > provided > > on NXP website, theoretically GMAC can run SGMII in 1000Mbps and > > 2500Mbps so I > > assume that supporting 1000BASE-X could be achievable. I'm not sure if any > > S32 > > board variant might have SFP ports but RJ-45 [1000BASE-T] should be the > > major > > type used on S32G-EVB and S32G-RDB2. > > > > @NXP, please feel free to correct me if anything wrong. > > > > NXP eval boards (EVB or RDB) have also 2.5G PHYs, so together with SerDes > driver we support 100M/1G/2.5G on such copper PHYs. Hi Jan Does the SERDES clock need to change when going between 1000BaseX and 2500BaseX? If so, it sounds like Linux not having control of that clock is going to limit what can be supported. Andrew ^ permalink raw reply [flat|nested] 16+ messages in thread
* RE: [EXT] Re: [PATCH 2/5] dt-bindings: net: add schema for NXP S32CC dwmac glue driver 2022-11-09 23:00 ` Andrew Lunn @ 2022-11-10 8:51 ` Jan Petrous 2022-11-10 13:04 ` Andrew Lunn 0 siblings, 1 reply; 16+ messages in thread From: Jan Petrous @ 2022-11-10 8:51 UTC (permalink / raw) To: Andrew Lunn Cc: Chester Lin, Andreas Färber, Rob Herring, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Krzysztof Kozlowski, netdev@vger.kernel.org, dl-S32, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Matthias Brugger Hi Andrew, > > > Here I just focus on GMAC since there are other LAN interfaces that S32 > > > family > > > uses [e.g. PFE]. According to the public GMACSUBSYS ref manual rev2[1] > > > provided > > > on NXP website, theoretically GMAC can run SGMII in 1000Mbps and > > > 2500Mbps so I > > > assume that supporting 1000BASE-X could be achievable. I'm not sure if > any > > > S32 > > > board variant might have SFP ports but RJ-45 [1000BASE-T] should be the > > > major > > > type used on S32G-EVB and S32G-RDB2. > > > > > > @NXP, please feel free to correct me if anything wrong. > > > > > > > NXP eval boards (EVB or RDB) have also 2.5G PHYs, so together with SerDes > > driver we support 100M/1G/2.5G on such copper PHYs. > > Hi Jan > > Does the SERDES clock need to change when going between 1000BaseX and > 2500BaseX? > > If so, it sounds like Linux not having control of that clock is going > to limit what can be supported. No, the SerDes clock remains the same, the change is done internally, without any necessity of clock change intervention by GMAC driver. /Jan ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [EXT] Re: [PATCH 2/5] dt-bindings: net: add schema for NXP S32CC dwmac glue driver 2022-11-10 8:51 ` Jan Petrous @ 2022-11-10 13:04 ` Andrew Lunn 0 siblings, 0 replies; 16+ messages in thread From: Andrew Lunn @ 2022-11-10 13:04 UTC (permalink / raw) To: Jan Petrous Cc: Chester Lin, Andreas Färber, Rob Herring, David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Krzysztof Kozlowski, netdev@vger.kernel.org, dl-S32, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Matthias Brugger On Thu, Nov 10, 2022 at 08:51:43AM +0000, Jan Petrous wrote: > Hi Andrew, > > > > > Here I just focus on GMAC since there are other LAN interfaces that S32 > > > > family > > > > uses [e.g. PFE]. According to the public GMACSUBSYS ref manual rev2[1] > > > > provided > > > > on NXP website, theoretically GMAC can run SGMII in 1000Mbps and > > > > 2500Mbps so I > > > > assume that supporting 1000BASE-X could be achievable. I'm not sure if > > any > > > > S32 > > > > board variant might have SFP ports but RJ-45 [1000BASE-T] should be the > > > > major > > > > type used on S32G-EVB and S32G-RDB2. > > > > > > > > @NXP, please feel free to correct me if anything wrong. > > > > > > > > > > NXP eval boards (EVB or RDB) have also 2.5G PHYs, so together with SerDes > > > driver we support 100M/1G/2.5G on such copper PHYs. > > > > Hi Jan > > > > Does the SERDES clock need to change when going between 1000BaseX and > > 2500BaseX? > > > > If so, it sounds like Linux not having control of that clock is going > > to limit what can be supported. > > No, the SerDes clock remains the same, the change is done internally, without > any necessity of clock change intervention by GMAC driver. Hi Jan Thanks for the information. So this binding should work. The only suggestion i have is that the binding does not call is SGMII clock, because it is used for more than SGMII, also 1000base-X, and 2500Base-X. So PCS clock might be better. Andrew ^ permalink raw reply [flat|nested] 16+ messages in thread
* RE: [EXT] Re: [PATCH 2/5] dt-bindings: net: add schema for NXP S32CC dwmac glue driver 2022-11-02 17:13 ` Andreas Färber 2022-11-02 21:44 ` Rob Herring 2022-11-03 22:05 ` Andrew Lunn @ 2022-11-09 22:55 ` Jan Petrous 2 siblings, 0 replies; 16+ messages in thread From: Jan Petrous @ 2022-11-09 22:55 UTC (permalink / raw) To: Andreas Färber, Rob Herring, Chester Lin Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Krzysztof Kozlowski, netdev@vger.kernel.org, dl-S32, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Matthias Brugger Hi Andreas, > Hi Rob, > > On 02.11.22 16:55, Rob Herring wrote: > > On Mon, Oct 31, 2022 at 06:10:49PM +0800, Chester Lin wrote: > >> Add the DT schema for the DWMAC Ethernet controller on NXP S32 > Common > >> Chassis. > >> > >> Signed-off-by: Jan Petrous <jan.petrous@nxp.com> > >> Signed-off-by: Chester Lin <clin@suse.com> > >> --- > >> .../bindings/net/nxp,s32cc-dwmac.yaml | 145 ++++++++++++++++++ > >> 1 file changed, 145 insertions(+) > >> create mode 100644 Documentation/devicetree/bindings/net/nxp,s32cc- > dwmac.yaml > >> > >> diff --git a/Documentation/devicetree/bindings/net/nxp,s32cc- > dwmac.yaml b/Documentation/devicetree/bindings/net/nxp,s32cc- > dwmac.yaml > >> new file mode 100644 > >> index 000000000000..f6b8486f9d42 > >> --- /dev/null > >> +++ b/Documentation/devicetree/bindings/net/nxp,s32cc-dwmac.yaml > >> @@ -0,0 +1,145 @@ > >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > >> +# Copyright 2021-2022 NXP > >> +%YAML 1.2 > >> +--- > >> +$id: [...] > >> +title: NXP S32CC DWMAC Ethernet controller > >> + > >> +maintainers: > >> + - Jan Petrous <jan.petrous@nxp.com> > >> + - Chester Lin <clin@suse.com> > [...] > >> +properties: > >> + compatible: > >> + contains: > > > > Drop 'contains'. > > > >> + enum: > >> + - nxp,s32cc-dwmac > > In the past you were adamant that we use concrete SoC-specific strings. > Here that would mean s32g2 or s32g274 instead of s32cc (which aims to > share with S32G3 IIUC). > > [...] > >> + clocks: > >> + items: > >> + - description: Main GMAC clock > >> + - description: Peripheral registers clock > >> + - description: Transmit SGMII clock > >> + - description: Transmit RGMII clock > >> + - description: Transmit RMII clock > >> + - description: Transmit MII clock > >> + - description: Receive SGMII clock > >> + - description: Receive RGMII clock > >> + - description: Receive RMII clock > >> + - description: Receive MII clock > >> + - description: > >> + PTP reference clock. This clock is used for programming the > >> + Timestamp Addend Register. If not passed then the system > >> + clock will be used. > > > > If optional, then you need 'minItems'. > [snip] > > Do we have any precedence of bindings with *MII clocks like these? > > AFAIU the reason there are so many here is that there are in fact > physically just five, but different parent clock configurations that > SCMI does not currently expose to Linux. Thus I was raising that we may Correct. The different clock names represent different configs of the same clocks. > want to extend the SCMI protocol with some SET_PARENT operation that > could allow us to use less input clocks here, but obviously such a > standardization process will take time... > > What are your thoughts on how to best handle this here? > > Not clear to me has been whether the PHY mode can be switched at runtime > (like DPAA2 on Layerscape allows for SFPs) or whether this is fixed by > board design. If the latter, the two out of six SCMI IDs could get > selected in TF-A, to have only physical clocks here in the binding. The eval board allows to use different PHYs/switches connected by RGMII or SGMII to the GMAC. Some combinations require change of board's hw switches, but not all of them. Anyway, until we get a board with SFP, the connection type can be treated as fixed (declared in DT). /Jan -- NXP Czechia, AP Ethernet ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2022-11-10 13:05 UTC | newest] Thread overview: 16+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-10-31 10:10 [PATCH 0/5] Add GMAC support for S32 SoC family Chester Lin 2022-10-31 10:10 ` [PATCH 1/5] dt-bindings: net: snps, dwmac: add NXP S32CC support Chester Lin 2022-10-31 10:10 ` [PATCH 2/5] dt-bindings: net: add schema for NXP S32CC dwmac glue driver Chester Lin 2022-11-02 15:55 ` Rob Herring 2022-11-02 17:13 ` Andreas Färber 2022-11-02 21:44 ` Rob Herring 2022-11-04 10:11 ` Chester Lin 2022-11-03 22:05 ` Andrew Lunn 2022-11-04 11:39 ` Chester Lin 2022-11-04 13:30 ` Andrew Lunn 2022-11-09 8:09 ` Chester Lin 2022-11-09 22:55 ` [EXT] " Jan Petrous 2022-11-09 23:00 ` Andrew Lunn 2022-11-10 8:51 ` Jan Petrous 2022-11-10 13:04 ` Andrew Lunn 2022-11-09 22:55 ` Jan Petrous
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).