summaryrefslogtreecommitdiff
path: root/make_helpers
diff options
context:
space:
mode:
authordp-arm <dimitris.papastamos@arm.com>2017-05-23 09:32:49 +0100
committerDimitris Papastamos <dimitris.papastamos@arm.com>2017-06-22 10:33:19 +0100
commitd832aee900a92d14a08a6a2a552894188404b6a4 (patch)
treef1e12914f0bc1f687509f1b7fbbaf172a335acfd /make_helpers
parent18f2efd67d881fe0a9a535ce9e801e60d746e024 (diff)
aarch64: Enable Statistical Profiling Extensions for lower ELs
SPE is only supported in non-secure state. Accesses to SPE specific registers from SEL1 will trap to EL3. During a world switch, before `TTBR` is modified the SPE profiling buffers are drained. This is to avoid a potential invalid memory access in SEL1. SPE is architecturally specified only for AArch64. Change-Id: I04a96427d9f9d586c331913d815fdc726855f6b0 Signed-off-by: dp-arm <dimitris.papastamos@arm.com>
Diffstat (limited to 'make_helpers')
-rw-r--r--make_helpers/defaults.mk17
1 files changed, 17 insertions, 0 deletions
diff --git a/make_helpers/defaults.mk b/make_helpers/defaults.mk
index 2c8f82a4..9946fea1 100644
--- a/make_helpers/defaults.mk
+++ b/make_helpers/defaults.mk
@@ -136,3 +136,20 @@ V := 0
# required to enable cache coherency after warm reset (eg: single cluster
# platforms).
WARMBOOT_ENABLE_DCACHE_EARLY := 0
+
+# By default, enable Statistical Profiling Extensions.
+# The top level Makefile will disable this feature depending on
+# the target architecture and version number.
+ENABLE_SPE_FOR_LOWER_ELS := 1
+
+# SPE is enabled by default but only supported on AArch64 8.2 onwards.
+# Disable it in all other cases.
+ifeq (${ARCH},aarch32)
+ override ENABLE_SPE_FOR_LOWER_ELS := 0
+else
+ ifeq (${ARM_ARCH_MAJOR},8)
+ ifeq ($(ARM_ARCH_MINOR),$(filter $(ARM_ARCH_MINOR),0 1))
+ ENABLE_SPE_FOR_LOWER_ELS := 0
+ endif
+ endif
+endif