summaryrefslogtreecommitdiff
path: root/include/plat
diff options
context:
space:
mode:
authorPranav Madhu <pranav.madhu@arm.com>2022-07-27 12:49:24 +0530
committerPranav Madhu <pranav.madhu@arm.com>2022-09-15 18:09:56 +0530
commit158ed580bdf5736abfa9f16f61be1ca1609e0e41 (patch)
tree27e7cffbaa8380ce1303cc1777a05accb1fe21da /include/plat
parent5cf9cc130a90fd8c4503c57ec4af235b469fd473 (diff)
downloadarm-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.h6
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