qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [Qemu-ppc] [PATCH 01/10] ppc: Fix rfi/rfid/hrfi/... emu


From: Thomas Huth
Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH 01/10] ppc: Fix rfi/rfid/hrfi/... emulation
Date: Fri, 17 Jun 2016 13:02:41 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0

On 17.06.2016 12:41, Cédric Le Goater wrote:
> On 06/17/2016 09:10 AM, Thomas Huth wrote:
>> On 17.06.2016 08:03, Cédric Le Goater wrote:
>>> On 06/17/2016 07:54 AM, Cédric Le Goater wrote:
>>>> On 06/17/2016 04:27 AM, David Gibson wrote:
>>>>> On Thu, Jun 16, 2016 at 11:07:02AM +1000, David Gibson wrote:
>>>>>> On Mon, Jun 13, 2016 at 07:24:47AM +0200, Cédric Le Goater wrote:
>>>>>>> From: Benjamin Herrenschmidt <address@hidden>
>>>>>>>
>>>>>>> This reworks emulation of the various "rfi" variants. I removed
>>>>>>> some masking bits that I couldn't make sense of, the only bit that
>>>>>>> I am aware we should mask here is POW, the CPU's MSR mask should
>>>>>>> take care of the rest.
>>>>>>>
>>>>>>> This also fixes some problems when running 32-bit userspace under
>>>>>>> a 64-bit kernel.
> 
> he.
> 
>>>>>>> Signed-off-by: Benjamin Herrenschmidt <address@hidden>
>>>>>>> Reviewed-by: David Gibson <address@hidden>
>>>>>>
>>>>>> I've merged this patch to ppc-for-2.7.
>>>>>
>>>>> ..and now I've removed it again.  It seems that this breaks Thomas'
>>>>> new test that OpenBIOS runs on the mac machine types.  Not sure why,
>>>>> but we need to figure that out before I apply.
>>>>
>>>> Just this patch ? I booted a macosx image with it. but maybe just a mac99.
>>>> I will check today.
>>>
>>> With your branch ppc-for-2.7 (at commit aba2e6258d86) + the 
>>> "ppc: Fix rfi/rfid/hrfi/... emulation" patch, these guests : 
>>>
>>>     qemu-system-ppc -cdrom ./darwinppc-602.cdr -boot d 
>>>     qemu-system-ppc -M mac99 -cdrom ./darwinppc-602.cdr -boot d 
>>                        ^
>>                        |
>> You're missing the "64" here ;-)
>>
>>> reach the installer macosx installer.
>>
>> It seems to be only failing for the 64-bit builds - and there only for
>> the PPC970 CPU (which is the default for the mac99 machine in 64-bit
>> builds):
>>
>> qemu-system-ppc64 -nographic -cpu 750 -M mac99 ==> works fine
>>
>> qemu-system-ppc64 -nographic -cpu 970 -M mac99 ==> hangs
> 
> 
> This is too brutal :
> 
> +    /* This instruction doesn't exist anymore on 64-bit server
> +     * processors compliant with arch 2.x
> +     */
> +    if (ctx->insns_flags & PPC_SEGMENT_64B) {
> +        gen_inval_exception(ctx, POWERPC_EXCP_INVAL_INVAL);
> +        return;
> +    }
> 
> There are a couple of instructions which have been deleted from 
> ISA 2.x. rfi is one of them. Could we use a insn_flag to filter
> them  ? 

According to the PPC970FX user manual that I have:

"The 970FX does not provide support for the following optional or
 obsolete instructions (or instruction forms).
 Attempted use of these will result in an illegal instruction type
 program interrupt.
  [...]
  · rfi - Return from interrupt (obsolete) "

So if OpenBIOS is using this instruction in 970 mode, it's maybe
OpenBIOS that should be fixed instead?

 Thomas




reply via email to

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