Thread (92 messages) 92 messages, 11 authors, 2007-03-24

Re: [PATCH 07/17] bootwrapper: Add dt_set_memory(), to fill in the /memory node.

From: Segher Boessenkool <hidden>
Date: 2007-03-23 12:35:17

quoted
quoted
quoted
quoted
However, #address-cells=2, #size-cells=1 is common enough that we
really need to support that case.
On the root node?!?  Who would do such a strange thing?
Ebony, for one, it works nicely for a 32-bit system with >32-bit bus.
It means you cannot have a 4GB-or-bigger region below your
root node.  Dunno if Ebony ever needs one, for I/O mapping
perhaps?
Nope.  0-4GB is RAM, 4-8 is in-built IO, 8-12 is PCI IO, and I forget
what 12-16 is, if anything.
Let's take the first of these -- 4GB of RAM.  Not that
you'll ever see an Ebony with that much memory of course ;-)

How do you express 4GB of memory when #a=2 #s=1?  Something
like

reg = < 0 0  ffffffff   0 fffffff  1 >

and you're lucky this is actually allowed in a memory
node, some other nodes/properties won't allow you to.

Contrast this to #a=2 #s=2 where you simply say

reg = < 0 0  1 0 >
quoted
quoted
Apple G5s do it too.
And they do a an awful workaround for their memory node
because of this.

Is their any reason why you couldn't use #a=#s=2 on 32-bit
systems?  The root node is one contiguous hunk of address
space, so the biggest (theoretically) possible size is equal
to the biggest address (+1).  It's not hard to come up with
an example where you need a size of 4GB or more.
Well, yes, we could.  I believe the only reason Apple does it is to
make the tree a little more compact.
I think the main reason is that their 64-bit OF actually
is a 32-bit one with lots of weird extras tugged on ;-)
But the point is that trees are
out there with #a=2 #s=1, so the fixup code ought to be able to handle
them.
Yes of course, I'm not disagreeing there -- I'm just
saying that for boards where we do have control over
the device tree we should discourage this monstrosity :-)


Segher
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help