target/ppc: Implement TIDR
authorDavid Gibson <david@gibson.dropbear.id.au>
Tue, 8 Aug 2017 03:42:53 +0000 (13:42 +1000)
committerDavid Gibson <david@gibson.dropbear.id.au>
Wed, 9 Aug 2017 01:46:44 +0000 (11:46 +1000)
This adds a trivial implementation of the TIDR register added in
POWER9.  This isn't particularly important to qemu directly - it's
used by accelerator modules that we don't emulate.

However, since qemu isn't aware of it, its state is not synchronized
with KVM and therefore not migrated, which can be a problem.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
target/ppc/cpu.h
target/ppc/translate_init.c

index 6ee2a26a963d8092e51afb1756ebc0088938ad41..f6e5413fad450b13a304cf4330b597c7c252106f 100644 (file)
@@ -1451,6 +1451,7 @@ void ppc_compat_add_property(Object *obj, const char *name,
 #define SPR_TEXASR            (0x082)
 #define SPR_TEXASRU           (0x083)
 #define SPR_UCTRL             (0x088)
+#define SPR_TIDR              (0x090)
 #define SPR_MPC_CMPA          (0x090)
 #define SPR_MPC_CMPB          (0x091)
 #define SPR_MPC_CMPC          (0x092)
index 01723bdfec4c5efbc08cc7c368cabb4a1d56f2b8..94800cd29d33e72992c5f0e76763a630130bef36 100644 (file)
@@ -8841,6 +8841,11 @@ static void init_proc_POWER9(CPUPPCState *env)
     gen_spr_power8_book4(env);
     gen_spr_power8_rpr(env);
 
+    /* POWER9 Specific registers */
+    spr_register_kvm(env, SPR_TIDR, "TIDR", NULL, NULL,
+                     spr_read_generic, spr_write_generic,
+                     KVM_REG_PPC_TIDR, 0);
+
     /* env variables */
 #if !defined(CONFIG_USER_ONLY)
     env->slb_nr = 32;