arm-trusted-firmware/docs/resources/diagrams
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
..
draw.io doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
plantuml Merge "docs: add Runtime Security Subsystem (RSS) documentation" into integration 2023-02-13 15:20:16 +01:00
arm-cca-software-arch.png docs(rme): add description of TF-A changes for RME 2021-11-15 22:20:07 +01:00
cmake_framework_structure.png CMake buildsystem design document 2020-03-11 15:06:09 +01:00
cmake_framework_workflow.png CMake buildsystem design document 2020-03-11 15:06:09 +01:00
context_management_abs.png docs(el3-runtimes): context management refactor proposal 2022-02-24 08:04:48 +02:00
context_mgmt_existing.png docs(el3-runtimes): context management refactor proposal 2022-02-24 08:04:48 +02:00
context_mgmt_proposed.png docs(el3-runtimes): context management refactor proposal 2022-02-24 08:04:48 +02:00
default_reset_code.png doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
ff-a-lsp-at-el3.png docs(spm): add design documentation 2022-10-27 11:39:53 +01:00
ff-a-spm-at-el3.png docs(spm): add design documentation 2022-10-27 11:39:53 +01:00
ff-a-spm-sel2.png docs: spm design document refresh 2021-05-12 15:45:27 +02:00
ffa-ns-interrupt-handling-managed-exit.png docs: spm design document refresh 2021-05-12 15:45:27 +02:00
ffa-ns-interrupt-handling-sp-preemption.png docs: spm design document refresh 2021-05-12 15:45:27 +02:00
ffa-secure-interrupt-handling-nwd.png docs(spm): secure interrupt management in SPMC 2021-11-10 16:07:33 -06:00
ffa-secure-interrupt-handling-swd.png docs(spm): secure interrupt management in SPMC 2021-11-10 16:07:33 -06:00
FIP_in_a_GPT_image.png docs: add build options for GPT support enablement 2021-04-29 11:13:08 +02:00
fwu_flow.png doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
fwu_states.png doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
int_handling.dia doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
Makefile docs(fwu): update firmware update design 2022-09-16 09:12:00 +01:00
MMU-600.png Add documentation for SMMUv3 driver in Hafnium(SPM) 2021-04-19 14:25:51 -05:00
non-sec-int-handling.png doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
partition-package.png docs(spm): update ff-a boot protocol documentation 2022-05-25 16:58:28 +01:00
PSA-FWU.dia docs(fwu): update firmware update design 2022-09-16 09:12:00 +01:00
PSA-FWU.png docs(fwu): update firmware update design 2022-09-16 09:12:00 +01:00
psci-flattened-vs-hierarchical-idle-states.png docs(psci): add design proposal for OS-initiated mode 2023-03-20 22:20:35 -07:00
psci-osi-mode.png fix(psci): add optional pwr_domain_validate_suspend to plat_psci_ops_t 2023-05-31 23:54:19 -07:00
psci-pc-mode-vs-osi-mode.png docs(psci): add design proposal for OS-initiated mode 2023-03-20 22:20:35 -07:00
psci-suspend-sequence.png doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
reset_code_flow.dia doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
reset_code_no_boot_type_check.png doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
reset_code_no_checks.png doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
reset_code_no_cpu_check.png doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
rmm_cold_boot_generic.dia docs(rmmd): document EL3-RMM Interfaces 2022-07-05 10:41:18 +02:00
rmm_cold_boot_generic.png docs(rmmd): document EL3-RMM Interfaces 2022-07-05 10:41:18 +02:00
romlib_design.dia doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
romlib_design.png doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
romlib_wrapper.dia doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
romlib_wrapper.png doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
rss_attestation_flow.svg docs: add Runtime Security Subsystem (RSS) documentation 2023-02-13 10:44:23 +01:00
rss_measured_boot_flow.svg docs: add Runtime Security Subsystem (RSS) documentation 2023-02-13 10:44:23 +01:00
rt-svc-descs-layout.png doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
sec-int-handling.png doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
secure_sw_stack_sp.png doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
secure_sw_stack_tos.png doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
spm-threat-model-trust-boundaries.png docs(spmc): threat model document 2021-08-19 10:37:59 +02:00
xlat_align.dia doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00
xlat_align.png doc: Reorganise images and update links 2019-05-22 11:28:17 +01:00