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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.