This fixes booke206_tlbnps for MAV 2.0 by checking the MMUCFG register and return directly the right tlbnps instead of computing it from non existing field.
Signed-off-by: KONRAD Frederic <frederic.kon...@adacore.com> --- target/ppc/cpu.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index 6ee2a26..d2faea9 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -2472,10 +2472,10 @@ static inline ppcmas_tlb_t *booke206_get_tlbm(CPUPPCState *env, const int tlbn, /* returns bitmap of supported page sizes for a given TLB */ static inline uint32_t booke206_tlbnps(CPUPPCState *env, const int tlbn) { - bool mav2 = false; uint32_t ret = 0; - if (mav2) { + if ((env->spr[SPR_MMUCFG] & MMUCFG_MAVN) == MMUCFG_MAVN_V2) { + /* MAV2 */ ret = env->spr[SPR_BOOKE_TLB0PS + tlbn]; } else { uint32_t tlbncfg = env->spr[SPR_BOOKE_TLB0CFG + tlbn]; -- 1.8.3.1