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

Detlev Zundel dzu at denx.de
Wed Mar 31 15:44:57 CEST 2010


Hi Ben,

> 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.

This would mean that for the real problem of a missing mac address, the
device then is initialized completely adding the autonegotation timeout
to every bootup sequence, correct?

If it is, then it doesn't solve my problem in an acceptable way.  On the
other hand a different route occured to Wolfgang and me in a lengthy
discussion.  This will need a little broader interpretation of the
design guidelines, but as I still cannot see any downside to this and it
will also fix some inconsistent behaviour _that we currently have_
("setenv ethaddr ...", do not do any network transfer and boot linux), I
want to follow this route.

I will try to implement this in form of a patch in order to keep the
discussion close to the effects on the code base.

Cheers
  Detlev

-- 
#!/usr/bin/perl
$c="print\"\#\!\/usr\/bin\/perl\
\\\$c\=\\\"\"\.quotemeta\(\$c\)\.\"\\\"\;\\n\$c;\"";
print"#!/usr/bin/perl\n\$c=\"".quotemeta($c)."\";\n$c;";
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de


More information about the U-Boot mailing list