On 17.06.16 13:02, Thomas Huth wrote: > 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 <b...@kernel.crashing.org> >>>>>>>> >>>>>>>> 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 <b...@kernel.crashing.org> >>>>>>>> Reviewed-by: David Gibson <da...@gibson.dropbear.id.au> >>>>>>> >>>>>>> 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?
If 970 doesn't implement rfi, OpenBIOS shouldn't use it, yes :). Alex