Blame SOURCES/kvm-target-ppc-Add-POWER9-DD2.0-model-information.patch

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