Thread (60 messages) flat view 60 messages, 3 authors, 2007-08-24

Re: [PATCH 05/20] bootwrapper: flatdevtree fixes

From: David Gibson <hidden>
Date: 2007-08-23 02:01:47

On Wed, Aug 22, 2007 at 12:24:56PM -0500, Scott Wood wrote:
On Wed, Aug 22, 2007 at 11:09:07AM +1000, David Gibson wrote:
quoted
On Tue, Aug 21, 2007 at 11:09:58AM -0500, Scott Wood wrote:
quoted
The point of #2 was as part of the fix to #1 -- otherwise, the same 
check for NULL would have to be moved into ft_create_node to 
conditionally call ft_find_device or ft_find_device_rel.
Um... oh, ok, I hadn't spotted that (1) made ft_create() use
find_device_rel().  That sounds doubly wrong: you have the internal
offset pointer, you should be able to create a phandle using the
phandle allocation stuff, rather than having to refind the node you've
just created from the parent.
Yeah, that'd make more sense.
quoted
quoted
quoted
 (3) I really dislike;  I just don't see the point.
It's needed by dt_get_path().
No, it isn't.  dt_get_path() needs *some* way of getting the name of a
node, but it could be a separate function, which I think would be
preferable rather than folding it into getprop - you don't need to
search for the name, so a getname() function would have quite a
different structure to getprop().
I'd rather not add a new entry in ops just for that; it's more of an
attribute of the dtb format that name is handled specially.  IIUC, on
real OF you'd use the same code for both.
Actually, no - sorry, that's the other problem with this, which I
forgot to mention.  On real OF, the "name" property contains the
node's name *without the unit address*; that is, only the portion
before the '@'.  So your getprop change does not match real OF
behaviour - and real OF behaviour will not do what you want for
dt_get_path().

Actually, in any case, I don't think we want to implement get_path()
this way for real OF.  Better to have get_path() itself as a callback:
on real OF I believe we can directly ask for the full path to a given
phandle, the get name based implementation can then be made specific
to the flat device tree.

Or actually, I think we might be able to come up with a get_path()
implementation for flat tree that's less hideous than repeatedly
calling get_parent() which is an ugly, ugly operation on the flat tree
(and will get worse with libfdt).
Plus, something might come along that needs to dynamically look for
either name or something else.  It's more flexible this way.
Hrm... "something might come along" just seems contrived to me.

-- 
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help