diff mbox series

[for-9.2] hw: add compat machines for 9.2

Message ID 20240816103723.2325982-1-cohuck@redhat.com
State New
Headers show
Series [for-9.2] hw: add compat machines for 9.2 | expand

Commit Message

Cornelia Huck Aug. 16, 2024, 10:37 a.m. UTC
Add 9.2 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          | 15 ++++++++++++---
 hw/i386/pc_q35.c           | 13 +++++++++++--
 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, 77 insertions(+), 10 deletions(-)

Comments

Daniel P. Berrangé Aug. 16, 2024, 10:47 a.m. UTC | #1
On Fri, Aug 16, 2024 at 12:37:23PM +0200, Cornelia Huck wrote:
> Add 9.2 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          | 15 ++++++++++++---
>  hw/i386/pc_q35.c           | 13 +++++++++++--
>  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, 77 insertions(+), 10 deletions(-)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index d9e69243b4a7..746bfe05d386 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -479,13 +479,24 @@ static void pc_i440fx_machine_options(MachineClass *m)
>                                       "Use a different south bridge than PIIX3");
>  }
>  
> -static void pc_i440fx_machine_9_1_options(MachineClass *m)
> +static void pc_i440fx_machine_9_2_options(MachineClass *m)
>  {
>      pc_i440fx_machine_options(m);
>      m->alias = "pc";
>      m->is_default = true;
>  }
>  
> +DEFINE_I440FX_MACHINE(9, 2);
> +
> +static void pc_i440fx_machine_9_1_options(MachineClass *m)
> +{
> +    pc_i440fx_machine_9_2_options(m);
> +    m->alias = NULL;
> +    m->is_default = false;
> +    compat_props_add(m->compat_props, hw_compat_9_1, hw_compat_9_1_len);
> +    compat_props_add(m->compat_props, pc_compat_9_1, pc_compat_9_1_len);
> +}
> +
>  DEFINE_I440FX_MACHINE(9, 1);
>  
>  static void pc_i440fx_machine_9_0_options(MachineClass *m)
> @@ -493,8 +504,6 @@ static void pc_i440fx_machine_9_0_options(MachineClass *m)
>      PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
>  
>      pc_i440fx_machine_9_1_options(m);
> -    m->alias = NULL;
> -    m->is_default = false;
>      m->smbios_memory_device_size = 16 * GiB;

Feels like we should be adding an "_AS_LATEST" macro
variant for piix/q35 too, so it matches the pattern
in other targets for handling alias & is_default.

Not a thing your patch needs todo though.

With regards,
Daniel
Cornelia Huck Aug. 16, 2024, 11:36 a.m. UTC | #2
On Fri, Aug 16 2024, Daniel P. Berrangé <berrange@redhat.com> wrote:

> On Fri, Aug 16, 2024 at 12:37:23PM +0200, Cornelia Huck wrote:
>> Add 9.2 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          | 15 ++++++++++++---
>>  hw/i386/pc_q35.c           | 13 +++++++++++--
>>  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, 77 insertions(+), 10 deletions(-)
>
> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
>
>
>> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
>> index d9e69243b4a7..746bfe05d386 100644
>> --- a/hw/i386/pc_piix.c
>> +++ b/hw/i386/pc_piix.c
>> @@ -479,13 +479,24 @@ static void pc_i440fx_machine_options(MachineClass *m)
>>                                       "Use a different south bridge than PIIX3");
>>  }
>>  
>> -static void pc_i440fx_machine_9_1_options(MachineClass *m)
>> +static void pc_i440fx_machine_9_2_options(MachineClass *m)
>>  {
>>      pc_i440fx_machine_options(m);
>>      m->alias = "pc";
>>      m->is_default = true;
>>  }
>>  
>> +DEFINE_I440FX_MACHINE(9, 2);
>> +
>> +static void pc_i440fx_machine_9_1_options(MachineClass *m)
>> +{
>> +    pc_i440fx_machine_9_2_options(m);
>> +    m->alias = NULL;
>> +    m->is_default = false;
>> +    compat_props_add(m->compat_props, hw_compat_9_1, hw_compat_9_1_len);
>> +    compat_props_add(m->compat_props, pc_compat_9_1, pc_compat_9_1_len);
>> +}
>> +
>>  DEFINE_I440FX_MACHINE(9, 1);
>>  
>>  static void pc_i440fx_machine_9_0_options(MachineClass *m)
>> @@ -493,8 +504,6 @@ static void pc_i440fx_machine_9_0_options(MachineClass *m)
>>      PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
>>  
>>      pc_i440fx_machine_9_1_options(m);
>> -    m->alias = NULL;
>> -    m->is_default = false;
>>      m->smbios_memory_device_size = 16 * GiB;
>
> Feels like we should be adding an "_AS_LATEST" macro
> variant for piix/q35 too, so it matches the pattern
> in other targets for handling alias & is_default.
>
> Not a thing your patch needs todo though.

