summaryrefslogtreecommitdiff
path: root/lib/psci/psci_main.c
diff options
context:
space:
mode:
authorWing Li <wingers@google.com>2022-09-14 13:18:19 -0700
committerWing Li <wingers@google.com>2023-03-20 22:20:35 -0700
commit9a70e69e059863d7aec11883e6345b54058264e0 (patch)
treee072a4b391321401a66c314d859fda4866c8478c /lib/psci/psci_main.c
parent606b7430077c15695a5b3bcfbad4975f00c9bf95 (diff)
feat(psci): update PSCI_FEATURES
This patch updates the PSCI_FEATURES handler to indicate support for OS-initiated mode per section 5.15.2 of the PSCI spec (DEN0022D.b) based on the value of `FF_SUPPORTS_OS_INIT_MODE`, which is conditionally enabled by the `PSCI_OS_INIT_MODE` build option. Change-Id: I5da8a989b53419ad2ab55b73ddeee6e882c25554 Signed-off-by: Wing Li <wingers@google.com>
Diffstat (limited to 'lib/psci/psci_main.c')
-rw-r--r--lib/psci/psci_main.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/psci/psci_main.c b/lib/psci/psci_main.c
index fe12f06ba..276c3a59f 100644
--- a/lib/psci/psci_main.c
+++ b/lib/psci/psci_main.c
@@ -383,13 +383,9 @@ int psci_features(unsigned int psci_fid)
/* Format the feature flags */
if ((psci_fid == PSCI_CPU_SUSPEND_AARCH32) ||
(psci_fid == PSCI_CPU_SUSPEND_AARCH64)) {
- /*
- * The trusted firmware does not support OS Initiated Mode.
- */
unsigned int ret = ((FF_PSTATE << FF_PSTATE_SHIFT) |
- (((FF_SUPPORTS_OS_INIT_MODE == 1U) ? 0U : 1U)
- << FF_MODE_SUPPORT_SHIFT));
- return (int) ret;
+ (FF_SUPPORTS_OS_INIT_MODE << FF_MODE_SUPPORT_SHIFT));
+ return (int)ret;
}
/* Return 0 for all other fid's */
@@ -571,6 +567,10 @@ u_register_t psci_smc_handler(uint32_t smc_fid,
ret = psci_migrate_info_up_cpu();
break;
+ case PSCI_FEATURES:
+ ret = (u_register_t)psci_features(x1);
+ break;
+
case PSCI_NODE_HW_STATE_AARCH64:
ret = (u_register_t)psci_node_hw_state(
x1, (unsigned int) x2);