* [PATCH v2 0/2] arm64: dts: qcom: sa8255p: add ethernet nodes
@ 2026-11-03 10:41 Bartosz Golaszewski
2026-11-03 10:41 ` [PATCH v2 1/2] arm64: dts: qcom: lemans: fix iommus SID mask for " Bartosz Golaszewski
2026-11-03 10:42 ` [PATCH v2 2/2] arm64: dts: qcom: lemans-sa8255p: add " Bartosz Golaszewski
0 siblings, 2 replies; 6+ messages in thread
From: Bartosz Golaszewski @ 2026-11-03 10:41 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Bartosz Golaszewski, Shawn Guo
Cc: linux-arm-msm, devicetree, linux-kernel, netdev,
Bartosz Golaszewski, Konrad Dybcio
This series adds the ethernet nodes for the gearvm variant of lemans and
enables them on the ride development board.
The first patch is a fix to the iommu SID mask - it was wrong all along
but only triggered a crash with recent firmware. This should be queued
for v7.4 and backported to stable branches.
The second adds the ethernet nodes for the sa8255p SoC and enables them
for the Ride platform.
This series is rebased on top of v7.4-rc1 with the necessary EMAC
changes already upstream. It depends on the series adding base support
for sa8255p and the SGMII PHY series that's pending on the list but has
been positively reviewed. Links are in the b4 tracking part.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
---
Changes in v2:
- Fix node extension ordering
- Move hard-wired serdes phy references to the gearvm .dtsi
- Rebase on top of v7.4-rc1 and v3 of Shawn's series reworking the dts
layout for lemans
- Adjust dt nodes for dropped power-domain-names property
- Drop patch 2/3 in favor of overwriting the compatible property for
the sa8255p variant
- Link to v1: https://patch.msgid.link/20261023-sa8255p-emac-dts-v1-0-a34d778ce9ac@oss.qualcomm.com
---
Bartosz Golaszewski (2):
arm64: dts: qcom: lemans: fix iommus SID mask for ethernet nodes
arm64: dts: qcom: lemans-sa8255p: add ethernet nodes
arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi | 30 ++++
arch/arm64/boot/dts/qcom/lemans-sa8255p-ride.dts | 207 +++++++++++++++++++++++
arch/arm64/boot/dts/qcom/lemans.dtsi | 4 +-
3 files changed, 239 insertions(+), 2 deletions(-)
---
base-commit: bc71431221f5ba8bb33918399552636e059c2c45
change-id: 20261022-sa8255p-emac-dts-dbc521421276
prerequisite-message-id: <20261031131042.1200862-1-shengchao.guo@oss.qualcomm.com>
prerequisite-patch-id: dc952656b431f0bf8e2411ee14f50e7884cabfa1
prerequisite-patch-id: 27868f2a4c4ab6fcc455b250f3cda1cf1c7801c9
prerequisite-patch-id: cbdb11686213f2fd1c6542194976468ca9fe3ae6
prerequisite-patch-id: a7c4d89544f217b2cf75c5350b838d55a066fa1b
prerequisite-patch-id: 7391f02c4b57ae6afb088fae3150ea215bfa594c
prerequisite-patch-id: e6683111e3daed49ad3edd4ed960fb1c47959056
prerequisite-message-id: <20261103-sa8255p-eth-phy-v18-0-b00cc2fa0404@oss.qualcomm.com>
prerequisite-patch-id: 9d06b06a2f6c91c7d71b965b8c7fcb33d5e2bcdc
prerequisite-patch-id: 0a76ec6a2e4431d679f4918b3d469c9644dd660f
Best regards,
--
Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH v2 1/2] arm64: dts: qcom: lemans: fix iommus SID mask for ethernet nodes 2026-11-03 10:41 [PATCH v2 0/2] arm64: dts: qcom: sa8255p: add ethernet nodes Bartosz Golaszewski @ 2026-11-03 10:41 ` Bartosz Golaszewski 2026-11-03 10:42 ` [PATCH v2 2/2] arm64: dts: qcom: lemans-sa8255p: add " Bartosz Golaszewski 1 sibling, 0 replies; 6+ messages in thread From: Bartosz Golaszewski @ 2026-11-03 10:41 UTC (permalink / raw) To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bartosz Golaszewski, Shawn Guo Cc: linux-arm-msm, devicetree, linux-kernel, netdev, Bartosz Golaszewski, Konrad Dybcio The iommus mask for ethernet nodes is wrong, it makes the SMMU mask 16 stream IDs per MAC. We should actually only use 8 SIDs. This has triggered a crash on sa8255p after a boot firmware update. Use the correct value of 0x7. Fixes: e952348a7cc7 ("arm64: dts: qcom: sa8775p: add a node for EMAC1") Fixes: ff499a0fbb23 ("arm64: dts: qcom: sa8775p: add the first 1Gb ethernet interface") Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com> --- arch/arm64/boot/dts/qcom/lemans.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi index 5284030fe69da9323571cf64db218ee2c7169509..915b3be65ff1302e2b05dd2034e73ec4a0970a6e 100644 --- a/arch/arm64/boot/dts/qcom/lemans.dtsi +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi @@ -4395,7 +4395,7 @@ ethernet1: ethernet@23000000 { <GIC_SPI 781 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "macirq", "sfty"; - iommus = <&apps_smmu 0x140 0xf>; + iommus = <&apps_smmu 0x140 0x7>; dma-coherent; snps,tso; @@ -4416,7 +4416,7 @@ ethernet0: ethernet@23040000 { <GIC_SPI 782 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "macirq", "sfty"; - iommus = <&apps_smmu 0x120 0xf>; + iommus = <&apps_smmu 0x120 0x7>; dma-coherent; snps,tso; -- 2.47.3 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/2] arm64: dts: qcom: lemans-sa8255p: add ethernet nodes 2026-11-03 10:41 [PATCH v2 0/2] arm64: dts: qcom: sa8255p: add ethernet nodes Bartosz Golaszewski 2026-11-03 10:41 ` [PATCH v2 1/2] arm64: dts: qcom: lemans: fix iommus SID mask for " Bartosz Golaszewski @ 2026-11-03 10:42 ` Bartosz Golaszewski 2026-11-04 10:42 ` sashiko-bot 2026-11-04 12:44 ` Shawn Guo 1 sibling, 2 replies; 6+ messages in thread From: Bartosz Golaszewski @ 2026-11-03 10:42 UTC (permalink / raw) To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bartosz Golaszewski, Shawn Guo Cc: linux-arm-msm, devicetree, linux-kernel, netdev, Bartosz Golaszewski Add the ethernet nodes along with their serdes PHY nodes for the gearvm variant of the lemans ride board. Enable scmi7 and scmi8 to serve the EMACs. Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com> --- arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi | 30 ++++ arch/arm64/boot/dts/qcom/lemans-sa8255p-ride.dts | 207 +++++++++++++++++++++++ 2 files changed, 237 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi b/arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi index 91c97a55f2787406b104650956b9a511a6a34c23..96a54f32f0eeb16dbce9802e74eec82622ecd35f 100644 --- a/arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi +++ b/arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi @@ -58,6 +58,18 @@ &cpufreq_hw { clock-names = "xo", "alternate"; }; +ðernet0 { + compatible = "qcom,sa8255p-ethqos"; + phys = <&serdes0>; + phy-names = "serdes"; +}; + +ðernet1 { + compatible = "qcom,sa8255p-ethqos"; + phys = <&serdes1>; + phy-names = "serdes"; +}; + &firmware { scmi0: scmi-0 { compatible = "qcom,scmi-smc"; @@ -3218,6 +3230,24 @@ &uart21 { "perf"; }; +&soc { + serdes0: phy@8901000 { + compatible = "qcom,sa8255p-dwmac-sgmii-phy"; + reg = <0x0 0x08901000 0x0 0xe10>; + #phy-cells = <0>; + power-domains = <&scmi7_dvfs 0>; + status = "disabled"; + }; + + serdes1: phy@8902000 { + compatible = "qcom,sa8255p-dwmac-sgmii-phy"; + reg = <0x0 0x08902000 0x0 0xe10>; + #phy-cells = <0>; + power-domains = <&scmi8_dvfs 0>; + status = "disabled"; + }; +}; + &ufs_mem_hc { compatible = "qcom,sa8255p-ufshc"; power-domains = <&scmi3_pd 0>; diff --git a/arch/arm64/boot/dts/qcom/lemans-sa8255p-ride.dts b/arch/arm64/boot/dts/qcom/lemans-sa8255p-ride.dts index 6f19064997a4b50525fdf630307b843604368645..2b3c9e90802bf89b91354039f0e6a24941fc95d5 100644 --- a/arch/arm64/boot/dts/qcom/lemans-sa8255p-ride.dts +++ b/arch/arm64/boot/dts/qcom/lemans-sa8255p-ride.dts @@ -14,6 +14,8 @@ / { compatible = "qcom,sa8255p-ride", "qcom,sa8255p"; aliases { + ethernet0 = ðernet0; + ethernet1 = ðernet1; serial0 = &uart10; serial1 = &uart4; }; @@ -101,6 +103,179 @@ trip1 { }; }; +ðernet0 { + phy-handle = <&sgmii_phy0>; + phy-mode = "2500base-x"; + + pinctrl-0 = <ðernet0_default>; + pinctrl-names = "default"; + + snps,mtl-rx-config = <&mtl_rx_setup>; + snps,mtl-tx-config = <&mtl_tx_setup>; + snps,ps-speed = <2500>; + + power-domains = <&scmi7_pd 0>, <&scmi7_pd 1>; + power-domain-names = "core", "mdio"; + + status = "okay"; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <1>; + #size-cells = <0>; + + sgmii_phy0: phy@8 { + compatible = "ethernet-phy-id31c3.1c33"; + reg = <0x8>; + device_type = "ethernet-phy"; + resets = <&scmi7_rst 0>; + reset-names = "phy"; + reset-assert-us = <11000>; + reset-deassert-us = <70000>; + }; + + sgmii_phy1: phy@0 { + compatible = "ethernet-phy-id31c3.1c33"; + reg = <0x0>; + device_type = "ethernet-phy"; + resets = <&scmi8_rst 0>; + reset-names = "phy"; + reset-assert-us = <11000>; + reset-deassert-us = <70000>; + }; + }; + + mtl_rx_setup: rx-queues-config { + snps,rx-queues-to-use = <4>; + snps,rx-sched-sp; + + queue0 { + snps,dcb-algorithm; + snps,map-to-dma-channel = <0x0>; + snps,route-up; + snps,priority = <0x1>; + }; + + queue1 { + snps,dcb-algorithm; + snps,map-to-dma-channel = <0x1>; + snps,route-ptp; + }; + + queue2 { + snps,avb-algorithm; + snps,map-to-dma-channel = <0x2>; + snps,route-avcp; + }; + + queue3 { + snps,avb-algorithm; + snps,map-to-dma-channel = <0x3>; + snps,priority = <0xc>; + }; + }; + + mtl_tx_setup: tx-queues-config { + snps,tx-queues-to-use = <4>; + + queue0 { + snps,dcb-algorithm; + }; + + queue1 { + snps,dcb-algorithm; + }; + + queue2 { + snps,avb-algorithm; + snps,send_slope = <0x1000>; + snps,idle_slope = <0x1000>; + snps,high_credit = <0x3e800>; + snps,low_credit = <0xffc18000>; + }; + + queue3 { + snps,avb-algorithm; + snps,send_slope = <0x1000>; + snps,idle_slope = <0x1000>; + snps,high_credit = <0x3e800>; + snps,low_credit = <0xffc18000>; + }; + }; +}; + +ðernet1 { + phy-mode = "2500base-x"; + phy-handle = <&sgmii_phy1>; + + snps,mtl-rx-config = <&mtl_rx_setup1>; + snps,mtl-tx-config = <&mtl_tx_setup1>; + snps,ps-speed = <2500>; + + power-domains = <&scmi8_pd 0>, <&scmi8_pd 1>; + power-domain-names = "core", "mdio"; + + status = "okay"; + + mtl_rx_setup1: rx-queues-config { + snps,rx-queues-to-use = <4>; + snps,rx-sched-sp; + + queue0 { + snps,dcb-algorithm; + snps,map-to-dma-channel = <0x0>; + snps,route-up; + snps,priority = <0x1>; + }; + + queue1 { + snps,dcb-algorithm; + snps,map-to-dma-channel = <0x1>; + snps,route-ptp; + }; + + queue2 { + snps,avb-algorithm; + snps,map-to-dma-channel = <0x2>; + snps,route-avcp; + }; + + queue3 { + snps,avb-algorithm; + snps,map-to-dma-channel = <0x3>; + snps,priority = <0xc>; + }; + }; + + mtl_tx_setup1: tx-queues-config { + snps,tx-queues-to-use = <4>; + + queue0 { + snps,dcb-algorithm; + }; + + queue1 { + snps,dcb-algorithm; + }; + + queue2 { + snps,avb-algorithm; + snps,send_slope = <0x1000>; + snps,idle_slope = <0x1000>; + snps,high_credit = <0x3e800>; + snps,low_credit = <0xffc18000>; + }; + + queue3 { + snps,avb-algorithm; + snps,send_slope = <0x1000>; + snps,idle_slope = <0x1000>; + snps,high_credit = <0x3e800>; + snps,low_credit = <0xffc18000>; + }; + }; +}; + &gpll0_board_clk { clock-frequency = <300000000>; }; @@ -145,6 +320,14 @@ &scmi6 { status = "okay"; }; +&scmi7 { + status = "okay"; +}; + +&scmi8 { + status = "okay"; +}; + &scmi11 { status = "okay"; }; @@ -162,6 +345,22 @@ &sleep_clk { }; &tlmm { + ethernet0_default: ethernet0-default-state { + ethernet0_mdc: ethernet0-mdc-pins { + pins = "gpio8"; + function = "emac0_mdc"; + drive-strength = <16>; + bias-pull-up; + }; + + ethernet0_mdio: ethernet0-mdio-pins { + pins = "gpio9"; + function = "emac0_mdio"; + drive-strength = <16>; + bias-pull-up; + }; + }; + pcie0_ep_clkreq_default: pcie0-ep-clkreq-default-state { pins = "gpio1"; function = "pcie0_clkreq"; @@ -205,6 +404,14 @@ pcie1_ep_wake_default: pcie1-ep-wake-default-state { }; }; +&serdes0 { + status = "okay"; +}; + +&serdes1 { + status = "okay"; +}; + &uart4 { status = "okay"; }; -- 2.47.3 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/2] arm64: dts: qcom: lemans-sa8255p: add ethernet nodes 2026-11-03 10:42 ` [PATCH v2 2/2] arm64: dts: qcom: lemans-sa8255p: add " Bartosz Golaszewski @ 2026-11-04 10:42 ` sashiko-bot 2026-11-04 12:44 ` Shawn Guo 1 sibling, 0 replies; 6+ messages in thread From: sashiko-bot @ 2026-11-04 10:42 UTC (permalink / raw) To: Bartosz Golaszewski; +Cc: devicetree, robh, conor+dt Thank you for your contribution! Sashiko AI review found 4 potential issue(s) to consider: - [Low] arm64: dts: qcom: lemans-gearvm: missing SCMI power-domains on ethernet nodes - [Low] arm64: dts: qcom: lemans-sa8255p-ride: non-compliant MDIO PHY nodes - [Low] arm64: dts: qcom: lemans-sa8255p: out-of-order soc and serdes nodes - [Low] arm64: dts: qcom: lemans-sa8255p-ride: invalid snps,ps-speed = <2500> -- commit 81e11e3cdbf7c26506804bb78d74a7572b18ad5a Author: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com> arm64: dts: qcom: lemans-sa8255p: add ethernet nodes This commit adds the ethernet0 and ethernet1 nodes along with their serdes PHY nodes for the gearvm variant of the lemans SA8255P Ride board, and enables scmi7 and scmi8 to serve the EMACs. > diff --git a/arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi b/arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi > index 91c97a55f2787..96a54f32f0eeb 100644 > --- a/arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi > +++ b/arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi > @@ -58,6 +58,18 @@ &cpufreq_hw { > clock-names = "xo", "alternate"; > }; > > +ðernet0 { > + compatible = "qcom,sa8255p-ethqos"; > + phys = <&serdes0>; > + phy-names = "serdes"; > +}; > + > +ðernet1 { > + compatible = "qcom,sa8255p-ethqos"; > + phys = <&serdes1>; > + phy-names = "serdes"; > +}; [Severity: Low] Should power-domains and power-domain-names for ethernet0 and ethernet1 be placed here in arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi rather than in arch/arm64/boot/dts/qcom/lemans-sa8255p-ride.dts? Documentation/devicetree/bindings/net/qcom,sa8255p-ethqos.yaml marks both power-domains and power-domain-names as required properties when compatible is set to qcom,sa8255p-ethqos. Because scmi7_pd and scmi8_pd are defined in lemans-gearvm.dtsi, and all other peripherals in lemans-gearvm.dtsi (including serdes0, serdes1, and ufs_mem_hc, as well as ethernet0 and ethernet1 in lemans-embedded.dtsi) define their SoC/VM power-domains in the DTSI file, any other board DTS including lemans-gearvm.dtsi without duplicating those properties would fail devicetree schema validation. [ ... ] > @@ -3218,6 +3230,24 @@ &uart21 { > "perf"; > }; > > +&soc { > + serdes0: phy@8901000 { > + compatible = "qcom,sa8255p-dwmac-sgmii-phy"; > + reg = <0x0 0x08901000 0x0 0xe10>; > + #phy-cells = <0>; > + power-domains = <&scmi7_dvfs 0>; > + status = "disabled"; > + }; > + > + serdes1: phy@8902000 { > + compatible = "qcom,sa8255p-dwmac-sgmii-phy"; > + reg = <0x0 0x08902000 0x0 0xe10>; > + #phy-cells = <0>; > + power-domains = <&scmi8_dvfs 0>; > + status = "disabled"; > + }; > +}; [Severity: Low] This isn't a bug, but both arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi and arch/arm64/boot/dts/qcom/lemans-sa8255p-ride.dts sort top-level label references alphabetically. In lemans-gearvm.dtsi, &soc is placed after &uart21 instead of between &scm and &spi0, and status = "disabled" in serdes0 and serdes1 is missing a preceding blank line. Similarly, in lemans-sa8255p-ride.dts, &serdes0 and &serdes1 are placed after &tlmm instead of between &scmi23 and &sleep_clk. Could these nodes be moved into alphabetical order? > diff --git a/arch/arm64/boot/dts/qcom/lemans-sa8255p-ride.dts b/arch/arm64/boot/dts/qcom/lemans-sa8255p-ride.dts > index 6f19064997a4b..2b3c9e90802bf 100644 > --- a/arch/arm64/boot/dts/qcom/lemans-sa8255p-ride.dts > +++ b/arch/arm64/boot/dts/qcom/lemans-sa8255p-ride.dts [ ... ] > @@ -101,6 +103,179 @@ trip1 { > }; > }; > > +ðernet0 { > + phy-handle = <&sgmii_phy0>; > + phy-mode = "2500base-x"; > + > + pinctrl-0 = <ðernet0_default>; > + pinctrl-names = "default"; > + > + snps,mtl-rx-config = <&mtl_rx_setup>; > + snps,mtl-tx-config = <&mtl_tx_setup>; > + snps,ps-speed = <2500>; [Severity: Low] Is snps,ps-speed = <2500> on ethernet0 and ethernet1 intended here? In drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c, stmmac_probe_config_dt() parses snps,ps-speed into plat->mac_port_sel_speed, which is only consumed by stmmac_check_pcs_mode() in drivers/net/ethernet/stmicro/stmmac/stmmac_main.c: static void stmmac_check_pcs_mode(struct stmmac_priv *priv) { int interface = priv->plat->interface; if (priv->dma_cap.pcs) { if ((interface == PHY_INTERFACE_MODE_RGMII) || (interface == PHY_INTERFACE_MODE_RGMII_ID) || (interface == PHY_INTERFACE_MODE_RGMII_RXID) || (interface == PHY_INTERFACE_MODE_RGMII_TXID)) { netdev_dbg(priv->dev, "PCS RGMII support enabled\n"); priv->hw->pcs = STMMAC_PCS_RGMII; } else if (interface == PHY_INTERFACE_MODE_SGMII) { netdev_dbg(priv->dev, "PCS SGMII support enabled\n"); priv->hw->pcs = STMMAC_PCS_SGMII; } } } When evaluated, stmmac_check_pcs_mode() only checks PHY_INTERFACE_MODE_SGMII and only accepts speeds of 10, 100, or 1000. Because ethernet0 and ethernet1 use external PHYs with phy-mode = "2500base-x", snps,ps-speed = <2500> is unused and specifies an unsupported speed value. Should snps,ps-speed be dropped from both ethernet0 and ethernet1? > + > + power-domains = <&scmi7_pd 0>, <&scmi7_pd 1>; > + power-domain-names = "core", "mdio"; > + > + status = "okay"; > + > + mdio { > + compatible = "snps,dwmac-mdio"; > + #address-cells = <1>; > + #size-cells = <0>; > + > + sgmii_phy0: phy@8 { > + compatible = "ethernet-phy-id31c3.1c33"; > + reg = <0x8>; > + device_type = "ethernet-phy"; > + resets = <&scmi7_rst 0>; > + reset-names = "phy"; > + reset-assert-us = <11000>; > + reset-deassert-us = <70000>; > + }; > + > + sgmii_phy1: phy@0 { > + compatible = "ethernet-phy-id31c3.1c33"; > + reg = <0x0>; > + device_type = "ethernet-phy"; > + resets = <&scmi8_rst 0>; > + reset-names = "phy"; > + reset-assert-us = <11000>; > + reset-deassert-us = <70000>; > + }; > + }; [Severity: Low] Will sgmii_phy0 and sgmii_phy1 under ethernet0->mdio pass make dtbs_check with this node naming and property set? Documentation/devicetree/bindings/net/ethernet-phy.yaml selects Ethernet PHY nodes via the nodename pattern ^ethernet-phy(@[a-f0-9]+)?$, while Documentation/devicetree/bindings/net/snps,dwmac.yaml references mdio.yaml# with unevaluatedProperties: false. Naming the child nodes phy@8 and phy@0 prevents ethernet-phy.yaml from matching them, leaving compatible, resets, and reset-names unevaluated against mdio.yaml. In addition, both nodes include the deprecated pre-FDT property device_type = "ethernet-phy" (which is not allowed by dtschema and is not needed by of_mdiobus_child_is_phy() in drivers/net/mdio/of_mdio.c), and unit address 8 is placed before unit address 0. Should these be renamed to ethernet-phy@0 and ethernet-phy@8, ordered by ascending unit address, and have device_type = "ethernet-phy" removed? -- Sashiko AI review · https://sashiko.dev/#/patchset/20261103-sa8255p-emac-dts-v2-0-05f9355df966@oss.qualcomm.com?part=2 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/2] arm64: dts: qcom: lemans-sa8255p: add ethernet nodes 2026-11-03 10:42 ` [PATCH v2 2/2] arm64: dts: qcom: lemans-sa8255p: add " Bartosz Golaszewski 2026-11-04 10:42 ` sashiko-bot @ 2026-11-04 12:44 ` Shawn Guo 2026-11-04 13:42 ` Bartosz Golaszewski 1 sibling, 1 reply; 6+ messages in thread From: Shawn Guo @ 2026-11-04 12:44 UTC (permalink / raw) To: Bartosz Golaszewski Cc: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Bartosz Golaszewski, linux-arm-msm, devicetree, linux-kernel, netdev On Tue, Nov 03, 2026 at 11:42:00AM +0100, Bartosz Golaszewski wrote: > Add the ethernet nodes along with their serdes PHY nodes for the gearvm > variant of the lemans ride board. Enable scmi7 and scmi8 to serve the > EMACs. > > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com> > --- > arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi | 30 ++++ > arch/arm64/boot/dts/qcom/lemans-sa8255p-ride.dts | 207 +++++++++++++++++++++++ > 2 files changed, 237 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi b/arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi > index 91c97a55f2787406b104650956b9a511a6a34c23..96a54f32f0eeb16dbce9802e74eec82622ecd35f 100644 > --- a/arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi > +++ b/arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi > @@ -58,6 +58,18 @@ &cpufreq_hw { > clock-names = "xo", "alternate"; > }; > > +ðernet0 { > + compatible = "qcom,sa8255p-ethqos"; > + phys = <&serdes0>; > + phy-names = "serdes"; > +}; > + > +ðernet1 { > + compatible = "qcom,sa8255p-ethqos"; > + phys = <&serdes1>; > + phy-names = "serdes"; > +}; > + > &firmware { > scmi0: scmi-0 { > compatible = "qcom,scmi-smc"; > @@ -3218,6 +3230,24 @@ &uart21 { > "perf"; > }; > > +&soc { > + serdes0: phy@8901000 { > + compatible = "qcom,sa8255p-dwmac-sgmii-phy"; > + reg = <0x0 0x08901000 0x0 0xe10>; > + #phy-cells = <0>; > + power-domains = <&scmi7_dvfs 0>; > + status = "disabled"; > + }; We have the serdes node for Embedded variant as well. serdes0: phy@8901000 { compatible = "qcom,sa8775p-dwmac-sgmii-phy"; reg = <0x0 0x08901000 0x0 0xe10>; clocks = <&gcc GCC_SGMI_CLKREF_EN>; clock-names = "sgmi_ref"; #phy-cells = <0>; status = "disabled"; }; Per Nord discussion with Konrad [1], I plan to move serdes nodes back to common DTSI and let variant DTSI to supplement or overwrite properties as needed. Does that make sense? Shawn [1] https://lore.kernel.org/all/ausjj6ScavYiYKWo@QCOM-aGQu4IUr3Y/ > + > + serdes1: phy@8902000 { > + compatible = "qcom,sa8255p-dwmac-sgmii-phy"; > + reg = <0x0 0x08902000 0x0 0xe10>; > + #phy-cells = <0>; > + power-domains = <&scmi8_dvfs 0>; > + status = "disabled"; > + }; > +}; > + > &ufs_mem_hc { > compatible = "qcom,sa8255p-ufshc"; > power-domains = <&scmi3_pd 0>; > diff --git a/arch/arm64/boot/dts/qcom/lemans-sa8255p-ride.dts b/arch/arm64/boot/dts/qcom/lemans-sa8255p-ride.dts > index 6f19064997a4b50525fdf630307b843604368645..2b3c9e90802bf89b91354039f0e6a24941fc95d5 100644 > --- a/arch/arm64/boot/dts/qcom/lemans-sa8255p-ride.dts > +++ b/arch/arm64/boot/dts/qcom/lemans-sa8255p-ride.dts > @@ -14,6 +14,8 @@ / { > compatible = "qcom,sa8255p-ride", "qcom,sa8255p"; > > aliases { > + ethernet0 = ðernet0; > + ethernet1 = ðernet1; > serial0 = &uart10; > serial1 = &uart4; > }; > @@ -101,6 +103,179 @@ trip1 { > }; > }; > > +ðernet0 { > + phy-handle = <&sgmii_phy0>; > + phy-mode = "2500base-x"; > + > + pinctrl-0 = <ðernet0_default>; > + pinctrl-names = "default"; > + > + snps,mtl-rx-config = <&mtl_rx_setup>; > + snps,mtl-tx-config = <&mtl_tx_setup>; > + snps,ps-speed = <2500>; > + > + power-domains = <&scmi7_pd 0>, <&scmi7_pd 1>; > + power-domain-names = "core", "mdio"; > + > + status = "okay"; > + > + mdio { > + compatible = "snps,dwmac-mdio"; > + #address-cells = <1>; > + #size-cells = <0>; > + > + sgmii_phy0: phy@8 { > + compatible = "ethernet-phy-id31c3.1c33"; > + reg = <0x8>; > + device_type = "ethernet-phy"; > + resets = <&scmi7_rst 0>; > + reset-names = "phy"; > + reset-assert-us = <11000>; > + reset-deassert-us = <70000>; > + }; > + > + sgmii_phy1: phy@0 { > + compatible = "ethernet-phy-id31c3.1c33"; > + reg = <0x0>; > + device_type = "ethernet-phy"; > + resets = <&scmi8_rst 0>; > + reset-names = "phy"; > + reset-assert-us = <11000>; > + reset-deassert-us = <70000>; > + }; > + }; > + > + mtl_rx_setup: rx-queues-config { > + snps,rx-queues-to-use = <4>; > + snps,rx-sched-sp; > + > + queue0 { > + snps,dcb-algorithm; > + snps,map-to-dma-channel = <0x0>; > + snps,route-up; > + snps,priority = <0x1>; > + }; > + > + queue1 { > + snps,dcb-algorithm; > + snps,map-to-dma-channel = <0x1>; > + snps,route-ptp; > + }; > + > + queue2 { > + snps,avb-algorithm; > + snps,map-to-dma-channel = <0x2>; > + snps,route-avcp; > + }; > + > + queue3 { > + snps,avb-algorithm; > + snps,map-to-dma-channel = <0x3>; > + snps,priority = <0xc>; > + }; > + }; > + > + mtl_tx_setup: tx-queues-config { > + snps,tx-queues-to-use = <4>; > + > + queue0 { > + snps,dcb-algorithm; > + }; > + > + queue1 { > + snps,dcb-algorithm; > + }; > + > + queue2 { > + snps,avb-algorithm; > + snps,send_slope = <0x1000>; > + snps,idle_slope = <0x1000>; > + snps,high_credit = <0x3e800>; > + snps,low_credit = <0xffc18000>; > + }; > + > + queue3 { > + snps,avb-algorithm; > + snps,send_slope = <0x1000>; > + snps,idle_slope = <0x1000>; > + snps,high_credit = <0x3e800>; > + snps,low_credit = <0xffc18000>; > + }; > + }; > +}; > + > +ðernet1 { > + phy-mode = "2500base-x"; > + phy-handle = <&sgmii_phy1>; > + > + snps,mtl-rx-config = <&mtl_rx_setup1>; > + snps,mtl-tx-config = <&mtl_tx_setup1>; > + snps,ps-speed = <2500>; > + > + power-domains = <&scmi8_pd 0>, <&scmi8_pd 1>; > + power-domain-names = "core", "mdio"; > + > + status = "okay"; > + > + mtl_rx_setup1: rx-queues-config { > + snps,rx-queues-to-use = <4>; > + snps,rx-sched-sp; > + > + queue0 { > + snps,dcb-algorithm; > + snps,map-to-dma-channel = <0x0>; > + snps,route-up; > + snps,priority = <0x1>; > + }; > + > + queue1 { > + snps,dcb-algorithm; > + snps,map-to-dma-channel = <0x1>; > + snps,route-ptp; > + }; > + > + queue2 { > + snps,avb-algorithm; > + snps,map-to-dma-channel = <0x2>; > + snps,route-avcp; > + }; > + > + queue3 { > + snps,avb-algorithm; > + snps,map-to-dma-channel = <0x3>; > + snps,priority = <0xc>; > + }; > + }; > + > + mtl_tx_setup1: tx-queues-config { > + snps,tx-queues-to-use = <4>; > + > + queue0 { > + snps,dcb-algorithm; > + }; > + > + queue1 { > + snps,dcb-algorithm; > + }; > + > + queue2 { > + snps,avb-algorithm; > + snps,send_slope = <0x1000>; > + snps,idle_slope = <0x1000>; > + snps,high_credit = <0x3e800>; > + snps,low_credit = <0xffc18000>; > + }; > + > + queue3 { > + snps,avb-algorithm; > + snps,send_slope = <0x1000>; > + snps,idle_slope = <0x1000>; > + snps,high_credit = <0x3e800>; > + snps,low_credit = <0xffc18000>; > + }; > + }; > +}; > + > &gpll0_board_clk { > clock-frequency = <300000000>; > }; > @@ -145,6 +320,14 @@ &scmi6 { > status = "okay"; > }; > > +&scmi7 { > + status = "okay"; > +}; > + > +&scmi8 { > + status = "okay"; > +}; > + > &scmi11 { > status = "okay"; > }; > @@ -162,6 +345,22 @@ &sleep_clk { > }; > > &tlmm { > + ethernet0_default: ethernet0-default-state { > + ethernet0_mdc: ethernet0-mdc-pins { > + pins = "gpio8"; > + function = "emac0_mdc"; > + drive-strength = <16>; > + bias-pull-up; > + }; > + > + ethernet0_mdio: ethernet0-mdio-pins { > + pins = "gpio9"; > + function = "emac0_mdio"; > + drive-strength = <16>; > + bias-pull-up; > + }; > + }; > + > pcie0_ep_clkreq_default: pcie0-ep-clkreq-default-state { > pins = "gpio1"; > function = "pcie0_clkreq"; > @@ -205,6 +404,14 @@ pcie1_ep_wake_default: pcie1-ep-wake-default-state { > }; > }; > > +&serdes0 { > + status = "okay"; > +}; > + > +&serdes1 { > + status = "okay"; > +}; > + > &uart4 { > status = "okay"; > }; > > -- > 2.47.3 > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/2] arm64: dts: qcom: lemans-sa8255p: add ethernet nodes 2026-11-04 12:44 ` Shawn Guo @ 2026-11-04 13:42 ` Bartosz Golaszewski 0 siblings, 0 replies; 6+ messages in thread From: Bartosz Golaszewski @ 2026-11-04 13:42 UTC (permalink / raw) To: Shawn Guo Cc: Bartosz Golaszewski, Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, devicetree, linux-kernel, netdev On Wed, Nov 04, 2026 at 08:44:35PM +0800, Shawn Guo wrote: > On Tue, Nov 03, 2026 at 11:42:00AM +0100, Bartosz Golaszewski wrote: > > Add the ethernet nodes along with their serdes PHY nodes for the gearvm > > variant of the lemans ride board. Enable scmi7 and scmi8 to serve the > > EMACs. > > > > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com> > > --- > > arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi | 30 ++++ > > arch/arm64/boot/dts/qcom/lemans-sa8255p-ride.dts | 207 +++++++++++++++++++++++ > > 2 files changed, 237 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi b/arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi > > index 91c97a55f2787406b104650956b9a511a6a34c23..96a54f32f0eeb16dbce9802e74eec82622ecd35f 100644 > > --- a/arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi > > +++ b/arch/arm64/boot/dts/qcom/lemans-gearvm.dtsi > > @@ -58,6 +58,18 @@ &cpufreq_hw { > > clock-names = "xo", "alternate"; > > }; > > > > +ðernet0 { > > + compatible = "qcom,sa8255p-ethqos"; > > + phys = <&serdes0>; > > + phy-names = "serdes"; > > +}; > > + > > +ðernet1 { > > + compatible = "qcom,sa8255p-ethqos"; > > + phys = <&serdes1>; > > + phy-names = "serdes"; > > +}; > > + > > &firmware { > > scmi0: scmi-0 { > > compatible = "qcom,scmi-smc"; > > @@ -3218,6 +3230,24 @@ &uart21 { > > "perf"; > > }; > > > > +&soc { > > + serdes0: phy@8901000 { > > + compatible = "qcom,sa8255p-dwmac-sgmii-phy"; > > + reg = <0x0 0x08901000 0x0 0xe10>; > > + #phy-cells = <0>; > > + power-domains = <&scmi7_dvfs 0>; > > + status = "disabled"; > > + }; > > We have the serdes node for Embedded variant as well. > > serdes0: phy@8901000 { > compatible = "qcom,sa8775p-dwmac-sgmii-phy"; > reg = <0x0 0x08901000 0x0 0xe10>; > clocks = <&gcc GCC_SGMI_CLKREF_EN>; > clock-names = "sgmi_ref"; > #phy-cells = <0>; > status = "disabled"; > }; > > Per Nord discussion with Konrad [1], I plan to move serdes nodes back to > common DTSI and let variant DTSI to supplement or overwrite properties > as needed. Does that make sense? > Yes, it'll be in line with emac nodes. I'll wait for your next series before resending this series. Thanks, Bartosz PS Please try to trim your responses, don't include the entire long patch if you're only commenting on a fragment of it. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-11-04 13:42 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-11-03 10:41 [PATCH v2 0/2] arm64: dts: qcom: sa8255p: add ethernet nodes Bartosz Golaszewski 2026-11-03 10:41 ` [PATCH v2 1/2] arm64: dts: qcom: lemans: fix iommus SID mask for " Bartosz Golaszewski 2026-11-03 10:42 ` [PATCH v2 2/2] arm64: dts: qcom: lemans-sa8255p: add " Bartosz Golaszewski 2026-11-04 10:42 ` sashiko-bot 2026-11-04 12:44 ` Shawn Guo 2026-11-04 13:42 ` Bartosz Golaszewski
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox