Add support for PSCI SYSTEM_OFF and SYSTEM_RESET APIs
authorJuan Castillo <juan.castillo@arm.com>
Tue, 12 Aug 2014 10:17:06 +0000 (11:17 +0100)
committerDan Handley <dan.handley@arm.com>
Tue, 19 Aug 2014 10:42:45 +0000 (11:42 +0100)
commitd5f130930624ceb95cde40de999a880aa2b00493
tree9f52641daefbb25d4dc7c9af1e4bca74c23957c1
parenta1d80440c44ce70e5fec4d8c60b5f6688b6cf8ff
Add support for PSCI SYSTEM_OFF and SYSTEM_RESET APIs

This patch adds support for SYSTEM_OFF and SYSTEM_RESET PSCI
operations. A platform should export handlers to complete the
requested operation. The FVP port exports fvp_system_off() and
fvp_system_reset() as an example.

If the SPD provides a power management hook for system off and
system reset, then the SPD is notified about the corresponding
operation so it can do some bookkeeping. The TSPD exports
tspd_system_off() and tspd_system_reset() for that purpose.

Versatile Express shutdown and reset methods have been removed
from the FDT as new PSCI sys_poweroff and sys_reset services
have been added. For those kernels that do not support yet these
PSCI services (i.e. GICv3 kernel), the original dtsi files have
been renamed to *-no_psci.dtsi.

Fixes ARM-software/tf-issues#218

Change-Id: Ic8a3bf801db979099ab7029162af041c4e8330c8
27 files changed:
bl31/bl31.mk
bl32/tsp/aarch64/tsp_entrypoint.S
bl32/tsp/tsp_main.c
fdts/fvp-base-gicv2-psci.dtb
fdts/fvp-base-gicv2-psci.dts
fdts/fvp-base-gicv2legacy-psci.dtb
fdts/fvp-base-gicv2legacy-psci.dts
fdts/fvp-base-gicv3-psci.dts
fdts/fvp-foundation-gicv2-psci.dtb
fdts/fvp-foundation-gicv2-psci.dts
fdts/fvp-foundation-gicv2legacy-psci.dtb
fdts/fvp-foundation-gicv2legacy-psci.dts
fdts/fvp-foundation-gicv3-psci.dts
fdts/fvp-foundation-motherboard-no_psci.dtsi [new file with mode: 0644]
fdts/fvp-foundation-motherboard.dtsi
fdts/rtsm_ve-motherboard-no_psci.dtsi [new file with mode: 0644]
fdts/rtsm_ve-motherboard.dtsi
include/bl31/services/psci.h
include/bl32/tsp/tsp.h
plat/fvp/fvp_def.h
plat/fvp/fvp_pm.c
services/spd/tspd/tspd_main.c
services/spd/tspd/tspd_pm.c
services/std_svc/psci/psci_common.c
services/std_svc/psci/psci_main.c
services/std_svc/psci/psci_private.h
services/std_svc/psci/psci_system_off.c [new file with mode: 0644]