From: Ondrej Jirman <meg...@megous.com> The reverted patch causes linking error with disabled CONFIG_NET:
cmd/built-in.o: In function `eth_env_get_enetaddr': u-boot-v2019.10/cmd/nvedit.c:363: undefined reference to `eth_parse_enetaddr' Function setup_environment() in board/sunxi/board.c calls eth_env_set_enetaddr() to setup stable mac address for ethernet interfaces. This needs to be implemented and succeed even if net is disabled in u-boot, as it ensures Linux will not generate random MAC addresses, and picks the ones provided by u-boot via DT. See fdt_fixup_ethernet(). This feature is independent of the whole network stack and network drivers in u-boot. This revert fixes the linking error. Signed-off-by: Ondrej Jirman <meg...@megous.com> --- cmd/nvedit.c | 12 ++++++++++++ include/env_internal.h | 11 +++++++++++ include/net.h | 11 ----------- net/net.c | 12 ------------ 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/cmd/nvedit.c b/cmd/nvedit.c index 1cb0bc1460..399f6d6ce1 100644 --- a/cmd/nvedit.c +++ b/cmd/nvedit.c @@ -358,6 +358,18 @@ ulong env_get_hex(const char *varname, ulong default_val) return value; } +void eth_parse_enetaddr(const char *addr, uint8_t *enetaddr) +{ + char *end; + int i; + + for (i = 0; i < 6; ++i) { + enetaddr[i] = addr ? simple_strtoul(addr, &end, 16) : 0; + if (addr) + addr = (*end) ? end + 1 : end; + } +} + int eth_env_get_enetaddr(const char *name, uint8_t *enetaddr) { eth_parse_enetaddr(env_get(name), enetaddr); diff --git a/include/env_internal.h b/include/env_internal.h index b1ddcb5adf..27eb5bd1e7 100644 --- a/include/env_internal.h +++ b/include/env_internal.h @@ -273,6 +273,17 @@ struct env_driver { extern struct hsearch_data env_htab; +/** + * eth_parse_enetaddr() - Parse a MAC address + * + * Convert a string MAC address + * + * @addr: MAC address in aa:bb:cc:dd:ee:ff format, where each part is a 2-digit + * hex value + * @enetaddr: Place to put MAC address (6 bytes) + */ +void eth_parse_enetaddr(const char *addr, uint8_t *enetaddr); + #endif /* DO_DEPS_ONLY */ #endif /* _ENV_INTERNAL_H_ */ diff --git a/include/net.h b/include/net.h index 75a16e4c8f..e208cc43a0 100644 --- a/include/net.h +++ b/include/net.h @@ -875,15 +875,4 @@ int update_tftp(ulong addr, char *interface, char *devstring); /**********************************************************************/ -/** - * eth_parse_enetaddr() - Parse a MAC address - * - * Convert a string MAC address - * - * @addr: MAC address in aa:bb:cc:dd:ee:ff format, where each part is a 2-digit - * hex value - * @enetaddr: Place to put MAC address (6 bytes) - */ -void eth_parse_enetaddr(const char *addr, uint8_t *enetaddr); - #endif /* __NET_H__ */ diff --git a/net/net.c b/net/net.c index ded86e7456..4d2b7ead3b 100644 --- a/net/net.c +++ b/net/net.c @@ -1628,15 +1628,3 @@ ushort env_get_vlan(char *var) { return string_to_vlan(env_get(var)); } - -void eth_parse_enetaddr(const char *addr, uint8_t *enetaddr) -{ - char *end; - int i; - - for (i = 0; i < 6; ++i) { - enetaddr[i] = addr ? simple_strtoul(addr, &end, 16) : 0; - if (addr) - addr = (*end) ? end + 1 : end; - } -} -- 2.23.0 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot