Skip to content

Commit

Permalink
target/microblaze: Populate CPUClass.mmu_index
Browse files Browse the repository at this point in the history
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
  • Loading branch information
rth7680 committed Feb 2, 2024
1 parent 39e616f commit 19ab06b
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 12 deletions.
18 changes: 17 additions & 1 deletion target/microblaze/cpu.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,22 @@ static bool mb_cpu_has_work(CPUState *cs)
return cs->interrupt_request & (CPU_INTERRUPT_HARD | CPU_INTERRUPT_NMI);
}

int mb_cpu_mmu_index(CPUState *cs, bool ifetch)
{
CPUMBState *env = cpu_env(cs);
MicroBlazeCPU *cpu = env_archcpu(env);

/* Are we in nommu mode?. */
if (!(env->msr & MSR_VM) || !cpu->cfg.use_mmu) {
return MMU_NOMMU_IDX;
}

if (env->msr & MSR_UM) {
return MMU_USER_IDX;
}
return MMU_KERNEL_IDX;
}

#ifndef CONFIG_USER_ONLY
static void mb_cpu_ns_axi_dp(void *opaque, int irq, int level)
{
Expand Down Expand Up @@ -415,7 +431,7 @@ static void mb_cpu_class_init(ObjectClass *oc, void *data)

cc->class_by_name = mb_cpu_class_by_name;
cc->has_work = mb_cpu_has_work;

cc->mmu_index = mb_cpu_mmu_index;
cc->dump_state = mb_cpu_dump_state;
cc->set_pc = mb_cpu_set_pc;
cc->get_pc = mb_cpu_get_pc;
Expand Down
13 changes: 2 additions & 11 deletions target/microblaze/cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -434,19 +434,10 @@ void mb_cpu_transaction_failed(CPUState *cs, hwaddr physaddr, vaddr addr,
MemTxResult response, uintptr_t retaddr);
#endif

int mb_cpu_mmu_index(CPUState *cs, bool ifetch);
static inline int cpu_mmu_index(CPUMBState *env, bool ifetch)
{
MicroBlazeCPU *cpu = env_archcpu(env);

/* Are we in nommu mode?. */
if (!(env->msr & MSR_VM) || !cpu->cfg.use_mmu) {
return MMU_NOMMU_IDX;
}

if (env->msr & MSR_UM) {
return MMU_USER_IDX;
}
return MMU_KERNEL_IDX;
return mb_cpu_mmu_index(env_cpu(env), ifetch);
}

#ifndef CONFIG_USER_ONLY
Expand Down

0 comments on commit 19ab06b

Please sign in to comment.