Yes, having to fiddle the is_default setting is a bit annoying. We still
have the q35 vs pc alias issue, though. (I'm wondering if it is finally
time to make q35 the default, and alias pc to it?)
Daniel P. Berrangé Sept. 5, 2024, 6:22 p.m. UTC | #3
On Fri, Aug 16, 2024 at 11:47:16AM +0100, Daniel P. Berrangé wrote:
> On Fri, Aug 16, 2024 at 12:37:23PM +0200, Cornelia Huck wrote:
> > Add 9.2 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          | 15 ++++++++++++---
> >  hw/i386/pc_q35.c           | 13 +++++++++++--
> >  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, 77 insertions(+), 10 deletions(-)
> 
> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
> 
> 
> > diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> > index d9e69243b4a7..746bfe05d386 100644
> > --- a/hw/i386/pc_piix.c
> > +++ b/hw/i386/pc_piix.c
> > @@ -479,13 +479,24 @@ static void pc_i440fx_machine_options(MachineClass *m)
> >                                       "Use a different south bridge than PIIX3");
> >  }
> >  
> > -static void pc_i440fx_machine_9_1_options(MachineClass *m)
> > +static void pc_i440fx_machine_9_2_options(MachineClass *m)
> >  {
> >      pc_i440fx_machine_options(m);
> >      m->alias = "pc";
> >      m->is_default = true;
> >  }
> >  
> > +DEFINE_I440FX_MACHINE(9, 2);
> > +
> > +static void pc_i440fx_machine_9_1_options(MachineClass *m)
> > +{
> > +    pc_i440fx_machine_9_2_options(m);
> > +    m->alias = NULL;
> > +    m->is_default = false;
> > +    compat_props_add(m->compat_props, hw_compat_9_1, hw_compat_9_1_len);
> > +    compat_props_add(m->compat_props, pc_compat_9_1, pc_compat_9_1_len);
> > +}
> > +
> >  DEFINE_I440FX_MACHINE(9, 1);
> >  
> >  static void pc_i440fx_machine_9_0_options(MachineClass *m)
> > @@ -493,8 +504,6 @@ static void pc_i440fx_machine_9_0_options(MachineClass *m)
> >      PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> >  
> >      pc_i440fx_machine_9_1_options(m);
> > -    m->alias = NULL;
> > -    m->is_default = false;
> >      m->smbios_memory_device_size = 16 * GiB;
> 
> Feels like we should be adding an "_AS_LATEST" macro
> variant for piix/q35 too, so it matches the pattern
> in other targets for handling alias & is_default.
> 
> Not a thing your patch needs todo though.

I've just a patch that does that now. If it looks good & you want to include
it as a pre-requisite for your patch here feel free to grab, otherwise I can
rebase it after your patch merges.

