diff mbox series

common/board_r.c: drop legacy and unused bi_enetaddr

Message ID 20220520111908.3170891-1-rasmus.villemoes@prevas.dk
State Accepted
Commit e5e04eaa2f1cb4dc37a12551018a00a18cab19de
Delegated to: Tom Rini
Headers show
Series common/board_r.c: drop legacy and unused bi_enetaddr | expand

Commit Message

Rasmus Villemoes May 20, 2022, 11:19 a.m. UTC
The bi_enetaddr field in struct bd_info is write-only; nothing ever
reads back the value.

Moreover, the value we write is more or less random, and certainly not
something one can rely on: If the board has a writable environment and
the mac address has been stored there, we fetch that value. But if the
board doesn't, this code runs before initr_net() -> eth_initialize(),
and thus before the code in eth-uclass which fetches MAC addresses
from eeprom, fuses or whatnot and populates the (run-time) environment
with those values.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
---
 common/board_r.c             | 15 ---------------
 include/asm-generic/u-boot.h |  1 -
 2 files changed, 16 deletions(-)

Comments

Tom Rini May 20, 2022, 3:20 p.m. UTC | #1
On Fri, May 20, 2022 at 01:19:08PM +0200, Rasmus Villemoes wrote:

> The bi_enetaddr field in struct bd_info is write-only; nothing ever
> reads back the value.
> 
> Moreover, the value we write is more or less random, and certainly not
> something one can rely on: If the board has a writable environment and
> the mac address has been stored there, we fetch that value. But if the
> board doesn't, this code runs before initr_net() -> eth_initialize(),
> and thus before the code in eth-uclass which fetches MAC addresses
> from eeprom, fuses or whatnot and populates the (run-time) environment
> with those values.
> 
> Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>

I believe in this case legacy means non-device tree PowerPC Linux (and
perhaps VxWorks?) since for ARM we would pass in ATAGS stuff instead but
PowerPC we did do gd?  Been so long...

Reviewed-by: Tom Rini <trini@konsulko.com>
Tom Rini June 7, 2022, 4:47 p.m. UTC | #2
On Fri, May 20, 2022 at 01:19:08PM +0200, Rasmus Villemoes wrote:

> The bi_enetaddr field in struct bd_info is write-only; nothing ever
> reads back the value.
> 
> Moreover, the value we write is more or less random, and certainly not
> something one can rely on: If the board has a writable environment and
> the mac address has been stored there, we fetch that value. But if the
> board doesn't, this code runs before initr_net() -> eth_initialize(),
> and thus before the code in eth-uclass which fetches MAC addresses
> from eeprom, fuses or whatnot and populates the (run-time) environment
> with those values.
> 
> Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
> Reviewed-by: Tom Rini <trini@konsulko.com>

Applied to u-boot/next, thanks!
diff mbox series

Patch

diff --git a/common/board_r.c b/common/board_r.c
index 6f4aca2077..3e6ba3a9bc 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -469,18 +469,6 @@  static int initr_malloc_bootparams(void)
 }
 #endif
 
-#ifdef CONFIG_CMD_NET
-static int initr_ethaddr(void)
-{
-	struct bd_info *bd = gd->bd;
-
-	/* kept around for legacy kernels only ... ignore the next section */
-	eth_env_get_enetaddr("ethaddr", bd->bi_enetaddr);
-
-	return 0;
-}
-#endif /* CONFIG_CMD_NET */
-
 #if defined(CONFIG_LED_STATUS)
 static int initr_status_led(void)
 {
@@ -756,9 +744,6 @@  static init_fnc_t init_sequence_r[] = {
 	initr_status_led,
 #endif
 	/* PPC has a udelay(20) here dating from 2002. Why? */
-#ifdef CONFIG_CMD_NET
-	initr_ethaddr,
-#endif
 #if defined(CONFIG_GPIO_HOG)
 	gpio_hog_probe_all,
 #endif
diff --git a/include/asm-generic/u-boot.h b/include/asm-generic/u-boot.h
index 1becc669ae..70303acd55 100644
--- a/include/asm-generic/u-boot.h
+++ b/include/asm-generic/u-boot.h
@@ -48,7 +48,6 @@  struct bd_info {
 #endif
 	unsigned long	bi_bootflags;	/* boot / reboot flag (Unused) */
 	unsigned long	bi_ip_addr;	/* IP Address */
-	unsigned char	bi_enetaddr[6];	/* OLD: see README.enetaddr */
 	unsigned short	bi_ethspeed;	/* Ethernet speed in Mbps */
 	unsigned long	bi_intfreq;	/* Internal Freq, in MHz */
 	unsigned long	bi_busfreq;	/* Bus Freq, in MHz */