Merge "arch: Enable `FEAT_SB` for supported non-Armv8.5-A platforms" into integration
This commit is contained in:
commit
9fa849d36e
9
Makefile
9
Makefile
|
@ -245,6 +245,13 @@ endif # arch-features
|
||||||
# Determine if FEAT_RNG is supported
|
# Determine if FEAT_RNG is supported
|
||||||
ENABLE_FEAT_RNG = $(if $(findstring rng,${arch-features}),1,0)
|
ENABLE_FEAT_RNG = $(if $(findstring rng,${arch-features}),1,0)
|
||||||
|
|
||||||
|
# Determine if FEAT_SB is supported
|
||||||
|
ENABLE_FEAT_SB = $(if $(findstring sb,${arch-features}),1,0)
|
||||||
|
|
||||||
|
ifeq "8.5" "$(word 1, $(sort 8.5 $(ARM_ARCH_MAJOR).$(ARM_ARCH_MINOR)))"
|
||||||
|
ENABLE_FEAT_SB = 1
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq ($(findstring armclang,$(notdir $(CC))),)
|
ifneq ($(findstring armclang,$(notdir $(CC))),)
|
||||||
TF_CFLAGS_aarch32 = -target arm-arm-none-eabi $(march32-directive)
|
TF_CFLAGS_aarch32 = -target arm-arm-none-eabi $(march32-directive)
|
||||||
TF_CFLAGS_aarch64 = -target aarch64-arm-none-eabi $(march64-directive)
|
TF_CFLAGS_aarch64 = -target aarch64-arm-none-eabi $(march64-directive)
|
||||||
|
@ -945,6 +952,7 @@ $(eval $(call assert_booleans,\
|
||||||
COT_DESC_IN_DTB \
|
COT_DESC_IN_DTB \
|
||||||
USE_SP804_TIMER \
|
USE_SP804_TIMER \
|
||||||
ENABLE_FEAT_RNG \
|
ENABLE_FEAT_RNG \
|
||||||
|
ENABLE_FEAT_SB \
|
||||||
)))
|
)))
|
||||||
|
|
||||||
$(eval $(call assert_numerics,\
|
$(eval $(call assert_numerics,\
|
||||||
|
@ -1038,6 +1046,7 @@ $(eval $(call add_defines,\
|
||||||
COT_DESC_IN_DTB \
|
COT_DESC_IN_DTB \
|
||||||
USE_SP804_TIMER \
|
USE_SP804_TIMER \
|
||||||
ENABLE_FEAT_RNG \
|
ENABLE_FEAT_RNG \
|
||||||
|
ENABLE_FEAT_SB \
|
||||||
)))
|
)))
|
||||||
|
|
||||||
ifeq (${SANITIZE_UB},trap)
|
ifeq (${SANITIZE_UB},trap)
|
||||||
|
|
|
@ -107,12 +107,12 @@
|
||||||
|
|
||||||
#else
|
#else
|
||||||
/*
|
/*
|
||||||
* Macro for mitigating against speculative execution beyond ERET.
|
* Macro for mitigating against speculative execution beyond ERET. Uses the
|
||||||
* If possible use Speculation Barrier instruction defined in ARMv8.5
|
* speculation barrier instruction introduced by FEAT_SB, if it's enabled.
|
||||||
*/
|
*/
|
||||||
.macro exception_return
|
.macro exception_return
|
||||||
eret
|
eret
|
||||||
#if ARM_ARCH_AT_LEAST(8, 5)
|
#if ENABLE_FEAT_SB
|
||||||
sb
|
sb
|
||||||
#else
|
#else
|
||||||
dsb nsh
|
dsb nsh
|
||||||
|
|
|
@ -219,12 +219,12 @@
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Macro for mitigating against speculative execution beyond ERET.
|
* Macro for mitigating against speculative execution beyond ERET. Uses the
|
||||||
* If possible use Speculation Barrier instruction defined in ARMv8.5
|
* speculation barrier instruction introduced by FEAT_SB, if it's enabled.
|
||||||
*/
|
*/
|
||||||
.macro exception_return
|
.macro exception_return
|
||||||
eret
|
eret
|
||||||
#if ARM_ARCH_AT_LEAST(8, 5)
|
#if ENABLE_FEAT_SB
|
||||||
sb
|
sb
|
||||||
#else
|
#else
|
||||||
dsb nsh
|
dsb nsh
|
||||||
|
|
Loading…
Reference in New Issue