Subject: Re: [PATCH] Check mac-address first in fsl_soc.c

From: Timur Tabi <[email-masked]>
Date: Fri, 09 Feb 2007 14:55:24 -0600

Sergei Shtylyov wrote:
> Hello.
> 
> Timur Tabi wrote:
>> The mac-address property in the device tree should be checked first,
>> before local-mac-address.  This is because mac-address contains the most
>> recent MAC address, whereas local-mac-address is the default address.
>> Depending on the platform and the version of U-Boot, U-Boot will set
>> one or the other, or both.
> 
>    Argh, *when* it will be setting both?

I'm working on a patch now to implement that for 83xx.  Whether/when it will be 
applied is anyone's guess.

>> -        mac_addr = (void *)get_property(np, "mac-address", NULL);
>> -        memcpy(fs_enet_data.macaddr, mac_addr, 6);
>> +        mac_addr = get_property(np, "mac-address", NULL);
>> +        if (!mac_addr || (memcmp(mac_addr, "\0\0\0\0\0", 6) == 0)) {
>> +            mac_addr = get_property(np, "local-mac-address", NULL);
>> +            if (!mac_addr || (memcmp(mac_addr, "\0\0\0\0\0", 6) == 0)) {
>> +                /* Obsolete */
>> +                mac_addr = get_property(np, "address", NULL);
>> +            }
>> +        }
>> +
>> +        if (mac_addr)
>> +            memcpy(fs_enet_data.macaddr, mac_addr, 6);
> 
>    These are just asking to be put into a separate function... :-)

I wanted to keep my patch simple.

-- 
Timur Tabi
Linux Kernel Developer @ Freescale