On Thu, Nov 15, 2018 at 7:47 PM Dr. David Alan Gilbert (git) <dgilb...@redhat.com> wrote: > > From: "Dr. David Alan Gilbert" <dgilb...@redhat.com> > > x86 doesn't need a 3.1 machine type, because there's no incompatibility, > but it looks odd not having one, especially since s390, ppc and ARM have > it. Join the party. > > Signed-off-by: Dr. David Alan Gilbert <dgilb...@redhat.com> > Suggested-by: Peter Maydell <peter.mayd...@linaro.org>
I sent same patch already reviewed by Michael a few weeks ago: https://lists.nongnu.org/archive/html/qemu-devel/2018-10/msg06574.html > --- > hw/i386/pc_piix.c | 15 ++++++++++++--- > hw/i386/pc_q35.c | 13 +++++++++++-- > include/hw/i386/pc.h | 3 +++ > 3 files changed, 26 insertions(+), 5 deletions(-) > > diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c > index dc09466b3e..7092d6d13f 100644 > --- a/hw/i386/pc_piix.c > +++ b/hw/i386/pc_piix.c > @@ -428,21 +428,30 @@ static void pc_i440fx_machine_options(MachineClass *m) > machine_class_allow_dynamic_sysbus_dev(m, TYPE_RAMFB_DEVICE); > } > > -static void pc_i440fx_3_0_machine_options(MachineClass *m) > +static void pc_i440fx_3_1_machine_options(MachineClass *m) > { > pc_i440fx_machine_options(m); > m->alias = "pc"; > m->is_default = 1; > } > > +DEFINE_I440FX_MACHINE(v3_1, "pc-i440fx-3.1", NULL, > + pc_i440fx_3_1_machine_options); > + > +static void pc_i440fx_3_0_machine_options(MachineClass *m) > +{ > + pc_i440fx_3_1_machine_options(m); > + m->is_default = 0; > + m->alias = NULL; > + SET_MACHINE_COMPAT(m, PC_COMPAT_3_0); > +} > + > DEFINE_I440FX_MACHINE(v3_0, "pc-i440fx-3.0", NULL, > pc_i440fx_3_0_machine_options); > > static void pc_i440fx_2_12_machine_options(MachineClass *m) > { > pc_i440fx_3_0_machine_options(m); > - m->is_default = 0; > - m->alias = NULL; > SET_MACHINE_COMPAT(m, PC_COMPAT_2_12); > } > > diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c > index 532241e3f8..6799b3e553 100644 > --- a/hw/i386/pc_q35.c > +++ b/hw/i386/pc_q35.c > @@ -311,19 +311,28 @@ static void pc_q35_machine_options(MachineClass *m) > m->max_cpus = 288; > } > > -static void pc_q35_3_0_machine_options(MachineClass *m) > +static void pc_q35_3_1_machine_options(MachineClass *m) > { > pc_q35_machine_options(m); > m->alias = "q35"; > } > > +DEFINE_Q35_MACHINE(v3_1, "pc-q35-3.1", NULL, > + pc_q35_3_1_machine_options); > + > +static void pc_q35_3_0_machine_options(MachineClass *m) > +{ > + pc_q35_3_1_machine_options(m); > + m->alias = NULL; > + SET_MACHINE_COMPAT(m, PC_COMPAT_3_0); > +} > + > DEFINE_Q35_MACHINE(v3_0, "pc-q35-3.0", NULL, > pc_q35_3_0_machine_options); > > static void pc_q35_2_12_machine_options(MachineClass *m) > { > pc_q35_3_0_machine_options(m); > - m->alias = NULL; > SET_MACHINE_COMPAT(m, PC_COMPAT_2_12); > } > > diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h > index 136fe497b6..c37d4333a0 100644 > --- a/include/hw/i386/pc.h > +++ b/include/hw/i386/pc.h > @@ -294,6 +294,9 @@ int e820_add_entry(uint64_t, uint64_t, uint32_t); > int e820_get_num_entries(void); > bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *); > > +#define PC_COMPAT_3_1 \ > + HW_COMPAT_3_1 you shouldn't need that, right? > + > #define PC_COMPAT_3_0 \ > HW_COMPAT_3_0 \ > {\ > -- > 2.19.1 > > -- Marc-André Lureau