Message ID | 20181115154639.29949-1-dgilbert@redhat.com |
---|---|
State | New |
Headers | show |
Series | [for,3.1] x86: Add 3.1 machine types | expand |
On Thu, Nov 15, 2018 at 7:47 PM Dr. David Alan Gilbert (git) <dgilbert@redhat.com> wrote: > > From: "Dr. David Alan Gilbert" <dgilbert@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 <dgilbert@redhat.com> > Suggested-by: Peter Maydell <peter.maydell@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 (marcandre.lureau@gmail.com) wrote: > On Thu, Nov 15, 2018 at 7:47 PM Dr. David Alan Gilbert (git) > <dgilbert@redhat.com> wrote: > > > > From: "Dr. David Alan Gilbert" <dgilbert@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 <dgilbert@redhat.com> > > Suggested-by: Peter Maydell <peter.maydell@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 OK, the problem is it's buried in the middle of a big series; can we just take either this version or your version for 3.1? > > --- > > 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? Oops, true, that's for next time around. Dave > > + > > #define PC_COMPAT_3_0 \ > > HW_COMPAT_3_0 \ > > {\ > > -- > > 2.19.1 > > > > > > > -- > Marc-André Lureau -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
On 15 November 2018 at 19:48, Marc-André Lureau <marcandre.lureau@gmail.com> wrote: > On Thu, Nov 15, 2018 at 7:47 PM Dr. David Alan Gilbert (git) > <dgilbert@redhat.com> wrote: >> >> From: "Dr. David Alan Gilbert" <dgilbert@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 <dgilbert@redhat.com> >> Suggested-by: Peter Maydell <peter.maydell@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 Could you post that as a standalone patch marked as for-3.1 please? Then we can put it into the release without having to manually fish it out of a big patchset. thanks -- PMM
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 + #define PC_COMPAT_3_0 \ HW_COMPAT_3_0 \ {\