From: David Gibson <david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org>
To: Russell King - ARM Linux <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>
Cc: devicetree-discuss
<devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org>,
Philippe Robin <Philippe.Robin-5wv7dgnIgG8@public.gmane.org>,
David Rusling <David.Rusling-5wv7dgnIgG8@public.gmane.org>,
Jeremy Kerr <jeremy.kerr-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>,
Dave P Martin <Dave.Martin-5wv7dgnIgG8@public.gmane.org>,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: Re: RFC: ARM Boot standard for passing device tree blob
Date: Thu, 25 Mar 2010 19:40:53 -0400 [thread overview]
Message-ID: <20100325234053.GB26649@yookeroo> (raw)
In-Reply-To: <20100325210409.GH24984-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
On Thu, Mar 25, 2010 at 09:04:09PM +0000, Russell King - ARM Linux wrote:
> On Wed, Mar 24, 2010 at 09:11:56AM -0600, Grant Likely wrote:
> > Hi all,
> >
> > Since work is being done to add ARM Flattened Device Tree support to
> > both Linux and FreeBSD, I think it would be worth while to agree on a
> > common boot interface for passing a device tree blob from firmware to
> > the kernel (or in the case of kexec, from the old to new kernels).
> > I've drafted up something quickly on fdt.secretlab.ca. The page can
> > be found here:
> >
> > http://fdt.secretlab.ca/Boot_Environment#ARM
> >
> > Feel free to modify the draft on the wiki if you notice any missing
> > details. I've also posted the current text below so it is easy to
> > review and comment on.
> >
> > (btw, the wiki at fdt.secretlab.ca should be moving to devicetree.org
> > in the near future, but I'll keep the old domain name around.
> > devicetree.org will be used to document new device tree bindings in an
> > OS-agnostic location.)
> >
> >
> > == ARM ==
> > See Documentation/arm/Booting and arch/arm/include/asm/setup.h in the
> > Linux kernel source tree for background information. Some of the
> > content of this section is extracted from those files.
> >
> > '''Draft'''
> >
> > ===Required System State===
> > *Quiesce all DMA
> > *CPU register contents
> > **r0 = 0
> > **r1 = Linux machine number (as defined in the ARM Linux machine database) or 0
>
> 0 is a valid machine number. What is your purpose of passing 0?
Presumably a machine number will need to be allocated to mean "use the
device tree instead of fixed machine number info".
> > **r2 = physical address of tagged parameter list in system RAM
> > *IRQs disabled
> > *MMU off
> > *Instruction cache either on or off
> > *Data cache turned off
>
> Would recommend saying "Data cache(s) turned off" so that L2 cache is
> included.
>
> > ===Minimal state for Flattened Device Tree Boot===
> > For FDT booting, the tagged list only needs to contain a single device
> > tree tag, and the device tree blob could be appended to the end of the
> > tagged list so that everything resides in the same region of memory.
>
> That's a bad idea. Sometimes the tagged list can be extended by wrappers
> around the kernel, and data placed at the end of the list would be
> overwritten.
>
> As the tagged list can encode arbitarily sized data chunks, there's no
> reason to use a pointer in the tagged list. However, there is a problem:
> what do you do with a large chunk of data in the tagged list? You can't
> allocate memory to copy it in the kernel because no memory allocators
> are up and running...
It's not clear that you'll need to copy it particularly soon. The
libfdt functions we use in the zImage wrapper on powerpc will deal
fine with a device tree accessed in place, or moved about. They are
built specifically not to assume the existence of an allocater.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
next prev parent reply other threads:[~2010-03-25 23:40 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-24 15:11 RFC: ARM Boot standard for passing device tree blob Grant Likely
2010-03-25 21:04 ` Russell King - ARM Linux
[not found] ` <20100325210409.GH24984-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2010-03-25 23:40 ` David Gibson [this message]
2010-03-26 0:23 ` Jeremy Kerr
2010-03-26 3:24 ` Grant Likely
2010-03-26 13:37 ` Catalin Marinas
[not found] ` <1269610665.807.51.camel-uqmqopRKlSLZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2010-03-26 17:43 ` Mitch Bradley
[not found] ` <4BACF238.3040405-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2010-03-26 18:13 ` Grant Likely
2010-03-26 19:30 ` Nicolas Pitre
[not found] ` <alpine.LFD.2.00.1003261435460.694-QuJgVwGFrdf/9pzu0YdTqQ@public.gmane.org>
2010-03-26 19:52 ` Grant Likely
[not found] ` <fa686aa41003261252u7dc31bb6nca2e77ae8feb4355-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-03-26 23:03 ` Russell King - ARM Linux
2010-03-29 11:24 ` Dave P. Martin
2010-03-30 0:26 ` Jamie Lokier
[not found] ` <20100330002638.GI9876-yetKDKU6eevNLxjTenLetw@public.gmane.org>
2010-03-30 13:32 ` Dave P. Martin
2010-03-26 23:00 ` Russell King - ARM Linux
2010-03-31 1:10 ` Ben Dooks
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=20100325234053.GB26649@yookeroo \
--to=david-xt8fgy+axnrb3ne2bgzf6laj5h9x9tb+@public.gmane.org \
--cc=Dave.Martin-5wv7dgnIgG8@public.gmane.org \
--cc=David.Rusling-5wv7dgnIgG8@public.gmane.org \
--cc=Philippe.Robin-5wv7dgnIgG8@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=jeremy.kerr-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.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