summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMadhukar Pappireddy <madhukar.pappireddy@arm.com>2019-08-12 18:31:33 -0500
committerMadhukar Pappireddy <madhukar.pappireddy@arm.com>2019-09-25 22:06:44 -0500
commit10107707196d67731de57126b846169c5b29aac0 (patch)
tree1e94f76e5c174cd6538a7750d0eaa5af1e7b72e6 /lib
parentec834925f3cb5cb3934010bbc8077293e610d2ac (diff)
Adding new optional PSCI hook pwr_domain_on_finish_late
This PSCI hook is similar to pwr_domain_on_finish but is guaranteed to be invoked with the respective core and cluster are participating in coherency. This will be necessary to safely invoke the new GICv3 API which modifies shared GIC data structures concurrently. Change-Id: I8e54f05c9d4ef5712184c9c18ba45ac97a29eb7a Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/psci/psci_on.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/psci/psci_on.c b/lib/psci/psci_on.c
index aa6b324e..470b4f33 100644
--- a/lib/psci/psci_on.c
+++ b/lib/psci/psci_on.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -182,6 +182,14 @@ void psci_cpu_on_finish(int cpu_idx, const psci_power_state_t *state_info)
#endif
/*
+ * Plat. management: Perform any platform specific actions which
+ * can only be done with the cpu and the cluster guaranteed to
+ * be coherent.
+ */
+ if (psci_plat_pm_ops->pwr_domain_on_finish_late != NULL)
+ psci_plat_pm_ops->pwr_domain_on_finish_late(state_info);
+
+ /*
* All the platform specific actions for turning this cpu
* on have completed. Perform enough arch.initialization
* to run in the non-secure address space.