From: Detlev Zundel <dzu@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RFC] Program net device MAC addresses after initializing
Date: Thu, 08 Apr 2010 17:30:05 +0200 [thread overview]
Message-ID: <m2k4siotc2.fsf@ohwell.denx.de> (raw)
In-Reply-To: <4BBB6470.30604@gmail.com> (Ben Warren's message of "Tue, 06 Apr 2010 09:42:24 -0700")
Hi Ben,
>>> Add a new function to the eth_device struct for programming a network
>>> controller's hardware address.
>>>
>>> After all network devices have been initialized and the proper MAC address for
>>> each has been determined, make a device driver call to program the address
>>> into the device. Only device instances with valid unicast addresses will be
>>> programmed.
Thanks for picking up this thread again.
>>> This is a significant departure from existing U-boot behavior, but costs very
>>> little in startup time and addresses a very common complaint among developers.
As I have discovered, there are a few device drivers _currently_ doing
this. So actually we will close the gap of documentation/current
practice/design goals.
>> The thing is that this _is_ a violation of the design rules, and we
>> should not make assumptions that such an initialization is harmless
>> for all systems.
>>
>>
> I know this differs from the existing design rules. I'm not trying to
> be subtle or create a loophole, I'm trying to change policy. You'll
> notice that by itself, this patch does nothing other than chew up a few
> CPU cycles and bytes of flash.
I second this effort - actually I had a patch looking very much the same
in my repository. I wanted to attach it to an existing driver before
posting it, but this is just as good.
>> From the patch it is not clear to me who is supposed to implement
>> write_hwaddr() - it should be made clear that this should be be done
>> only when absolutely necessary, and then best in board specific code,
>>
>>
> The new function is part of the 'eth_device struct', so will be
> implemented in the network drivers. As designed, MAC addresses will be
> programmed on all controllers that have a valid entry either in their
> NVRAM or the environment. If somebody goes to the effort of putting a
> valid address in one of these places, we should assume that he or she
> wanted it to be used. If there is no such entry or the driver doesn't
> implement this method, nothing happens. I have an idea for providing a
> board-level 'opt-out' ability, but doubt that it would be used much.
As stated above, I also would have implemented it inside of a netword
driver and thus not at a board level.
> I'm interested in knowing use cases where programming a MAC address is
> harmful, keeping in mind that this new code only programs valid MAC
> addresses.
next prev parent reply other threads:[~2010-04-08 15:30 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-05 7:02 [U-Boot] [RFC] Program net device MAC addresses after initializing Ben Warren
2010-04-06 7:18 ` Heiko Schocher
2010-04-06 8:02 ` Prafulla Wadaskar
2010-04-06 12:57 ` Wolfgang Denk
2010-04-06 16:42 ` Ben Warren
2010-04-08 15:30 ` Detlev Zundel [this message]
2010-04-09 19:58 ` Wolfgang Denk
2010-04-10 0:34 ` Ben Warren
2010-04-10 6:59 ` Wolfgang Denk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m2k4siotc2.fsf@ohwell.denx.de \
--to=dzu@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox