diff options
author | Pranav Madhu <pranav.madhu@arm.com> | 2022-07-27 12:49:24 +0530 |
---|---|---|
committer | Pranav Madhu <pranav.madhu@arm.com> | 2022-09-15 18:09:56 +0530 |
commit | 158ed580bdf5736abfa9f16f61be1ca1609e0e41 (patch) | |
tree | 27e7cffbaa8380ce1303cc1777a05accb1fe21da /include/plat | |
parent | 5cf9cc130a90fd8c4503c57ec4af235b469fd473 (diff) | |
download | arm-trusted-firmware-158ed580bdf5736abfa9f16f61be1ca1609e0e41.tar.gz |
feat(plat/arm/css): add per-cpu power down support for warm reset
Add a new function to setup a SGI interrupt that will be used to trigger
a request for per-cpu power down when executing the PSCI SYSTEM_RESET
request. This will be used on CSS platform that require all the CPUs to
execute the CPU specific power down sequence to complete a warm reboot
sequence in which only the CPUs are power cycled.
Change-Id: I80da0f6c3cd0c5c442c82239ba1e1f773821a7f5
Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
Diffstat (limited to 'include/plat')
-rw-r--r-- | include/plat/arm/css/common/css_pm.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/include/plat/arm/css/common/css_pm.h b/include/plat/arm/css/common/css_pm.h index e5357f50b..45f2c084b 100644 --- a/include/plat/arm/css/common/css_pm.h +++ b/include/plat/arm/css/common/css_pm.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2020, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2022, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -12,6 +12,9 @@ #include <lib/psci/psci.h> +/* SGI used to trigger per-core power down request */ +#define CSS_CPU_PWR_DOWN_REQ_INTR ARM_IRQ_SEC_SGI_7 + /* Macros to read the CSS power domain state */ #define CSS_CORE_PWR_STATE(state) (state)->pwr_domain_state[ARM_PWR_LVL0] #define CSS_CLUSTER_PWR_STATE(state) (state)->pwr_domain_state[ARM_PWR_LVL1] @@ -37,6 +40,7 @@ void __dead2 css_system_reset(void); void css_cpu_standby(plat_local_state_t cpu_state); void css_get_sys_suspend_power_state(psci_power_state_t *req_state); int css_node_hw_state(u_register_t mpidr, unsigned int power_level); +void css_setup_cpu_pwr_down_intr(void); /* * This mapping array has to be exported by the platform. Each element at |