qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 0/3] pc-*-2.5 machine-types
@ 2015-09-14 14:32 Eduardo Habkost
  2015-09-14 14:32 ` [Qemu-devel] [PATCH v3 1/3] q35: Move options common to all classes to pc_q35_machine_options() Eduardo Habkost
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Eduardo Habkost @ 2015-09-14 14:32 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Igor Mammedov, Richard Henderson, Jason Wang,
	Michael S. Tsirkin

This introduces the pc-q35-2.5 and pc-i440fx-2.5 machine-types.

Changes v2 -> v3:
* Move broken_reserved_end=true to pc_*_2_4_machine_options()
  Reported-by: Igor Mammedov <imammedo@redhat.com>
* Fixed patch description on patch 2/3 (s/q35/piix/)
  Reported-by: Igor Mammedov <imammedo@redhat.com>
* Improved patch description on patch 3/3

Changes v1 -> v2:
* Trivial rebase on top of latest qemu.git master

Eduardo Habkost (3):
  q35: Move options common to all classes to pc_q35_machine_options()
  piix: Move options common to all classes to
    pc_i440fx_machine_options()
  pc: Introduce pc-*-2.5 machine classes

 hw/i386/pc_piix.c    | 22 +++++++++++++++++-----
 hw/i386/pc_q35.c     | 22 ++++++++++++++++------
 include/hw/compat.h  |  3 +++
 include/hw/i386/pc.h |  4 ++++
 4 files changed, 40 insertions(+), 11 deletions(-)

-- 
2.1.0

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

* [Qemu-devel] [PATCH v3 1/3] q35: Move options common to all classes to pc_q35_machine_options()
  2015-09-14 14:32 [Qemu-devel] [PATCH v3 0/3] pc-*-2.5 machine-types Eduardo Habkost
@ 2015-09-14 14:32 ` Eduardo Habkost
  2015-09-14 14:32 ` [Qemu-devel] [PATCH v3 2/3] piix: Move options common to all classes to pc_i440fx_machine_options() Eduardo Habkost
  2015-09-14 14:32 ` [Qemu-devel] [PATCH v3 3/3] pc: Introduce pc-*-2.5 machine classes Eduardo Habkost
  2 siblings, 0 replies; 6+ messages in thread
From: Eduardo Habkost @ 2015-09-14 14:32 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Igor Mammedov, Richard Henderson, Jason Wang,
	Michael S. Tsirkin

The existing default_machine_opts, default_display, no_floppy, and
no_tco settings will still apply to future machine classes. So it makes
sense to move them to pc_q35_machine_options() instead of keeping them
in a version-specific machine_options function.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 hw/i386/pc_q35.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index 11601ab..966eedb 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -364,6 +364,10 @@ static void pc_q35_machine_options(MachineClass *m)
     m->desc = "Standard PC (Q35 + ICH9, 2009)";
     m->hot_add_cpu = pc_hot_add_cpu;
     m->units_per_default_bus = 1;
+    m->default_machine_opts = "firmware=bios-256k.bin";
+    m->default_display = "std";
+    m->no_floppy = 1;
+    m->no_tco = 0;
 }
 
 static void pc_q35_2_4_machine_options(MachineClass *m)
@@ -371,10 +375,6 @@ static void pc_q35_2_4_machine_options(MachineClass *m)
     PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
     pc_q35_machine_options(m);
     pcmc->broken_reserved_end = true;
-    m->default_machine_opts = "firmware=bios-256k.bin";
-    m->default_display = "std";
-    m->no_floppy = 1;
-    m->no_tco = 0;
     m->alias = "q35";
 }
 
-- 
2.1.0

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

