mirror of https://github.com/xemu-project/xemu.git
target/arm: fix handling of HCR.FB
HCR should be applied when NS is set, not when it is cleared. Signed-off-by: Rémi Denis-Courmont <remi.denis.courmont@huawei.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
d1a9254be5
commit
373e7ffde9
|
@ -731,13 +731,12 @@ static void tlbimvaa_is_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Non-IS variants of TLB operations are upgraded to
|
* Non-IS variants of TLB operations are upgraded to
|
||||||
* IS versions if we are at NS EL1 and HCR_EL2.FB is set to
|
* IS versions if we are at EL1 and HCR_EL2.FB is effectively set to
|
||||||
* force broadcast of these operations.
|
* force broadcast of these operations.
|
||||||
*/
|
*/
|
||||||
static bool tlb_force_broadcast(CPUARMState *env)
|
static bool tlb_force_broadcast(CPUARMState *env)
|
||||||
{
|
{
|
||||||
return (env->cp15.hcr_el2 & HCR_FB) &&
|
return arm_current_el(env) == 1 && (arm_hcr_el2_eff(env) & HCR_FB);
|
||||||
arm_current_el(env) == 1 && arm_is_secure_below_el3(env);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tlbiall_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
static void tlbiall_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
||||||
|
|
Loading…
Reference in New Issue