[U-Boot] [PATCH v2] Fix DM9000 MAC address handling

Ben Warren biggerbadderben at gmail.com
Thu Oct 22 19:10:34 CEST 2009


Hi Sandeep,

Paulraj, Sandeep wrote:
>   
>> Proper behavior is to pull MAC address from NVRAM in the initialization()
>> an
>> stuff it in dev->address, then program the device from dev->address in
>> the init() function.
>>
>> Signed-off-by: Ben Warren <biggerbadderben at gmail.com>
>> ---
>>     
>  Ben I tested and here is the result.
>
> 1) dhcp still does not work
> 2) I have to set a static ipaddr for the bootcmd to work
>
> Your patch solved the issue where issuing the bootcmd "tftp; bootm"
> would complain about ethaddr not being set.
>
> But i do notice that ethaddr does not get saved in the environment.
>
>   
Saving the address to the environment is the user's job.  Nothing should 
write it automatically.  A few drivers do, but they should be changed.

Please look in net/eth.c::eth_initialize() to see how this works.  The 
order of precedence is this:

1. If environment variable is not set, it's up to the driver to find its 
own MAC address.
2. If the environment variable is set, and is non-zero, it is used.  If 
if conflicts with the value in NVRAM, a warning is issued, but the 
environment value is still used.

I don't know why DHCP doesn't work, but if I were you I'd check that the 
address printed from line 344 in dm9000x.c shows a valid unicast MAC 
address.

regards,
Ben



More information about the U-Boot mailing list