Re: [PATCH 2/2] Documentation: DT: arm: define CPU topology bindings

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

 




On Fri, Sep 13, 2013 at 10:07:11PM +0100, Rob Herring wrote:
> On 08/15/2013 04:42 AM, Lorenzo Pieralisi wrote:
> > The advent of multi-cluster ARM systems requires a mechanism to describe
> > how in hierarchical terms CPUs are connected in ARM SoCs so that the kernel
> > can initialize and map resources like IRQs and memory space to specific
> > group(s) of CPUs.
> > 
> > The CPU topology is made up of multiple hierarchy levels whose bottom
> > layers (aka leaf nodes in device tree syntax) contain links to the HW
> > CPUs in the system.
> > 
> > The topology bindings are generic for both 32-bit and 64-bit systems and
> > lay the groundwork on top of which affinity schemes can be built.
> 
> By affinity schemes, you mean further bindings? Do we need this binding
> until that point?

Well, further bindings (for HW like perf counters) will rely on these
topology bindings to build IRQ affinity masks for instance.

I think we should go on and publish these bindings asap so that we can
rely on them to properly describe topologies for ARM from the beginning.

Current reliance on MPIDR is a leap of faith.

> As is, I don't have much comment.

I take this as positive feedback, or put it another way, that you think
bindings are sound.

> 
> [snip]
> 
> > +Example 3 (ARM 32-bit, cortex-a8 single core):
> > +
> > +cpus {
> > +	#size-cells = <0>;
> > +	#address-cells = <1>;
> > +
> > +	cpu-map {
> > +		cluster0 {
> > +			core0 {
> > +				cpu = <&CPU0>;
> > +			};
> > +		};
> > +	};
> 
> This example seems utterly pointless. I think we should be specific that
> single core does not contain a cpu-map. I suppose we could have a
> threaded, single core case, but let's address that if we ever do.

Ok right. We can have a multi cluster system where one cluster is made
up of a single CPU, then a binding like the one above makes sense.
I will rule cpu-map out for uniprocessor systems.

Lorenzo

> 
> Rob
> 
> > +
> > +	CPU0: cpu@0 {
> > +		device_type = "cpu";
> > +		compatible = "arm,cortex-a8";
> > +		reg = <0x0>;
> > +	};
> > +};
> > +
> > +===============================================================================
> > +[1] ARM Linux kernel documentation
> > +    Documentation/devicetree/bindings/arm/cpus.txt
> > 
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux