[U-Boot] [PATCH 2/9] mvgbe: Support preserving the existing MAC address

Michael Spang
2011-04-26T04:20:41Z

On Sun, Apr 24, 2011 at 7:50 PM, Wolfgang Denk <wd@denx.de> wrote:
> Dear Michael Spang,
>
> In message <1300391223-11879-3-git-send-email-mspang@csclub.uwaterloo.ca> you wrote:
>> The MVGBE driver either gets the MAC from the environment, or invents
>> one. This allows the driver to leave the existing address alone in
>> case it is initialized before U-Boot starts.
>
> Who or what would be doing that?

The manufacturer's bootloader runs first, and cannot easily be
replaced. So U-Boot is loaded second, after the MAC is already set.

>
>> ? ? ? ? ? ? ? while (!eth_getenv_enetaddr(s, dev->enetaddr)) {
>> +#if defined(CONFIG_PRESERVE_LOCAL_MAC)
>> + ? ? ? ? ? ? ? ? ? ? port_uc_addr_get(dmvgbe->regs, dmvgbe->dev.enetaddr);
>> +#else
>
> For consistency, should this not be
>
> ? ? ? ?port_uc_addr_get(dmvgbe->regs, dev->enetaddr);
>
> ?

Yes.

>
>
>> ? ? ? ? ? ? ? ? ? ? ? /* Generate Private MAC addr if not set */
>> ? ? ? ? ? ? ? ? ? ? ? dev->enetaddr[0] = 0x02;
>> ? ? ? ? ? ? ? ? ? ? ? dev->enetaddr[1] = 0x50;
>> @@ -734,6 +753,7 @@ error1:
>> ? ? ? ? ? ? ? ? ? ? ? dev->enetaddr[4] = get_random_hex();
>> ? ? ? ? ? ? ? ? ? ? ? dev->enetaddr[5] = get_random_hex();
>> ?#endif
>> +#endif
>> ? ? ? ? ? ? ? ? ? ? ? eth_setenv_enetaddr(s, dev->enetaddr);
>> ? ? ? ? ? ? ? }
>
> And please add documentation for the new CONFIG_PRESERVE_LOCAL_MAC to
> the README.

Ok I'll add:

CONFIG_PRESERVE_LOCAL_MAC

If no MAC address is set in the environment, then
preserve the ethernet interface's current MAC address.
Used if the MAC is configured before U-Boot is loaded.

Thanks,
Michael