Blob Blame History Raw
From cb95a2dd9f549a4b7fcfac97b9a83c46a232d41e Mon Sep 17 00:00:00 2001
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Date: Tue, 8 Dec 2020 16:27:16 -0500
Subject: 8.4 x86 machine type

RH-Author: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-id: <20201208162716.30836-4-dgilbert@redhat.com>
Patchwork-id: 100362
O-Subject: [RHEL-av-8.4.0 qemu-kvm PATCH v2 3/3] 8.4 x86 machine type
Bugzilla: 1885555
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
RH-Acked-by: Juan Quintela <quintela@redhat.com>

From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>

Add pc-q35-rhel8.4.0 and fix all the compatiiblity glue up.

Note the moving of x-smi-cpu-hotplug follows bz 1846886 comment 18
part 2.

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
---
 hw/i386/pc.c         |  8 ++++++--
 hw/i386/pc_piix.c    |  5 +++++
 hw/i386/pc_q35.c     | 30 +++++++++++++++++++++++++++---
 include/hw/i386/pc.h |  3 +++
 4 files changed, 41 insertions(+), 5 deletions(-)

diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index f3fc695fe2..d5ea5b634c 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -363,11 +363,15 @@ GlobalProperty pc_rhel_compat[] = {
     { TYPE_X86_CPU, "vmx-exit-load-perf-global-ctrl", "off" },
     /* bz 1508330 */ 
     { "vfio-pci", "x-no-geforce-quirks", "on" },
-    /* BZ 1846886 */
-    { "ICH9-LPC", "x-smi-cpu-hotplug", "off" },
 };
 const size_t pc_rhel_compat_len = G_N_ELEMENTS(pc_rhel_compat);
 
+GlobalProperty pc_rhel_8_3_compat[] = {
+    /* pc_rhel_8_3_compat from pc_compat_5_1 */
+    { "ICH9-LPC", "x-smi-cpu-hotplug", "off" },
+};
+const size_t pc_rhel_8_3_compat_len = G_N_ELEMENTS(pc_rhel_8_3_compat);
+
 GlobalProperty pc_rhel_8_2_compat[] = {
     /* pc_rhel_8_2_compat from pc_compat_4_2 */
     { "mch", "smbase-smram", "off" },
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 815da79108..1b1cc18ae0 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -1045,6 +1045,11 @@ static void pc_machine_rhel760_options(MachineClass *m)
     m->smbus_no_migration_support = true;
     pcmc->pvh_enabled = false;
     pcmc->default_cpu_version = CPU_VERSION_LEGACY;
+    pcmc->kvmclock_create_always = false;
+    compat_props_add(m->compat_props, hw_compat_rhel_8_3,
+                     hw_compat_rhel_8_3_len);
+    compat_props_add(m->compat_props, pc_rhel_8_3_compat,
+                     pc_rhel_8_3_compat_len);
     compat_props_add(m->compat_props, hw_compat_rhel_8_2,
                      hw_compat_rhel_8_2_len);
     compat_props_add(m->compat_props, pc_rhel_8_2_compat,
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index 3340008c00..5acb47afcf 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -593,6 +593,24 @@ static void pc_q35_machine_rhel_options(MachineClass *m)
     compat_props_add(m->compat_props, pc_rhel_compat, pc_rhel_compat_len);
 }
 
+static void pc_q35_init_rhel840(MachineState *machine)
+{
+    pc_q35_init(machine);
+}
+
+static void pc_q35_machine_rhel840_options(MachineClass *m)
+{
+    PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
+    pc_q35_machine_rhel_options(m);
+    m->desc = "RHEL-8.4.0 PC (Q35 + ICH9, 2009)";
+    pcmc->smbios_stream_product = "RHEL-AV";
+    pcmc->smbios_stream_version = "8.4.0";
+}
+
+DEFINE_PC_MACHINE(q35_rhel840, "pc-q35-rhel8.4.0", pc_q35_init_rhel840,
+                  pc_q35_machine_rhel840_options);
+
+
 static void pc_q35_init_rhel830(MachineState *machine)
 {
     pc_q35_init(machine);
@@ -601,10 +619,17 @@ static void pc_q35_init_rhel830(MachineState *machine)
 static void pc_q35_machine_rhel830_options(MachineClass *m)
 {
     PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
-    pc_q35_machine_rhel_options(m);
+    pc_q35_machine_rhel840_options(m);
     m->desc = "RHEL-8.3.0 PC (Q35 + ICH9, 2009)";
+    m->alias = NULL;
     pcmc->smbios_stream_product = "RHEL-AV";
     pcmc->smbios_stream_version = "8.3.0";
+    compat_props_add(m->compat_props, hw_compat_rhel_8_3,
+                     hw_compat_rhel_8_3_len);
+    compat_props_add(m->compat_props, pc_rhel_8_3_compat,
+                     pc_rhel_8_3_compat_len);
+    /* From pc_q35_5_1_machine_options() */
+    pcmc->kvmclock_create_always = false;
 }
 
 DEFINE_PC_MACHINE(q35_rhel830, "pc-q35-rhel8.3.0", pc_q35_init_rhel830,
@@ -618,9 +643,8 @@ static void pc_q35_init_rhel820(MachineState *machine)
 static void pc_q35_machine_rhel820_options(MachineClass *m)
 {
     PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
-    pc_q35_machine_rhel_options(m);
+    pc_q35_machine_rhel830_options(m);
     m->desc = "RHEL-8.2.0 PC (Q35 + ICH9, 2009)";
-    m->alias = NULL;
     m->numa_mem_supported = true;
     m->auto_enable_numa_with_memdev = false;
     pcmc->smbios_stream_product = "RHEL-AV";
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index e2ba9a4b58..68091bea98 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -272,6 +272,9 @@ extern const size_t pc_compat_1_4_len;
 extern GlobalProperty pc_rhel_compat[];
 extern const size_t pc_rhel_compat_len;
 
+extern GlobalProperty pc_rhel_8_3_compat[];
+extern const size_t pc_rhel_8_3_compat_len;
+
 extern GlobalProperty pc_rhel_8_2_compat[];
 extern const size_t pc_rhel_8_2_compat_len;
 
-- 
2.18.4