On 07/09/2016 02:43 AM, Mark Cave-Ayland wrote: > On 01/07/16 07:41, David Gibson wrote: > >> From: Benjamin Herrenschmidt <b378bb0948277d71c78bc6d0c1ef80a253aafc80> >> >> The architecture specifies that any instruction that sets MSR:PR will also >> set MSR:EE, IR and DR. >> >> Signed-off-by: Benjamin Herrenschmidt <b...@kernel.crashing.org> >> Signed-off-by: Cédric Le Goater <c...@kaod.org> >> Signed-off-by: David Gibson <da...@gibson.dropbear.id.au> >> --- >> target-ppc/helper_regs.h | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/target-ppc/helper_regs.h b/target-ppc/helper_regs.h >> index 8fc0934..8fdfa5c 100644 >> --- a/target-ppc/helper_regs.h >> +++ b/target-ppc/helper_regs.h >> @@ -136,6 +136,10 @@ static inline int hreg_store_msr(CPUPPCState *env, >> target_ulong value, >> /* Change the exception prefix on PowerPC 601 */ >> env->excp_prefix = ((value >> MSR_EP) & 1) * 0xFFF00000; >> } >> + /* If PR=1 then EE, IR and DR must be 1 */ >> + if ((value >> MSR_PR) & 1) { >> + value |= (1 << MSR_EE) | (1 << MSR_DR) | (1 << MSR_IR); >> + } >> #endif >> env->msr = value; >> hreg_compute_hflags(env); >> > > Unfortunately this patch causes a regression and breaks booting OS 9 and > OS X under qemu-system-ppc.
Ah This is curious. I used : qemu-system-ppc -M g3beige -cdrom darwinppc-602.cdr -boot d qemu-system-ppc -M mac99 -cdrom darwinppc-602.cdr -boot d qemu-system-ppc64 -M g3beige -cdrom darwinppc-602.cdr -boot d which "work" as they reach the installation prompt : The following devices are available for installation. This one hangs : qemu-system-ppc64 -M mac99 -cdrom darwinppc-602.cdr -boot d But that is expected for a 970 cpu. The login prompt is reached with a full Darwin disk image. So I must be missing a scenario :/ Thanks, C. > > ATB, > > Mark. >