[PATCH] sunxi: call fdt_fixup_ethernet again to set macaddr for more aliases

Jernej Skrabec jernej.skrabec at gmail.com
Sat Sep 11 19:39:16 CEST 2021


From: Icenowy Zheng <icenowy at 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 at aosc.io>
[updated commit message]
Signed-off-by: Jernej Skrabec <jernej.skrabec at 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);
 
 	bluetooth_dt_fixup(blob);
 
-- 
2.33.0



More information about the U-Boot mailing list