With regards,
Daniel
Peter Maydell Sept. 5, 2024, 7:05 p.m. UTC | #4
On Thu, 5 Sept 2024 at 19:22, Daniel P. Berrangé <berrange@redhat.com> wrote:
>
> On Fri, Aug 16, 2024 at 11:47:16AM +0100, Daniel P. Berrangé wrote:
> > On Fri, Aug 16, 2024 at 12:37:23PM +0200, Cornelia Huck wrote:
> > > Add 9.2 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          | 15 ++++++++++++---
> > >  hw/i386/pc_q35.c           | 13 +++++++++++--
> > >  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, 77 insertions(+), 10 deletions(-)
> >
> > Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
> >
> >
> > > diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> > > index d9e69243b4a7..746bfe05d386 100644
> > > --- a/hw/i386/pc_piix.c
> > > +++ b/hw/i386/pc_piix.c
> > > @@ -479,13 +479,24 @@ static void pc_i440fx_machine_options(MachineClass *m)
> > >                                       "Use a different south bridge than PIIX3");
> > >  }
> > >
> > > -static void pc_i440fx_machine_9_1_options(MachineClass *m)
> > > +static void pc_i440fx_machine_9_2_options(MachineClass *m)
> > >  {
> > >      pc_i440fx_machine_options(m);
> > >      m->alias = "pc";
> > >      m->is_default = true;
> > >  }
> > >
> > > +DEFINE_I440FX_MACHINE(9, 2);
> > > +
> > > +static void pc_i440fx_machine_9_1_options(MachineClass *m)
> > > +{
> > > +    pc_i440fx_machine_9_2_options(m);
> > > +    m->alias = NULL;
> > > +    m->is_default = false;
> > > +    compat_props_add(m->compat_props, hw_compat_9_1, hw_compat_9_1_len);
> > > +    compat_props_add(m->compat_props, pc_compat_9_1, pc_compat_9_1_len);
> > > +}
> > > +
> > >  DEFINE_I440FX_MACHINE(9, 1);
> > >
> > >  static void pc_i440fx_machine_9_0_options(MachineClass *m)
> > > @@ -493,8 +504,6 @@ static void pc_i440fx_machine_9_0_options(MachineClass *m)
> > >      PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> > >
> > >      pc_i440fx_machine_9_1_options(m);
> > > -    m->alias = NULL;
> > > -    m->is_default = false;
> > >      m->smbios_memory_device_size = 16 * GiB;
> >
> > Feels like we should be adding an "_AS_LATEST" macro
> > variant for piix/q35 too, so it matches the pattern
> > in other targets for handling alias & is_default.
> >
> > Not a thing your patch needs todo though.
>
> I've just a patch that does that now. If it looks good & you want to include
> it as a pre-requisite for your patch here feel free to grab, otherwise I can
> rebase it after your patch merges.

I have this patch in my target-arm pullreq that's currently posted
and pending merge, by the way.

-- PMM
Daniel P. Berrangé Sept. 6, 2024, 8:05 a.m. UTC | #5
On Thu, Sep 05, 2024 at 08:05:14PM +0100, Peter Maydell wrote:
> On Thu, 5 Sept 2024 at 19:22, Daniel P. Berrangé <berrange@redhat.com> wrote:
> >
> > On Fri, Aug 16, 2024 at 11:47:16AM +0100, Daniel P. Berrangé wrote:
> > > On Fri, Aug 16, 2024 at 12:37:23PM +0200, Cornelia Huck wrote:
> > > > Add 9.2 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          | 15 ++++++++++++---
> > > >  hw/i386/pc_q35.c           | 13 +++++++++++--
> > > >  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, 77 insertions(+), 10 deletions(-)
> > >
> > > Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
> > >
> > >
> > > > diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> > > > index d9e69243b4a7..746bfe05d386 100644
> > > > --- a/hw/i386/pc_piix.c
> > > > +++ b/hw/i386/pc_piix.c
> > > > @@ -479,13 +479,24 @@ static void pc_i440fx_machine_options(MachineClass *m)
> > > >                                       "Use a different south bridge than PIIX3");
> > > >  }
> > > >
> > > > -static void pc_i440fx_machine_9_1_options(MachineClass *m)
> > > > +static void pc_i440fx_machine_9_2_options(MachineClass *m)
> > > >  {
> > > >      pc_i440fx_machine_options(m);
> > > >      m->alias = "pc";
> > > >      m->is_default = true;
> > > >  }
> > > >
> > > > +DEFINE_I440FX_MACHINE(9, 2);
> > > > +
> > > > +static void pc_i440fx_machine_9_1_options(MachineClass *m)
> > > > +{
> > > > +    pc_i440fx_machine_9_2_options(m);
> > > > +    m->alias = NULL;
> > > > +    m->is_default = false;
> > > > +    compat_props_add(m->compat_props, hw_compat_9_1, hw_compat_9_1_len);
> > > > +    compat_props_add(m->compat_props, pc_compat_9_1, pc_compat_9_1_len);
> > > > +}
> > > > +
> > > >  DEFINE_I440FX_MACHINE(9, 1);
> > > >
> > > >  static void pc_i440fx_machine_9_0_options(MachineClass *m)
> > > > @@ -493,8 +504,6 @@ static void pc_i440fx_machine_9_0_options(MachineClass *m)
> > > >      PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> > > >
> > > >      pc_i440fx_machine_9_1_options(m);
> > > > -    m->alias = NULL;
> > > > -    m->is_default = false;
> > > >      m->smbios_memory_device_size = 16 * GiB;
> > >
> > > Feels like we should be adding an "_AS_LATEST" macro
> > > variant for piix/q35 too, so it matches the pattern
> > > in other targets for handling alias & is_default.
> > >
> > > Not a thing your patch needs todo though.
> >
> > I've just a patch that does that now. If it looks good & you want to include
> > it as a pre-requisite for your patch here feel free to grab, otherwise I can
> > rebase it after your patch merges.
> 
> I have this patch in my target-arm pullreq that's currently posted
> and pending merge, by the way.

