linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Timur Tabi <timur@freescale.com>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: linuxppc-dev <linuxppc-dev@ozlabs.org>
Subject: Re: mac-address vs. local-mac-address
Date: Wed, 07 Feb 2007 15:42:03 -0600	[thread overview]
Message-ID: <45CA47AB.1000302@freescale.com> (raw)
In-Reply-To: <1170883956.2620.305.camel@localhost.localdomain>

Benjamin Herrenschmidt wrote:
> On Wed, 2007-02-07 at 15:17 -0600, Timur Tabi wrote:
>> Hi everyone,
>>
>> What is the current consensus on using mac-address vs. local-mac-address in the 
>> device tree?  The 1275 spec says this:
>>
>> "local-mac-address" Standard property name to specify preassigned network address.
>> "mac-address" Standard property name to specify network address last used.
>>
>> I think we need to agree on some interpretation of these statements, and all the 
>> code should be updated to implement that interpretation.
> 
> It's fairly clear:
> 
> local-mac-address is what is statically set by the firwmare (comes from
> EEPROM, whatever).
> 
> mac-address is really only meaningful if your firmware is
> "dynamic" (real OF, uboot maybe) and was, for some reason, instructed by
> the user to use a different mac address for that boot (if that feature
> exist).
> 
> It's basically the mac-address that was actually used on that interface
> to netboot the kernel I'd say.
> 
>> Linux doesn't support that.  In some cases, the actual device tree is located on 
>> a TFTP server, and it's only copied temporarily into RAM by U-Boot.  There's no 
>> way that a Linux driver can update that.
> 
> I don't understand what you mean here :-) The linux driver can perfectly
> well update the in-memory copy of the device-tree, which would make it
> useful in the case of a kexec to a newer kernel.

That makes sense.  I don't know anything about kexec, so I didn't think there 
was any point in updating the in-memory copy.  But in this case, the driver 
should update it.

>> On a full-blown OF machine, the firmware does provide APIs for updating the 
>> device tree, and so we could support mac-address on these machines.  But U-Boot 
>> disappears once the kernel loads, so there is no firmware to call to update the 
>> device tree.
> 
> I don't understand what the firmware device-tree has to do with that...

Without a firmware device tree, there's no way to update the device tree and 
have that new tree retained over a reboot.

> If uboot is instructed to use a different mac-address than the
> "built-in" one, it can perfectly well create that property before
> getting to the kernel.

And it does, depending on which version of U-Boot.  There is debate (inside 
Freescale, at least) whether U-Boot should update mac-address or 
local-mac-address.  It sounds to me like it should update local-mac-address, and 
the DTS file shouldn't even include an entry for mac-address.

>> Therefore, I propose that on systems where the driver cannot update the device 
>> tree, the mac-address property should be absent from the device tree.  U-Boot 
>> should not add one, and the Linux device drivers should not reference it.
> 
> "cannot update the device tree" is what makes little sense to me.

If I keep my device tree on a TFTP server, which U-Boot fetches every time it 
boots the kernel, there's no way for Linux to update *that* device tree, which 
would be the only one that's important.  You mentioned kexec earlier, and that's 
fine, so the driver should update the in-memory copy.  But in my opinion, the 
in-memory copy of the device tree isn't the *real* device tree, it's just a 
temporary copy of one.

-- 
Timur Tabi
Linux Kernel Developer @ Freescale

  parent reply	other threads:[~2007-02-07 21:42 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-07 21:17 mac-address vs. local-mac-address Timur Tabi
2007-02-07 21:32 ` Benjamin Herrenschmidt
2007-02-07 21:41   ` Kumar Gala
2007-02-07 21:46     ` Timur Tabi
2007-02-07 21:42   ` Timur Tabi [this message]
2007-02-07 21:51     ` Kumar Gala
2007-02-07 22:07       ` Timur Tabi
2007-02-07 22:14         ` Kumar Gala
2007-02-07 22:22           ` Timur Tabi
2007-02-07 22:07     ` Benjamin Herrenschmidt
2007-02-07 22:16       ` Timur Tabi

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=45CA47AB.1000302@freescale.com \
    --to=timur@freescale.com \
    --cc=benh@kernel.crashing.org \
    --cc=linuxppc-dev@ozlabs.org \
    /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;
as well as URLs for NNTP newsgroup(s).