Skip to content
Snippets Groups Projects
Commit 381e6e54 authored by Michal Simek's avatar Michal Simek
Browse files

net: uclass: Save generated ethernet MAC addresses to the environment


When a MAC address is randomly generated we currently only update the
appropriate data structure.  For consistency and to re-align with
historic usage, it should be also saved to the appropriate environment
variable as well.

Cc: Wolfgang Denk <wd@denx.de>
Signed-off-by: default avatarMichal Simek <michal.simek@xilinx.com>
Reviewed-by: default avatarRamon Fried <rfried.dev@gmail.com>
[trini: Update Kconfig, handle legacy networking case as well]
Signed-off-by: default avatarTom Rini <trini@konsulko.com>
Acked-by: default avatarRamon Fried <rfried.dev@gmail.com>
Link: https://lore.kernel.org/r/1a2518e3cc19c14a41875ef64c5acc1f16edc813.1641893287.git.michal.simek@xilinx.com
parent 2a9caba1
No related branches found
No related tags found
No related merge requests found
......@@ -27,10 +27,11 @@ config BOOTP_SEND_HOSTNAME
config NET_RANDOM_ETHADDR
bool "Random ethaddr if unset"
help
Selecting this will allow the Ethernet interface to function
even when the ethaddr variable for that interface is unset.
A new MAC address will be generated on every boot and it will
not be added to the environment.
Selecting this will allow the Ethernet interface to function even
when the ethaddr variable for that interface is unset. In this case,
a random MAC address in the locally administered address space is
generated. It will be saved to the appropriate environment variable,
too.
config NETCONSOLE
bool "NetConsole support"
......
......@@ -583,6 +583,8 @@ static int eth_post_probe(struct udevice *dev)
net_random_ethaddr(pdata->enetaddr);
printf("\nWarning: %s (eth%d) using random MAC address - %pM\n",
dev->name, dev_seq(dev), pdata->enetaddr);
eth_env_set_enetaddr_by_index("eth", dev_seq(dev),
pdata->enetaddr);
#else
printf("\nError: %s address not set.\n",
dev->name);
......
......@@ -164,6 +164,8 @@ int eth_write_hwaddr(struct eth_device *dev, const char *base_name,
net_random_ethaddr(dev->enetaddr);
printf("\nWarning: %s (eth%d) using random MAC address - %pM\n",
dev->name, eth_number, dev->enetaddr);
eth_env_set_enetaddr_by_index("eth", eth_number,
dev->enetaddr);
#else
printf("\nError: %s address not set.\n",
dev->name);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment