|
From: | G 3 |
Subject: | Re: [Qemu-devel] [Qemu-ppc] [PULL 05/23] ppc: Enforce setting MSR:EE, IR and DR when MSR:PR is set |
Date: | Sat, 9 Jul 2016 13:42:20 -0400 |
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 alsoset MSR:EE, IR and DR. Signed-off-by: Benjamin Herrenschmidt <address@hidden> Signed-off-by: C?dric Le Goater <address@hidden> Signed-off-by: David Gibson <address@hidden> --- 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 andOS 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.
I suggest you use a more up-to-date version of Darwin for PowerPC 64- bit support:
https://opensource.apple.com/static/iso/darwinppc-801.cdr.gz
[Prev in Thread] | Current Thread | [Next in Thread] |