ARM: kernel: add device tree init map function
authorLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Thu, 17 Nov 2011 17:31:51 +0000 (17:31 +0000)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Mon, 19 Nov 2012 15:44:33 +0000 (15:44 +0000)
commita0ae02405076ac32bd17ece976e914b5b6075bb0
tree210b4b6a8c58cac502ba1d1c6a4f1c33bb494cd9
parentcb8cf4f821044f140ea5b9c8d4f816f0c05fab44
ARM: kernel: add device tree init map function

When booting through a device tree, the kernel cpu logical id map can be
initialized using device tree data passed by FW or through an embedded blob.

This patch adds a function that parses device tree "cpu" nodes and
retrieves the corresponding CPUs hardware identifiers (MPIDR).
It sets the possible cpus and the cpu logical map values according to
the number of CPUs defined in the device tree and respective properties.

The device tree HW identifiers are considered valid if all CPU nodes contain
a "reg" property, there are no duplicate "reg" entries and the DT defines a
CPU node whose "reg" property matches the MPIDR[23:0] of the boot CPU.

The primary CPU is assigned cpu logical number 0 to keep the current convention
valid.

Current bindings documentation is included in the patch:

Documentation/devicetree/bindings/arm/cpus.txt

Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
Documentation/devicetree/bindings/arm/cpus.txt [new file with mode: 0644]
arch/arm/include/asm/prom.h
arch/arm/kernel/devtree.c