diff options
author | KONRAD Frederic <frederic.konrad@adacore.com> | 2017-08-07 17:50:45 +0200 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2017-09-08 09:30:55 +1000 |
commit | 3f330293bace409fc172201f27084784c697f8f8 (patch) | |
tree | 7642bafa84a8beae1d0691614d23dabb1b6724f0 | |
parent | 2e886fb39168942ab03b91062e715946e4af8436 (diff) | |
download | qemu-3f330293bace409fc172201f27084784c697f8f8.zip |
booke206: fix booke206_tlbnps for mav 2.0
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.konrad@adacore.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r-- | target/ppc/cpu.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index cf4ded7b8e..21f0ddd056 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -2473,10 +2473,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]; |