mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-26 06:50:10 +00:00
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>
This commit is contained in:
parent
606b743007
commit
9a70e69e05
2 changed files with 10 additions and 6 deletions
|
@ -143,7 +143,11 @@
|
|||
|
||||
/* Features flags for CPU SUSPEND OS Initiated mode support. Bits [0:0] */
|
||||
#define FF_MODE_SUPPORT_SHIFT U(0)
|
||||
#if PSCI_OS_INIT_MODE
|
||||
#define FF_SUPPORTS_OS_INIT_MODE U(1)
|
||||
#else
|
||||
#define FF_SUPPORTS_OS_INIT_MODE U(0)
|
||||
#endif
|
||||
|
||||
/*******************************************************************************
|
||||
* PSCI version
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue