From: David Gibson <david@gibson.dropbear.id.au>
To: Scott Wood <scottwood@freescale.com>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: [PATCH 05/20] bootwrapper: flatdevtree fixes
Date: Sat, 25 Aug 2007 08:17:10 +1000 [thread overview]
Message-ID: <20070824221710.GA674@localhost.localdomain> (raw)
In-Reply-To: <20070824144837.GA18753@ld0162-tx32.am.freescale.net>
On Fri, Aug 24, 2007 at 09:48:37AM -0500, Scott Wood wrote:
> On Fri, Aug 24, 2007 at 11:01:22AM +1000, David Gibson wrote:
> > On Thu, Aug 23, 2007 at 12:48:30PM -0500, Scott Wood wrote:
> > > It's likely to be ugly no matter what, though I'll try to come up with
> > > something slightly nicer. If I were doing this code from scratch, I'd
> > > probably liven the tree first and reflatten it to pass to the kernel.
> >
> > Eh, probably not worth bothering doing an actual implementation at
> > this stage - I'll have to redo it for libfdt anyway.
>
> Too late, I already wrote it -- it wasn't as bad as I thought it would
> be.
Well, there you go.
> > flatdevtree uses some of the information it caches in the phandle
> > context stuff to remember who's the parent of a node. libfdt uses raw
> > offsets into the structure, so the *only* way to implement
> > get_parent() is to rescan the dt from the beginning, keeping track of
> > parents until reaching the given node.
>
> What is the benefit of doing it that way?
Most other operations are simpler like this - no more futzing around
converting between phandles and offsets and back again at the
beginning and end of most functions.
More importantly, it allows libfdt to be "stateless" in the sense that
you can manipulate the device tree without having to maintain any
context or state structure apart from the device tree blob itself.
That's particularly handy for doing read-only accesses really early
with a minimum of fuss.
In particular, it means libfdt does not need malloc(). That can be
rather useful for some that's supposed to be embeddable in a variety
of strange, constrained environments such as bootloaders and
firmwares.
--
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:[~2007-08-24 22:17 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-20 17:39 [PATCH 01/20] bootwrapper: Update .gitignore Scott Wood
2007-08-20 17:39 ` [PATCH 02/20] bootwrapper: Set timebase_period_ns from dt_fixup_cpu_clocks Scott Wood
2007-08-21 1:53 ` David Gibson
2007-08-20 17:39 ` [PATCH 03/20] bootwrapper: dt_xlate_range() bugfixes Scott Wood
2007-08-21 2:01 ` David Gibson
2007-08-20 17:39 ` [PATCH 04/20] bootwrapper: Add dt_is_compatible() Scott Wood
2007-08-21 2:28 ` David Gibson
2007-08-20 17:39 ` [PATCH 05/20] bootwrapper: flatdevtree fixes Scott Wood
2007-08-21 2:30 ` David Gibson
2007-08-21 16:09 ` Scott Wood
2007-08-22 1:09 ` David Gibson
2007-08-22 17:24 ` Scott Wood
2007-08-23 2:01 ` David Gibson
2007-08-23 17:48 ` Scott Wood
2007-08-24 1:01 ` David Gibson
2007-08-24 14:48 ` Scott Wood
2007-08-24 22:17 ` David Gibson [this message]
2007-08-23 18:00 ` Segher Boessenkool
2007-08-20 17:39 ` [PATCH 06/20] bootwrapper: Add 16-bit I/O, sync(), eieio(), and barrier() Scott Wood
2007-08-21 2:31 ` David Gibson
2007-08-20 17:39 ` [PATCH 07/20] bootwrapper: Add TARGET_HAS_ETHn tests to ppcboot.h Scott Wood
2007-08-21 3:33 ` David Gibson
2007-08-20 17:39 ` [PATCH 08/20] bootwrapper: serial_console_init() fixes Scott Wood
2007-08-21 2:38 ` David Gibson
2007-08-20 17:39 ` [PATCH 09/20] bootwrapper: Declare udelay() in ops.h Scott Wood
2007-08-21 2:39 ` David Gibson
2007-08-21 16:12 ` Scott Wood
2007-08-22 1:09 ` David Gibson
2007-08-20 17:39 ` [PATCH 10/20] bootwrapper: Add CPM serial driver Scott Wood
2007-08-21 2:42 ` David Gibson
2007-08-21 16:15 ` Scott Wood
2007-08-22 1:10 ` David Gibson
2007-08-20 17:39 ` [PATCH 11/20] bootwrapper: Move linker symbols into ops.h Scott Wood
2007-08-21 2:43 ` David Gibson
2007-08-20 17:40 ` [PATCH 12/20] bootwrapper: Add 8xx cuboot support Scott Wood
2007-08-21 2:44 ` David Gibson
2007-08-21 16:20 ` Scott Wood
2007-08-22 1:47 ` David Gibson
2007-08-20 17:40 ` [PATCH 13/20] bootwrapper: Add PowerQUICC II (82xx with CPM) " Scott Wood
2007-08-21 3:30 ` David Gibson
2007-08-20 17:40 ` [PATCH 14/20] bootwrapper: Add strtoull() Scott Wood
2007-08-21 2:47 ` David Gibson
2007-08-21 16:20 ` Scott Wood
2007-08-20 17:40 ` [PATCH 15/20] bootwrapper: Add dt_get_path() Scott Wood
2007-08-21 3:03 ` David Gibson
2007-08-20 17:40 ` [PATCH 16/20] bootwrapper: Move strncmp() and strchr() from flatdevtree_env.h to string.h Scott Wood
2007-08-21 3:06 ` David Gibson
2007-08-20 17:40 ` [PATCH 17/20] bootwrapper: Add PlanetCore firmware support Scott Wood
2007-08-21 3:16 ` David Gibson
2007-08-21 16:29 ` Scott Wood
2007-08-22 1:20 ` David Gibson
2007-08-20 17:40 ` [PATCH 18/20] bootwrapper: Add a zImage.bin.<platform> target Scott Wood
2007-08-21 3:27 ` David Gibson
2007-08-20 17:40 ` [PATCH 19/20] bootwrapper: Only print MAC addresses when the node is actually present Scott Wood
2007-08-21 3:20 ` David Gibson
2007-08-20 17:40 ` [PATCH 20/20] bootwrapper: Add fsl_get_immr(), mpc885_get_clock(), and pq2_get_clocks() Scott Wood
2007-08-21 3:25 ` David Gibson
2007-08-21 16:34 ` Scott Wood
2007-08-22 1:30 ` David Gibson
2007-08-21 1:50 ` [PATCH 01/20] bootwrapper: Update .gitignore David Gibson
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=20070824221710.GA674@localhost.localdomain \
--to=david@gibson.dropbear.id.au \
--cc=linuxppc-dev@ozlabs.org \
--cc=scottwood@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).