aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorMadhukar Pappireddy <madhukar.pappireddy@arm.com>2020-03-10 18:04:59 -0500
committerMadhukar Pappireddy <madhukar.pappireddy@arm.com>2020-03-11 11:11:05 -0500
commitccfb5c81349c3a10ac78741e598e80e416a811c3 (patch)
tree12fad3e32c64aab395a370552da6a0230130cf7f /include
parentf09852c97bc5de46d7322f2d1532fdddbd787043 (diff)
downloadplatform_external_arm-trusted-firmware-ccfb5c81349c3a10ac78741e598e80e416a811c3.tar.gz
platform_external_arm-trusted-firmware-ccfb5c81349c3a10ac78741e598e80e416a811c3.tar.bz2
platform_external_arm-trusted-firmware-ccfb5c81349c3a10ac78741e598e80e416a811c3.zip
Use Speculation Barrier instruction for v8.5 cores
Change-Id: Ie1018bfbae2fe95c699e58648665baa75e862000 Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
Diffstat (limited to 'include')
-rw-r--r--include/arch/aarch32/asm_macros.S5
-rw-r--r--include/arch/aarch64/asm_macros.S7
2 files changed, 11 insertions, 1 deletions
diff --git a/include/arch/aarch32/asm_macros.S b/include/arch/aarch32/asm_macros.S
index ea1636e24..f75da0ce6 100644
--- a/include/arch/aarch32/asm_macros.S
+++ b/include/arch/aarch32/asm_macros.S
@@ -108,11 +108,16 @@
#else
/*
* Macro for mitigating against speculative execution beyond ERET.
+ * If possible use Speculation Barrier instruction defined in ARMv8.5
*/
.macro exception_return
eret
+#if ARM_ARCH_AT_LEAST(8, 5)
+ sb
+#else
dsb nsh
isb
+#endif
.endm
#endif
diff --git a/include/arch/aarch64/asm_macros.S b/include/arch/aarch64/asm_macros.S
index a7d5a3dd6..cbb9f0be8 100644
--- a/include/arch/aarch64/asm_macros.S
+++ b/include/arch/aarch64/asm_macros.S
@@ -220,11 +220,16 @@
/*
* Macro for mitigating against speculative execution beyond ERET.
+ * If possible use Speculation Barrier instruction defined in ARMv8.5
*/
.macro exception_return
eret
- dsb nsh
+#if ARM_ARCH_AT_LEAST(8, 5)
+ sb
+#else
+ dsb nsh
isb
+#endif
.endm
#endif /* ASM_MACROS_S */