All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH for-8.1] hw: Add compat machines for 8.1
@ 2023-03-14 17:30 Cornelia Huck
  2023-03-14 17:36 ` Cédric Le Goater
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Cornelia Huck @ 2023-03-14 17:30 UTC (permalink / raw)
  To: Peter Maydell, Eduardo Habkost, Marcel Apfelbaum,
	Philippe Mathieu-Daudé,
	Yanan Wang, Paolo Bonzini, Richard Henderson, Michael S. Tsirkin,
	Laurent Vivier, Daniel Henrique Barboza, Cédric Le Goater,
	David Gibson, Greg Kurz, Halil Pasic, Christian Borntraeger,
	Eric Farman, Thomas Huth, David Hildenbrand, Ilya Leoshkevich
  Cc: qemu-arm, qemu-devel, qemu-ppc, qemu-s390x, Cornelia Huck

Add 8.1 machine types for arm/i440fx/m68k/q35/s390x/spapr.

Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
 hw/arm/virt.c              |  9 ++++++++-
 hw/core/machine.c          |  3 +++
 hw/i386/pc.c               |  3 +++
 hw/i386/pc_piix.c          | 16 +++++++++++++---
 hw/i386/pc_q35.c           | 14 ++++++++++++--
 hw/m68k/virt.c             |  9 ++++++++-
 hw/ppc/spapr.c             | 15 +++++++++++++--
 hw/s390x/s390-virtio-ccw.c | 14 +++++++++++++-
 include/hw/boards.h        |  3 +++
 include/hw/i386/pc.h       |  3 +++
 10 files changed, 79 insertions(+), 10 deletions(-)

diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index ac626b3bef74..267fe56fae76 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3232,10 +3232,17 @@ static void machvirt_machine_init(void)
 }
 type_init(machvirt_machine_init);
 
+static void virt_machine_8_1_options(MachineClass *mc)
+{
+}
+DEFINE_VIRT_MACHINE_AS_LATEST(8, 1)
+
 static void virt_machine_8_0_options(MachineClass *mc)
 {
+    virt_machine_8_1_options(mc);
+    compat_props_add(mc->compat_props, hw_compat_8_0, hw_compat_8_0_len);
 }
-DEFINE_VIRT_MACHINE_AS_LATEST(8, 0)
+DEFINE_VIRT_MACHINE(8, 0)
 
 static void virt_machine_7_2_options(MachineClass *mc)
 {
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 45e3d24fdc89..5bda87fc7d91 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -39,6 +39,9 @@
 #include "hw/virtio/virtio.h"
 #include "hw/virtio/virtio-pci.h"
 
+GlobalProperty hw_compat_8_0[] = {};
+const size_t hw_compat_8_0_len = G_N_ELEMENTS(hw_compat_8_0);
+
 GlobalProperty hw_compat_7_2[] = {
     { "e1000e", "migrate-timadj", "off" },
     { "virtio-mem", "x-early-migration", "false" },
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 1489abf010a6..615e1d3d06ad 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -116,6 +116,9 @@
     { "qemu64-" TYPE_X86_CPU, "model-id", "QEMU Virtual CPU version " v, },\
     { "athlon-" TYPE_X86_CPU, "model-id", "QEMU Virtual CPU version " v, },
 
+GlobalProperty pc_compat_8_0[] = {};
+const size_t pc_compat_8_0_len = G_N_ELEMENTS(pc_compat_8_0);
+
 GlobalProperty pc_compat_7_2[] = {
     { "ICH9-LPC", "noreboot", "true" },
 };
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 30eedd62a3a0..21591dad8d92 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -454,21 +454,31 @@ static void pc_i440fx_machine_options(MachineClass *m)
     machine_class_allow_dynamic_sysbus_dev(m, TYPE_VMBUS_BRIDGE);
 }
 
-static void pc_i440fx_8_0_machine_options(MachineClass *m)
+static void pc_i440fx_8_1_machine_options(MachineClass *m)
 {
     pc_i440fx_machine_options(m);
     m->alias = "pc";
     m->is_default = true;
 }
 
+DEFINE_I440FX_MACHINE(v8_1, "pc-i440fx-8.1", NULL,
+                      pc_i440fx_8_1_machine_options);
+
+static void pc_i440fx_8_0_machine_options(MachineClass *m)
+{
+    pc_i440fx_8_1_machine_options(m);
+    m->alias = NULL;
+    m->is_default = false;
+    compat_props_add(m->compat_props, hw_compat_8_0, hw_compat_8_0_len);
+    compat_props_add(m->compat_props, pc_compat_8_0, pc_compat_8_0_len);
+}
+
 DEFINE_I440FX_MACHINE(v8_0, "pc-i440fx-8.0", NULL,
                       pc_i440fx_8_0_machine_options);
 
 static void pc_i440fx_7_2_machine_options(MachineClass *m)
 {
     pc_i440fx_8_0_machine_options(m);
-    m->alias = NULL;
-    m->is_default = false;
     compat_props_add(m->compat_props, hw_compat_7_2, hw_compat_7_2_len);
     compat_props_add(m->compat_props, pc_compat_7_2, pc_compat_7_2_len);
 }
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index 797ba347fd05..f02919d92c46 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -373,19 +373,29 @@ static void pc_q35_machine_options(MachineClass *m)
     m->max_cpus = 288;
 }
 
-static void pc_q35_8_0_machine_options(MachineClass *m)
+static void pc_q35_8_1_machine_options(MachineClass *m)
 {
     pc_q35_machine_options(m);
     m->alias = "q35";
 }
 
+DEFINE_Q35_MACHINE(v8_1, "pc-q35-8.1", NULL,
+                   pc_q35_8_1_machine_options);
+
+static void pc_q35_8_0_machine_options(MachineClass *m)
+{
+    pc_q35_8_1_machine_options(m);
+    m->alias = NULL;
+    compat_props_add(m->compat_props, hw_compat_8_0, hw_compat_8_0_len);
+    compat_props_add(m->compat_props, pc_compat_8_0, pc_compat_8_0_len);
+}
+
 DEFINE_Q35_MACHINE(v8_0, "pc-q35-8.0", NULL,
                    pc_q35_8_0_machine_options);
 
 static void pc_q35_7_2_machine_options(MachineClass *m)
 {
     pc_q35_8_0_machine_options(m);
-    m->alias = NULL;
     compat_props_add(m->compat_props, hw_compat_7_2, hw_compat_7_2_len);
     compat_props_add(m->compat_props, pc_compat_7_2, pc_compat_7_2_len);
 }
diff --git a/hw/m68k/virt.c b/hw/m68k/virt.c
index 4cb5beef1a0c..f5ca2ca9054c 100644
--- a/hw/m68k/virt.c
+++ b/hw/m68k/virt.c
@@ -346,10 +346,17 @@ type_init(virt_machine_register_types)
     } \
     type_init(machvirt_machine_##major##_##minor##_init);
 
+static void virt_machine_8_1_options(MachineClass *mc)
+{
+}
+DEFINE_VIRT_MACHINE(8, 1, true)
+
 static void virt_machine_8_0_options(MachineClass *mc)
 {
+    virt_machine_8_1_options(mc);
+    compat_props_add(mc->compat_props, hw_compat_8_0, hw_compat_8_0_len);
 }
-DEFINE_VIRT_MACHINE(8, 0, true)
+DEFINE_VIRT_MACHINE(8, 0, false)
 
 static void virt_machine_7_2_options(MachineClass *mc)
 {
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 4921198b9d6f..ddc9c7b1a1e2 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -4734,15 +4734,26 @@ static void spapr_machine_latest_class_options(MachineClass *mc)
     }                                                                \
     type_init(spapr_machine_register_##suffix)
 
+/*
+ * pseries-8.1
+ */
+static void spapr_machine_8_1_class_options(MachineClass *mc)
+{
+    /* Defaults for the latest behaviour inherited from the base class */
+}
+
+DEFINE_SPAPR_MACHINE(8_1, "8.1", true);
+
 /*
  * pseries-8.0
  */
 static void spapr_machine_8_0_class_options(MachineClass *mc)
 {
-    /* Defaults for the latest behaviour inherited from the base class */
+    spapr_machine_8_1_class_options(mc);
+    compat_props_add(mc->compat_props, hw_compat_8_0, hw_compat_8_0_len);
 }
 
-DEFINE_SPAPR_MACHINE(8_0, "8.0", true);
+DEFINE_SPAPR_MACHINE(8_0, "8.0", false);
 
 /*
  * pseries-7.2
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 503f212a3131..e6f2c626254c 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -826,14 +826,26 @@ bool css_migration_enabled(void)
     }                                                                         \
     type_init(ccw_machine_register_##suffix)
 
+static void ccw_machine_8_1_instance_options(MachineState *machine)
+{
+}
+
+static void ccw_machine_8_1_class_options(MachineClass *mc)
+{
+}
+DEFINE_CCW_MACHINE(8_1, "8.1", true);
+
 static void ccw_machine_8_0_instance_options(MachineState *machine)
 {
+    ccw_machine_8_1_instance_options(machine);
 }
 
 static void ccw_machine_8_0_class_options(MachineClass *mc)
 {
+    ccw_machine_8_1_class_options(mc);
+    compat_props_add(mc->compat_props, hw_compat_8_0, hw_compat_8_0_len);
 }
-DEFINE_CCW_MACHINE(8_0, "8.0", true);
+DEFINE_CCW_MACHINE(8_0, "8.0", false);
 
 static void ccw_machine_7_2_instance_options(MachineState *machine)
 {
diff --git a/include/hw/boards.h b/include/hw/boards.h
index 6fbbfd56c808..bf5fc9e3e759 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -381,6 +381,9 @@ struct MachineState {
     } \
     type_init(machine_initfn##_register_types)
 
+extern GlobalProperty hw_compat_8_0[];
+extern const size_t hw_compat_8_0_len;
+
 extern GlobalProperty hw_compat_7_2[];
 extern const size_t hw_compat_7_2_len;
 
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 8206d5405a20..eb668e90344d 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -195,6 +195,9 @@ void pc_madt_cpu_entry(int uid, const CPUArchIdList *apic_ids,
 /* sgx.c */
 void pc_machine_init_sgx_epc(PCMachineState *pcms);
 
+extern GlobalProperty pc_compat_8_0[];
+extern const size_t pc_compat_8_0_len;
+
 extern GlobalProperty pc_compat_7_2[];
 extern const size_t pc_compat_7_2_len;
 
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH for-8.1] hw: Add compat machines for 8.1
  2023-03-14 17:30 [PATCH for-8.1] hw: Add compat machines for 8.1 Cornelia Huck
@ 2023-03-14 17:36 ` Cédric Le Goater
  2023-03-17  5:59 ` Gavin Shan
  2023-03-17  8:23 ` Thomas Huth
  2 siblings, 0 replies; 4+ messages in thread
