[U-Boot] [PATCH 1/2 v2] net, fec_mxc: only setup the device enetaddr with eeprom value, if ethaddr is not setup

Ben Warren biggerbadderben at gmail.com
Wed Mar 31 00:16:59 CEST 2010


Wolfgang,

On 3/30/2010 1:34 PM, Wolfgang Denk wrote:
> Dear Heiko Schocher,
>
> In message<4BB238E9.7060609 at denx.de>  you wrote:
>    
>> if ethaddr is not setup in the environment, fill the device
>> enetaddr with the contents of the eeprom, and only
>> the device enetaddr, not the mac address registers!
>>
>> Tested on the magnesium board.
>>
>> Signed-off-by: Heiko Schocher<hs at denx.de>
>> ---
>> - changes since v1 posted here:
>>    http://lists.denx.de/pipermail/u-boot/2010-March/069192.html
>>
>>    - splitted in two patches as Wolfgang suggested
>>      
> Thanks.  Note that it would also have been an excellent idea to put
> the responsible custodian on Cc:
>
>
>    
>>   drivers/net/fec_mxc.c |    9 +++++----
>>   1 files changed, 5 insertions(+), 4 deletions(-)
>>      
> Applied, thanks.
>
>
> Ben, this is (as far as I see it) an undisputed bug fix, so I'm
> pulling this patch (and only this one from this series of 4)
> directly. Hope this is ok with you.
>
>
>    
Hold on a second.  This patch is wrong.  As Mike has pointed out, the 
net library already gets the MAC address from the environment.  The 
correct flow is:

1. Read from hardware in initialize() function
2. Read from environment in net/eth.c after initialize()
3. Give priority to the value in the environment if a conflict
4. Program hardware in the device's init() function.

If somebody wants to subvert the 'design philosophy', the right way is 
to call eth_dev->init() in board code.

regards,
Ben


More information about the U-Boot mailing list