
On Monday, April 22, 2024 3:47:21 P.M. EDT Marek Vasut wrote:
On 4/22/24 3:56 PM, Detlev Casanova wrote:
On some boards, a MAC address is set based on the CPU ID or other information. This is usually done in the misc_init_r() function.
This becomes a problem for net devices that are probed after the call to misc_init_r(), for example, when the ethernet is on a PCI port, which needs to be enumerated.
In this case, misc_init_r() will set the ethaddr variable, then, when the ethernet device is probed, if it has a ROM address, u-boot will warn about a MAC address mismatch and use the misc_init_r() address instead of the one in ROM.
The operating system later will most likely use the ROM MAC address, which can be confusing.
To avoid that, this commit introduces NET_PREFER_ROM_MAC_ADDR that can be set for boards that have such an interface.
Signed-off-by: Detlev Casanova detlev.casanova@collabora.com
Won't the system pick ROM MAC if $ethaddr is not set ?
Yes, and in the case of rockchip, misc_init_r() will set an $ethaddr based on the cpuid, which makes the eth driver use that instead of the ROM one.