mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-07-15 23:27:33 +00:00
target/arm: Rename ARMMMUIdx_S1E2 to ARMMMUIdx_E2
This is part of a reorganization to the set of mmu_idx. The non-secure EL2 regime only has a single stage translation; there is no point in pointing out that the idx is for stage1. Backports commit e013b7411339342aac8d986c5d5e329e1baee8e1 from qemu
This commit is contained in:
parent
f45ab0614e
commit
153d7aadd5
|
@ -2802,7 +2802,7 @@ static inline bool arm_excp_unmasked(CPUState *cs, unsigned int excp_idx,
|
||||||
typedef enum ARMMMUIdx {
|
typedef enum ARMMMUIdx {
|
||||||
ARMMMUIdx_E10_0 = 0 | ARM_MMU_IDX_A,
|
ARMMMUIdx_E10_0 = 0 | ARM_MMU_IDX_A,
|
||||||
ARMMMUIdx_E10_1 = 1 | ARM_MMU_IDX_A,
|
ARMMMUIdx_E10_1 = 1 | ARM_MMU_IDX_A,
|
||||||
ARMMMUIdx_S1E2 = 2 | ARM_MMU_IDX_A,
|
ARMMMUIdx_E2 = 2 | ARM_MMU_IDX_A,
|
||||||
ARMMMUIdx_SE3 = 3 | ARM_MMU_IDX_A,
|
ARMMMUIdx_SE3 = 3 | ARM_MMU_IDX_A,
|
||||||
ARMMMUIdx_SE10_0 = 4 | ARM_MMU_IDX_A,
|
ARMMMUIdx_SE10_0 = 4 | ARM_MMU_IDX_A,
|
||||||
ARMMMUIdx_SE10_1 = 5 | ARM_MMU_IDX_A,
|
ARMMMUIdx_SE10_1 = 5 | ARM_MMU_IDX_A,
|
||||||
|
@ -2828,7 +2828,7 @@ typedef enum ARMMMUIdx {
|
||||||
typedef enum ARMMMUIdxBit {
|
typedef enum ARMMMUIdxBit {
|
||||||
ARMMMUIdxBit_E10_0 = 1 << 0,
|
ARMMMUIdxBit_E10_0 = 1 << 0,
|
||||||
ARMMMUIdxBit_E10_1 = 1 << 1,
|
ARMMMUIdxBit_E10_1 = 1 << 1,
|
||||||
ARMMMUIdxBit_S1E2 = 1 << 2,
|
ARMMMUIdxBit_E2 = 1 << 2,
|
||||||
ARMMMUIdxBit_SE3 = 1 << 3,
|
ARMMMUIdxBit_SE3 = 1 << 3,
|
||||||
ARMMMUIdxBit_SE10_0 = 1 << 4,
|
ARMMMUIdxBit_SE10_0 = 1 << 4,
|
||||||
ARMMMUIdxBit_SE10_1 = 1 << 5,
|
ARMMMUIdxBit_SE10_1 = 1 << 5,
|
||||||
|
|
|
@ -577,7 +577,7 @@ static void tlbiall_hyp_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
||||||
{
|
{
|
||||||
CPUState *cs = env_cpu(env);
|
CPUState *cs = env_cpu(env);
|
||||||
|
|
||||||
tlb_flush_by_mmuidx(cs, ARMMMUIdxBit_S1E2);
|
tlb_flush_by_mmuidx(cs, ARMMMUIdxBit_E2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tlbiall_hyp_is_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
static void tlbiall_hyp_is_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
||||||
|
@ -587,7 +587,7 @@ static void tlbiall_hyp_is_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
||||||
#if 0
|
#if 0
|
||||||
CPUState *cs = env_cpu(env);
|
CPUState *cs = env_cpu(env);
|
||||||
|
|
||||||
tlb_flush_by_mmuidx_all_cpus_synced(cs, ARMMMUIdxBit_S1E2);
|
tlb_flush_by_mmuidx_all_cpus_synced(cs, ARMMMUIdxBit_E2);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -597,7 +597,7 @@ static void tlbimva_hyp_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
||||||
CPUState *cs = env_cpu(env);
|
CPUState *cs = env_cpu(env);
|
||||||
uint64_t pageaddr = value & ~MAKE_64BIT_MASK(0, 12);
|
uint64_t pageaddr = value & ~MAKE_64BIT_MASK(0, 12);
|
||||||
|
|
||||||
tlb_flush_page_by_mmuidx(cs, pageaddr, ARMMMUIdxBit_S1E2);
|
tlb_flush_page_by_mmuidx(cs, pageaddr, ARMMMUIdxBit_E2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tlbimva_hyp_is_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
static void tlbimva_hyp_is_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
||||||
|
@ -609,7 +609,7 @@ static void tlbimva_hyp_is_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
||||||
uint64_t pageaddr = value & ~MAKE_64BIT_MASK(0, 12);
|
uint64_t pageaddr = value & ~MAKE_64BIT_MASK(0, 12);
|
||||||
|
|
||||||
tlb_flush_page_by_mmuidx_all_cpus_synced(cs, pageaddr,
|
tlb_flush_page_by_mmuidx_all_cpus_synced(cs, pageaddr,
|
||||||
ARMMMUIdxBit_S1E2);
|
ARMMMUIdxBit_E2);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3014,7 +3014,7 @@ static void ats1h_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
||||||
MMUAccessType access_type = ri->opc2 & 1 ? MMU_DATA_STORE : MMU_DATA_LOAD;
|
MMUAccessType access_type = ri->opc2 & 1 ? MMU_DATA_STORE : MMU_DATA_LOAD;
|
||||||
uint64_t par64;
|
uint64_t par64;
|
||||||
|
|
||||||
par64 = do_ats_write(env, value, access_type, ARMMMUIdx_S1E2);
|
par64 = do_ats_write(env, value, access_type, ARMMMUIdx_E2);
|
||||||
|
|
||||||
A32_BANKED_CURRENT_REG_SET(env, par, par64);
|
A32_BANKED_CURRENT_REG_SET(env, par, par64);
|
||||||
}
|
}
|
||||||
|
@ -3042,7 +3042,7 @@ static void ats_write64(CPUARMState *env, const ARMCPRegInfo *ri,
|
||||||
mmu_idx = secure ? ARMMMUIdx_SE10_1 : ARMMMUIdx_Stage1_E1;
|
mmu_idx = secure ? ARMMMUIdx_SE10_1 : ARMMMUIdx_Stage1_E1;
|
||||||
break;
|
break;
|
||||||
case 4: /* AT S1E2R, AT S1E2W */
|
case 4: /* AT S1E2R, AT S1E2W */
|
||||||
mmu_idx = ARMMMUIdx_S1E2;
|
mmu_idx = ARMMMUIdx_E2;
|
||||||
break;
|
break;
|
||||||
case 6: /* AT S1E3R, AT S1E3W */
|
case 6: /* AT S1E3R, AT S1E3W */
|
||||||
mmu_idx = ARMMMUIdx_SE3;
|
mmu_idx = ARMMMUIdx_SE3;
|
||||||
|
@ -3785,7 +3785,7 @@ static void tlbi_aa64_alle2_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
||||||
ARMCPU *cpu = env_archcpu(env);
|
ARMCPU *cpu = env_archcpu(env);
|
||||||
CPUState *cs = CPU(cpu);
|
CPUState *cs = CPU(cpu);
|
||||||
|
|
||||||
tlb_flush_by_mmuidx(cs, ARMMMUIdxBit_S1E2);
|
tlb_flush_by_mmuidx(cs, ARMMMUIdxBit_E2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tlbi_aa64_alle3_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
static void tlbi_aa64_alle3_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
||||||
|
@ -3816,7 +3816,7 @@ static void tlbi_aa64_alle2is_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
||||||
#if 0
|
#if 0
|
||||||
CPUState *cs = env_cpu(env);
|
CPUState *cs = env_cpu(env);
|
||||||
|
|
||||||
tlb_flush_by_mmuidx_all_cpus_synced(cs, ARMMMUIdxBit_S1E2);
|
tlb_flush_by_mmuidx_all_cpus_synced(cs, ARMMMUIdxBit_E2);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3842,7 +3842,7 @@ static void tlbi_aa64_vae2_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
||||||
CPUState *cs = CPU(cpu);
|
CPUState *cs = CPU(cpu);
|
||||||
uint64_t pageaddr = sextract64(value << 12, 0, 56);
|
uint64_t pageaddr = sextract64(value << 12, 0, 56);
|
||||||
|
|
||||||
tlb_flush_page_by_mmuidx(cs, pageaddr, ARMMMUIdxBit_S1E2);
|
tlb_flush_page_by_mmuidx(cs, pageaddr, ARMMMUIdxBit_E2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tlbi_aa64_vae3_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
static void tlbi_aa64_vae3_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
||||||
|
@ -3901,7 +3901,7 @@ static void tlbi_aa64_vae2is_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
||||||
uint64_t pageaddr = sextract64(value << 12, 0, 56);
|
uint64_t pageaddr = sextract64(value << 12, 0, 56);
|
||||||
|
|
||||||
tlb_flush_page_by_mmuidx_all_cpus_synced(cs, pageaddr,
|
tlb_flush_page_by_mmuidx_all_cpus_synced(cs, pageaddr,
|
||||||
ARMMMUIdxBit_S1E2);
|
ARMMMUIdxBit_E2);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8552,7 +8552,7 @@ static inline uint32_t regime_el(CPUARMState *env, ARMMMUIdx mmu_idx)
|
||||||
{
|
{
|
||||||
switch (mmu_idx) {
|
switch (mmu_idx) {
|
||||||
case ARMMMUIdx_Stage2:
|
case ARMMMUIdx_Stage2:
|
||||||
case ARMMMUIdx_S1E2:
|
case ARMMMUIdx_E2:
|
||||||
return 2;
|
return 2;
|
||||||
case ARMMMUIdx_SE3:
|
case ARMMMUIdx_SE3:
|
||||||
return 3;
|
return 3;
|
||||||
|
|
|
@ -814,7 +814,7 @@ static inline bool regime_is_secure(CPUARMState *env, ARMMMUIdx mmu_idx)
|
||||||
case ARMMMUIdx_E10_1:
|
case ARMMMUIdx_E10_1:
|
||||||
case ARMMMUIdx_Stage1_E0:
|
case ARMMMUIdx_Stage1_E0:
|
||||||
case ARMMMUIdx_Stage1_E1:
|
case ARMMMUIdx_Stage1_E1:
|
||||||
case ARMMMUIdx_S1E2:
|
case ARMMMUIdx_E2:
|
||||||
case ARMMMUIdx_Stage2:
|
case ARMMMUIdx_Stage2:
|
||||||
case ARMMMUIdx_MPrivNegPri:
|
case ARMMMUIdx_MPrivNegPri:
|
||||||
case ARMMMUIdx_MUserNegPri:
|
case ARMMMUIdx_MUserNegPri:
|
||||||
|
|
|
@ -146,7 +146,7 @@ static inline int get_a32_user_mem_index(DisasContext *s)
|
||||||
* otherwise, access as if at PL0.
|
* otherwise, access as if at PL0.
|
||||||
*/
|
*/
|
||||||
switch (s->mmu_idx) {
|
switch (s->mmu_idx) {
|
||||||
case ARMMMUIdx_S1E2: /* this one is UNPREDICTABLE */
|
case ARMMMUIdx_E2: /* this one is UNPREDICTABLE */
|
||||||
case ARMMMUIdx_E10_0:
|
case ARMMMUIdx_E10_0:
|
||||||
case ARMMMUIdx_E10_1:
|
case ARMMMUIdx_E10_1:
|
||||||
return arm_to_core_mmu_idx(ARMMMUIdx_E10_0);
|
return arm_to_core_mmu_idx(ARMMMUIdx_E10_0);
|
||||||
|
|
Loading…
Reference in a new issue