[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH] ppc: restrict the use of the rfi instruction
From: |
Thomas Huth |
Subject: |
Re: [Qemu-ppc] [PATCH] ppc: restrict the use of the rfi instruction |
Date: |
Thu, 8 Sep 2016 09:58:20 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2 |
On 08.09.2016 09:32, Cédric Le Goater wrote:
> From: Benjamin Herrenschmidt <address@hidden>
>
> 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 <address@hidden>
> Reviewed-by: David Gibson <address@hidden>
> [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 <address@hidden>
> ---
> 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 <address@hidden>