qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-ppc] [Qemu-devel] [PULL 05/23] ppc: Enforce setting MSR:EE, IR


From: Cédric Le Goater
Subject: Re: [Qemu-ppc] [Qemu-devel] [PULL 05/23] ppc: Enforce setting MSR:EE, IR and DR when MSR:PR is set
Date: Mon, 11 Jul 2016 00:14:21 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Icedove/45.1.0

On 07/09/2016 07:42 PM, G 3 wrote:
>> 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 <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 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.
> 
> 
> 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

ok. Will do.


Mark, 

For OS 9, do you plan to commit these openbios patches soon ? 

        https://lists.nongnu.org/archive/html/qemu-devel/2015-11/msg02824.html

as we just gave them a good test. Or may be, include them under 
a github branch to make them easier to find.


Also, I found out that some OS 9 isos are not supported by qemu. 
These are ok : 
        
        
http://www.emaculation.com/forum/viewtopic.php?f=34&t=7047&sid=0ef8922b24a51d2a9d546300aea69c64&start=250

But the one under :

        http://c-obrien.org/qemu-os9/testing/

does not boot. It loops on some CUDA commands and then hangs. 
I did not dig further. Is that a known issue ? 
 
Thanks,

C.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]