[U-Boot] Antwort: Re: Re: Re: [PATCH] net: write enetaddr down to hardware on env_callback

Hannes Schmelzer Hannes.Schmelzer at br-automation.com
Tue Sep 6 09:56:30 CEST 2016


Bin Meng <bmeng.cn at gmail.com> schrieb am 06.09.2016 09:28:13:

> Von: Bin Meng <bmeng.cn at gmail.com>
> An: Hannes Schmelzer <Hannes.Schmelzer at br-automation.com>, 
> Kopie: Joe Hershberger <joe.hershberger at gmail.com>, Joe Hershberger 
> <joe.hershberger at ni.com>, Hannes Schmelzer <oe5hpm at oevsv.at>, u-boot <u-
> boot at lists.denx.de>, U-Boot <u-boot-bounces at lists.denx.de>
> Datum: 06.09.2016 09:28
> Betreff: Re: Re: Re: [U-Boot] [PATCH] net: write enetaddr down to 
hardware on 
> env_callback
> 
> Hi Hannes,
> 
> On Tue, Sep 6, 2016 at 3:23 PM, Hannes Schmelzer
> <Hannes.Schmelzer at br-automation.com> wrote:
> > Bin Meng <bmeng.cn at gmail.com> schrieb am 06.09.2016 09:07:39:
> >
> > [...]
> >> >>
> >> >> Why is this needed? The MAC address is supposed to be programmed 
in
> >> >> the driver's probe routine.
> >> >
> >> > For example on my custom ZYNQ board.
> >> > The Ethernetcontroller within the ZYNQ has no ROM to store his own
> >> > MAC-Address, further no MAC is stored within environment.
> >> > So Ethernet gets probed with a "random MAC-Address" if configured.
> >> >
> >> > Later somebody (like me) oder something (my bootscript) runs 
"setenv
> >> > ethaddr ...." on the console.
> >> > Result is (was before this patch), that all networking 
infrastructre
> > is
> >> > running this new mac, but hardware is running the old (random) one 
and
> >> > networking is simple not functional.
> >> >
> >>
> >> This indicates that your ethernet driver does not program the latest
> >> MAC address everyone when it gets probed. The driver should be fixed.
> >
> > The driver doesn't get probed again if mac-address is changed using
> > "setenv ethaddr",
> > so it has no chance to program anything.
> >
> 
> Yes, driver is not probed when "setenv ethaddr", but next time when
> you type any ethernet related command (like tftpboot), the driver will
> be probed.
No. The ethernet driver isn't probed everytime a network transaction is 
coming.
What i can see, the probe is done one time.

> 
> > For program i understand, in this case with zynq, overtaking 
mac-address
> > into his registers.
> > There is per default no ROM to store some mac.
> >
> 
> I have feeling that for some ethernet controllers, simply calling
> eth_write_hwaddr() may not change its MAC address correctly. It may
> need some special programming sequence like firstly turn off, reset,
> then program the MAC.
That might be possible. Maybe this is the reason why not all drivers 
provide this function.

> 
> Regards,
> Bin




More information about the U-Boot mailing list