linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Jerry Van Baren <gerald.vanbaren@comcast.net>
To: Timur Tabi <timur@freescale.com>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: [dtc] Add support for flat device tree format version 17
Date: Wed, 14 Mar 2007 21:32:25 -0400	[thread overview]
Message-ID: <45F8A229.7040602@comcast.net> (raw)
In-Reply-To: <45F86C25.1070301@freescale.com>

Timur Tabi wrote:
> Jerry Van Baren wrote:
> 
>> The best solution, which I'm making progress on but slowly, is to pull 
>> David Gibson's libfdt utilities into u-boot and use them to manipulate 
>> the tree.  I very much want v17 blobs because that removes my 
>> "write-in-place" restrictions on changing the properties.
> 
> Here's an alternative idea I got from a colleage (Scott Wood).
> 
> Allow U-Boot to accept V17 DTBs.  When it modifies the DTB, it should change the version 
> to 16, since that's the only version that it really knows.  U-Boot currently does not have 
> the infrastructure to support multiple DTB versions.
> 
> The DTB that U-Boot passes to the kernel will say V16, but it will have the extra length 
> field in the header.  Therefore, we need to update the documentation to say that 
> compatibility implies that any DTB will still be able to read the DTB if the DTB version 
> number has been changed to another compatible version.  So if your DTB is V17, and it has 
> V17 data, any code that assumes a V16 DTB should still be able to read it.  That seems 
> obvious, but is should be documented.

Actually, I believe that is how the existing code works: it opens the 
original blob and copies it to a newly created dft.  It then augments 
the new dft with a "chosen" node and optionally additional nodes (bd_t, 
env variables) and passes the new dft blob to linux.  Theoretically, the 
existing code will read a v17 blob and create a new v16 blob from it 
(without the additional v17 length field - the header would be created, 
not copied).

Trivia: the current code is kinda dumb about it: if the original blob 
had a "chosen" node, the code *adds another* "chosen" node.

Back to libdft: with a v16 blob, libdft has to either modify in place 
(no size change) or you have to create a new blob and copy the original 
data over (like the existing code).  With the v17 blob, libdft is able 
to expand and contract the contents of the blob (with limitations, I'm 
sure).

Best regards,
gvb

  reply	other threads:[~2007-03-15  1:32 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-13  6:22 [dtc] Add support for flat device tree format version 17 David Gibson
2007-03-13 21:10 ` Mark A. Greer
2007-03-14  0:02   ` David Gibson
2007-03-14 21:06 ` Timur Tabi
2007-03-14 21:11   ` Jerry Van Baren
2007-03-14 21:20     ` Timur Tabi
2007-03-14 23:07       ` David Gibson
2007-03-14 21:41     ` Timur Tabi
2007-03-15  1:32       ` Jerry Van Baren [this message]
2007-03-15  1:37         ` Timur Tabi
2007-03-15  2:49           ` Jerry Van Baren
2007-03-15  1:38         ` David Gibson
  -- strict thread matches above, loose matches on Subject: below --
2007-03-14  0:02 David Gibson
2007-03-14 15:32 ` Timur Tabi
2007-03-14 20:41 ` Jon Loeliger

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=45F8A229.7040602@comcast.net \
    --to=gerald.vanbaren@comcast.net \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=timur@freescale.com \
    /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).