mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-15 00:54:22 +00:00
fix(ras): restrict ENABLE_FEAT_RAS to have only two states
As part of migrating RAS extension to feature detection mechanism, the macro ENABLE_FEAT_RAS was allowed to have dynamic detection (FEAT_STATE 2). Considering this feature does impact execution of EL3 and we need to know at compile time about the presence of this feature. Do not use dynamic detection part of feature detection mechanism. Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: I23858f641f81fbd81b6b17504eb4a2cc65c1a752
This commit is contained in:
parent
6597fcf169
commit
970a4a8d8c
5 changed files with 8 additions and 12 deletions
4
Makefile
4
Makefile
|
@ -1283,6 +1283,7 @@ $(eval $(call assert_booleans,\
|
|||
ENABLE_RUNTIME_INSTRUMENTATION \
|
||||
ENABLE_SME_FOR_SWD \
|
||||
ENABLE_SVE_FOR_SWD \
|
||||
ENABLE_FEAT_RAS \
|
||||
ERROR_DEPRECATED \
|
||||
FAULT_INJECTION_SUPPORT \
|
||||
GENERATE_COT \
|
||||
|
@ -1360,7 +1361,6 @@ $(eval $(call assert_numerics,\
|
|||
ENABLE_FEAT_AMU \
|
||||
ENABLE_FEAT_AMUv1p1 \
|
||||
ENABLE_FEAT_CSV2_2 \
|
||||
ENABLE_FEAT_RAS \
|
||||
ENABLE_FEAT_DIT \
|
||||
ENABLE_FEAT_ECV \
|
||||
ENABLE_FEAT_FGT \
|
||||
|
@ -1443,6 +1443,7 @@ $(eval $(call add_defines,\
|
|||
ENABLE_SPE_FOR_NS \
|
||||
ENABLE_SVE_FOR_NS \
|
||||
ENABLE_SVE_FOR_SWD \
|
||||
ENABLE_FEAT_RAS \
|
||||
ENCRYPT_BL31 \
|
||||
ENCRYPT_BL32 \
|
||||
ERROR_DEPRECATED \
|
||||
|
@ -1460,7 +1461,6 @@ $(eval $(call add_defines,\
|
|||
PROGRAMMABLE_RESET_ADDRESS \
|
||||
PSCI_EXTENDED_STATE_ID \
|
||||
PSCI_OS_INIT_MODE \
|
||||
ENABLE_FEAT_RAS \
|
||||
RAS_FFH_SUPPORT \
|
||||
RESET_TO_BL31 \
|
||||
SEPARATE_CODE_AND_RODATA \
|
||||
|
|
|
@ -813,8 +813,10 @@ Common build options
|
|||
|
||||
- ``ENABLE_FEAT_RAS``: Numeric value to enable Armv8.2 RAS features. RAS features
|
||||
are an optional extension for pre-Armv8.2 CPUs, but are mandatory for Armv8.2
|
||||
or later CPUs. This flag can take the values 0 to 2, to align with the
|
||||
``FEATURE_DETECTION`` mechanism.
|
||||
or later CPUs. This flag can take the values 0 or 1. The default value is 0.
|
||||
NOTE: This flag enables use of IESB capability to reduce entry latency into
|
||||
EL3 even when RAS error handling is not performed on the platform. Hence this
|
||||
flag is recommended to be turned on Armv8.2 and later CPUs.
|
||||
|
||||
- ``RAS_FFH_SUPPORT``: Support to enable Firmware first handling of RAS errors
|
||||
originating from NS world. When ``RAS_FFH_SUPPORT`` is set to ``1``,
|
||||
|
|
|
@ -309,12 +309,7 @@
|
|||
* entry and exception return, so there is no need for any explicit instruction.
|
||||
*/
|
||||
.macro synchronize_errors
|
||||
/*
|
||||
* This is a hot path, so we don't want to do some actual FEAT_RAS runtime
|
||||
* detection here. For ENABLE_FEAT_RAS==2, its not ideal but won't hurt as
|
||||
* state 2 is mostly used by configurable platforms(fvp/qemu).
|
||||
*/
|
||||
#if ENABLE_FEAT_RAS != 1
|
||||
#if !ENABLE_FEAT_RAS
|
||||
/* Complete any stores that may return an abort */
|
||||
dsb sy
|
||||
/* Synchronise the CPU context with the completion of the dsb */
|
||||
|
|
|
@ -208,7 +208,7 @@
|
|||
*/
|
||||
mov_imm x0, (SCTLR_RESET_VAL & ~(SCTLR_EE_BIT | SCTLR_WXN_BIT \
|
||||
| SCTLR_SA_BIT | SCTLR_A_BIT | SCTLR_DSSBS_BIT))
|
||||
#if ENABLE_FEAT_RAS == 1
|
||||
#if ENABLE_FEAT_RAS
|
||||
/* If FEAT_RAS is present assume FEAT_IESB is also present */
|
||||
orr x0, x0, #SCTLR_IESB_BIT
|
||||
#endif
|
||||
|
|
|
@ -56,7 +56,6 @@ ifneq (${SPD}, tspd)
|
|||
ENABLE_FEAT_RNG := 2
|
||||
ENABLE_FEAT_TWED := 2
|
||||
ENABLE_FEAT_GCS := 2
|
||||
ENABLE_FEAT_RAS := 2
|
||||
ifeq (${ARCH}, aarch64)
|
||||
ifneq (${SPD}, spmd)
|
||||
ifeq (${SPM_MM}, 0)
|
||||
|
|
Loading…
Add table
Reference in a new issue