Ah ok, i'll rebase on top of that. then

With regards,
Daniel
Michael S. Tsirkin Sept. 10, 2024, 3:31 p.m. UTC | #6
On Thu, Sep 05, 2024 at 08:05:14PM +0100, Peter Maydell wrote:
> On Thu, 5 Sept 2024 at 19:22, Daniel P. Berrangé <berrange@redhat.com> wrote:
> >
> > On Fri, Aug 16, 2024 at 11:47:16AM +0100, Daniel P. Berrangé wrote:
> > > On Fri, Aug 16, 2024 at 12:37:23PM +0200, Cornelia Huck wrote:
> > > > Add 9.2 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          | 15 ++++++++++++---
> > > >  hw/i386/pc_q35.c           | 13 +++++++++++--
> > > >  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, 77 insertions(+), 10 deletions(-)
> > >
> > > Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
> > >
> > >
> > > > diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> > > > index d9e69243b4a7..746bfe05d386 100644
> > > > --- a/hw/i386/pc_piix.c
> > > > +++ b/hw/i386/pc_piix.c
> > > > @@ -479,13 +479,24 @@ static void pc_i440fx_machine_options(MachineClass *m)
> > > >                                       "Use a different south bridge than PIIX3");
> > > >  }
> > > >
> > > > -static void pc_i440fx_machine_9_1_options(MachineClass *m)
> > > > +static void pc_i440fx_machine_9_2_options(MachineClass *m)
> > > >  {
> > > >      pc_i440fx_machine_options(m);
> > > >      m->alias = "pc";
> > > >      m->is_default = true;
> > > >  }
> > > >
> > > > +DEFINE_I440FX_MACHINE(9, 2);
> > > > +
> > > > +static void pc_i440fx_machine_9_1_options(MachineClass *m)
> > > > +{
> > > > +    pc_i440fx_machine_9_2_options(m);
> > > > +    m->alias = NULL;
> > > > +    m->is_default = false;
> > > > +    compat_props_add(m->compat_props, hw_compat_9_1, hw_compat_9_1_len);
> > > > +    compat_props_add(m->compat_props, pc_compat_9_1, pc_compat_9_1_len);
> > > > +}
> > > > +
> > > >  DEFINE_I440FX_MACHINE(9, 1);
> > > >
> > > >  static void pc_i440fx_machine_9_0_options(MachineClass *m)
> > > > @@ -493,8 +504,6 @@ static void pc_i440fx_machine_9_0_options(MachineClass *m)
> > > >      PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> > > >
> > > >      pc_i440fx_machine_9_1_options(m);
> > > > -    m->alias = NULL;
> > > > -    m->is_default = false;
> > > >      m->smbios_memory_device_size = 16 * GiB;
> > >
> > > Feels like we should be adding an "_AS_LATEST" macro
> > > variant for piix/q35 too, so it matches the pattern
> > > in other targets for handling alias & is_default.
> > >
> > > Not a thing your patch needs todo though.
> >
> > I've just a patch that does that now. If it looks good & you want to include
> > it as a pre-requisite for your patch here feel free to grab, otherwise I can
> > rebase it after your patch merges.
> 
> I have this patch in my target-arm pullreq that's currently posted
> and pending merge, by the way.
> 
> -- PMM