* [Qemu-devel] [PATCH v3 2/3] piix: Move options common to all classes to pc_i440fx_machine_options()
  2015-09-14 14:32 [Qemu-devel] [PATCH v3 0/3] pc-*-2.5 machine-types Eduardo Habkost
  2015-09-14 14:32 ` [Qemu-devel] [PATCH v3 1/3] q35: Move options common to all classes to pc_q35_machine_options() Eduardo Habkost
@ 2015-09-14 14:32 ` Eduardo Habkost
  2015-09-14 14:32 ` [Qemu-devel] [PATCH v3 3/3] pc: Introduce pc-*-2.5 machine classes Eduardo Habkost
  2 siblings, 0 replies; 6+ messages in thread
From: Eduardo Habkost @ 2015-09-14 14:32 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Igor Mammedov, Richard Henderson, Jason Wang,
	Michael S. Tsirkin

The existing default_machine_opts and default_display settings will
still apply to future machine classes. So it makes sense to move them to
pc_i440fx_machine_options() instead of keeping them in a
version-specific machine_options function.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 hw/i386/pc_piix.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 3f925b2..2d9df7c 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -460,6 +460,8 @@ static void pc_i440fx_machine_options(MachineClass *m)
     m->family = "pc_piix";
     m->desc = "Standard PC (i440FX + PIIX, 1996)";
     m->hot_add_cpu = pc_hot_add_cpu;
+    m->default_machine_opts = "firmware=bios-256k.bin";
+    m->default_display = "std";
 }
 
 static void pc_i440fx_2_4_machine_options(MachineClass *m)
@@ -467,8 +469,6 @@ static void pc_i440fx_2_4_machine_options(MachineClass *m)
     PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
     pc_i440fx_machine_options(m);
     pcmc->broken_reserved_end = true;
-    m->default_machine_opts = "firmware=bios-256k.bin";
-    m->default_display = "std";
     m->alias = "pc";
     m->is_default = 1;
 }
-- 
2.1.0

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

* [Qemu-devel] [PATCH v3 3/3] pc: Introduce pc-*-2.5 machine classes
  2015-09-14 14:32 [Qemu-devel] [PATCH v3 0/3] pc-*-2.5 machine-types Eduardo Habkost
  2015-09-14 14:32 ` [Qemu-devel] [PATCH v3 1/3] q35: Move options common to all classes to pc_q35_machine_options() Eduardo Habkost
  2015-09-14 14:32 ` [Qemu-devel] [PATCH v3 2/3] piix: Move options common to all classes to pc_i440fx_machine_options() Eduardo Habkost
@ 2015-09-14 14:32 ` Eduardo Habkost
  2015-09-14 16:27   ` Igor Mammedov
  2 siblings, 1 reply; 6+ messages in thread
From: Eduardo Habkost @ 2015-09-14 14:32 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Igor Mammedov, Richard Henderson, Jason Wang,
	Michael S. Tsirkin

Introduce pc-*-2.5 machine classes, and add HW_COMPAT_2_4/PC_COMPAT_2_4
macros that will allow pc-*-2.4 compat properties to be added.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
Changes v1 -> v2:
* Trivial rebase to qemu.git master

Changes v2 -> v3:
* Move broken_reserved_end=true to pc_*_2_4_machine_options()
  Reported-by: Igor Mammedov <imammedo@redhat.com>
* Improved commit message
---
 hw/i386/pc_piix.c    | 18 +++++++++++++++---
 hw/i386/pc_q35.c     | 14 ++++++++++++--
 include/hw/compat.h  |  3 +++
 include/hw/i386/pc.h |  4 ++++
 4 files changed, 34 insertions(+), 5 deletions(-)

diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 2d9df7c..3ffb05f 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -464,15 +464,27 @@ static void pc_i440fx_machine_options(MachineClass *m)
     m->default_display = "std";
 }
 
-static void pc_i440fx_2_4_machine_options(MachineClass *m)
+static void pc_i440fx_2_5_machine_options(MachineClass *m)
 {
-    PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
     pc_i440fx_machine_options(m);
-    pcmc->broken_reserved_end = true;
     m->alias = "pc";
     m->is_default = 1;
 }
 
+DEFINE_I440FX_MACHINE(v2_5, "pc-i440fx-2.5", NULL,
+                      pc_i440fx_2_5_machine_options);
+
+
+static void pc_i440fx_2_4_machine_options(MachineClass *m)
+{
+    PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
+    pc_i440fx_2_5_machine_options(m);
+    m->alias = NULL;
+    m->is_default = 0;
+    pcmc->broken_reserved_end = true;
+    SET_MACHINE_COMPAT(m, PC_COMPAT_2_4);
+}
+
 DEFINE_I440FX_MACHINE(v2_4, "pc-i440fx-2.4", NULL,
                       pc_i440fx_2_4_machine_options)
 
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index 966eedb..1b7d3b6 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -370,12 +370,22 @@ static void pc_q35_machine_options(MachineClass *m)
     m->no_tco = 0;
 }
 
+static void pc_q35_2_5_machine_options(MachineClass *m)
+{
+    pc_q35_machine_options(m);
+    m->alias = "q35";
+}
+
+DEFINE_Q35_MACHINE(v2_5, "pc-q35-2.5", NULL,
+                   pc_q35_2_5_machine_options);
+
 static void pc_q35_2_4_machine_options(MachineClass *m)
 {
     PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
-    pc_q35_machine_options(m);
+    pc_q35_2_5_machine_options(m);
+    m->alias = NULL;
     pcmc->broken_reserved_end = true;
-    m->alias = "q35";
+    SET_MACHINE_COMPAT(m, PC_COMPAT_2_4);
 }
 
 DEFINE_Q35_MACHINE(v2_4, "pc-q35-2.4", NULL,
diff --git a/include/hw/compat.h b/include/hw/compat.h
index 94c8097..095de5d 100644
--- a/include/hw/compat.h
+++ b/include/hw/compat.h
@@ -1,6 +1,9 @@
 #ifndef HW_COMPAT_H
 #define HW_COMPAT_H
 
+#define HW_COMPAT_2_4 \
+        /* empty */
+
 #define HW_COMPAT_2_3 \
         {\
             .driver   = "virtio-blk-pci",\
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 3e002c9..6896328 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -291,7 +291,11 @@ 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_2_4 \
+        HW_COMPAT_2_4
+
 #define PC_COMPAT_2_3 \
+        PC_COMPAT_2_4 \
         HW_COMPAT_2_3 \
         {\
             .driver   = TYPE_X86_CPU,\
-- 
2.1.0

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

* Re: [Qemu-devel] [PATCH v3 3/3] pc: Introduce pc-*-2.5 machine classes
  2015-09-14 14:32 ` [Qemu-devel] [PATCH v3 3/3] pc: Introduce pc-*-2.5 machine classes Eduardo Habkost
