[PATCH u-boot-marvell] arm: mvebu: dts: turris_mox: fix non-working network / MDIO

From: Marek Behún marek.behun@nic.cz
Commit 0934dddc6436 ("arm: a37xx: Update DTS files to version from upstream Linux kernel") ported Linux's device-tree files for Armada 3720 SOCs. This broke network on Turris MOX, because the SOC's MDIO bus in U-Boot currently isn't probed via DM as it's own device, but is registered as part of mvneta's driver, which means that pinctrl definitions are not parsed for the MDIO bus node. Also mvneta driver does not consider "phy-handle" property, only "phy".
For now, fix this by adding armada-3720-turris-mox-u-boot.dtsi file returning the MDIO to how it was defined previously.
A better solution (using proper mvmdio DM driver) is being work on, but will need testing on various boards, and we need the bug fixed now for the upcoming release.
Fixes: 0934dddc6436 ("arm: a37xx: Update DTS files to version from upstream Linux kernel") Signed-off-by: Marek Behún marek.behun@nic.cz --- Dear Stefan,
this fix is needed for the upcoming release, is it still possible? Thanks.
Marek --- .../dts/armada-3720-turris-mox-u-boot.dtsi | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 arch/arm/dts/armada-3720-turris-mox-u-boot.dtsi
diff --git a/arch/arm/dts/armada-3720-turris-mox-u-boot.dtsi b/arch/arm/dts/armada-3720-turris-mox-u-boot.dtsi new file mode 100644 index 0000000000..2e05b973d2 --- /dev/null +++ b/arch/arm/dts/armada-3720-turris-mox-u-boot.dtsi @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * 2022 by Marek Behún kabel@kernel.org + */ + +/ { + mdio { + #address-cells = <1>; + #size-cells = <0>; + + old_binding_phy1: ethernet-phy@1 { + reg = <1>; + }; + }; +}; + +ð0 { + pinctrl-0 = <&rgmii_pins>, <&smi_pins>; + /delete-property/ phy-handle; + phy = <&old_binding_phy1>; +}; + +/delete-node/ &mdio;

On 3/15/22 16:37, Marek Behún wrote:
From: Marek Behún marek.behun@nic.cz
Commit 0934dddc6436 ("arm: a37xx: Update DTS files to version from upstream Linux kernel") ported Linux's device-tree files for Armada 3720 SOCs. This broke network on Turris MOX, because the SOC's MDIO bus in U-Boot currently isn't probed via DM as it's own device, but is registered as part of mvneta's driver, which means that pinctrl definitions are not parsed for the MDIO bus node. Also mvneta driver does not consider "phy-handle" property, only "phy".
For now, fix this by adding armada-3720-turris-mox-u-boot.dtsi file returning the MDIO to how it was defined previously.
A better solution (using proper mvmdio DM driver) is being work on, but will need testing on various boards, and we need the bug fixed now for the upcoming release.
Fixes: 0934dddc6436 ("arm: a37xx: Update DTS files to version from upstream Linux kernel") Signed-off-by: Marek Behún marek.behun@nic.cz
As a temporary fix for this release:
Reviewed-by: Stefan Roese sr@denx.de
Dear Stefan,
this fix is needed for the upcoming release, is it still possible? Thanks.
Yes, I think this should be possible.
Thanks, Stefan
Marek
.../dts/armada-3720-turris-mox-u-boot.dtsi | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 arch/arm/dts/armada-3720-turris-mox-u-boot.dtsi
diff --git a/arch/arm/dts/armada-3720-turris-mox-u-boot.dtsi b/arch/arm/dts/armada-3720-turris-mox-u-boot.dtsi new file mode 100644 index 0000000000..2e05b973d2 --- /dev/null +++ b/arch/arm/dts/armada-3720-turris-mox-u-boot.dtsi @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/*
- 2022 by Marek Behún kabel@kernel.org
- */
+/ {
- mdio {
#address-cells = <1>;
#size-cells = <0>;
old_binding_phy1: ethernet-phy@1 {
reg = <1>;
};
- };
+};
+ð0 {
- pinctrl-0 = <&rgmii_pins>, <&smi_pins>;
- /delete-property/ phy-handle;
- phy = <&old_binding_phy1>;
+};
+/delete-node/ &mdio;
Viele Grüße, Stefan Roese

On 3/15/22 16:37, Marek Behún wrote:
From: Marek Behún marek.behun@nic.cz
Commit 0934dddc6436 ("arm: a37xx: Update DTS files to version from upstream Linux kernel") ported Linux's device-tree files for Armada 3720 SOCs. This broke network on Turris MOX, because the SOC's MDIO bus in U-Boot currently isn't probed via DM as it's own device, but is registered as part of mvneta's driver, which means that pinctrl definitions are not parsed for the MDIO bus node. Also mvneta driver does not consider "phy-handle" property, only "phy".
For now, fix this by adding armada-3720-turris-mox-u-boot.dtsi file returning the MDIO to how it was defined previously.
A better solution (using proper mvmdio DM driver) is being work on, but will need testing on various boards, and we need the bug fixed now for the upcoming release.
Fixes: 0934dddc6436 ("arm: a37xx: Update DTS files to version from upstream Linux kernel") Signed-off-by: Marek Behún marek.behun@nic.cz
Dear Stefan,
this fix is needed for the upcoming release, is it still possible? Thanks.
Applied to u-boot-marvell/master
Thanks, Stefan
Marek
.../dts/armada-3720-turris-mox-u-boot.dtsi | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 arch/arm/dts/armada-3720-turris-mox-u-boot.dtsi
diff --git a/arch/arm/dts/armada-3720-turris-mox-u-boot.dtsi b/arch/arm/dts/armada-3720-turris-mox-u-boot.dtsi new file mode 100644 index 0000000000..2e05b973d2 --- /dev/null +++ b/arch/arm/dts/armada-3720-turris-mox-u-boot.dtsi @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/*
- 2022 by Marek Behún kabel@kernel.org
- */
+/ {
- mdio {
#address-cells = <1>;
#size-cells = <0>;
old_binding_phy1: ethernet-phy@1 {
reg = <1>;
};
- };
+};
+ð0 {
- pinctrl-0 = <&rgmii_pins>, <&smi_pins>;
- /delete-property/ phy-handle;
- phy = <&old_binding_phy1>;
+};
+/delete-node/ &mdio;
Viele Grüße, Stefan Roese

On Tuesday 15 March 2022 16:37:27 Marek Behún wrote:
From: Marek Behún marek.behun@nic.cz
Commit 0934dddc6436 ("arm: a37xx: Update DTS files to version from upstream Linux kernel") ported Linux's device-tree files for Armada 3720 SOCs. This broke network on Turris MOX, because the SOC's MDIO bus in U-Boot currently isn't probed via DM as it's own device, but is registered as part of mvneta's driver, which means that pinctrl definitions are not parsed for the MDIO bus node. Also mvneta driver does not consider "phy-handle" property, only "phy".
For now, fix this by adding armada-3720-turris-mox-u-boot.dtsi file returning the MDIO to how it was defined previously.
A better solution (using proper mvmdio DM driver) is being work on, but will need testing on various boards, and we need the bug fixed now for the upcoming release.
Fixes: 0934dddc6436 ("arm: a37xx: Update DTS files to version from upstream Linux kernel") Signed-off-by: Marek Behún marek.behun@nic.cz
Reviewed-by: Pali Rohár pali@kernel.org
This is my mistake as I probably tested network with my patch series only on EspressoBin. EspressoBin is not really affected by this issue as it uses fixed settings in DT. Network is really working fine with U-Boot master branch.
Dear Stefan,
this fix is needed for the upcoming release, is it still possible? Thanks.
Marek
.../dts/armada-3720-turris-mox-u-boot.dtsi | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 arch/arm/dts/armada-3720-turris-mox-u-boot.dtsi
diff --git a/arch/arm/dts/armada-3720-turris-mox-u-boot.dtsi b/arch/arm/dts/armada-3720-turris-mox-u-boot.dtsi new file mode 100644 index 0000000000..2e05b973d2 --- /dev/null +++ b/arch/arm/dts/armada-3720-turris-mox-u-boot.dtsi @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/*
- 2022 by Marek Behún kabel@kernel.org
- */
+/ {
- mdio {
#address-cells = <1>;
#size-cells = <0>;
old_binding_phy1: ethernet-phy@1 {
reg = <1>;
};
- };
+};
+ð0 {
- pinctrl-0 = <&rgmii_pins>, <&smi_pins>;
- /delete-property/ phy-handle;
- phy = <&old_binding_phy1>;
+};
+/delete-node/ &mdio;
2.34.1
participants (3)
-
Marek Behún
-
Pali Rohár
-
Stefan Roese