Ok feel free to tack on

Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Peter Maydell Sept. 10, 2024, 3:32 p.m. UTC | #7
On Tue, 10 Sept 2024 at 16:31, Michael S. Tsirkin <mst@redhat.com> wrote:
>
> On Thu, Sep 05, 2024 at 08:05:14PM +0100, Peter Maydell wrote:
> > On Thu, 5 Sept 2024 at 19:22, Daniel P. Berrangé <berrange@redhat.com> wrote:
> > >
> > > On Fri, Aug 16, 2024 at 11:47:16AM +0100, Daniel P. Berrangé wrote:
> > > > On Fri, Aug 16, 2024 at 12:37:23PM +0200, Cornelia Huck wrote:
> > > > > Add 9.2 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          | 15 ++++++++++++---
> > > > >  hw/i386/pc_q35.c           | 13 +++++++++++--
> > > > >  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, 77 insertions(+), 10 deletions(-)
> > > >
> > > > Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
> > > >
> > > >
> > > > > diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> > > > > index d9e69243b4a7..746bfe05d386 100644
> > > > > --- a/hw/i386/pc_piix.c
> > > > > +++ b/hw/i386/pc_piix.c
> > > > > @@ -479,13 +479,24 @@ static void pc_i440fx_machine_options(MachineClass *m)
> > > > >                                       "Use a different south bridge than PIIX3");
> > > > >  }
> > > > >
> > > > > -static void pc_i440fx_machine_9_1_options(MachineClass *m)
> > > > > +static void pc_i440fx_machine_9_2_options(MachineClass *m)
> > > > >  {
> > > > >      pc_i440fx_machine_options(m);
> > > > >      m->alias = "pc";
> > > > >      m->is_default = true;
> > > > >  }
> > > > >
> > > > > +DEFINE_I440FX_MACHINE(9, 2);
> > > > > +
> > > > > +static void pc_i440fx_machine_9_1_options(MachineClass *m)
> > > > > +{
> > > > > +    pc_i440fx_machine_9_2_options(m);
> > > > > +    m->alias = NULL;
> > > > > +    m->is_default = false;
> > > > > +    compat_props_add(m->compat_props, hw_compat_9_1, hw_compat_9_1_len);
> > > > > +    compat_props_add(m->compat_props, pc_compat_9_1, pc_compat_9_1_len);
> > > > > +}
> > > > > +
> > > > >  DEFINE_I440FX_MACHINE(9, 1);
> > > > >
> > > > >  static void pc_i440fx_machine_9_0_options(MachineClass *m)
> > > > > @@ -493,8 +504,6 @@ static void pc_i440fx_machine_9_0_options(MachineClass *m)
> > > > >      PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> > > > >
> > > > >      pc_i440fx_machine_9_1_options(m);
> > > > > -    m->alias = NULL;
> > > > > -    m->is_default = false;
> > > > >      m->smbios_memory_device_size = 16 * GiB;
> > > >
> > > > Feels like we should be adding an "_AS_LATEST" macro
> > > > variant for piix/q35 too, so it matches the pattern
> > > > in other targets for handling alias & is_default.
> > > >
> > > > Not a thing your patch needs todo though.
> > >
> > > I've just a patch that does that now. If it looks good & you want to include
> > > it as a pre-requisite for your patch here feel free to grab, otherwise I can
> > > rebase it after your patch merges.
> >
> > I have this patch in my target-arm pullreq that's currently posted
> > and pending merge, by the way.
> >
> > -- PMM
>
> Ok feel free to tack on
>
> Reviewed-by: Michael S. Tsirkin <mst@redhat.com>

Too late, this is already in git as commit fb6051e7bb2bd.

-- PMM
diff mbox series

Patch

diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 687fe0bb8bc9..a5d3ad9bf9e7 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3301,10 +3301,17 @@  static void machvirt_machine_init(void)
 }
 type_init(machvirt_machine_init);
 
+static void virt_machine_9_2_options(MachineClass *mc)
+{
+}
+DEFINE_VIRT_MACHINE_AS_LATEST(9, 2)
+
 static void virt_machine_9_1_options(MachineClass *mc)
 {
+    virt_machine_9_2_options(mc);
+    compat_props_add(mc->compat_props, hw_compat_9_1, hw_compat_9_1_len);
 }
