|
|
|
|
|
|
|
|
|
|
xen-ppc-devel
[XenPPC] device discovery for dart, open pic, uart etc
The latest patch I sent, although it makes progress in booting on g5
hardware has many structural flaws. One problem is that boot_of.c is
growing with code that, although uses information from the OF tree, does
not properly belong there. For example, the open mpic allocation,
optionally needs a flag to indicate big endian. The definition of this
flag is information pertinent to the mpic implementation (mpic.c and
mpic.h) and properly boot_of.c should not need to include mpic.h. The
current plan is to shift the discovery of open pic, dart, memory later
in the boot process and to use the OFD tree whose address we plan on
making global. Thus there will be a start_mpic.c (we cannot use
mpic.c, since we already have that) where the code currently in
external.c that allocates mpic is and this code will find the mpic
device and its address with the global OFD tree.
Since we are shifting these items later, we have no need to discover the
hardware type in boot_of either and we are also planning to do so with
OFD interfaces later.
The serial port discovery code will remain pretty much unchanged (aside
from some minor fixes) and will remain in boot_of.c.
There is a bit of ugliness in this code related to finding the device
address. I tried to rationalize this by looking carefully over the
documentation, but I ran into problems. The ugliness does not go away
by moving to OFD and other devices, for example mpic, will have similar
code. The ugliness relates to how to map the properties 'reg' and
'ranges'. These should be driven by the values of the properties
#address-cells and #size-cells, in specific locations. While the value
for #size-cells tracks, we have issues with #address-sizes (it's not
what I would expect). In addition Jimi and I have a bit of
disagreement over the location of the property #size-cells. Jimi
believes that the absence of this property should indicate that one is
to look further up the tree, whereas I think that the absence of this
property should indicate that it reverts to its default value of 1.
There is additional complication that for the property 'reg' the
#size-cells of interest is one slot up the tree and for the property
'ranges' it is not.
As I mentioned already, in practice on the machine where I have tested
the #size-cells is where we expect it to be and its value tracks what we
see in the related other properties. Jimi and I disagree about what to
do should this property not be there, a case that we have not
encountered in practice. (I make this statement with a degree of
uncertainly. I have not booted on maple hardware, for example.)
_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [XenPPC] device discovery for dart, open pic, uart etc,
Maria Butrico <=
|
|
|
|
|