Devicetree
 help / color / mirror / Atom feed
From: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@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 21:24:53 -0600	[thread overview]
Message-ID: <fa686aa41003252024x30e3c041pf32fcb8b746f1faa@mail.gmail.com> (raw)
In-Reply-To: <20100325210409.GH24984-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>

On Thu, Mar 25, 2010 at 3:04 PM, Russell King - ARM Linux
<linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org> wrote:
> On Wed, Mar 24, 2010 at 09:11:56AM -0600, Grant Likely wrote:
>> ===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?

Heh, I forgot to go back and check if 0 was assigned or not.  I just
wanted something that wasn't going to conflict.  How about 0xffffffff
like Jeremy has been using?

>> **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.

done.

>> ===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.

Fair enough, I hadn't considered that.

Currently I'm handling the tree blob the same way ramdisks are handled
and waiting until after bootmem_init() to actually access the tree.
That works for the device registration code, but I still rely on the
machine id for probing platform code.  Jeremy has patches that can do
platform probing from device tree data, but last I talked to him it
required the blob to be in the same section of memory as the atags.
ie. between PHYS_BASE and PHYS_BASE+0x4000 IIRC.

> 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...
>
> That's always been the catch-22 with passing binary data blobs to the
> kernel.

Indeed.  Another option I suppose is to extract the needed data from
the tree as part of the wrapper and squirt it into atags.  Then there
would be no problem in waiting until bootmem_init() to reserve the
devicetree memory.

Cheers,
g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.

  parent reply	other threads:[~2010-03-26  3:24 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
2010-03-26  0:23       ` Jeremy Kerr
2010-03-26  3:24     ` Grant Likely [this message]
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=fa686aa41003252024x30e3c041pf32fcb8b746f1faa@mail.gmail.com \
    --to=grant.likely-s3s/wqlpoipyb63q8fvjnq@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