target/arm: Move pmsav7_use_background_region to ptw.c
Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20220604040607.269301-11-richard.henderson@linaro.org Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
fedbaa0503
commit
c8e436c9f7
|
@ -11678,25 +11678,6 @@ do_fault:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool pmsav7_use_background_region(ARMCPU *cpu, ARMMMUIdx mmu_idx, bool is_user)
|
|
||||||
{
|
|
||||||
/* Return true if we should use the default memory map as a
|
|
||||||
* "background" region if there are no hits against any MPU regions.
|
|
||||||
*/
|
|
||||||
CPUARMState *env = &cpu->env;
|
|
||||||
|
|
||||||
if (is_user) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (arm_feature(env, ARM_FEATURE_M)) {
|
|
||||||
return env->v7m.mpu_ctrl[regime_is_secure(env, mmu_idx)]
|
|
||||||
& R_V7M_MPU_CTRL_PRIVDEFENA_MASK;
|
|
||||||
} else {
|
|
||||||
return regime_sctlr(env, mmu_idx) & SCTLR_BR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool m_is_ppb_region(CPUARMState *env, uint32_t address)
|
bool m_is_ppb_region(CPUARMState *env, uint32_t address)
|
||||||
{
|
{
|
||||||
/* True if address is in the M profile PPB region 0xe0000000 - 0xe00fffff */
|
/* True if address is in the M profile PPB region 0xe0000000 - 0xe00fffff */
|
||||||
|
|
|
@ -415,6 +415,27 @@ static void get_phys_addr_pmsav7_default(CPUARMState *env, ARMMMUIdx mmu_idx,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool pmsav7_use_background_region(ARMCPU *cpu, ARMMMUIdx mmu_idx,
|
||||||
|
bool is_user)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Return true if we should use the default memory map as a
|
||||||
|
* "background" region if there are no hits against any MPU regions.
|
||||||
|
*/
|
||||||
|
CPUARMState *env = &cpu->env;
|
||||||
|
|
||||||
|
if (is_user) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (arm_feature(env, ARM_FEATURE_M)) {
|
||||||
|
return env->v7m.mpu_ctrl[regime_is_secure(env, mmu_idx)]
|
||||||
|
& R_V7M_MPU_CTRL_PRIVDEFENA_MASK;
|
||||||
|
} else {
|
||||||
|
return regime_sctlr(env, mmu_idx) & SCTLR_BR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static bool get_phys_addr_pmsav7(CPUARMState *env, uint32_t address,
|
static bool get_phys_addr_pmsav7(CPUARMState *env, uint32_t address,
|
||||||
MMUAccessType access_type, ARMMMUIdx mmu_idx,
|
MMUAccessType access_type, ARMMMUIdx mmu_idx,
|
||||||
hwaddr *phys_ptr, int *prot,
|
hwaddr *phys_ptr, int *prot,
|
||||||
|
|
|
@ -36,8 +36,6 @@ simple_ap_to_rw_prot(CPUARMState *env, ARMMMUIdx mmu_idx, int ap)
|
||||||
bool m_is_ppb_region(CPUARMState *env, uint32_t address);
|
bool m_is_ppb_region(CPUARMState *env, uint32_t address);
|
||||||
bool m_is_system_region(CPUARMState *env, uint32_t address);
|
bool m_is_system_region(CPUARMState *env, uint32_t address);
|
||||||
|
|
||||||
bool pmsav7_use_background_region(ARMCPU *cpu, ARMMMUIdx mmu_idx, bool is_user);
|
|
||||||
|
|
||||||
bool get_phys_addr_lpae(CPUARMState *env, uint64_t address,
|
bool get_phys_addr_lpae(CPUARMState *env, uint64_t address,
|
||||||
MMUAccessType access_type, ARMMMUIdx mmu_idx,
|
MMUAccessType access_type, ARMMMUIdx mmu_idx,
|
||||||
bool s1_is_el0,
|
bool s1_is_el0,
|
||||||
|
|
Loading…
Reference in New Issue