Re: [Qemu-devel] [PATCH 14/17] ppc: Add dummy write to VTB

2016-03-15 Thread David Gibson
On Mon, Mar 14, 2016 at 05:56:37PM +0100, Cédric Le Goater wrote:
> From: Benjamin Herrenschmidt 
> 
> The Hypervisor can write it. We don't handle that properly yet but
> at least let's not blow up when it is written.
> 
> Signed-off-by: Benjamin Herrenschmidt 

AFAICT this should be for 2.7, not 2.6?

> ---
>  target-ppc/translate_init.c | 15 +++
>  1 file changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
> index 2fac6ea58698..28a9c2e73156 100644
> --- a/target-ppc/translate_init.c
> +++ b/target-ppc/translate_init.c
> @@ -300,6 +300,12 @@ static void spr_write_purr(DisasContext *ctx, int gprn, 
> int sprn)
>  /* Temporary placeholder */
>  }
>  
> +__attribute__ ((unused))
> +static void spr_write_vtb(DisasContext *ctx, int gprn, int sprn)
> +{
> +/* Temporary placeholder */
> +}
> +
>  #endif
>  #endif
>  
> @@ -8089,10 +8095,11 @@ static void gen_spr_power8_ebb(CPUPPCState *env)
>  /* Virtual Time Base */
>  static void gen_spr_vtb(CPUPPCState *env)
>  {
> -spr_register(env, SPR_VTB, "VTB",
> - SPR_NOACCESS, SPR_NOACCESS,
> - _read_tbl, SPR_NOACCESS,
> - 0x);
> +spr_register_hv(env, SPR_VTB, "VTB",
> +   SPR_NOACCESS, SPR_NOACCESS,
> +   _read_tbl, SPR_NOACCESS,
> +   _read_tbl, spr_write_vtb,
> +   0x);
>  }
>  
>  static void gen_spr_power8_fscr(CPUPPCState *env)

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


signature.asc
Description: PGP signature


Re: [Qemu-devel] [PATCH 14/17] ppc: Add dummy write to VTB

2016-03-14 Thread Thomas Huth
On 14.03.2016 17:56, Cédric Le Goater wrote:
> From: Benjamin Herrenschmidt 
> 
> The Hypervisor can write it. We don't handle that properly yet but
> at least let's not blow up when it is written.
> 
> Signed-off-by: Benjamin Herrenschmidt 
> ---
>  target-ppc/translate_init.c | 15 +++
>  1 file changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
> index 2fac6ea58698..28a9c2e73156 100644
> --- a/target-ppc/translate_init.c
> +++ b/target-ppc/translate_init.c
> @@ -300,6 +300,12 @@ static void spr_write_purr(DisasContext *ctx, int gprn, 
> int sprn)
>  /* Temporary placeholder */
>  }
>  
> +__attribute__ ((unused))
> +static void spr_write_vtb(DisasContext *ctx, int gprn, int sprn)
> +{
> +/* Temporary placeholder */
> +}

Why "__attribute__ ((unused))" here (again)?

>  #endif
>  #endif
>  
> @@ -8089,10 +8095,11 @@ static void gen_spr_power8_ebb(CPUPPCState *env)
>  /* Virtual Time Base */
>  static void gen_spr_vtb(CPUPPCState *env)
>  {
> -spr_register(env, SPR_VTB, "VTB",
> - SPR_NOACCESS, SPR_NOACCESS,
> - _read_tbl, SPR_NOACCESS,
> - 0x);
> +spr_register_hv(env, SPR_VTB, "VTB",
> +   SPR_NOACCESS, SPR_NOACCESS,
> +   _read_tbl, SPR_NOACCESS,
> +   _read_tbl, spr_write_vtb,
> +   0x);
>  }

I think it would also be possible to use spr_access_nop() for now
instead of introducing more dummy functions like spr_write_vtb.

 Thomas




[Qemu-devel] [PATCH 14/17] ppc: Add dummy write to VTB

2016-03-14 Thread Cédric Le Goater
From: Benjamin Herrenschmidt 

The Hypervisor can write it. We don't handle that properly yet but
at least let's not blow up when it is written.

Signed-off-by: Benjamin Herrenschmidt 
---
 target-ppc/translate_init.c | 15 +++
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
index 2fac6ea58698..28a9c2e73156 100644
--- a/target-ppc/translate_init.c
+++ b/target-ppc/translate_init.c
@@ -300,6 +300,12 @@ static void spr_write_purr(DisasContext *ctx, int gprn, 
int sprn)
 /* Temporary placeholder */
 }
 
+__attribute__ ((unused))
+static void spr_write_vtb(DisasContext *ctx, int gprn, int sprn)
+{
+/* Temporary placeholder */
+}
+
 #endif
 #endif
 
@@ -8089,10 +8095,11 @@ static void gen_spr_power8_ebb(CPUPPCState *env)
 /* Virtual Time Base */
 static void gen_spr_vtb(CPUPPCState *env)
 {
-spr_register(env, SPR_VTB, "VTB",
- SPR_NOACCESS, SPR_NOACCESS,
- _read_tbl, SPR_NOACCESS,
- 0x);
+spr_register_hv(env, SPR_VTB, "VTB",
+   SPR_NOACCESS, SPR_NOACCESS,
+   _read_tbl, SPR_NOACCESS,
+   _read_tbl, spr_write_vtb,
+   0x);
 }
 
 static void gen_spr_power8_fscr(CPUPPCState *env)
-- 
2.1.4