mirror of https://github.com/xemu-project/xemu.git
target/arm: Merge regime_is_secure into get_phys_addr
This is the last use of regime_is_secure; remove it entirely before changing the layout of ARMMMUIdx. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20221001162318.153420-9-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
a393dee019
commit
03bea66e7f
|
@ -670,48 +670,6 @@ static inline bool regime_has_2_ranges(ARMMMUIdx mmu_idx)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return true if this address translation regime is secure */
|
|
||||||
static inline bool regime_is_secure(CPUARMState *env, ARMMMUIdx mmu_idx)
|
|
||||||
{
|
|
||||||
switch (mmu_idx) {
|
|
||||||
case ARMMMUIdx_E10_0:
|
|
||||||
case ARMMMUIdx_E10_1:
|
|
||||||
case ARMMMUIdx_E10_1_PAN:
|
|
||||||
case ARMMMUIdx_E20_0:
|
|
||||||
case ARMMMUIdx_E20_2:
|
|
||||||
case ARMMMUIdx_E20_2_PAN:
|
|
||||||
case ARMMMUIdx_Stage1_E0:
|
|
||||||
case ARMMMUIdx_Stage1_E1:
|
|
||||||
case ARMMMUIdx_Stage1_E1_PAN:
|
|
||||||
case ARMMMUIdx_E2:
|
|
||||||
case ARMMMUIdx_Stage2:
|
|
||||||
case ARMMMUIdx_MPrivNegPri:
|
|
||||||
case ARMMMUIdx_MUserNegPri:
|
|
||||||
case ARMMMUIdx_MPriv:
|
|
||||||
case ARMMMUIdx_MUser:
|
|
||||||
return false;
|
|
||||||
case ARMMMUIdx_SE3:
|
|
||||||
case ARMMMUIdx_SE10_0:
|
|
||||||
case ARMMMUIdx_SE10_1:
|
|
||||||
case ARMMMUIdx_SE10_1_PAN:
|
|
||||||
case ARMMMUIdx_SE20_0:
|
|
||||||
case ARMMMUIdx_SE20_2:
|
|
||||||
case ARMMMUIdx_SE20_2_PAN:
|
|
||||||
case ARMMMUIdx_Stage1_SE0:
|
|
||||||
case ARMMMUIdx_Stage1_SE1:
|
|
||||||
case ARMMMUIdx_Stage1_SE1_PAN:
|
|
||||||
case ARMMMUIdx_SE2:
|
|
||||||
case ARMMMUIdx_Stage2_S:
|
|
||||||
case ARMMMUIdx_MSPrivNegPri:
|
|
||||||
case ARMMMUIdx_MSUserNegPri:
|
|
||||||
case ARMMMUIdx_MSPriv:
|
|
||||||
case ARMMMUIdx_MSUser:
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
g_assert_not_reached();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline bool regime_is_pan(CPUARMState *env, ARMMMUIdx mmu_idx)
|
static inline bool regime_is_pan(CPUARMState *env, ARMMMUIdx mmu_idx)
|
||||||
{
|
{
|
||||||
switch (mmu_idx) {
|
switch (mmu_idx) {
|
||||||
|
|
|
@ -2498,9 +2498,49 @@ bool get_phys_addr(CPUARMState *env, target_ulong address,
|
||||||
MMUAccessType access_type, ARMMMUIdx mmu_idx,
|
MMUAccessType access_type, ARMMMUIdx mmu_idx,
|
||||||
GetPhysAddrResult *result, ARMMMUFaultInfo *fi)
|
GetPhysAddrResult *result, ARMMMUFaultInfo *fi)
|
||||||
{
|
{
|
||||||
|
bool is_secure;
|
||||||
|
|
||||||
|
switch (mmu_idx) {
|
||||||
|
case ARMMMUIdx_E10_0:
|
||||||
|
case ARMMMUIdx_E10_1:
|
||||||
|
case ARMMMUIdx_E10_1_PAN:
|
||||||
|
case ARMMMUIdx_E20_0:
|
||||||
|
case ARMMMUIdx_E20_2:
|
||||||
|
case ARMMMUIdx_E20_2_PAN:
|
||||||
|
case ARMMMUIdx_Stage1_E0:
|
||||||
|
case ARMMMUIdx_Stage1_E1:
|
||||||
|
case ARMMMUIdx_Stage1_E1_PAN:
|
||||||
|
case ARMMMUIdx_E2:
|
||||||
|
case ARMMMUIdx_Stage2:
|
||||||
|
case ARMMMUIdx_MPrivNegPri:
|
||||||
|
case ARMMMUIdx_MUserNegPri:
|
||||||
|
case ARMMMUIdx_MPriv:
|
||||||
|
case ARMMMUIdx_MUser:
|
||||||
|
is_secure = false;
|
||||||
|
break;
|
||||||
|
case ARMMMUIdx_SE3:
|
||||||
|
case ARMMMUIdx_SE10_0:
|
||||||
|
case ARMMMUIdx_SE10_1:
|
||||||
|
case ARMMMUIdx_SE10_1_PAN:
|
||||||
|
case ARMMMUIdx_SE20_0:
|
||||||
|
case ARMMMUIdx_SE20_2:
|
||||||
|
case ARMMMUIdx_SE20_2_PAN:
|
||||||
|
case ARMMMUIdx_Stage1_SE0:
|
||||||
|
case ARMMMUIdx_Stage1_SE1:
|
||||||
|
case ARMMMUIdx_Stage1_SE1_PAN:
|
||||||
|
case ARMMMUIdx_SE2:
|
||||||
|
case ARMMMUIdx_Stage2_S:
|
||||||
|
case ARMMMUIdx_MSPrivNegPri:
|
||||||
|
case ARMMMUIdx_MSUserNegPri:
|
||||||
|
case ARMMMUIdx_MSPriv:
|
||||||
|
case ARMMMUIdx_MSUser:
|
||||||
|
is_secure = true;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
g_assert_not_reached();
|
||||||
|
}
|
||||||
return get_phys_addr_with_secure(env, address, access_type, mmu_idx,
|
return get_phys_addr_with_secure(env, address, access_type, mmu_idx,
|
||||||
regime_is_secure(env, mmu_idx),
|
is_secure, result, fi);
|
||||||
result, fi);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
hwaddr arm_cpu_get_phys_page_attrs_debug(CPUState *cs, vaddr addr,
|
hwaddr arm_cpu_get_phys_page_attrs_debug(CPUState *cs, vaddr addr,
|
||||||
|
|
Loading…
Reference in New Issue