Thread (1 message) 1 message, 1 author, 2013-09-16

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

From: Lorenzo Pieralisi <hidden>
Date: 2013-09-16 09:10:06
Also in: linux-devicetree

On Fri, Sep 13, 2013 at 10:07:11PM +0100, Rob Herring wrote:
On 08/15/2013 04:42 AM, Lorenzo Pieralisi wrote:
quoted
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]
quoted
+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
quoted
+
+	CPU0: cpu at 0 {
+		device_type = "cpu";
+		compatible = "arm,cortex-a8";
+		reg = <0x0>;
+	};
+};
+
+===============================================================================
+[1] ARM Linux kernel documentation
+    Documentation/devicetree/bindings/arm/cpus.txt
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help