diff mbox series

sunxi: call fdt_fixup_ethernet again to set macaddr for more aliases

Message ID 20210911173916.615928-1-jernej.skrabec@gmail.com
State Accepted
Commit 2753b07269c099844ccd4c21de5790e3f9b8bdbd
Delegated to: Andre Przywara
Headers show
Series sunxi: call fdt_fixup_ethernet again to set macaddr for more aliases | expand

Commit Message

Jernej Škrabec Sept. 11, 2021, 5:39 p.m. UTC
From: Icenowy Zheng <icenowy@aosc.io>

Sometimes some ethernet aliases do not exist in U-Boot DT but they
exist in the DT used to boot the system (for example, modified via DT
overlays). In this situation setup_environment is called again in
ft_board_setup() to generate macaddr environment variable for them.
However now the call to fdt_fixup_ethernet() is moved before the call
of ft_board_setup().

Call fdt_fixup_ethernet() again to add MAC addresses for the extra
ethernet aliases.

Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
[updated commit message]
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
---

Hi all,

this is effectively resend of:
https://patchwork.ozlabs.org/project/uboot/patch/20171027093439.12414-1-icenowy@aosc.io/

On at least one board, namely BananaPi M2 Zero, adding ethernet connector is
pretty popular after market modification. Since this is not something that is
already present on the board, ethernet node will never be part of upstream DT.
Thus, the only sensible solution is to use DT overlay, which adds node to DT
(maintaining patches is tedious). However, when overlays are used, U-Boot
misses injecting MAC address, as described in commit message.

Please reconsider this patch for inclusion in upstream.

Best regards,
Jernej

 board/sunxi/board.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Jagan Teki Dec. 7, 2021, 6:24 a.m. UTC | #1
On Sat, Sep 11, 2021 at 11:09 PM Jernej Skrabec
<jernej.skrabec@gmail.com> wrote:
>
> From: Icenowy Zheng <icenowy@aosc.io>
>
> Sometimes some ethernet aliases do not exist in U-Boot DT but they
> exist in the DT used to boot the system (for example, modified via DT
> overlays). In this situation setup_environment is called again in
> ft_board_setup() to generate macaddr environment variable for them.
> However now the call to fdt_fixup_ethernet() is moved before the call
> of ft_board_setup().
>
> Call fdt_fixup_ethernet() again to add MAC addresses for the extra
> ethernet aliases.
>
> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> [updated commit message]
> Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
> ---
>
> Hi all,
>
> this is effectively resend of:
> https://patchwork.ozlabs.org/project/uboot/patch/20171027093439.12414-1-icenowy@aosc.io/
>
> On at least one board, namely BananaPi M2 Zero, adding ethernet connector is
> pretty popular after market modification. Since this is not something that is
> already present on the board, ethernet node will never be part of upstream DT.
> Thus, the only sensible solution is to use DT overlay, which adds node to DT
> (maintaining patches is tedious). However, when overlays are used, U-Boot
> misses injecting MAC address, as described in commit message.
>
> Please reconsider this patch for inclusion in upstream.
>
> Best regards,
> Jernej
>
>  board/sunxi/board.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/board/sunxi/board.c b/board/sunxi/board.c
> index 1a46100e408d..97554d4642ed 100644
> --- a/board/sunxi/board.c
> +++ b/board/sunxi/board.c
> @@ -997,10 +997,12 @@ int ft_board_setup(void *blob, struct bd_info *bd)
>         int __maybe_unused r;
>
>         /*
> -        * Call setup_environment again in case the boot fdt has
> -        * ethernet aliases the u-boot copy does not have.
> +        * Call setup_environment and fdt_fixup_ethernet again
> +        * in case the boot fdt has ethernet aliases the u-boot
> +        * copy does not have.
>          */
>         setup_environment(blob);
> +       fdt_fixup_ethernet(blob);

Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
Andre Przywara Jan. 17, 2022, 1:35 a.m. UTC | #2
On Sat, 11 Sep 2021 19:39:16 +0200
Jernej Skrabec <jernej.skrabec@gmail.com> wrote:

> From: Icenowy Zheng <icenowy@aosc.io>
> 
> Sometimes some ethernet aliases do not exist in U-Boot DT but they
> exist in the DT used to boot the system (for example, modified via DT
> overlays). In this situation setup_environment is called again in
> ft_board_setup() to generate macaddr environment variable for them.
> However now the call to fdt_fixup_ethernet() is moved before the call
> of ft_board_setup().
> 
> Call fdt_fixup_ethernet() again to add MAC addresses for the extra
> ethernet aliases.
> 
> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> [updated commit message]
> Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
> ---
> 
> Hi all,
> 
> this is effectively resend of:
> https://patchwork.ozlabs.org/project/uboot/patch/20171027093439.12414-1-icenowy@aosc.io/
> 
> On at least one board, namely BananaPi M2 Zero, adding ethernet connector is
> pretty popular after market modification. Since this is not something that is
> already present on the board, ethernet node will never be part of upstream DT.
> Thus, the only sensible solution is to use DT overlay, which adds node to DT
> (maintaining patches is tedious). However, when overlays are used, U-Boot
> misses injecting MAC address, as described in commit message.
> 
> Please reconsider this patch for inclusion in upstream.
> 
> Best regards,
> Jernej

Applied to sunxi/master.

Thanks,
Andre

> 
>  board/sunxi/board.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/board/sunxi/board.c b/board/sunxi/board.c
> index 1a46100e408d..97554d4642ed 100644
> --- a/board/sunxi/board.c
> +++ b/board/sunxi/board.c
> @@ -997,10 +997,12 @@ int ft_board_setup(void *blob, struct bd_info *bd)
>  	int __maybe_unused r;
>  
>  	/*
> -	 * Call setup_environment again in case the boot fdt has
> -	 * ethernet aliases the u-boot copy does not have.
> +	 * Call setup_environment and fdt_fixup_ethernet again
> +	 * in case the boot fdt has ethernet aliases the u-boot
> +	 * copy does not have.
>  	 */
>  	setup_environment(blob);
> +	fdt_fixup_ethernet(blob);
>  
>  	bluetooth_dt_fixup(blob);
>
diff mbox series

Patch

diff --git a/board/sunxi/board.c b/board/sunxi/board.c
index 1a46100e408d..97554d4642ed 100644
--- a/board/sunxi/board.c
+++ b/board/sunxi/board.c
@@ -997,10 +997,12 @@  int ft_board_setup(void *blob, struct bd_info *bd)
 	int __maybe_unused r;
 
 	/*
-	 * Call setup_environment again in case the boot fdt has
-	 * ethernet aliases the u-boot copy does not have.
+	 * Call setup_environment and fdt_fixup_ethernet again
+	 * in case the boot fdt has ethernet aliases the u-boot
+	 * copy does not have.
 	 */
 	setup_environment(blob);
+	fdt_fixup_ethernet(blob);
 
 	bluetooth_dt_fixup(blob);