summaryrefslogtreecommitdiff
path: root/make_helpers
diff options
context:
space:
mode:
authorRyan Everett <ryan.everett@arm.com>2026-03-24 14:50:16 +0000
committerRyan Everett <ryan.everett@arm.com>2026-07-22 10:38:38 +0000
commit98cc9d2a065db3086696d449b33a85d8accb275f (patch)
treea6dfa8c4d836dc710521f6e0a5f5534d937c7504 /make_helpers
parent3c8a5a643794894aee087474205482ae857cfa23 (diff)
downloadarm-trusted-firmware-98cc9d2a065db3086696d449b33a85d8accb275f.tar.gz
arm-trusted-firmware-98cc9d2a065db3086696d449b33a85d8accb275f.zip
feat(dsu): support new L2Core PD PPU states
Add DSU_PDL2_SUPPORT flag to be used for platforms with both L1 and L2 core power domains. When enabled, this exposes functions which can be called in PSCI platform hooks to control the fate of the L1 and L2 core PPUs. configure_core_l2pd_power_required writes to the NOL2PWRDN core register, indicating whether the L2 power domain can request power down when all its L1PD cores are powered down. The new configure_core_wfi_ functions write to the WFI retention control registers. This sets a timer of system counter ticks before the core dynamically enters a retention state upon wfi. These functions can be used in PSCI platform hooks to create PSCI idle states that force core retention. When the LOGICRET timer elapses in WFI, the core PDL1 enters the LOGIC_RET PPU mode. PDL2 remains ON. When the FULLRET timer elapses in WFI, both L1 and L2 PDs for the core will enter the FULL_RET PPU mode. Change-Id: Ib210f2673cad195e9e67031a477e6c8946aff765 Signed-off-by: Ryan Everett <ryan.everett@arm.com>
Diffstat (limited to 'make_helpers')
-rw-r--r--make_helpers/constraints.mk8
-rw-r--r--make_helpers/defaults.mk3
2 files changed, 11 insertions, 0 deletions
diff --git a/make_helpers/constraints.mk b/make_helpers/constraints.mk
index 2cd4ef658..67ff298d6 100644
--- a/make_helpers/constraints.mk
+++ b/make_helpers/constraints.mk
@@ -569,3 +569,11 @@ endif
ifneq (${ENABLE_FEAT_IDTE3},0)
$(info FEAT_IDTE3 is an experimental feature)
endif #(ENABLE_FEAT_IDTE3)
+
+# Check DSU driver dependancies
+ifeq (${DSU_PDL2_SUPPORT}, 1)
+ ifeq (${USE_DSU_DRIVER}, 0)
+ $(error Build option USE_DSU_DRIVER needs to be set if \
+ DSU_PDL2_SUPPORT is set)
+ endif
+endif
diff --git a/make_helpers/defaults.mk b/make_helpers/defaults.mk
index 94bede55d..35c82670e 100644
--- a/make_helpers/defaults.mk
+++ b/make_helpers/defaults.mk
@@ -462,6 +462,9 @@ ENABLE_LFA_BL31 := 0
# Enable support for arm DSU driver.
USE_DSU_DRIVER := 0
+# Enable support for CPUs with two power domains
+DSU_PDL2_SUPPORT := 0
+
# Define the separation of BL2 flag, by default it is disabled.
SEPARATE_BL2_FIP := 0