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 |
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>
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 --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 */
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(-)