diff options
author | Madhukar Pappireddy <madhukar.pappireddy@arm.com> | 2020-03-10 18:04:59 -0500 |
---|---|---|
committer | Madhukar Pappireddy <madhukar.pappireddy@arm.com> | 2020-03-11 11:11:05 -0500 |
commit | ccfb5c81349c3a10ac78741e598e80e416a811c3 (patch) | |
tree | 12fad3e32c64aab395a370552da6a0230130cf7f /include | |
parent | f09852c97bc5de46d7322f2d1532fdddbd787043 (diff) | |
download | platform_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.S | 5 | ||||
-rw-r--r-- | include/arch/aarch64/asm_macros.S | 7 |
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 */ |