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 <b...@kernel.crashing.org> --- 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 08730b6..4ad2c94 100644 --- a/target-ppc/translate_init.c +++ b/target-ppc/translate_init.c @@ -299,6 +299,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 +} + /* HDECR */ static void spr_read_hdecr (DisasContext *ctx, int gprn, int sprn) { @@ -8148,10 +8154,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, - &spr_read_tbl, SPR_NOACCESS, - 0x00000000); + spr_register_hv(env, SPR_VTB, "VTB", + SPR_NOACCESS, SPR_NOACCESS, + &spr_read_tbl, SPR_NOACCESS, + &spr_read_tbl, spr_write_vtb, + 0x00000000); } static void gen_spr_power8_fscr(CPUPPCState *env) -- 2.5.0