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
1 parent 31244d7 commit 539dcedb7d83804a4237c4385b2cb15f0b7ee0b5
@Soby Mathew Soby Mathew authored on 2 Oct 2014
Showing 10 changed files
View
docs/porting-guide.md
View
include/bl31/services/psci.h
View
plat/fvp/fvp_pm.c
View
plat/juno/plat_pm.c
View
services/std_svc/psci/psci_afflvl_off.c
View
services/std_svc/psci/psci_afflvl_on.c
View
services/std_svc/psci/psci_afflvl_suspend.c
View
services/std_svc/psci/psci_common.c
View
services/std_svc/psci/psci_main.c
View
services/std_svc/psci/psci_private.h