ARM: multi-cluster PM: secondary kernel entry code
authorNicolas Pitre <nicolas.pitre@linaro.org>
Thu, 12 Apr 2012 06:45:22 +0000 (02:45 -0400)
committerNicolas Pitre <nicolas.pitre@linaro.org>
Wed, 24 Apr 2013 14:36:59 +0000 (10:36 -0400)
commite8db288e05e588ad3f416b3a24354d60d02f35f2
tree97a3ed1fa4e59d45ebc41d48b07d7c61fcff9ffc
parent0c91e7e07ebf08092bf8e28d8cd8d420732fc716
ARM: multi-cluster PM: secondary kernel entry code

CPUs in cluster based systems, such as big.LITTLE, have special needs
when entering the kernel due to a hotplug event, or when resuming from
a deep sleep mode.

This is vectorized so multiple CPUs can enter the kernel in parallel
without serialization.

The mcpm prefix stands for "multi cluster power management", however
this is usable on single cluster systems as well.  Only the basic
structure is introduced here.  This will be extended with later patches.

In order not to complexify things more than they currently have to,
the planned work to make runtime adjusted MPIDR based indexing and
dynamic memory allocation for cluster states is postponed to a later
cycle. The MAX_NR_CLUSTERS and MAX_CPUS_PER_CLUSTER static definitions
should be sufficient for those systems expected to be available in the
near future.

Signed-off-by: Nicolas Pitre <nico@linaro.org>
Reviewed-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
arch/arm/Kconfig
arch/arm/common/Makefile
arch/arm/common/mcpm_entry.c [new file with mode: 0644]
arch/arm/common/mcpm_head.S [new file with mode: 0644]
arch/arm/include/asm/mcpm.h [new file with mode: 0644]