|
|
4a2fec |
From f862178a20240a06504e35d11953982fcf769789 Mon Sep 17 00:00:00 2001
|
|
|
4a2fec |
From: Laurent Vivier <lvivier@redhat.com>
|
|
|
4a2fec |
Date: Fri, 8 Dec 2017 14:48:39 +0100
|
|
|
4a2fec |
Subject: [PATCH 1/6] target/ppc: Add POWER9 DD2.0 model information
|
|
|
4a2fec |
|
|
|
4a2fec |
RH-Author: Laurent Vivier <lvivier@redhat.com>
|
|
|
4a2fec |
Message-id: <20171208144839.6655-1-lvivier@redhat.com>
|
|
|
4a2fec |
Patchwork-id: 78276
|
|
|
4a2fec |
O-Subject: [RHV7.5 qemu-kvm-rhev PATCH] target/ppc: Add POWER9 DD2.0 model information
|
|
|
4a2fec |
Bugzilla: 1523235
|
|
|
4a2fec |
RH-Acked-by: David Gibson <dgibson@redhat.com>
|
|
|
4a2fec |
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
|
|
4a2fec |
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
4a2fec |
|
|
|
4a2fec |
From: David Gibson <david@gibson.dropbear.id.au>
|
|
|
4a2fec |
|
|
|
4a2fec |
Tested: /usr/libexec/qemu-kvm -device help 2>&1|grep -i "power9"
|
|
|
4a2fec |
name "POWER9_v1.0-spapr-cpu-core"
|
|
|
4a2fec |
name "POWER9_v2.0-spapr-cpu-core"
|
|
|
4a2fec |
/usr/libexec/qemu-kvm -cpu help 2>&1|grep -i "power9"
|
|
|
4a2fec |
PowerPC POWER9_v1.0 PVR 004e0100
|
|
|
4a2fec |
PowerPC POWER9_v2.0 PVR 004e1200
|
|
|
4a2fec |
PowerPC POWER9 (alias for preferred POWER9 CPU)
|
|
|
4a2fec |
|
|
|
4a2fec |
At the moment the only POWER9 model which is listed in qemu is v1.0 (aka
|
|
|
4a2fec |
"DD1"). This is a very early (read, buggy) version which will never be
|
|
|
4a2fec |
released to the public - it was included in qemu only for the convenience
|
|
|
4a2fec |
of those doing bringup on the early silicon. For bonus points, we actually
|
|
|
4a2fec |
had its PVR incorrect in the table (0x004e0000 instead of 0x004e0100). We
|
|
|
4a2fec |
also never actually implemented the differences in behaviour (read, bugs)
|
|
|
4a2fec |
that marked DD1 in qemu.
|
|
|
4a2fec |
|
|
|
4a2fec |
Now that we know the PVR for the substantially better v2.0 (DD2) chip,
|
|
|
4a2fec |
include it and make it the default POWER9 in qemu. For the time being we
|
|
|
4a2fec |
leave the DD1 definition in place for the poor souls (read, me) who still
|
|
|
4a2fec |
need to work with DD1 hardware.
|
|
|
4a2fec |
|
|
|
4a2fec |
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
|
|
|
4a2fec |
(cherry picked from commit 1ed9c8af501f8d1bdf5a8725a038527be059f54d)
|
|
|
4a2fec |
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
|
|
|
4a2fec |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
4a2fec |
|
|
|
4a2fec |
Conflicts:
|
|
|
4a2fec |
hw/ppc/spapr_cpu_core.c
|
|
|
4a2fec |
target/ppc/cpu-models.c
|
|
|
4a2fec |
|
|
|
4a2fec |
with downstream only commit:
|
|
|
4a2fec |
|
|
|
4a2fec |
0e72e616b2 Enable/disable devices for RHEL 7
|
|
|
4a2fec |
|
|
|
4a2fec |
introducing "#if .. #endif" in the CPU list
|
|
|
4a2fec |
|
|
|
4a2fec |
And missing upstream commit:
|
|
|
4a2fec |
|
|
|
4a2fec |
c5354f5 ppc: make cpu_model translation to type consistent
|
|
|
4a2fec |
|
|
|
4a2fec |
changing all the CPU names to lower-case and then doing
|
|
|
4a2fec |
case-insensitive matching. I've chosen to not backport this one
|
|
|
4a2fec |
because it changes the behaviour of the interface (vs upstream 2.10).
|
|
|
4a2fec |
---
|
|
|
4a2fec |
hw/ppc/spapr_cpu_core.c | 1 +
|
|
|
4a2fec |
target/ppc/cpu-models.c | 6 ++++--
|
|
|
4a2fec |
target/ppc/cpu-models.h | 1 +
|
|
|
4a2fec |
3 files changed, 6 insertions(+), 2 deletions(-)
|
|
|
4a2fec |
|
|
|
4a2fec |
diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c
|
|
|
4a2fec |
index 400ab56..30c15d5 100644
|
|
|
4a2fec |
--- a/hw/ppc/spapr_cpu_core.c
|
|
|
4a2fec |
+++ b/hw/ppc/spapr_cpu_core.c
|
|
|
4a2fec |
@@ -308,6 +308,7 @@ static const char *spapr_core_models[] = {
|
|
|
4a2fec |
"POWER8NVL_v1.0",
|
|
|
4a2fec |
/* POWER9 */
|
|
|
4a2fec |
"POWER9_v1.0",
|
|
|
4a2fec |
+ "POWER9_v2.0",
|
|
|
4a2fec |
};
|
|
|
4a2fec |
|
|
|
4a2fec |
static Property spapr_cpu_core_properties[] = {
|
|
|
4a2fec |
diff --git a/target/ppc/cpu-models.c b/target/ppc/cpu-models.c
|
|
|
4a2fec |
index 08a1f59..975aa07 100644
|
|
|
4a2fec |
--- a/target/ppc/cpu-models.c
|
|
|
4a2fec |
+++ b/target/ppc/cpu-models.c
|
|
|
4a2fec |
@@ -1150,8 +1150,10 @@
|
|
|
4a2fec |
"PowerPC 970 v2.2")
|
|
|
4a2fec |
#endif
|
|
|
4a2fec |
|
|
|
4a2fec |
- POWERPC_DEF("POWER9_v1.0", CPU_POWERPC_POWER9_BASE, POWER9,
|
|
|
4a2fec |
+ POWERPC_DEF("POWER9_v1.0", CPU_POWERPC_POWER9_DD1, POWER9,
|
|
|
4a2fec |
"POWER9 v1.0")
|
|
|
4a2fec |
+ POWERPC_DEF("POWER9_v2.0", CPU_POWERPC_POWER9_DD20, POWER9,
|
|
|
4a2fec |
+ "POWER9 v2.0")
|
|
|
4a2fec |
|
|
|
4a2fec |
#if 0 /* Disabled for Red Hat Enterprise Linux */
|
|
|
4a2fec |
POWERPC_DEF("970fx_v1.0", CPU_POWERPC_970FX_v10, 970,
|
|
|
4a2fec |
@@ -1403,7 +1405,7 @@ PowerPCCPUAlias ppc_cpu_aliases[] = {
|
|
|
4a2fec |
{ "POWER8E", "POWER8E_v2.1" },
|
|
|
4a2fec |
{ "POWER8", "POWER8_v2.0" },
|
|
|
4a2fec |
{ "POWER8NVL", "POWER8NVL_v1.0" },
|
|
|
4a2fec |
- { "POWER9", "POWER9_v1.0" },
|
|
|
4a2fec |
+ { "POWER9", "POWER9_v2.0" },
|
|
|
4a2fec |
#if 0 /* Disabled for Red Hat Enterprise Linux */
|
|
|
4a2fec |
{ "970", "970_v2.2" },
|
|
|
4a2fec |
{ "970fx", "970fx_v3.1" },
|
|
|
4a2fec |
diff --git a/target/ppc/cpu-models.h b/target/ppc/cpu-models.h
|
|
|
4a2fec |
index b563c45..fc1b1d2 100644
|
|
|
4a2fec |
--- a/target/ppc/cpu-models.h
|
|
|
4a2fec |
+++ b/target/ppc/cpu-models.h
|
|
|
4a2fec |
@@ -562,6 +562,7 @@ enum {
|
|
|
4a2fec |
CPU_POWERPC_POWER8NVL_v10 = 0x004C0100,
|
|
|
4a2fec |
CPU_POWERPC_POWER9_BASE = 0x004E0000,
|
|
|
4a2fec |
CPU_POWERPC_POWER9_DD1 = 0x004E0100,
|
|
|
4a2fec |
+ CPU_POWERPC_POWER9_DD20 = 0x004E1200,
|
|
|
4a2fec |
CPU_POWERPC_970_v22 = 0x00390202,
|
|
|
4a2fec |
CPU_POWERPC_970FX_v10 = 0x00391100,
|
|
|
4a2fec |
CPU_POWERPC_970FX_v20 = 0x003C0200,
|
|
|
4a2fec |
--
|
|
|
4a2fec |
1.8.3.1
|
|
|
4a2fec |
|