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 ? Thanks, C.