qemu-e2k/target-ppc
David Gibson decb471488 Fix a bug in mtsr/mtsrin emulation on ppc64
Early ppc64 CPUs include a hack to partially simulate the ppc32 segment
registers, by translating writes to them into writes to the SLB.  This is
not used by any current Linux kernel, but it is used by the openbios used
in the qemu mac99 model.

Commit 81762d6dd0, cleaning up the SLB
handling introduced a bug in this code, breaking the openbios currently in
qemu.  Specifically, there was an off by one error bitshuffling the
register format used by mtsr into the format needed for the SLB load,
causing the flag bits to end up in the wrong place.  This caused the
storage keys to be wrong under openbios, meaning that the translation code
incorrectly thought a legitimate access was a permission violation.

This patch fixes the bug, at the same time it fixes some build bug in the
MMU debugging code (only exposed when DEBUG_MMU is enabled).

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
2011-05-20 17:56:03 +02:00
..
cpu.h w32: Fix compilation and replace non-portable usage of ulong 2011-05-20 17:56:03 +02:00
exec.h inline cpu_halted into sole caller 2011-03-13 14:44:21 +00:00
helper_regs.h
helper.c Fix a bug in mtsr/mtsrin emulation on ppc64 2011-05-20 17:56:03 +02:00
helper.h PPC: Implement e500 (FSL) MMU 2011-05-12 00:24:51 +02:00
kvm_ppc.c change all other clock references to use nanosecond resolution accessors 2011-03-21 09:23:23 +01:00
kvm_ppc.h ppce500_mpc8544ds: Fix compile with --enable-debug and --disable-kvm 2011-04-08 12:20:08 +02:00
kvm.c kvm: ppc: detect old headers 2011-05-09 22:31:38 +02:00
machine.c Parse SDR1 on mtspr instead of at translate time 2011-04-01 18:34:55 +02:00
mfrom_table_gen.c
mfrom_table.c
op_helper.c PPC: Implement e500 (FSL) MMU 2011-05-12 00:24:51 +02:00
STATUS
translate_init.c Merge branch 'ppc-next' of git://repo.or.cz/qemu/agraf 2011-05-14 16:54:59 +02:00
translate.c PPC: Implement e500 (FSL) MMU 2011-05-12 00:24:51 +02:00