diff options
author | Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> | 2023-03-06 23:56:14 +0000 |
---|---|---|
committer | Manish V Badarkhe <manish.badarkhe@arm.com> | 2023-03-28 17:19:07 +0200 |
commit | 45007acd46981b9f289f03b283eb53e7ba37bb67 (patch) | |
tree | df4d289c742923fcb05a61d7fa85400272b7873d /Makefile | |
parent | cfe6a82ee87ff178e05f542f65549520cf764956 (diff) | |
download | arm-trusted-firmware-45007acd46981b9f289f03b283eb53e7ba37bb67.tar.gz |
feat(cpufeat): enable FEAT_SME for FEAT_STATE_CHECKED
Add support for runtime detection (ENABLE_SME_FOR_NS=2), by splitting
feat_sme_supported() into an ID register reading function and a
second function to report the support status. That function considers
both build time settings and runtime information (if needed), and is
used before we do SME specific setup.
Change the FVP platform default to the now supported dynamic option
(=2),so the right decision can be made by the code at runtime.
Change-Id: Ida9ccf737db5be20865b84f42b1f9587be0626ab
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -861,6 +861,10 @@ ifeq ($(FEATURE_DETECTION),1) $(info FEATURE_DETECTION is an experimental feature) endif +ifneq ($(ENABLE_SME_FOR_NS), 0) + $(info ENABLE_SME_FOR_NS is an experimental feature) +endif + ifeq (${ARM_XLAT_TABLES_LIB_V1}, 1) ifeq (${ALLOW_RO_XLAT_TABLES}, 1) $(error "ALLOW_RO_XLAT_TABLES requires translation tables library v2") @@ -877,7 +881,7 @@ endif ifeq (${ARCH},aarch32) # SME/SVE only supported on AArch64 - ifeq (${ENABLE_SME_FOR_NS},1) + ifneq (${ENABLE_SME_FOR_NS},0) $(error "ENABLE_SME_FOR_NS cannot be used with ARCH=aarch32") endif ifeq (${ENABLE_SVE_FOR_NS},1) @@ -898,7 +902,7 @@ endif # Ensure ENABLE_RME is not used with SME ifeq (${ENABLE_RME},1) - ifeq (${ENABLE_SME_FOR_NS},1) + ifneq (${ENABLE_SME_FOR_NS},0) $(error "ENABLE_SME_FOR_NS cannot be used with ENABLE_RME") endif endif @@ -918,7 +922,7 @@ endif # SVE and SME cannot be used with CTX_INCLUDE_FPREGS since secure manager does # its own context management including FPU registers. ifeq (${CTX_INCLUDE_FPREGS},1) - ifeq (${ENABLE_SME_FOR_NS},1) + ifneq (${ENABLE_SME_FOR_NS},0) $(error "ENABLE_SME_FOR_NS cannot be used with CTX_INCLUDE_FPREGS") endif ifeq (${ENABLE_SVE_FOR_NS},1) @@ -1101,7 +1105,6 @@ $(eval $(call assert_booleans,\ ENABLE_PMF \ ENABLE_PSCI_STAT \ ENABLE_RUNTIME_INSTRUMENTATION \ - ENABLE_SME_FOR_NS \ ENABLE_SME_FOR_SWD \ ENABLE_SVE_FOR_NS \ ENABLE_SVE_FOR_SWD \ @@ -1189,6 +1192,7 @@ $(eval $(call assert_numerics,\ ENABLE_RME \ ENABLE_SPE_FOR_NS \ ENABLE_SYS_REG_TRACE_FOR_NS \ + ENABLE_SME_FOR_NS \ ENABLE_TRF_FOR_NS \ FW_ENC_STATUS \ NR_OF_FW_BANKS \ |