From: Cédric Le Goater @ 2023-03-14 17:36 UTC (permalink / raw)
  To: Cornelia Huck, Peter Maydell, Eduardo Habkost, Marcel Apfelbaum,
	Philippe Mathieu-Daudé,
	Yanan Wang, Paolo Bonzini, Richard Henderson, Michael S. Tsirkin,
	Laurent Vivier, Daniel Henrique Barboza, David Gibson, Greg Kurz,
	Halil Pasic, Christian Borntraeger, Eric Farman, Thomas Huth,
	David Hildenbrand, Ilya Leoshkevich
  Cc: qemu-arm, qemu-devel, qemu-ppc, qemu-s390x

On 3/14/23 18:30, Cornelia Huck wrote:
> Add 8.1 machine types for arm/i440fx/m68k/q35/s390x/spapr.
> 
> Signed-off-by: Cornelia Huck <cohuck@redhat.com>

For ppc,

Reviewed-by: Cédric Le Goater <clg@kaod.org>

Thanks,

C.


> ---
>   hw/arm/virt.c              |  9 ++++++++-
>   hw/core/machine.c          |  3 +++
>   hw/i386/pc.c               |  3 +++
>   hw/i386/pc_piix.c          | 16 +++++++++++++---
>   hw/i386/pc_q35.c           | 14 ++++++++++++--
>   hw/m68k/virt.c             |  9 ++++++++-
>   hw/ppc/spapr.c             | 15 +++++++++++++--
>   hw/s390x/s390-virtio-ccw.c | 14 +++++++++++++-
>   include/hw/boards.h        |  3 +++
>   include/hw/i386/pc.h       |  3 +++
>   10 files changed, 79 insertions(+), 10 deletions(-)
> 
> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
> index ac626b3bef74..267fe56fae76 100644
> --- a/hw/arm/virt.c
> +++ b/hw/arm/virt.c
> @@ -3232,10 +3232,17 @@ static void machvirt_machine_init(void)
>   }
>   type_init(machvirt_machine_init);
>   
> +static void virt_machine_8_1_options(MachineClass *mc)
> +{
> +}
> +DEFINE_VIRT_MACHINE_AS_LATEST(8, 1)
> +
>   static void virt_machine_8_0_options(MachineClass *mc)
>   {
> +    virt_machine_8_1_options(mc);
> +    compat_props_add(mc->compat_props, hw_compat_8_0, hw_compat_8_0_len);
>   }
> -DEFINE_VIRT_MACHINE_AS_LATEST(8, 0)
> +DEFINE_VIRT_MACHINE(8, 0)
>   
>   static void virt_machine_7_2_options(MachineClass *mc)
>   {
> diff --git a/hw/core/machine.c b/hw/core/machine.c
> index 45e3d24fdc89..5bda87fc7d91 100644
> --- a/hw/core/machine.c
> +++ b/hw/core/machine.c
> @@ -39,6 +39,9 @@
>   #include "hw/virtio/virtio.h"
>   #include "hw/virtio/virtio-pci.h"
>   
> +GlobalProperty hw_compat_8_0[] = {};
> +const size_t hw_compat_8_0_len = G_N_ELEMENTS(hw_compat_8_0);
> +
>   GlobalProperty hw_compat_7_2[] = {
>       { "e1000e", "migrate-timadj", "off" },
>       { "virtio-mem", "x-early-migration", "false" },
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index 1489abf010a6..615e1d3d06ad 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -116,6 +116,9 @@
>       { "qemu64-" TYPE_X86_CPU, "model-id", "QEMU Virtual CPU version " v, },\
>       { "athlon-" TYPE_X86_CPU, "model-id", "QEMU Virtual CPU version " v, },
>   
> +GlobalProperty pc_compat_8_0[] = {};
> +const size_t pc_compat_8_0_len = G_N_ELEMENTS(pc_compat_8_0);
> +
>   GlobalProperty pc_compat_7_2[] = {
>       { "ICH9-LPC", "noreboot", "true" },
>   };
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index 30eedd62a3a0..21591dad8d92 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -454,21 +454,31 @@ static void pc_i440fx_machine_options(MachineClass *m)
>       machine_class_allow_dynamic_sysbus_dev(m, TYPE_VMBUS_BRIDGE);
>   }
>   
> -static void pc_i440fx_8_0_machine_options(MachineClass *m)
> +static void pc_i440fx_8_1_machine_options(MachineClass *m)
>   {
>       pc_i440fx_machine_options(m);
>       m->alias = "pc";
>       m->is_default = true;
>   }
>   
> +DEFINE_I440FX_MACHINE(v8_1, "pc-i440fx-8.1", NULL,
> +                      pc_i440fx_8_1_machine_options);
> +
> +static void pc_i440fx_8_0_machine_options(MachineClass *m)
> +{
> +    pc_i440fx_8_1_machine_options(m);
> +    m->alias = NULL;
> +    m->is_default = false;
> +    compat_props_add(m->compat_props, hw_compat_8_0, hw_compat_8_0_len);
> +    compat_props_add(m->compat_props, pc_compat_8_0, pc_compat_8_0_len);
> +}
> +
>   DEFINE_I440FX_MACHINE(v8_0, "pc-i440fx-8.0", NULL,
>                         pc_i440fx_8_0_machine_options);
>   
>   static void pc_i440fx_7_2_machine_options(MachineClass *m)
>   {
>       pc_i440fx_8_0_machine_options(m);
> -    m->alias = NULL;
> -    m->is_default = false;
>       compat_props_add(m->compat_props, hw_compat_7_2, hw_compat_7_2_len);
>       compat_props_add(m->compat_props, pc_compat_7_2, pc_compat_7_2_len);
>   }
> diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
> index 797ba347fd05..f02919d92c46 100644
> --- a/hw/i386/pc_q35.c
> +++ b/hw/i386/pc_q35.c
> @@ -373,19 +373,29 @@ static void pc_q35_machine_options(MachineClass *m)
>       m->max_cpus = 288;
>   }
>   
> -static void pc_q35_8_0_machine_options(MachineClass *m)
> +static void pc_q35_8_1_machine_options(MachineClass *m)
>   {
>       pc_q35_machine_options(m);
>       m->alias = "q35";
>   }
>   
> +DEFINE_Q35_MACHINE(v8_1, "pc-q35-8.1", NULL,
> +                   pc_q35_8_1_machine_options);
> +
> +static void pc_q35_8_0_machine_options(MachineClass *m)
> +{
> +    pc_q35_8_1_machine_options(m);
> +    m->alias = NULL;
> +    compat_props_add(m->compat_props, hw_compat_8_0, hw_compat_8_0_len);
> +    compat_props_add(m->compat_props, pc_compat_8_0, pc_compat_8_0_len);
> +}
> +
>   DEFINE_Q35_MACHINE(v8_0, "pc-q35-8.0", NULL,
>                      pc_q35_8_0_machine_options);
>   
>   static void pc_q35_7_2_machine_options(MachineClass *m)
>   {
>       pc_q35_8_0_machine_options(m);
> -    m->alias = NULL;
>       compat_props_add(m->compat_props, hw_compat_7_2, hw_compat_7_2_len);
>       compat_props_add(m->compat_props, pc_compat_7_2, pc_compat_7_2_len);
>   }
> diff --git a/hw/m68k/virt.c b/hw/m68k/virt.c
> index 4cb5beef1a0c..f5ca2ca9054c 100644
> --- a/hw/m68k/virt.c
> +++ b/hw/m68k/virt.c
> @@ -346,10 +346,17 @@ type_init(virt_machine_register_types)
>       } \
>       type_init(machvirt_machine_##major##_##minor##_init);
>   
> +static void virt_machine_8_1_options(MachineClass *mc)
> +{
> +}
> +DEFINE_VIRT_MACHINE(8, 1, true)
> +
>   static void virt_machine_8_0_options(MachineClass *mc)
>   {
> +    virt_machine_8_1_options(mc);
> +    compat_props_add(mc->compat_props, hw_compat_8_0, hw_compat_8_0_len);
>   }
> -DEFINE_VIRT_MACHINE(8, 0, true)
> +DEFINE_VIRT_MACHINE(8, 0, false)
>   
>   static void virt_machine_7_2_options(MachineClass *mc)
>   {
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index 4921198b9d6f..ddc9c7b1a1e2 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -4734,15 +4734,26 @@ static void spapr_machine_latest_class_options(MachineClass *mc)
>       }                                                                \
>       type_init(spapr_machine_register_##suffix)
>   
> +/*
> + * pseries-8.1
> + */
> +static void spapr_machine_8_1_class_options(MachineClass *mc)
> +{
> +    /* Defaults for the latest behaviour inherited from the base class */
> +}
> +
> +DEFINE_SPAPR_MACHINE(8_1, "8.1", true);
> +
>   /*
>    * pseries-8.0
>    */
>   static void spapr_machine_8_0_class_options(MachineClass *mc)
>   {
> -    /* Defaults for the latest behaviour inherited from the base class */
> +    spapr_machine_8_1_class_options(mc);
> +    compat_props_add(mc->compat_props, hw_compat_8_0, hw_compat_8_0_len);
>   }
>   
> -DEFINE_SPAPR_MACHINE(8_0, "8.0", true);
> +DEFINE_SPAPR_MACHINE(8_0, "8.0", false);
>   
>   /*
>    * pseries-7.2
> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
> index 503f212a3131..e6f2c626254c 100644
> --- a/hw/s390x/s390-virtio-ccw.c
> +++ b/hw/s390x/s390-virtio-ccw.c
> @@ -826,14 +826,26 @@ bool css_migration_enabled(void)
>       }                                                                         \
>       type_init(ccw_machine_register_##suffix)
>   
> +static void ccw_machine_8_1_instance_options(MachineState *machine)
> +{
> +}
> +
> +static void ccw_machine_8_1_class_options(MachineClass *mc)
> +{
> +}
> +DEFINE_CCW_MACHINE(8_1, "8.1", true);
> +
>   static void ccw_machine_8_0_instance_options(MachineState *machine)
>   {
> +    ccw_machine_8_1_instance_options(machine);
>   }
>   
>   static void ccw_machine_8_0_class_options(MachineClass *mc)
>   {
> +    ccw_machine_8_1_class_options(mc);
> +    compat_props_add(mc->compat_props, hw_compat_8_0, hw_compat_8_0_len);
>   }
> -DEFINE_CCW_MACHINE(8_0, "8.0", true);
> +DEFINE_CCW_MACHINE(8_0, "8.0", false);
>   
>   static void ccw_machine_7_2_instance_options(MachineState *machine)
>   {
> diff --git a/include/hw/boards.h b/include/hw/boards.h
> index 6fbbfd56c808..bf5fc9e3e759 100644
> --- a/include/hw/boards.h
> +++ b/include/hw/boards.h
> @@ -381,6 +381,9 @@ struct MachineState {
>       } \
>       type_init(machine_initfn##_register_types)
>   
> +extern GlobalProperty hw_compat_8_0[];
> +extern const size_t hw_compat_8_0_len;
> +
>   extern GlobalProperty hw_compat_7_2[];
>   extern const size_t hw_compat_7_2_len;
>   
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index 8206d5405a20..eb668e90344d 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -195,6 +195,9 @@ void pc_madt_cpu_entry(int uid, const CPUArchIdList *apic_ids,
>   /* sgx.c */
>   void pc_machine_init_sgx_epc(PCMachineState *pcms);
>   
> +extern GlobalProperty pc_compat_8_0[];
> +extern const size_t pc_compat_8_0_len;
> +
>   extern GlobalProperty pc_compat_7_2[];
>   extern const size_t pc_compat_7_2_len;
>   



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH for-8.1] hw: Add compat machines for 8.1
  2023-03-14 17:30 [PATCH for-8.1] hw: Add compat machines for 8.1 Cornelia Huck
  2023-03-14 17:36 ` Cédric Le Goater
@ 2023-03-17  5:59 ` Gavin Shan
  2023-03-17  8:23 ` Thomas Huth
  2 siblings, 0 replies; 4+ messages in thread
From: Gavin Shan @ 2023-03-17  5:59 UTC (permalink / raw)
  To: Cornelia Huck, Peter Maydell, Eduardo Habkost, Marcel Apfelbaum,
	Philippe Mathieu-Daudé,
	Yanan Wang, Paolo Bonzini, Richard Henderson, Michael S. Tsirkin,
	Laurent Vivier, Daniel Henrique Barboza, Cédric Le Goater,
	David Gibson, Greg Kurz, Halil Pasic, Christian Borntraeger,
	Eric Farman, Thomas Huth, David Hildenbrand, Ilya Leoshkevich
  Cc: qemu-arm, qemu-devel, qemu-ppc, qemu-s390x

On 3/15/23 1:30 AM, Cornelia Huck wrote:
> Add 8.1 machine types for arm/i440fx/m68k/q35/s390x/spapr.
> 
> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
> ---
>   hw/arm/virt.c              |  9 ++++++++-
>   hw/core/machine.c          |  3 +++
>   hw/i386/pc.c               |  3 +++
>   hw/i386/pc_piix.c          | 16 +++++++++++++---
>   hw/i386/pc_q35.c           | 14 ++++++++++++--
>   hw/m68k/virt.c             |  9 ++++++++-
>   hw/ppc/spapr.c             | 15 +++++++++++++--
>   hw/s390x/s390-virtio-ccw.c | 14 +++++++++++++-
>   include/hw/boards.h        |  3 +++
>   include/hw/i386/pc.h       |  3 +++
>   10 files changed, 79 insertions(+), 10 deletions(-)
> 

For hw/arm/virt.c:

Acked-by: Gavin Shan <gshan@redhat.com>

> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
> index ac626b3bef74..267fe56fae76 100644
> --- a/hw/arm/virt.c
> +++ b/hw/arm/virt.c
> @@ -3232,10 +3232,17 @@ static void machvirt_machine_init(void)
>   }
>   type_init(machvirt_machine_init);
>   
> +static void virt_machine_8_1_options(MachineClass *mc)
> +{
> +}
> +DEFINE_VIRT_MACHINE_AS_LATEST(8, 1)
> +
>   static void virt_machine_8_0_options(MachineClass *mc)
>   {
> +    virt_machine_8_1_options(mc);
> +    compat_props_add(mc->compat_props, hw_compat_8_0, hw_compat_8_0_len);
>   }
> -DEFINE_VIRT_MACHINE_AS_LATEST(8, 0)
> +DEFINE_VIRT_MACHINE(8, 0)
>   
>   static void virt_machine_7_2_options(MachineClass *mc)
>   {
> diff --git a/hw/core/machine.c b/hw/core/machine.c
> index 45e3d24fdc89..5bda87fc7d91 100644
> --- a/hw/core/machine.c
> +++ b/hw/core/machine.c
> @@ -39,6 +39,9 @@
>   #include "hw/virtio/virtio.h"
>   #include "hw/virtio/virtio-pci.h"
>   
> +GlobalProperty hw_compat_8_0[] = {};
> +const size_t hw_compat_8_0_len = G_N_ELEMENTS(hw_compat_8_0);
> +
>   GlobalProperty hw_compat_7_2[] = {
>       { "e1000e", "migrate-timadj", "off" },
>       { "virtio-mem", "x-early-migration", "false" },
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index 1489abf010a6..615e1d3d06ad 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -116,6 +116,9 @@
>       { "qemu64-" TYPE_X86_CPU, "model-id", "QEMU Virtual CPU version " v, },\
>       { "athlon-" TYPE_X86_CPU, "model-id", "QEMU Virtual CPU version " v, },
>   
> +GlobalProperty pc_compat_8_0[] = {};
> +const size_t pc_compat_8_0_len = G_N_ELEMENTS(pc_compat_8_0);
> +
>   GlobalProperty pc_compat_7_2[] = {
>       { "ICH9-LPC", "noreboot", "true" },
>   };
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index 30eedd62a3a0..21591dad8d92 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -454,21 +454,31 @@ static void pc_i440fx_machine_options(MachineClass *m)
>       machine_class_allow_dynamic_sysbus_dev(m, TYPE_VMBUS_BRIDGE);
>   }
>   
> -static void pc_i440fx_8_0_machine_options(MachineClass *m)
> +static void pc_i440fx_8_1_machine_options(MachineClass *m)
>   {
>       pc_i440fx_machine_options(m);
>       m->alias = "pc";
>       m->is_default = true;
>   }
>   
> +DEFINE_I440FX_MACHINE(v8_1, "pc-i440fx-8.1", NULL,
> +                      pc_i440fx_8_1_machine_options);
> +
> +static void pc_i440fx_8_0_machine_options(MachineClass *m)
> +{
> +    pc_i440fx_8_1_machine_options(m);
> +    m->alias = NULL;
> +    m->is_default = false;
> +    compat_props_add(m->compat_props, hw_compat_8_0, hw_compat_8_0_len);
> +    compat_props_add(m->compat_props, pc_compat_8_0, pc_compat_8_0_len);
> +}
> +
>   DEFINE_I440FX_MACHINE(v8_0, "pc-i440fx-8.0", NULL,
>                         pc_i440fx_8_0_machine_options);
>   
>   static void pc_i440fx_7_2_machine_options(MachineClass *m)
>   {
>       pc_i440fx_8_0_machine_options(m);
> -    m->alias = NULL;
> -    m->is_default = false;
>       compat_props_add(m->compat_props, hw_compat_7_2, hw_compat_7_2_len);
>       compat_props_add(m->compat_props, pc_compat_7_2, pc_compat_7_2_len);
>   }
> diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
> index 797ba347fd05..f02919d92c46 100644
> --- a/hw/i386/pc_q35.c
> +++ b/hw/i386/pc_q35.c
> @@ -373,19 +373,29 @@ static void pc_q35_machine_options(MachineClass *m)
>       m->max_cpus = 288;
>   }
>   
> -static void pc_q35_8_0_machine_options(MachineClass *m)
> +static void pc_q35_8_1_machine_options(MachineClass *m)
>   {
>       pc_q35_machine_options(m);
>       m->alias = "q35";
>   }
>   
> +DEFINE_Q35_MACHINE(v8_1, "pc-q35-8.1", NULL,
> +                   pc_q35_8_1_machine_options);
> +
> +static void pc_q35_8_0_machine_options(MachineClass *m)
> +{
> +    pc_q35_8_1_machine_options(m);
> +    m->alias = NULL;
> +    compat_props_add(m->compat_props, hw_compat_8_0, hw_compat_8_0_len);
> +    compat_props_add(m->compat_props, pc_compat_8_0, pc_compat_8_0_len);
> +}
> +
>   DEFINE_Q35_MACHINE(v8_0, "pc-q35-8.0", NULL,
>                      pc_q35_8_0_machine_options);
>   
>   static void pc_q35_7_2_machine_options(MachineClass *m)
>   {
>       pc_q35_8_0_machine_options(m);
> -    m->alias = NULL;
>       compat_props_add(m->compat_props, hw_compat_7_2, hw_compat_7_2_len);
>       compat_props_add(m->compat_props, pc_compat_7_2, pc_compat_7_2_len);
>   }
> diff --git a/hw/m68k/virt.c b/hw/m68k/virt.c
> index 4cb5beef1a0c..f5ca2ca9054c 100644
> --- a/hw/m68k/virt.c
> +++ b/hw/m68k/virt.c
> @@ -346,10 +346,17 @@ type_init(virt_machine_register_types)
>       } \
>       type_init(machvirt_machine_##major##_##minor##_init);
>   
> +static void virt_machine_8_1_options(MachineClass *mc)
> +{
> +}
> +DEFINE_VIRT_MACHINE(8, 1, true)
> +
>   static void virt_machine_8_0_options(MachineClass *mc)
>   {
> +    virt_machine_8_1_options(mc);
> +    compat_props_add(mc->compat_props, hw_compat_8_0, hw_compat_8_0_len);
>   }
> -DEFINE_VIRT_MACHINE(8, 0, true)
> +DEFINE_VIRT_MACHINE(8, 0, false)
>   
>   static void virt_machine_7_2_options(MachineClass *mc)
>   {
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index 4921198b9d6f..ddc9c7b1a1e2 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -4734,15 +4734,26 @@ static void spapr_machine_latest_class_options(MachineClass *mc)
>       }                                                                \
>       type_init(spapr_machine_register_##suffix)
>   
> +/*
> + * pseries-8.1
> + */
> +static void spapr_machine_8_1_class_options(MachineClass *mc)
> +{
> +    /* Defaults for the latest behaviour inherited from the base class */
> +}
> +
> +DEFINE_SPAPR_MACHINE(8_1, "8.1", true);
> +
>   /*
>    * pseries-8.0
>    */
>   static void spapr_machine_8_0_class_options(MachineClass *mc)
>   {
> -    /* Defaults for the latest behaviour inherited from the base class */
> +    spapr_machine_8_1_class_options(mc);
> +    compat_props_add(mc->compat_props, hw_compat_8_0, hw_compat_8_0_len);
>   }
>   
> -DEFINE_SPAPR_MACHINE(8_0, "8.0", true);
> +DEFINE_SPAPR_MACHINE(8_0, "8.0", false);
>   
>   /*
>    * pseries-7.2
> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
> index 503f212a3131..e6f2c626254c 100644
> --- a/hw/s390x/s390-virtio-ccw.c
> +++ b/hw/s390x/s390-virtio-ccw.c
> @@ -826,14 +826,26 @@ bool css_migration_enabled(void)
>       }                                                                         \
>       type_init(ccw_machine_register_##suffix)
>   
> +static void ccw_machine_8_1_instance_options(MachineState *machine)
> +{
> +}
> +
> +static void ccw_machine_8_1_class_options(MachineClass *mc)
> +{
> +}
> +DEFINE_CCW_MACHINE(8_1, "8.1", true);
> +
>   static void ccw_machine_8_0_instance_options(MachineState *machine)
>   {
> +    ccw_machine_8_1_instance_options(machine);
>   }
>   
>   static void ccw_machine_8_0_class_options(MachineClass *mc)
>   {
> +    ccw_machine_8_1_class_options(mc);
> +    compat_props_add(mc->compat_props, hw_compat_8_0, hw_compat_8_0_len);
>   }
> -DEFINE_CCW_MACHINE(8_0, "8.0", true);
> +DEFINE_CCW_MACHINE(8_0, "8.0", false);
>   
>   static void ccw_machine_7_2_instance_options(MachineState *machine)
>   {
> diff --git a/include/hw/boards.h b/include/hw/boards.h
> index 6fbbfd56c808..bf5fc9e3e759 100644
> --- a/include/hw/boards.h
> +++ b/include/hw/boards.h
> @@ -381,6 +381,9 @@ struct MachineState {
>       } \
>       type_init(machine_initfn##_register_types)
>   
> +extern GlobalProperty hw_compat_8_0[];
> +extern const size_t hw_compat_8_0_len;
> +
>   extern GlobalProperty hw_compat_7_2[];
>   extern const size_t hw_compat_7_2_len;
>   
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index 8206d5405a20..eb668e90344d 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -195,6 +195,9 @@ void pc_madt_cpu_entry(int uid, const CPUArchIdList *apic_ids,
>   /* sgx.c */
>   void pc_machine_init_sgx_epc(PCMachineState *pcms);
>   
> +extern GlobalProperty pc_compat_8_0[];
> +extern const size_t pc_compat_8_0_len;
> +
>   extern GlobalProperty pc_compat_7_2[];
>   extern const size_t pc_compat_7_2_len;
>   
> 



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH for-8.1] hw: Add compat machines for 8.1
  2023-03-14 17:30 [PATCH for-8.1] hw: Add compat machines for 8.1 Cornelia Huck
  2023-03-14 17:36 ` Cédric Le Goater
  2023-03-17  5:59 ` Gavin Shan
@ 2023-03-17  8:23 ` Thomas Huth
  2 siblings, 0 replies; 4+ messages in thread
From: Thomas Huth @ 2023-03-17  8:23 UTC (permalink / raw)
  To: Cornelia Huck, Peter Maydell, Eduardo Habkost, Marcel Apfelbaum,
	Philippe Mathieu-Daudé,
	Yanan Wang, Paolo Bonzini, Richard Henderson, Michael S. Tsirkin,
	Laurent Vivier, Daniel Henrique Barboza, Cédric Le Goater,
	David Gibson, Greg Kurz, Halil Pasic, Christian Borntraeger,
	Eric Farman, David Hildenbrand, Ilya Leoshkevich
  Cc: qemu-arm, qemu-devel, qemu-ppc, qemu-s390x

On 14/03/2023 18.30, Cornelia Huck wrote:
> Add 8.1 machine types for arm/i440fx/m68k/q35/s390x/spapr.
> 
> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
> ---
>   hw/arm/virt.c              |  9 ++++++++-
>   hw/core/machine.c          |  3 +++
>   hw/i386/pc.c               |  3 +++
>   hw/i386/pc_piix.c          | 16 +++++++++++++---
>   hw/i386/pc_q35.c           | 14 ++++++++++++--
>   hw/m68k/virt.c             |  9 ++++++++-
>   hw/ppc/spapr.c             | 15 +++++++++++++--
>   hw/s390x/s390-virtio-ccw.c | 14 +++++++++++++-
>   include/hw/boards.h        |  3 +++
>   include/hw/i386/pc.h       |  3 +++
>   10 files changed, 79 insertions(+), 10 deletions(-)

s390x part:
Reviewed-by: Thomas Huth <thuth@redhat.com>



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-03-17  8:23 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-14 17:30 [PATCH for-8.1] hw: Add compat machines for 8.1 Cornelia Huck
2023-03-14 17:36 ` Cédric Le Goater
2023-03-17  5:59 ` Gavin Shan
2023-03-17  8:23 ` Thomas Huth

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.