diff options
author | Rémi Denis-Courmont <remi.denis.courmont@huawei.com> | 2021-01-12 12:44:54 +0200 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2021-01-19 14:38:51 +0000 |
commit | f3ee5160ce3c03795a28e16d1a0b4916a6c959f4 (patch) | |
tree | 9fa593cdfe126cd2edbd5cb0bb7e673691c14c11 /target | |
parent | cc974d5cd84ea60a3dad59752aea712f3d47f8ce (diff) |
target/arm: add arm_is_el2_enabled() helper
This checks if EL2 is enabled (meaning EL2 registers take effects) in
the current security context.
Signed-off-by: Rémi Denis-Courmont <remi.denis.courmont@huawei.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20210112104511.36576-2-remi.denis.courmont@huawei.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target')
-rw-r--r-- | target/arm/cpu.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/target/arm/cpu.h b/target/arm/cpu.h index f58aada410..0bdda90914 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -2148,6 +2148,18 @@ static inline bool arm_is_secure(CPUARMState *env) return arm_is_secure_below_el3(env); } +/* + * Return true if the current security state has AArch64 EL2 or AArch32 Hyp. + * This corresponds to the pseudocode EL2Enabled() + */ +static inline bool arm_is_el2_enabled(CPUARMState *env) +{ + if (arm_feature(env, ARM_FEATURE_EL2)) { + return !arm_is_secure_below_el3(env); + } + return false; +} + #else static inline bool arm_is_secure_below_el3(CPUARMState *env) { @@ -2158,6 +2170,11 @@ static inline bool arm_is_secure(CPUARMState *env) { return false; } + +static inline bool arm_is_el2_enabled(CPUARMState *env) +{ + return false; +} #endif /** |