|
|
76daa3 |
From ae9b87b57aa0cfc52f49960888c5d7d8060fa28c Mon Sep 17 00:00:00 2001
|
|
|
76daa3 |
From: David Gibson <dgibson@redhat.com>
|
|
|
76daa3 |
Date: Fri, 11 Aug 2017 06:09:08 +0200
|
|
|
76daa3 |
Subject: [PATCH 1/3] target/ppc: Implement TIDR
|
|
|
76daa3 |
MIME-Version: 1.0
|
|
|
76daa3 |
Content-Type: text/plain; charset=UTF-8
|
|
|
76daa3 |
Content-Transfer-Encoding: 8bit
|
|
|
76daa3 |
|
|
|
76daa3 |
RH-Author: David Gibson <dgibson@redhat.com>
|
|
|
76daa3 |
Message-id: <20170811060909.31369-2-dgibson@redhat.com>
|
|
|
76daa3 |
Patchwork-id: 75935
|
|
|
76daa3 |
O-Subject: [RHEL-7.4-ALT qemu-kvm PATCH 1/2] target/ppc: Implement TIDR
|
|
|
76daa3 |
Bugzilla: 1478822
|
|
|
76daa3 |
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
|
|
76daa3 |
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
|
|
|
76daa3 |
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
76daa3 |
|
|
|
76daa3 |
From: David Gibson <david@gibson.dropbear.id.au>
|
|
|
76daa3 |
|
|
|
76daa3 |
This adds a trivial implementation of the TIDR register added in
|
|
|
76daa3 |
POWER9. This isn't particularly important to qemu directly - it's
|
|
|
76daa3 |
used by accelerator modules that we don't emulate.
|
|
|
76daa3 |
|
|
|
76daa3 |
However, since qemu isn't aware of it, its state is not synchronized
|
|
|
76daa3 |
with KVM and therefore not migrated, which can be a problem.
|
|
|
76daa3 |
|
|
|
76daa3 |
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
|
|
|
76daa3 |
Reviewed-by: Cédric Le Goater <clg@kaod.org>
|
|
|
76daa3 |
Reviewed-by: Greg Kurz <groug@kaod.org>
|
|
|
76daa3 |
Reviewed-by: Thomas Huth <thuth@redhat.com>
|
|
|
76daa3 |
(cherry picked from commit 650f3287abb7c6124b7fb0f4a2330246fe2d4da2)
|
|
|
76daa3 |
|
|
|
76daa3 |
Signed-off-by: David Gibson <dgibson@redhat.com>
|
|
|
76daa3 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
76daa3 |
---
|
|
|
76daa3 |
target/ppc/cpu.h | 1 +
|
|
|
76daa3 |
target/ppc/translate_init.c | 5 +++++
|
|
|
76daa3 |
2 files changed, 6 insertions(+)
|
|
|
76daa3 |
|
|
|
76daa3 |
diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
|
|
|
76daa3 |
index 43bd257..a2d7b6f 100644
|
|
|
76daa3 |
--- a/target/ppc/cpu.h
|
|
|
76daa3 |
+++ b/target/ppc/cpu.h
|
|
|
76daa3 |
@@ -1444,6 +1444,7 @@ int ppc_compat_max_threads(PowerPCCPU *cpu);
|
|
|
76daa3 |
#define SPR_TEXASR (0x082)
|
|
|
76daa3 |
#define SPR_TEXASRU (0x083)
|
|
|
76daa3 |
#define SPR_UCTRL (0x088)
|
|
|
76daa3 |
+#define SPR_TIDR (0x090)
|
|
|
76daa3 |
#define SPR_MPC_CMPA (0x090)
|
|
|
76daa3 |
#define SPR_MPC_CMPB (0x091)
|
|
|
76daa3 |
#define SPR_MPC_CMPC (0x092)
|
|
|
76daa3 |
diff --git a/target/ppc/translate_init.c b/target/ppc/translate_init.c
|
|
|
76daa3 |
index c1a9014..624bc1c 100644
|
|
|
76daa3 |
--- a/target/ppc/translate_init.c
|
|
|
76daa3 |
+++ b/target/ppc/translate_init.c
|
|
|
76daa3 |
@@ -8837,6 +8837,11 @@ static void init_proc_POWER9(CPUPPCState *env)
|
|
|
76daa3 |
gen_spr_power8_book4(env);
|
|
|
76daa3 |
gen_spr_power8_rpr(env);
|
|
|
76daa3 |
|
|
|
76daa3 |
+ /* POWER9 Specific registers */
|
|
|
76daa3 |
+ spr_register_kvm(env, SPR_TIDR, "TIDR", NULL, NULL,
|
|
|
76daa3 |
+ spr_read_generic, spr_write_generic,
|
|
|
76daa3 |
+ KVM_REG_PPC_TIDR, 0);
|
|
|
76daa3 |
+
|
|
|
76daa3 |
/* env variables */
|
|
|
76daa3 |
#if !defined(CONFIG_USER_ONLY)
|
|
|
76daa3 |
env->slb_nr = 32;
|
|
|
76daa3 |
--
|
|
|
76daa3 |
1.8.3.1
|
|
|
76daa3 |
|