-DEFINE_VIRT_MACHINE_AS_LATEST(9, 1)
+DEFINE_VIRT_MACHINE(9, 1)
 
 static void virt_machine_9_0_options(MachineClass *mc)
 {
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 27dcda024834..adaba17ebac1 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -34,6 +34,9 @@ 
 #include "hw/virtio/virtio-iommu.h"
 #include "audio/audio.h"
 
+GlobalProperty hw_compat_9_1[] = {};
+const size_t hw_compat_9_1_len = G_N_ELEMENTS(hw_compat_9_1);
+
 GlobalProperty hw_compat_9_0[] = {
     {"arm-cpu", "backcompat-cntfrq", "true" },
     { "scsi-hd", "migrate-emulated-scsi-request", "false" },
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index c74931d577a8..0cf4cb0d9f29 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -79,6 +79,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_9_1[] = {};
+const size_t pc_compat_9_1_len = G_N_ELEMENTS(pc_compat_9_1);
+
 GlobalProperty pc_compat_9_0[] = {
     { TYPE_X86_CPU, "x-amd-topoext-features-only", "false" },
     { TYPE_X86_CPU, "x-l1-cache-per-thread", "false" },
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index d9e69243b4a7..746bfe05d386 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -479,13 +479,24 @@  static void pc_i440fx_machine_options(MachineClass *m)
                                      "Use a different south bridge than PIIX3");
 }
 
-static void pc_i440fx_machine_9_1_options(MachineClass *m)
+static void pc_i440fx_machine_9_2_options(MachineClass *m)
 {
     pc_i440fx_machine_options(m);
     m->alias = "pc";
     m->is_default = true;
 }
 
+DEFINE_I440FX_MACHINE(9, 2);
+
+static void pc_i440fx_machine_9_1_options(MachineClass *m)
+{
+    pc_i440fx_machine_9_2_options(m);
+    m->alias = NULL;
+    m->is_default = false;
+    compat_props_add(m->compat_props, hw_compat_9_1, hw_compat_9_1_len);
+    compat_props_add(m->compat_props, pc_compat_9_1, pc_compat_9_1_len);
+}
+
 DEFINE_I440FX_MACHINE(9, 1);
 
 static void pc_i440fx_machine_9_0_options(MachineClass *m)
@@ -493,8 +504,6 @@  static void pc_i440fx_machine_9_0_options(MachineClass *m)
     PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
 
     pc_i440fx_machine_9_1_options(m);
-    m->alias = NULL;
-    m->is_default = false;
     m->smbios_memory_device_size = 16 * GiB;
 
     compat_props_add(m->compat_props, hw_compat_9_0, hw_compat_9_0_len);
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index 9d108b194e47..67162ac88634 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -361,19 +361,28 @@  static void pc_q35_machine_options(MachineClass *m)
                      pc_q35_compat_defaults, pc_q35_compat_defaults_len);
 }
 
-static void pc_q35_machine_9_1_options(MachineClass *m)
+static void pc_q35_machine_9_2_options(MachineClass *m)
 {
     pc_q35_machine_options(m);
     m->alias = "q35";
 }
 
