Validate power_state and entrypoint when executing PSCI calls
authorSoby Mathew <soby.mathew@arm.com>
Thu, 2 Oct 2014 15:56:51 +0000 (16:56 +0100)
committerSoby Mathew <soby.mathew@arm.com>
Fri, 23 Jan 2015 18:36:15 +0000 (18:36 +0000)
commit539dcedb7d83804a4237c4385b2cb15f0b7ee0b5
tree83e9dc96a440e1c2f113bc822c7ecd3ebc7baf5d
parent31244d74b350d49cfba6ad46d90dad2d5f2f364c
Validate power_state and entrypoint when executing PSCI calls

This patch allows the platform to validate the power_state and
entrypoint information from the normal world early on in PSCI
calls so that we can return the error safely. New optional
pm_ops hooks `validate_power_state` and `validate_ns_entrypoint`
are introduced to do this.

As a result of these changes, all the other pm_ops handlers except
the PSCI_ON handler are expected to be successful. Also, the PSCI
implementation will now assert if a PSCI API is invoked without the
corresponding pm_ops handler being registered by the platform.

NOTE : PLATFORM PORTS WILL BREAK ON MERGE OF THIS COMMIT. The
pm hooks have 2 additional optional callbacks and the return type
of the other hooks have changed.

Fixes ARM-Software/tf-issues#229

Change-Id: I036bc0cff2349187c7b8b687b9ee0620aa7e24dc
docs/porting-guide.md
include/bl31/services/psci.h
plat/fvp/fvp_pm.c
plat/juno/plat_pm.c
services/std_svc/psci/psci_afflvl_off.c
services/std_svc/psci/psci_afflvl_on.c
services/std_svc/psci/psci_afflvl_suspend.c
services/std_svc/psci/psci_common.c
services/std_svc/psci/psci_main.c
services/std_svc/psci/psci_private.h