[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [RFC 03/24] xen/dts: Don't check the number of address and size cells in process_cpu_node



On Thu, 2013-08-22 at 14:14 +0100, Julien Grall wrote:
> On 08/22/2013 01:51 PM, Ian Campbell wrote:
> > On Fri, 2013-08-16 at 22:05 +0100, Julien Grall wrote:
> >> The properties #address-cells and #size-cells is not required in /cpus 
> >> node in
> >> the device tree (see Linux Documentation/devicetree/booting-without-of.txt
> >> Section III.5.a).
> > 
> > This isn't quite accurate, the properties must exist somewhere, if not
> > here then in the parent node, recursively, otherwise we cannot interpret
> > the reg properties etc. What isn't required is that they have the
> > particular values we are checking for.
> 
> What about:
> 
> The properties #address-cells and #size-cells may not correctly defines
> for CPUs node (see /Documentation/devicetree/booting-without-of.txt).

I don't think that's quite right either. #address-calls is still defined
for /cpus/ even if /cpus/ doesn't itself contain a that property,
because the parent's #address-cells is used in that case (I think
recursively, so grand-parents if the parent doesn't have it, I'm not
100% sure of that though).

I think you just want to say something along the lines of "CPU nodes are
not required to have #address-cells == 1 and #size-cells == 0, so don't
check for that".

> 
> >>
> >> In the OMAP5 device tree, these 2 properties are not defined. Therefore, 
> >> Xen
> >> will only able to handle 1 CPU.
> >>
> >> Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
> >> CC: andrii.anisov@xxxxxxxxxxxxxxx
> >> CC: baozich@xxxxxxxxx
> >> ---
> >>  xen/common/device_tree.c |    6 ------
> >>  1 file changed, 6 deletions(-)
> >>
> >> diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c
> >> index 84d704d..51f23eb 100644
> >> --- a/xen/common/device_tree.c
> >> +++ b/xen/common/device_tree.c
> >> @@ -414,12 +414,6 @@ static void __init process_cpu_node(const void *fdt, 
> >> int node,
> >>      const u32 *cell;
> >>      paddr_t start, size;
> >>  
> >> -    if ( address_cells != 1 || size_cells != 0 )
> >> -    {
> >> -        early_printk("fdt: node `%s': invalid #address-cells or 
> >> #size-cells",
> >> -                     name);
> >> -        return;
> >> -    }
> >>  
> >>      prop = fdt_get_property(fdt, node, "reg", NULL);
> >>      if ( !prop )
> > 
> > 
> 
> 



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.