@ 2015-09-14 16:27   ` Igor Mammedov
  2015-09-15  3:23     ` Jason Wang
  0 siblings, 1 reply; 6+ messages in thread
From: Igor Mammedov @ 2015-09-14 16:27 UTC (permalink / raw)
  To: Eduardo Habkost
  Cc: Paolo Bonzini, Jason Wang, Richard Henderson, qemu-devel,
	Michael S. Tsirkin

On Mon, 14 Sep 2015 11:32:45 -0300
Eduardo Habkost <ehabkost@redhat.com> wrote:

> Introduce pc-*-2.5 machine classes, and add HW_COMPAT_2_4/PC_COMPAT_2_4
> macros that will allow pc-*-2.4 compat properties to be added.
> 
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>

> ---
> Changes v1 -> v2:
> * Trivial rebase to qemu.git master
> 
> Changes v2 -> v3:
> * Move broken_reserved_end=true to pc_*_2_4_machine_options()
>   Reported-by: Igor Mammedov <imammedo@redhat.com>
> * Improved commit message
> ---
>  hw/i386/pc_piix.c    | 18 +++++++++++++++---
>  hw/i386/pc_q35.c     | 14 ++++++++++++--
>  include/hw/compat.h  |  3 +++
>  include/hw/i386/pc.h |  4 ++++
>  4 files changed, 34 insertions(+), 5 deletions(-)
> 
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index 2d9df7c..3ffb05f 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -464,15 +464,27 @@ static void pc_i440fx_machine_options(MachineClass *m)
>      m->default_display = "std";
>  }
>  
> -static void pc_i440fx_2_4_machine_options(MachineClass *m)
> +static void pc_i440fx_2_5_machine_options(MachineClass *m)
>  {
> -    PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
>      pc_i440fx_machine_options(m);
> -    pcmc->broken_reserved_end = true;
>      m->alias = "pc";
>      m->is_default = 1;
>  }
>  
> +DEFINE_I440FX_MACHINE(v2_5, "pc-i440fx-2.5", NULL,
> +                      pc_i440fx_2_5_machine_options);
> +
> +
> +static void pc_i440fx_2_4_machine_options(MachineClass *m)
> +{
> +    PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> +    pc_i440fx_2_5_machine_options(m);
> +    m->alias = NULL;
> +    m->is_default = 0;
> +    pcmc->broken_reserved_end = true;
> +    SET_MACHINE_COMPAT(m, PC_COMPAT_2_4);
> +}
> +
>  DEFINE_I440FX_MACHINE(v2_4, "pc-i440fx-2.4", NULL,
>                        pc_i440fx_2_4_machine_options)
>  
> diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
> index 966eedb..1b7d3b6 100644
> --- a/hw/i386/pc_q35.c
> +++ b/hw/i386/pc_q35.c
> @@ -370,12 +370,22 @@ static void pc_q35_machine_options(MachineClass *m)
>      m->no_tco = 0;
>  }
>  
> +static void pc_q35_2_5_machine_options(MachineClass *m)
> +{
> +    pc_q35_machine_options(m);
> +    m->alias = "q35";
> +}
> +
> +DEFINE_Q35_MACHINE(v2_5, "pc-q35-2.5", NULL,
> +                   pc_q35_2_5_machine_options);
> +
>  static void pc_q35_2_4_machine_options(MachineClass *m)
>  {
>      PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> -    pc_q35_machine_options(m);
> +    pc_q35_2_5_machine_options(m);
> +    m->alias = NULL;
>      pcmc->broken_reserved_end = true;
> -    m->alias = "q35";
> +    SET_MACHINE_COMPAT(m, PC_COMPAT_2_4);
>  }
>  
>  DEFINE_Q35_MACHINE(v2_4, "pc-q35-2.4", NULL,
> diff --git a/include/hw/compat.h b/include/hw/compat.h
> index 94c8097..095de5d 100644
> --- a/include/hw/compat.h
> +++ b/include/hw/compat.h
> @@ -1,6 +1,9 @@
>  #ifndef HW_COMPAT_H
>  #define HW_COMPAT_H
>  
> +#define HW_COMPAT_2_4 \
> +        /* empty */
> +
>  #define HW_COMPAT_2_3 \
>          {\
>              .driver   = "virtio-blk-pci",\
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index 3e002c9..6896328 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -291,7 +291,11 @@ 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_2_4 \
> +        HW_COMPAT_2_4
> +
>  #define PC_COMPAT_2_3 \
> +        PC_COMPAT_2_4 \
>          HW_COMPAT_2_3 \
>          {\
>              .driver   = TYPE_X86_CPU,\

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

* Re: [Qemu-devel] [PATCH v3 3/3] pc: Introduce pc-*-2.5 machine classes
  2015-09-14 16:27   ` Igor Mammedov
@ 2015-09-15  3:23     ` Jason Wang
  0 siblings, 0 replies; 6+ messages in thread
From: Jason Wang @ 2015-09-15  3:23 UTC (permalink / raw)
  To: Igor Mammedov, Eduardo Habkost
  Cc: Paolo Bonzini, Richard Henderson, qemu-devel, Michael S. Tsirkin



On 09/15/2015 12:27 AM, Igor Mammedov wrote:
> On Mon, 14 Sep 2015 11:32:45 -0300
> Eduardo Habkost <ehabkost@redhat.com> wrote:
>
>> Introduce pc-*-2.5 machine classes, and add HW_COMPAT_2_4/PC_COMPAT_2_4
>> macros that will allow pc-*-2.4 compat properties to be added.
>>
>> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
>

Thanks, I will include this in my new version of virtio-pci fixes.

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

end of thread, other threads:[~2015-09-15  3:23 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-14 14:32 [Qemu-devel] [PATCH v3 0/3] pc-*-2.5 machine-types Eduardo Habkost
2015-09-14 14:32 ` [Qemu-devel] [PATCH v3 1/3] q35: Move options common to all classes to pc_q35_machine_options() Eduardo Habkost
2015-09-14 14:32 ` [Qemu-devel] [PATCH v3 2/3] piix: Move options common to all classes to pc_i440fx_machine_options() Eduardo Habkost
2015-09-14 14:32 ` [Qemu-devel] [PATCH v3 3/3] pc: Introduce pc-*-2.5 machine classes Eduardo Habkost
2015-09-14 16:27   ` Igor Mammedov
2015-09-15  3:23     ` Jason Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).