All of lore.kernel.org
 help / color / mirror / Atom feed
* [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 = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_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.