* [PATCH 0/2] sunxi: Fix Ethernet on mostly A20 boards
@ 2022-03-16 0:54 Andre Przywara
2022-03-16 0:54 ` [PATCH 1/2] sunxi: Fix old GMAC pinmux setup Andre Przywara
2022-03-16 0:54 ` [PATCH 2/2] sunxi: dts: Update RGMII phy-mode properties Andre Przywara
0 siblings, 2 replies; 7+ messages in thread
From: Andre Przywara @ 2022-03-16 0:54 UTC (permalink / raw)
To: Jagan Teki; +Cc: u-boot, Simon Glass, Tom Rini, Samuel Holland, Jernej Skrabec
Hi,
testing on a BananaPi M1 board revealed that Ethernet has regressed
since the last release due to not only one, but two bugs:
- The pinmux and GMAC clock setup for the A20 GMAC is apparently called
too early now.
- The updated RGMII phy-mode properties are now taken for real, so many
boards are using the wrong RX/TX line delay setup, with mostly fatal
consequences.
Fix those two issues to bring Ethernet back on those affected boards.
I refrained from just syncing the DTs from the kernel (to fix the second
issue): Recent changes in the mainline DTs require newer kernels to work,
which breaks Linux distro installer ISO images running via UEFI.
We need to find a solution for that, but not in -rc4, which
would be rather late for a normal DT sync anyway.
Please have a look and test on your board!
Cheers,
Andre
Andre Przywara (2):
sunxi: Fix old GMAC pinmux setup
sunxi: dts: Update RGMII phy-mode properties
arch/arm/dts/sun50i-a64-sopine-baseboard.dts | 2 +-
arch/arm/dts/sun50i-h5-nanopi-neo2.dts | 2 +-
arch/arm/dts/sun50i-h5-orangepi-zero-plus.dts | 2 +-
arch/arm/dts/sun6i-a31-hummingbird.dts | 2 +-
arch/arm/dts/sun7i-a20-bananapi-m1-plus.dts | 2 +-
arch/arm/dts/sun7i-a20-bananapi.dts | 2 +-
arch/arm/dts/sun7i-a20-bananapro.dts | 2 +-
arch/arm/dts/sun7i-a20-cubietruck.dts | 2 +-
arch/arm/dts/sun7i-a20-olinuxino-lime2.dts | 2 +-
arch/arm/dts/sun7i-a20-pcduino3-nano.dts | 2 +-
arch/arm/dts/sun8i-a83t-bananapi-m3.dts | 2 +-
arch/arm/dts/sun8i-a83t-cubietruck-plus.dts | 2 +-
arch/arm/dts/sun8i-h3-orangepi-plus.dts | 2 +-
arch/arm/dts/sunxi-bananapi-m2-plus.dtsi | 2 +-
arch/arm/mach-sunxi/board.c | 1 -
board/sunxi/board.c | 3 +++
16 files changed, 17 insertions(+), 15 deletions(-)
--
2.35.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2] sunxi: Fix old GMAC pinmux setup
2022-03-16 0:54 [PATCH 0/2] sunxi: Fix Ethernet on mostly A20 boards Andre Przywara
@ 2022-03-16 0:54 ` Andre Przywara
2022-03-16 16:55 ` Jernej Škrabec
2022-03-21 14:17 ` Petr Štetiar
2022-03-16 0:54 ` [PATCH 2/2] sunxi: dts: Update RGMII phy-mode properties Andre Przywara
1 sibling, 2 replies; 7+ messages in thread
From: Andre Przywara @ 2022-03-16 0:54 UTC (permalink / raw)
To: Jagan Teki; +Cc: u-boot, Simon Glass, Tom Rini, Samuel Holland, Jernej Skrabec
Commit 5bc4cd05d7d4 ("sunxi: move non-essential code out of s_init()")
moved the call to eth_init_board() from s_init() into board_init_f().
This means it's now only called from the SPL, which makes sense for
most of the other moved low-level functions. However the GMAC pinmux and
clock setup in eth_init_board() was not happy about that, so it broke
the sun7i GMAC.
Since Ethernet is of no use in the SPL anyway, just move the call into
board_init(), which is only run in U-Boot proper.
This fixes Ethernet operation for the A20 SoCs, which broke in
v2022.04-rc1, with the above mentioned commit.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
arch/arm/mach-sunxi/board.c | 1 -
board/sunxi/board.c | 3 +++
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c
index 0071de19ffd..9a7673d82dc 100644
--- a/arch/arm/mach-sunxi/board.c
+++ b/arch/arm/mach-sunxi/board.c
@@ -333,7 +333,6 @@ void board_init_f(ulong dummy)
clock_init();
timer_init();
gpio_init();
- eth_init_board();
spl_init();
preloader_console_init();
diff --git a/board/sunxi/board.c b/board/sunxi/board.c
index a0961590479..28f702bc296 100644
--- a/board/sunxi/board.c
+++ b/board/sunxi/board.c
@@ -30,6 +30,7 @@
#include <asm/arch/prcm.h>
#include <asm/arch/pmic_bus.h>
#include <asm/arch/spl.h>
+#include <asm/arch/sys_proto.h>
#include <asm/global_data.h>
#include <linux/delay.h>
#include <u-boot/crc.h>
@@ -308,6 +309,8 @@ int board_init(void)
#endif
#endif /* CONFIG_DM_MMC */
+ eth_init_board();
+
return 0;
}
--
2.35.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/2] sunxi: dts: Update RGMII phy-mode properties
2022-03-16 0:54 [PATCH 0/2] sunxi: Fix Ethernet on mostly A20 boards Andre Przywara
2022-03-16 0:54 ` [PATCH 1/2] sunxi: Fix old GMAC pinmux setup Andre Przywara
@ 2022-03-16 0:54 ` Andre Przywara
2022-03-18 5:31 ` Samuel Holland
1 sibling, 1 reply; 7+ messages in thread
From: Andre Przywara @ 2022-03-16 0:54 UTC (permalink / raw)
To: Jagan Teki; +Cc: u-boot, Simon Glass, Tom Rini, Samuel Holland, Jernej Skrabec
Commit f11513d99787 ("net: phy: realtek: Add tx/rx delay config for
8211e") made the Realtek PHY driver honour the phy-mode DT property,
to set up the proper delay scheme for the RX and TX lines. A similar
change in the kernel revealed that those properties were mostly wrong.
The kernel DTs got updated over the last few months, but we were missing
out on the U-Boot version.
Just sync in the phy-mode properties from the mainline kernel,
v5.17-rc7, to avoid the breaking DT sync that late in the cycle.
This fixes Ethernet operation on the affected boards.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
arch/arm/dts/sun50i-a64-sopine-baseboard.dts | 2 +-
arch/arm/dts/sun50i-h5-nanopi-neo2.dts | 2 +-
arch/arm/dts/sun50i-h5-orangepi-zero-plus.dts | 2 +-
arch/arm/dts/sun6i-a31-hummingbird.dts | 2 +-
arch/arm/dts/sun7i-a20-bananapi-m1-plus.dts | 2 +-
arch/arm/dts/sun7i-a20-bananapi.dts | 2 +-
arch/arm/dts/sun7i-a20-bananapro.dts | 2 +-
arch/arm/dts/sun7i-a20-cubietruck.dts | 2 +-
arch/arm/dts/sun7i-a20-olinuxino-lime2.dts | 2 +-
arch/arm/dts/sun7i-a20-pcduino3-nano.dts | 2 +-
arch/arm/dts/sun8i-a83t-bananapi-m3.dts | 2 +-
arch/arm/dts/sun8i-a83t-cubietruck-plus.dts | 2 +-
arch/arm/dts/sun8i-h3-orangepi-plus.dts | 2 +-
arch/arm/dts/sunxi-bananapi-m2-plus.dtsi | 2 +-
14 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/arch/arm/dts/sun50i-a64-sopine-baseboard.dts b/arch/arm/dts/sun50i-a64-sopine-baseboard.dts
index e22b94c8364..5e66ce1a334 100644
--- a/arch/arm/dts/sun50i-a64-sopine-baseboard.dts
+++ b/arch/arm/dts/sun50i-a64-sopine-baseboard.dts
@@ -79,7 +79,7 @@
&emac {
pinctrl-names = "default";
pinctrl-0 = <&rgmii_pins>;
- phy-mode = "rgmii-id";
+ phy-mode = "rgmii-txid";
phy-handle = <&ext_rgmii_phy>;
phy-supply = <®_dc1sw>;
status = "okay";
diff --git a/arch/arm/dts/sun50i-h5-nanopi-neo2.dts b/arch/arm/dts/sun50i-h5-nanopi-neo2.dts
index 02f8e72f0ca..05486cccee1 100644
--- a/arch/arm/dts/sun50i-h5-nanopi-neo2.dts
+++ b/arch/arm/dts/sun50i-h5-nanopi-neo2.dts
@@ -75,7 +75,7 @@
pinctrl-0 = <&emac_rgmii_pins>;
phy-supply = <®_gmac_3v3>;
phy-handle = <&ext_rgmii_phy>;
- phy-mode = "rgmii";
+ phy-mode = "rgmii-id";
status = "okay";
};
diff --git a/arch/arm/dts/sun50i-h5-orangepi-zero-plus.dts b/arch/arm/dts/sun50i-h5-orangepi-zero-plus.dts
index d13980ed7a7..7ec5ac850a0 100644
--- a/arch/arm/dts/sun50i-h5-orangepi-zero-plus.dts
+++ b/arch/arm/dts/sun50i-h5-orangepi-zero-plus.dts
@@ -69,7 +69,7 @@
pinctrl-0 = <&emac_rgmii_pins>;
phy-supply = <®_gmac_3v3>;
phy-handle = <&ext_rgmii_phy>;
- phy-mode = "rgmii";
+ phy-mode = "rgmii-id";
status = "okay";
};
diff --git a/arch/arm/dts/sun6i-a31-hummingbird.dts b/arch/arm/dts/sun6i-a31-hummingbird.dts
index ce4f9e9834b..2c143580350 100644
--- a/arch/arm/dts/sun6i-a31-hummingbird.dts
+++ b/arch/arm/dts/sun6i-a31-hummingbird.dts
@@ -162,7 +162,7 @@
pinctrl-names = "default";
pinctrl-0 = <&gmac_pins_rgmii_a>, <&gmac_phy_reset_pin_hummingbird>;
phy = <&phy1>;
- phy-mode = "rgmii";
+ phy-mode = "rgmii-id";
snps,reset-gpio = <&pio 0 21 GPIO_ACTIVE_HIGH>;
snps,reset-active-low;
snps,reset-delays-us = <0 10000 30000>;
diff --git a/arch/arm/dts/sun7i-a20-bananapi-m1-plus.dts b/arch/arm/dts/sun7i-a20-bananapi-m1-plus.dts
index e2bfe005883..4dbcad1343b 100644
--- a/arch/arm/dts/sun7i-a20-bananapi-m1-plus.dts
+++ b/arch/arm/dts/sun7i-a20-bananapi-m1-plus.dts
@@ -130,7 +130,7 @@
pinctrl-names = "default";
pinctrl-0 = <&gmac_rgmii_pins>;
phy = <&phy1>;
- phy-mode = "rgmii";
+ phy-mode = "rgmii-id";
phy-supply = <®_gmac_3v3>;
status = "okay";
diff --git a/arch/arm/dts/sun7i-a20-bananapi.dts b/arch/arm/dts/sun7i-a20-bananapi.dts
index 81bc85d398c..33040c43bce 100644
--- a/arch/arm/dts/sun7i-a20-bananapi.dts
+++ b/arch/arm/dts/sun7i-a20-bananapi.dts
@@ -132,7 +132,7 @@
pinctrl-names = "default";
pinctrl-0 = <&gmac_rgmii_pins>;
phy = <&phy1>;
- phy-mode = "rgmii";
+ phy-mode = "rgmii-id";
phy-supply = <®_gmac_3v3>;
status = "okay";
diff --git a/arch/arm/dts/sun7i-a20-bananapro.dts b/arch/arm/dts/sun7i-a20-bananapro.dts
index 0176e9de018..8a75545e228 100644
--- a/arch/arm/dts/sun7i-a20-bananapro.dts
+++ b/arch/arm/dts/sun7i-a20-bananapro.dts
@@ -110,7 +110,7 @@
pinctrl-names = "default";
pinctrl-0 = <&gmac_rgmii_pins>;
phy = <&phy1>;
- phy-mode = "rgmii";
+ phy-mode = "rgmii-id";
phy-supply = <®_gmac_3v3>;
status = "okay";
diff --git a/arch/arm/dts/sun7i-a20-cubietruck.dts b/arch/arm/dts/sun7i-a20-cubietruck.dts
index 99f531b8d2a..46a9f4669e1 100644
--- a/arch/arm/dts/sun7i-a20-cubietruck.dts
+++ b/arch/arm/dts/sun7i-a20-cubietruck.dts
@@ -151,7 +151,7 @@
pinctrl-names = "default";
pinctrl-0 = <&gmac_rgmii_pins>;
phy = <&phy1>;
- phy-mode = "rgmii";
+ phy-mode = "rgmii-id";
status = "okay";
phy1: ethernet-phy@1 {
diff --git a/arch/arm/dts/sun7i-a20-olinuxino-lime2.dts b/arch/arm/dts/sun7i-a20-olinuxino-lime2.dts
index 4e1c590eb09..996201665b7 100644
--- a/arch/arm/dts/sun7i-a20-olinuxino-lime2.dts
+++ b/arch/arm/dts/sun7i-a20-olinuxino-lime2.dts
@@ -112,7 +112,7 @@
pinctrl-names = "default";
pinctrl-0 = <&gmac_rgmii_pins>;
phy = <&phy1>;
- phy-mode = "rgmii";
+ phy-mode = "rgmii-id";
status = "okay";
phy1: ethernet-phy@1 {
diff --git a/arch/arm/dts/sun7i-a20-pcduino3-nano.dts b/arch/arm/dts/sun7i-a20-pcduino3-nano.dts
index 538ea15fa32..205eaae44a0 100644
--- a/arch/arm/dts/sun7i-a20-pcduino3-nano.dts
+++ b/arch/arm/dts/sun7i-a20-pcduino3-nano.dts
@@ -115,7 +115,7 @@
pinctrl-names = "default";
pinctrl-0 = <&gmac_rgmii_pins>;
phy = <&phy1>;
- phy-mode = "rgmii";
+ phy-mode = "rgmii-id";
status = "okay";
phy1: ethernet-phy@1 {
diff --git a/arch/arm/dts/sun8i-a83t-bananapi-m3.dts b/arch/arm/dts/sun8i-a83t-bananapi-m3.dts
index eaff6fa4018..2beafe3a31d 100644
--- a/arch/arm/dts/sun8i-a83t-bananapi-m3.dts
+++ b/arch/arm/dts/sun8i-a83t-bananapi-m3.dts
@@ -123,7 +123,7 @@
pinctrl-0 = <&emac_rgmii_pins>;
phy-supply = <®_sw>;
phy-handle = <&rgmii_phy>;
- phy-mode = "rgmii";
+ phy-mode = "rgmii-id";
allwinner,rx-delay-ps = <700>;
allwinner,tx-delay-ps = <700>;
status = "okay";
diff --git a/arch/arm/dts/sun8i-a83t-cubietruck-plus.dts b/arch/arm/dts/sun8i-a83t-cubietruck-plus.dts
index 5dba4fc310f..ecd9ff38a8b 100644
--- a/arch/arm/dts/sun8i-a83t-cubietruck-plus.dts
+++ b/arch/arm/dts/sun8i-a83t-cubietruck-plus.dts
@@ -160,7 +160,7 @@
pinctrl-0 = <&emac_rgmii_pins>;
phy-supply = <®_dldo4>;
phy-handle = <&rgmii_phy>;
- phy-mode = "rgmii";
+ phy-mode = "rgmii-id";
status = "okay";
};
diff --git a/arch/arm/dts/sun8i-h3-orangepi-plus.dts b/arch/arm/dts/sun8i-h3-orangepi-plus.dts
index 97f497854e0..d05fa679dcd 100644
--- a/arch/arm/dts/sun8i-h3-orangepi-plus.dts
+++ b/arch/arm/dts/sun8i-h3-orangepi-plus.dts
@@ -85,7 +85,7 @@
pinctrl-0 = <&emac_rgmii_pins>;
phy-supply = <®_gmac_3v3>;
phy-handle = <&ext_rgmii_phy>;
- phy-mode = "rgmii";
+ phy-mode = "rgmii-id";
status = "okay";
};
diff --git a/arch/arm/dts/sunxi-bananapi-m2-plus.dtsi b/arch/arm/dts/sunxi-bananapi-m2-plus.dtsi
index 39263e74fbb..8e5cb3b3fd6 100644
--- a/arch/arm/dts/sunxi-bananapi-m2-plus.dtsi
+++ b/arch/arm/dts/sunxi-bananapi-m2-plus.dtsi
@@ -126,7 +126,7 @@
pinctrl-0 = <&emac_rgmii_pins>;
phy-supply = <®_gmac_3v3>;
phy-handle = <&ext_rgmii_phy>;
- phy-mode = "rgmii";
+ phy-mode = "rgmii-id";
status = "okay";
};
--
2.35.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] sunxi: Fix old GMAC pinmux setup
2022-03-16 0:54 ` [PATCH 1/2] sunxi: Fix old GMAC pinmux setup Andre Przywara
@ 2022-03-16 16:55 ` Jernej Škrabec
2022-03-16 17:04 ` Andre Przywara
2022-03-21 14:17 ` Petr Štetiar
1 sibling, 1 reply; 7+ messages in thread
From: Jernej Škrabec @ 2022-03-16 16:55 UTC (permalink / raw)
To: Jagan Teki, Andre Przywara; +Cc: u-boot, Simon Glass, Tom Rini, Samuel Holland
Dne sreda, 16. marec 2022 ob 01:54:42 CET je Andre Przywara napisal(a):
> Commit 5bc4cd05d7d4 ("sunxi: move non-essential code out of s_init()")
> moved the call to eth_init_board() from s_init() into board_init_f().
> This means it's now only called from the SPL, which makes sense for
> most of the other moved low-level functions. However the GMAC pinmux and
> clock setup in eth_init_board() was not happy about that, so it broke
> the sun7i GMAC.
>
> Since Ethernet is of no use in the SPL anyway, just move the call into
> board_init(), which is only run in U-Boot proper.
>
> This fixes Ethernet operation for the A20 SoCs, which broke in
> v2022.04-rc1, with the above mentioned commit.
>
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
I guess this function will soon go away with introduction of clock and pinctrl
driver.
Best regards,
Jernej
> ---
> arch/arm/mach-sunxi/board.c | 1 -
> board/sunxi/board.c | 3 +++
> 2 files changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c
> index 0071de19ffd..9a7673d82dc 100644
> --- a/arch/arm/mach-sunxi/board.c
> +++ b/arch/arm/mach-sunxi/board.c
> @@ -333,7 +333,6 @@ void board_init_f(ulong dummy)
> clock_init();
> timer_init();
> gpio_init();
> - eth_init_board();
>
> spl_init();
> preloader_console_init();
> diff --git a/board/sunxi/board.c b/board/sunxi/board.c
> index a0961590479..28f702bc296 100644
> --- a/board/sunxi/board.c
> +++ b/board/sunxi/board.c
> @@ -30,6 +30,7 @@
> #include <asm/arch/prcm.h>
> #include <asm/arch/pmic_bus.h>
> #include <asm/arch/spl.h>
> +#include <asm/arch/sys_proto.h>
> #include <asm/global_data.h>
> #include <linux/delay.h>
> #include <u-boot/crc.h>
> @@ -308,6 +309,8 @@ int board_init(void)
> #endif
> #endif /* CONFIG_DM_MMC */
>
> + eth_init_board();
> +
> return 0;
> }
>
> --
> 2.35.1
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] sunxi: Fix old GMAC pinmux setup
2022-03-16 16:55 ` Jernej Škrabec
@ 2022-03-16 17:04 ` Andre Przywara
0 siblings, 0 replies; 7+ messages in thread
From: Andre Przywara @ 2022-03-16 17:04 UTC (permalink / raw)
To: Jernej Škrabec
Cc: Jagan Teki, u-boot, Simon Glass, Tom Rini, Samuel Holland
On Wed, 16 Mar 2022 17:55:16 +0100
Jernej Škrabec <jernej.skrabec@gmail.com> wrote:
> Dne sreda, 16. marec 2022 ob 01:54:42 CET je Andre Przywara napisal(a):
> > Commit 5bc4cd05d7d4 ("sunxi: move non-essential code out of s_init()")
> > moved the call to eth_init_board() from s_init() into board_init_f().
> > This means it's now only called from the SPL, which makes sense for
> > most of the other moved low-level functions. However the GMAC pinmux and
> > clock setup in eth_init_board() was not happy about that, so it broke
> > the sun7i GMAC.
> >
> > Since Ethernet is of no use in the SPL anyway, just move the call into
> > board_init(), which is only run in U-Boot proper.
> >
> > This fixes Ethernet operation for the A20 SoCs, which broke in
> > v2022.04-rc1, with the above mentioned commit.
> >
> > Signed-off-by: Andre Przywara <andre.przywara@arm.com>
>
> Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Thanks!
> I guess this function will soon go away with introduction of clock and pinctrl
> driver.
Yes, indeed, forgot to mention this. This is just a stop-gap measure to
fix Ethernet before the 2022.04 release.
Cheers,
Andre
>
> Best regards,
> Jernej
>
> > ---
> > arch/arm/mach-sunxi/board.c | 1 -
> > board/sunxi/board.c | 3 +++
> > 2 files changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c
> > index 0071de19ffd..9a7673d82dc 100644
> > --- a/arch/arm/mach-sunxi/board.c
> > +++ b/arch/arm/mach-sunxi/board.c
> > @@ -333,7 +333,6 @@ void board_init_f(ulong dummy)
> > clock_init();
> > timer_init();
> > gpio_init();
> > - eth_init_board();
> >
> > spl_init();
> > preloader_console_init();
> > diff --git a/board/sunxi/board.c b/board/sunxi/board.c
> > index a0961590479..28f702bc296 100644
> > --- a/board/sunxi/board.c
> > +++ b/board/sunxi/board.c
> > @@ -30,6 +30,7 @@
> > #include <asm/arch/prcm.h>
> > #include <asm/arch/pmic_bus.h>
> > #include <asm/arch/spl.h>
> > +#include <asm/arch/sys_proto.h>
> > #include <asm/global_data.h>
> > #include <linux/delay.h>
> > #include <u-boot/crc.h>
> > @@ -308,6 +309,8 @@ int board_init(void)
> > #endif
> > #endif /* CONFIG_DM_MMC */
> >
> > + eth_init_board();
> > +
> > return 0;
> > }
> >
> > --
> > 2.35.1
> >
> >
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] sunxi: dts: Update RGMII phy-mode properties
2022-03-16 0:54 ` [PATCH 2/2] sunxi: dts: Update RGMII phy-mode properties Andre Przywara
@ 2022-03-18 5:31 ` Samuel Holland
0 siblings, 0 replies; 7+ messages in thread
From: Samuel Holland @ 2022-03-18 5:31 UTC (permalink / raw)
To: Andre Przywara, Jagan Teki; +Cc: u-boot, Simon Glass, Tom Rini, Jernej Skrabec
On 3/15/22 7:54 PM, Andre Przywara wrote:
> Commit f11513d99787 ("net: phy: realtek: Add tx/rx delay config for
> 8211e") made the Realtek PHY driver honour the phy-mode DT property,
> to set up the proper delay scheme for the RX and TX lines. A similar
> change in the kernel revealed that those properties were mostly wrong.
> The kernel DTs got updated over the last few months, but we were missing
> out on the U-Boot version.
>
> Just sync in the phy-mode properties from the mainline kernel,
> v5.17-rc7, to avoid the breaking DT sync that late in the cycle.
>
> This fixes Ethernet operation on the affected boards.
>
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Samuel Holland <samuel@sholland.org>
Verified against the updated files from Linux. I suppose I broke this by not
sending a DT sync series during the same release cycle. Hopefully we can get DT
syncing unblocked soon and merged for the next release.
Regards,
Samuel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] sunxi: Fix old GMAC pinmux setup
2022-03-16 0:54 ` [PATCH 1/2] sunxi: Fix old GMAC pinmux setup Andre Przywara
2022-03-16 16:55 ` Jernej Škrabec
@ 2022-03-21 14:17 ` Petr Štetiar
1 sibling, 0 replies; 7+ messages in thread
From: Petr Štetiar @ 2022-03-21 14:17 UTC (permalink / raw)
To: Andre Przywara
Cc: Jagan Teki, u-boot, Simon Glass, Tom Rini, Samuel Holland,
Jernej Skrabec
Andre Przywara <andre.przywara@arm.com> [2022-03-16 00:54:42]:
> Commit 5bc4cd05d7d4 ("sunxi: move non-essential code out of s_init()")
> moved the call to eth_init_board() from s_init() into board_init_f().
> This means it's now only called from the SPL, which makes sense for
> most of the other moved low-level functions. However the GMAC pinmux and
> clock setup in eth_init_board() was not happy about that, so it broke
> the sun7i GMAC.
>
> Since Ethernet is of no use in the SPL anyway, just move the call into
> board_init(), which is only run in U-Boot proper.
>
> This fixes Ethernet operation for the A20 SoCs, which broke in
> v2022.04-rc1, with the above mentioned commit.
Tested-by: Petr Štetiar <ynezz@true.cz> [a20-olinuxino-lime2]
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> ---
> arch/arm/mach-sunxi/board.c | 1 -
> board/sunxi/board.c | 3 +++
> 2 files changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c
> index 0071de19ffd..9a7673d82dc 100644
> --- a/arch/arm/mach-sunxi/board.c
> +++ b/arch/arm/mach-sunxi/board.c
> @@ -333,7 +333,6 @@ void board_init_f(ulong dummy)
> clock_init();
> timer_init();
> gpio_init();
> - eth_init_board();
>
> spl_init();
> preloader_console_init();
> diff --git a/board/sunxi/board.c b/board/sunxi/board.c
> index a0961590479..28f702bc296 100644
> --- a/board/sunxi/board.c
> +++ b/board/sunxi/board.c
> @@ -30,6 +30,7 @@
> #include <asm/arch/prcm.h>
> #include <asm/arch/pmic_bus.h>
> #include <asm/arch/spl.h>
> +#include <asm/arch/sys_proto.h>
> #include <asm/global_data.h>
> #include <linux/delay.h>
> #include <u-boot/crc.h>
> @@ -308,6 +309,8 @@ int board_init(void)
> #endif
> #endif /* CONFIG_DM_MMC */
>
> + eth_init_board();
> +
> return 0;
> }
>
> --
> 2.35.1
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2022-03-21 14:18 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-16 0:54 [PATCH 0/2] sunxi: Fix Ethernet on mostly A20 boards Andre Przywara
2022-03-16 0:54 ` [PATCH 1/2] sunxi: Fix old GMAC pinmux setup Andre Przywara
2022-03-16 16:55 ` Jernej Škrabec
2022-03-16 17:04 ` Andre Przywara
2022-03-21 14:17 ` Petr Štetiar
2022-03-16 0:54 ` [PATCH 2/2] sunxi: dts: Update RGMII phy-mode properties Andre Przywara
2022-03-18 5:31 ` Samuel Holland
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.