On 08.09.2016 09:32, Cédric Le Goater wrote: > From: Benjamin Herrenschmidt <b...@kernel.crashing.org> > > Power ISA 2.x has deleted the rfi instruction and rfid shoud be used > instead on cpus following this instruction set or later. > > This will raise an invalid exception when rfi is used on such > processors: Book3S 64-bit processors. > > Signed-off-by: Benjamin Herrenschmidt <b...@kernel.crashing.org> > Reviewed-by: David Gibson <da...@gibson.dropbear.id.au> > [clg: the required fix in openbios, commit b747b6acc272 ('ppc: use > rfid when running under a CPU from the 970 family.'), is now > merged in qemu under commit 5cebd885d0d2 ('Update OpenBIOS > images to b747b6a built from submodule.') ] > Signed-off-by: Cédric Le Goater <c...@kaod.org> > --- > target-ppc/translate.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > Index: qemu-dgibson-for-2.8.git/target-ppc/translate.c > =================================================================== > --- qemu-dgibson-for-2.8.git.orig/target-ppc/translate.c > +++ qemu-dgibson-for-2.8.git/target-ppc/translate.c > @@ -3585,10 +3585,13 @@ static void gen_rfi(DisasContext *ctx) > #if defined(CONFIG_USER_ONLY) > GEN_PRIV; > #else > - /* FIXME: This instruction doesn't exist anymore on 64-bit server > - * processors compliant with arch 2.x, we should remove it there, > - * but we need to fix OpenBIOS not to use it on 970 first > + /* 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; > + } > /* Restore CPU state */ > CHK_SV; > gen_update_cfar(ctx, ctx->nip - 4); >
Reviewed-by: Thomas Huth <th...@redhat.com>