arm-trusted-firmware/lib
Wing Li d34886140c fix(psci): add optional pwr_domain_validate_suspend to plat_psci_ops_t
This patch adds a new optional member `pwr_domain_validate_suspend` to
the `plat_psci_ops_t` structure that allows a platform to optionally
perform platform specific validations in OS-initiated mode. This is
conditionally compiled into the build depending on the value of the
`PSCI_OS_INIT_MODE` build option.

In https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/17682,
the return type of the `pwr_domain_suspend` handler was updated from
`void` to `int` to allow a platform to optionally perform platform
specific validations in OS-initiated mode. However, when an error code
other than `PSCI_E_SUCCESS` is returned, the current exit path does not
undo the operations in `psci_suspend_to_pwrdown_start`, and as a result,
the system ends up in an unexpected state.

The fix in this patch prevents the need to undo the operations in
`psci_suspend_to_pwrdown_start`, by allowing the platform to first
perform any necessary platform specific validations before the PSCI
generic code proceeds to the point of no return where the CPU_SUSPEND
request is expected to complete successfully.

Change-Id: I05d92c7ea3f5364da09af630d44d78252185db20
Signed-off-by: Wing Li <wingers@google.com>
2023-05-31 23:54:19 -07:00
..
aarch32 fix(cpus): remove plat_can_cmo check for aarch32 2022-11-14 15:31:17 +01:00
aarch64 refactor(build): distinguish BL2 as TF-A entry point and BL2 running at EL3 2023-03-15 11:43:14 +00:00
bl_aux_params fix: libc: use long for 64-bit types on aarch64 2021-11-08 14:41:17 +00:00
compiler-rt feat(compiler-rt): update source files 2023-05-11 10:32:14 +01:00
coreboot feat(optee): add device tree for coreboot table 2023-05-11 10:46:57 +02:00
cpus fix(cpus): workaround platforms non-arm interconnect 2023-05-05 13:23:10 -05:00
debugfs fix(tree): correct some typos 2023-05-09 15:57:12 +01:00
el3_runtime Merge "fix(pmu): unconditionally save PMCR_EL0" into integration 2023-05-10 14:12:25 +02:00
extensions refactor(cm): make SVE and SME build dependencies logical 2023-05-05 13:16:18 +01:00
fconf refactor(mbedtls): avoid including MBEDTLS_CONFIG_FILE 2023-02-21 11:09:47 +00:00
gpt_rme fix(gpt_rme): fix compilation error for gpt_rme.c 2022-12-09 11:27:14 +00:00
libc feat(libc): add %c to printf/snprintf 2023-05-11 10:32:28 +01:00
libfdt chore(libfdt): update to v1.7.0 source files 2023-05-11 10:28:47 +01:00
locks style: remove useless trailing semicolon and line continuations 2023-03-09 14:59:08 +01:00
mpmm fix(errata): workaround for Cortex-A510 erratum 2250311 2022-02-24 23:30:41 +02:00
optee fix(tree): correct some typos 2023-05-09 15:57:12 +01:00
pmf build: always prefix section names with . 2023-02-20 18:29:33 +00:00
psa refactor(fvp): use RSS API to retrieve attestation token and key 2023-03-22 16:18:30 +01:00
psci fix(psci): add optional pwr_domain_validate_suspend to plat_psci_ops_t 2023-05-31 23:54:19 -07:00
romlib style: normalize linker script code style 2023-02-10 17:01:46 +00:00
semihosting fix(semihosting): fix seek call failure check 2022-09-28 11:53:42 +01:00
stack_protector Disable stack protection explicitly 2019-10-20 14:59:09 -04:00
utils MISRA cleanup in mem_region and semihosting files 2020-08-07 19:11:23 -05:00
xlat_mpu refactor(fvp_r): remove unused files and clean up makefiles 2021-10-29 09:43:19 -05:00
xlat_tables fix(tree): correct some typos 2023-05-09 15:57:12 +01:00
xlat_tables_v2 fix(tree): correct some typos 2023-05-09 15:57:12 +01:00
zlib style: fix functions definitions 2023-03-13 12:34:40 +01:00