qemu-ppc
[Top][All Lists]
Advanced

[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: David Gibson
Subject: Re: [Qemu-ppc] [PATCH] ppc: restrict the use of the rfi instruction
Date: Mon, 12 Sep 2016 11:37:07 +1000
User-agent: Mutt/1.7.0 (2016-08-17)

On Thu, Sep 08, 2016 at 09:32:42AM +0200, 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>

Applied to ppc-for-2.8, thanks.

> ---
>  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);
> 

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: signature.asc
Description: PGP signature


reply via email to

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