+DEFINE_Q35_MACHINE(9, 2);
+
+static void pc_q35_machine_9_1_options(MachineClass *m)
+{
+    pc_q35_machine_9_2_options(m);
+    m->alias = NULL;
+    compat_props_add(m->compat_props, hw_compat_9_1, hw_compat_9_1_len);
+    compat_props_add(m->compat_props, pc_compat_9_1, pc_compat_9_1_len);
+}
+
 DEFINE_Q35_MACHINE(9, 1);
 
 static void pc_q35_machine_9_0_options(MachineClass *m)
 {
     PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
     pc_q35_machine_9_1_options(m);
-    m->alias = NULL;
     m->smbios_memory_device_size = 16 * GiB;
     compat_props_add(m->compat_props, hw_compat_9_0, hw_compat_9_0_len);
     compat_props_add(m->compat_props, pc_compat_9_0, pc_compat_9_0_len);
diff --git a/hw/m68k/virt.c b/hw/m68k/virt.c
index cda199af8faa..ea5c4a5a570b 100644
--- a/hw/m68k/virt.c
+++ b/hw/m68k/virt.c
@@ -366,10 +366,17 @@  type_init(virt_machine_register_types)
 #define DEFINE_VIRT_MACHINE(major, minor) \
     DEFINE_VIRT_MACHINE_IMPL(false, major, minor)
 
+static void virt_machine_9_2_options(MachineClass *mc)
+{
+}
+DEFINE_VIRT_MACHINE_AS_LATEST(9, 2)
+
 static void virt_machine_9_1_options(MachineClass *mc)
 {
+    virt_machine_9_2_options(mc);
+    compat_props_add(mc->compat_props, hw_compat_9_1, hw_compat_9_1_len);
 }
-DEFINE_VIRT_MACHINE_AS_LATEST(9, 1)
+DEFINE_VIRT_MACHINE(9, 1)
 
 static void virt_machine_9_0_options(MachineClass *mc)
 {
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 370d7c35d3a7..8aa3ce7449be 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -4837,15 +4837,26 @@  static void spapr_machine_latest_class_options(MachineClass *mc)
 #define DEFINE_SPAPR_MACHINE_TAGGED(major, minor, tag) \
     DEFINE_SPAPR_MACHINE_IMPL(false, major, minor, _, tag)
 
+/*
+ * pseries-9.2
+ */
+static void spapr_machine_9_2_class_options(MachineClass *mc)
+{
+    /* Defaults for the latest behaviour inherited from the base class */
+}
+
+DEFINE_SPAPR_MACHINE_AS_LATEST(9, 2);
+
 /*
  * pseries-9.1
  */
 static void spapr_machine_9_1_class_options(MachineClass *mc)
 {
-    /* Defaults for the latest behaviour inherited from the base class */
+    spapr_machine_9_2_class_options(mc);
+    compat_props_add(mc->compat_props, hw_compat_9_1, hw_compat_9_1_len);
 }
 
-DEFINE_SPAPR_MACHINE_AS_LATEST(9, 1);
+DEFINE_SPAPR_MACHINE(9, 1);
 
 /*
  * pseries-9.0
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index c483ff8064d4..18240a0fd8b4 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -871,14 +871,26 @@  static const TypeInfo ccw_machine_info = {
     DEFINE_CCW_MACHINE_IMPL(false, major, minor)
 
 
+static void ccw_machine_9_2_instance_options(MachineState *machine)
+{
+}
+
+static void ccw_machine_9_2_class_options(MachineClass *mc)
+{
+}
+DEFINE_CCW_MACHINE_AS_LATEST(9, 2);
+
 static void ccw_machine_9_1_instance_options(MachineState *machine)
 {
+    ccw_machine_9_2_instance_options(machine);
 }
 
 static void ccw_machine_9_1_class_options(MachineClass *mc)
 {
+    ccw_machine_9_2_class_options(mc);
+    compat_props_add(mc->compat_props, hw_compat_9_1, hw_compat_9_1_len);
 }
-DEFINE_CCW_MACHINE_AS_LATEST(9, 1);
+DEFINE_CCW_MACHINE(9, 1);
 
 static void ccw_machine_9_0_instance_options(MachineState *machine)
 {
diff --git a/include/hw/boards.h b/include/hw/boards.h
index 48ff6d8b93f7..9a492770cbb9 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -732,6 +732,9 @@  struct MachineState {
     } \
     type_init(machine_initfn##_register_types)
 
+extern GlobalProperty hw_compat_9_1[];
+extern const size_t hw_compat_9_1_len;
+
 extern GlobalProperty hw_compat_9_0[];
 extern const size_t hw_compat_9_0_len;
 
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 4e55d7ef6ea9..14ee06287da3 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -215,6 +215,9 @@  void pc_system_parse_ovmf_flash(uint8_t *flash_ptr, size_t flash_size);
 /* sgx.c */
 void pc_machine_init_sgx_epc(PCMachineState *pcms);
 
+extern GlobalProperty pc_compat_9_1[];
+extern const size_t pc_compat_9_1_len;
+
 extern GlobalProperty pc_compat_9_0[];
 extern const size_t pc_compat_9_0_len;