From 6ae1832e4dd6a9ad53a53528bd119017f6a8b4a2 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Tue, 12 Jul 2016 07:41:55 +0200 Subject: [PATCH 22/34] spapr: Restore support for 970MP and POWER8NVL CPU cores RH-Author: David Gibson Message-id: <1468309320-14859-23-git-send-email-dgibson@redhat.com> Patchwork-id: 71142 O-Subject: [RHEL7.3 qemu-kvm-rhev PATCHv2 22/27] spapr: Restore support for 970MP and POWER8NVL CPU cores Bugzilla: 1172917 RH-Acked-by: Igor Mammedov RH-Acked-by: Laurent Vivier RH-Acked-by: Thomas Huth Introduction of core based CPU hotplug for PowerPC sPAPR didn't add support for 970MP and POWER8NVL based core types. Add support for the same. While we are here, add support for explicit specification of POWER5+_v2.1 core type. Signed-off-by: Bharata B Rao Signed-off-by: David Gibson (cherry picked from commit 470f2157877d49034d2ae0e755fbd4d059def164) Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1172917 Signed-off-by: Miroslav Rezanina Conflicts: hw/ppc/spapr_cpu_core.c Downstream, we only support the POWER8NVL, not the 970 variants. Therefore the 970 portions are #if-ed out. Otherwise we would get runtime errors because the relevant cpus are already disabled in the core downstream. Signed-off-by: David Gibson --- hw/ppc/spapr_cpu_core.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c index 991a3ee..bfacf8d 100644 --- a/hw/ppc/spapr_cpu_core.c +++ b/hw/ppc/spapr_cpu_core.c @@ -338,6 +338,8 @@ static void glue(glue(spapr_cpu_core_, _fname), _initfn(Object *obj)) \ } #if 0 /* Disabled for Red Hat Enterprise Linux */ +SPAPR_CPU_CORE_INITFN(970mp_v1.0, 970MP_v10); +SPAPR_CPU_CORE_INITFN(970mp_v1.1, 970MP_v11); SPAPR_CPU_CORE_INITFN(970_v2.2, 970); SPAPR_CPU_CORE_INITFN(POWER5+_v2.1, POWER5plus); #endif @@ -345,6 +347,7 @@ SPAPR_CPU_CORE_INITFN(POWER7_v2.3, POWER7); SPAPR_CPU_CORE_INITFN(POWER7+_v2.1, POWER7plus); SPAPR_CPU_CORE_INITFN(POWER8_v2.0, POWER8); SPAPR_CPU_CORE_INITFN(POWER8E_v2.1, POWER8E); +SPAPR_CPU_CORE_INITFN(POWER8NVL_v1.0, POWER8NVL); typedef struct SPAPRCoreInfo { const char *name; @@ -353,10 +356,19 @@ typedef struct SPAPRCoreInfo { static const SPAPRCoreInfo spapr_cores[] = { #if 0 /* Disabled for Red Hat Enterprise Linux */ - /* 970 */ + /* 970 and aliaes */ + { .name = "970_v2.2", .initfn = spapr_cpu_core_970_initfn }, { .name = "970", .initfn = spapr_cpu_core_970_initfn }, - /* POWER5 */ + /* 970MP variants and aliases */ + { .name = "970MP_v1.0", .initfn = spapr_cpu_core_970MP_v10_initfn }, + { .name = "970mp_v1.0", .initfn = spapr_cpu_core_970MP_v10_initfn }, + { .name = "970MP_v1.1", .initfn = spapr_cpu_core_970MP_v11_initfn }, + { .name = "970mp_v1.1", .initfn = spapr_cpu_core_970MP_v11_initfn }, + { .name = "970mp", .initfn = spapr_cpu_core_970MP_v11_initfn }, + + /* POWER5 and aliases */ + { .name = "POWER5+_v2.1", .initfn = spapr_cpu_core_POWER5plus_initfn }, { .name = "POWER5+", .initfn = spapr_cpu_core_POWER5plus_initfn }, #endif @@ -377,6 +389,10 @@ static const SPAPRCoreInfo spapr_cores[] = { { .name = "POWER8E_v2.1", .initfn = spapr_cpu_core_POWER8E_initfn }, { .name = "POWER8E", .initfn = spapr_cpu_core_POWER8E_initfn }, + /* POWER8NVL and aliases */ + { .name = "POWER8NVL_v1.0", .initfn = spapr_cpu_core_POWER8NVL_initfn }, + { .name = "POWER8NVL", .initfn = spapr_cpu_core_POWER8NVL_initfn }, + { .name = NULL } }; -- 1.8.3.1