[v6,wave,2,3/3] hw/isa/lpc_ich9: negotiate SMI broadcast on pc-q35-2.9+ machine types

Message ID 20170112182446.9600-4-lersek@redhat.com
State New
Headers show

Commit Message

Laszlo Ersek Jan. 12, 2017, 6:24 p.m.
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>

Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>

Reviewed-by: Michael S. Tsirkin <mst@redhat.com>

---

Notes:
    v6:
    - rename "smi_broadcast" to "x-smi-broadcast" [Eduardo]
    - pick up Eduardo's R-b
    - pick up Michael's R-b
    
    v5:
    - replace the v4 patch "hw/i386/pc_q35: advertise broadcast SMI if VCPU
      hotplug is turned off" with a simple device property and compat
      setting [Igor]

 include/hw/i386/pc.h | 5 +++++
 hw/isa/lpc_ich9.c    | 2 ++
 2 files changed, 7 insertions(+)

-- 
2.9.3

Comments

Igor Mammedov Jan. 13, 2017, 1:36 p.m. | #1
On Thu, 12 Jan 2017 19:24:46 +0100
Laszlo Ersek <lersek@redhat.com> wrote:

> Cc: "Michael S. Tsirkin" <mst@redhat.com>

> Cc: Eduardo Habkost <ehabkost@redhat.com>

> Cc: Gerd Hoffmann <kraxel@redhat.com>

> Cc: Igor Mammedov <imammedo@redhat.com>

> Cc: Paolo Bonzini <pbonzini@redhat.com>

> Signed-off-by: Laszlo Ersek <lersek@redhat.com>

> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>

> Reviewed-by: Michael S. Tsirkin <mst@redhat.com>

> ---

> 

> Notes:

>     v6:

>     - rename "smi_broadcast" to "x-smi-broadcast" [Eduardo]

>     - pick up Eduardo's R-b

>     - pick up Michael's R-b

>     

>     v5:

>     - replace the v4 patch "hw/i386/pc_q35: advertise broadcast SMI if VCPU

>       hotplug is turned off" with a simple device property and compat

>       setting [Igor]

> 

>  include/hw/i386/pc.h | 5 +++++

>  hw/isa/lpc_ich9.c    | 2 ++

>  2 files changed, 7 insertions(+)

> 

> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h

> index 230e9e70c504..9d950733abdf 100644

> --- a/include/hw/i386/pc.h

> +++ b/include/hw/i386/pc.h

> @@ -376,6 +376,11 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);

>  

>  #define PC_COMPAT_2_8 \

>      HW_COMPAT_2_8 \

> +    {\

> +        .driver   = "ICH9-LPC",\

> +        .property = "x-smi-broadcast",\

> +        .value    = "off",\

> +    },\

>  

>  

>  #define PC_COMPAT_2_7 \

> diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c

> index ced6f803a4f2..59930dd9d09d 100644

> --- a/hw/isa/lpc_ich9.c

> +++ b/hw/isa/lpc_ich9.c

> @@ -776,6 +776,8 @@ static const VMStateDescription vmstate_ich9_lpc = {

>  

>  static Property ich9_lpc_properties[] = {

>      DEFINE_PROP_BOOL("noreboot", ICH9LPCState, pin_strap.spkr_hi, true),

> +    DEFINE_PROP_BIT64("x-smi-broadcast", ICH9LPCState, smi_host_features,

> +                      ICH9_LPC_SMI_F_BROADCAST_BIT, true),

>      DEFINE_PROP_END_OF_LIST(),

>  };

>  


Reviewed-by: Igor Mammedov <imammedo@redhat.com>

Patch

diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 230e9e70c504..9d950733abdf 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -376,6 +376,11 @@  bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);
 
 #define PC_COMPAT_2_8 \
     HW_COMPAT_2_8 \
+    {\
+        .driver   = "ICH9-LPC",\
+        .property = "x-smi-broadcast",\
+        .value    = "off",\
+    },\
 
 
 #define PC_COMPAT_2_7 \
diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c
index ced6f803a4f2..59930dd9d09d 100644
--- a/hw/isa/lpc_ich9.c
+++ b/hw/isa/lpc_ich9.c
@@ -776,6 +776,8 @@  static const VMStateDescription vmstate_ich9_lpc = {
 
 static Property ich9_lpc_properties[] = {
     DEFINE_PROP_BOOL("noreboot", ICH9LPCState, pin_strap.spkr_hi, true),
+    DEFINE_PROP_BIT64("x-smi-broadcast", ICH9LPCState, smi_host_features,
+                      ICH9_LPC_SMI_F_BROADCAST_BIT, true),
     DEFINE_PROP_END_OF_LIST(),
 };