diff options
author | Wing Li <wingers@google.com> | 2022-09-14 13:18:19 -0700 |
---|---|---|
committer | Wing Li <wingers@google.com> | 2023-03-20 22:20:35 -0700 |
commit | 9a70e69e059863d7aec11883e6345b54058264e0 (patch) | |
tree | e072a4b391321401a66c314d859fda4866c8478c /lib/psci/psci_main.c | |
parent | 606b7430077c15695a5b3bcfbad4975f00c9bf95 (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.c | 12 |
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); |