Add CPU specific power management operations
authorSoby Mathew <soby.mathew@arm.com>
Thu, 14 Aug 2014 11:49:05 +0000 (12:49 +0100)
committerDan Handley <dan.handley@arm.com>
Wed, 20 Aug 2014 18:14:31 +0000 (19:14 +0100)
commitadd403514d0f792b9df3c81006cd9a9395b213f6
tree284f2c6ee8f2f93eb15a4d698ed79d896e1dd3f4
parent24fb838f965cc1250831cd021d6a18b0d371b853
Add CPU specific power management operations

This patch adds CPU core and cluster power down sequences to the CPU specific
operations framework introduced in a earlier patch. Cortex-A53, Cortex-A57 and
generic AEM sequences have been added. The latter is suitable for the
Foundation and Base AEM FVPs. A pointer to each CPU's operations structure is
saved in the per-cpu data so that it can be easily accessed during power down
seqeunces.

An optional platform API has been introduced to allow a platform to disable the
Accelerator Coherency Port (ACP) during a cluster power down sequence. The weak
definition of this function (plat_disable_acp()) does not take any action. It
should be overriden with a strong definition if the ACP is present on a
platform.

Change-Id: I8d09bd40d2f528a28d2d3f19b77101178778685d
20 files changed:
Makefile
bl31/aarch64/bl31_entrypoint.S
docs/porting-guide.md
include/lib/aarch64/arch.h
include/lib/aarch64/arch_helpers.h
include/lib/aarch64/cpu_macros.S [deleted file]
include/lib/cpus/aarch64/aem_generic.h [new file with mode: 0644]
include/lib/cpus/aarch64/cortex_a53.h [new file with mode: 0644]
include/lib/cpus/aarch64/cortex_a57.h [new file with mode: 0644]
include/lib/cpus/aarch64/cpu_macros.S [new file with mode: 0644]
include/plat/common/plat_config.h
lib/cpus/aarch64/aem_generic.S
lib/cpus/aarch64/cortex_a53.S
lib/cpus/aarch64/cortex_a57.S
lib/cpus/aarch64/cpu_helpers.S
plat/common/aarch64/platform_helpers.S
plat/fvp/aarch64/fvp_common.c
plat/fvp/fvp_pm.c
services/std_svc/psci/psci_entry.S
services/std_svc/psci/psci_helpers.S