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 <[email protected]>
>> Signed-off-by: Cédric Le Goater <[email protected]>
>> Signed-off-by: David Gibson <[email protected]>
>> ---
>> 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.
>