From: David Gibson <david@gibson.dropbear.id.au>
To: "David H. Lynch Jr." <dhlii@dlasys.net>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: device trees.
Date: Tue, 12 May 2009 08:56:31 +1000 [thread overview]
Message-ID: <20090511225631.GA15371@yookeroo.seuss> (raw)
In-Reply-To: <4A089AC8.9080704@dlasys.net>
On Mon, May 11, 2009 at 05:38:16PM -0400, David H. Lynch Jr. wrote:
> Grant Likely wrote:
> >
> > What do you mean by "one size fits all solution?"
> >
> > The kernel doesn't care where the device tree comes from. All it
> > cares about is that by the time the kernel is started the device tree
> > must be fully formed and populated. It can be completely pre-canned
> > (like simpleImage), it can be modified by firmware (like u-boot), or
> > it can be generated from scratch (like with real OpenFirmware). There
> > is lots of flexibility on how to handle it.
> First device trees are now the ONLY means of passing information to
> the kernel.
That's not really true in practice. Yes, the device tree is the only
way to pass information to the kernel proper, but having a
bootwrapper, built along with the kernel, which translates information
in some other form into a device tree is a perfectly reasonable
solution for the right circumstances.
> By definition that means it is a one size fits all
> solution. While there is nothing inherently wrong with that,
> solutions intended to meet all circumstances need to be simple,
> powerful, and flexible. They need to work well 100% of the time not
> 98%.
>
> Not only is the device tree expected to pass static hardware
> configuration information, but it is the sole means of passing anything.
> As an example Command lines are to be in the device tree.
> Everything is supposed to be in the device tree, whether that
> information is static or dynamic, whether it is hardware information,
> or user choices.
>
> That means that whether you are in a Sun or Apple Desktop or a
> system with the no flash and barely enough resources to run Linux,
> you still may have to manipulate the device tree.
Compared to running Linux, manipulating the device tree is a complete
triviality, so I don't see what the problem is here.
[snip]
> Welding the bit file to the dtb might solve 75% of my issues,
> And it probably would get me to the point where I could move
> forward and live with
> the remaining issues untile I was inspired to solve them.
> but it does not solve everything. It is increasingly clear to me
> that I am going to have to
> manipulate device trees.
That's probably true. But you don't necessarily have to do it within
your BRAM firmware - you can do it inside the Linux bootwrapper.
> >> Anyway, all I was looking for was a leg up on figuring out how to do
> >> what I want with them. Rather than starting from scratch.
> >> I am not looking to be convinced that I am approaching this all wrong.
> >> If you are happy with what you have - great. I am not.
> >> While I was not looking to restart a great debate over device trees
> >> - I do not actually think they are a bad idea.
> >>
> >
> > I still don't understand what you're worried about starting an arguing
> > about. Pretty much any of the PowerPC maintainers can point at warts
> > and problems in the current handling of device trees. I'm not
> > particularly happy with simpleImage (and I wrote it), but it takes
> > time and effort to write something more capable.
> >
> I was not trying to start an argument, my initial question was
>
> "Is there an example somewhere that shows building a device tree on the fly ?"
>
> The responses have questioned why I want to do that rather than how can I do that.
> I was not actually seeking a debate over the merit of device trees, or u-boot, or libdft, or ....
Probably the closest things to suitable examples here are
arch/powerpc/kernel/prom_init.c, which builds the dtb from the "live"
OF device tree. At the moment that's a bit of a special case, but
there's no inherent reason that logic couldn't be moved to the
bootwrapper.
The other, not in the main tree, is Paul's restodt, which builds a
device tree from old-style PReP residual information. I recall it was
sent to the list as a userspace program (we were gathering information
on the sorts of PReP out there). I think Paul made at least a first
cut at fusing it into the bootwrapper, but I don't know if that ever
got sent out to the list.
--
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:[~2009-05-12 0:54 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-08 16:03 device trees David H. Lynch Jr.
2009-05-08 17:15 ` Timur Tabi
2009-05-08 18:43 ` Kumar Gala
2009-05-09 20:51 ` Grant Likely
2009-05-11 2:00 ` Michael Ellerman
2009-05-11 4:08 ` Grant Likely
2009-05-11 6:32 ` David H. Lynch Jr.
2009-05-11 13:51 ` Grant Likely
2009-05-11 15:52 ` Stephen Neuendorffer
2009-05-11 16:58 ` David H. Lynch Jr.
[not found] ` <20090511183638.F07C01438054@mail184-wa4.bigfish.com>
[not found] ` <4A08C599.2030100@dlasys.net>
[not found] ` <20090512005554.EEE1019D009B@mail129-dub.bigfish.com>
2009-05-12 2:34 ` David H. Lynch Jr.
2009-05-12 4:27 ` Stephen Neuendorffer
2009-05-12 5:30 ` Grant Likely
2009-05-13 0:10 ` Stephen Neuendorffer
2009-05-13 2:36 ` David Gibson
2009-05-13 4:03 ` Grant Likely
2009-05-13 6:11 ` David H. Lynch Jr.
2009-05-13 6:21 ` David Gibson
2009-05-13 18:11 ` David H. Lynch Jr.
2009-05-14 3:08 ` David Gibson
2009-05-14 12:51 ` David H. Lynch Jr.
2009-05-13 6:58 ` Stephen Neuendorffer
2009-05-11 16:45 ` David H. Lynch Jr.
2009-05-11 17:47 ` Grant Likely
2009-05-11 21:38 ` David H. Lynch Jr.
2009-05-11 22:29 ` Benjamin Herrenschmidt
2009-05-11 22:56 ` David Gibson [this message]
2009-05-12 2:37 ` Michael Ellerman
2009-05-11 23:09 ` Grant Likely
2009-05-12 1:12 ` David Gibson
2009-05-12 5:22 ` Grant Likely
2009-05-12 23:24 ` David Gibson
2009-05-13 0:01 ` Grant Likely
2009-05-13 0:13 ` David H. Lynch Jr.
2009-05-13 1:15 ` Grant Likely
2009-05-13 2:32 ` David Gibson
2009-05-11 23:19 ` Stephen Neuendorffer
2009-05-12 0:04 ` Grant Likely
2009-05-12 7:38 ` Wolfram Sang
2009-05-11 14:58 ` Timur Tabi
2009-05-11 16:54 ` David H. Lynch Jr.
2009-05-11 23:27 ` David Gibson
2009-05-11 22:25 ` Benjamin Herrenschmidt
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=20090511225631.GA15371@yookeroo.seuss \
--to=david@gibson.dropbear.id.au \
--cc=dhlii@dlasys.net \
--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).