[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 03/10] ich9, piix4: add properoty, smm-compat, to keep compati
From: |
isaku . yamahata |
Subject: |
[PATCH v4 03/10] ich9, piix4: add properoty, smm-compat, to keep compatibility of SMM |
Date: |
Mon, 15 Feb 2021 17:04:08 -0800 |
From: Isaku Yamahata <isaku.yamahata@intel.com>
The following patch will introduce incompatible behavior of SMM.
Introduce a property to keep the old behavior for compatibility.
To enable smm compat, use "-global ICH9-LPC.smm-compat=on" or
"-global PIIX4.smm-compat=on"
Suggested-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
---
hw/acpi/piix4.c | 2 ++
hw/core/machine.c | 5 ++++-
hw/isa/lpc_ich9.c | 1 +
include/hw/acpi/ich9.h | 1 +
4 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
index 669be5bbf6..30dd9b2309 100644
--- a/hw/acpi/piix4.c
+++ b/hw/acpi/piix4.c
@@ -74,6 +74,7 @@ struct PIIX4PMState {
qemu_irq irq;
qemu_irq smi_irq;
int smm_enabled;
+ bool smm_compat;
Notifier machine_ready;
Notifier powerdown_notifier;
@@ -642,6 +643,7 @@ static Property piix4_pm_properties[] = {
use_acpi_root_pci_hotplug, true),
DEFINE_PROP_BOOL("memory-hotplug-support", PIIX4PMState,
acpi_memory_hotplug.is_enabled, true),
+ DEFINE_PROP_BOOL("smm-compat", PIIX4PMState, smm_compat, false),
DEFINE_PROP_END_OF_LIST(),
};
diff --git a/hw/core/machine.c b/hw/core/machine.c
index de3b8f1b31..870c9201df 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -33,7 +33,10 @@
#include "migration/global_state.h"
#include "migration/vmstate.h"
-GlobalProperty hw_compat_5_2[] = {};
+GlobalProperty hw_compat_5_2[] = {
+ { "ICH9-LPC", "smm-compat", "on"},
+ { "PIIX4_PM", "smm-compat", "on"},
+};
const size_t hw_compat_5_2_len = G_N_ELEMENTS(hw_compat_5_2);
GlobalProperty hw_compat_5_1[] = {
diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c
index d3145bf014..3963b73520 100644
--- a/hw/isa/lpc_ich9.c
+++ b/hw/isa/lpc_ich9.c
@@ -775,6 +775,7 @@ static const VMStateDescription vmstate_ich9_lpc = {
static Property ich9_lpc_properties[] = {
DEFINE_PROP_BOOL("noreboot", ICH9LPCState, pin_strap.spkr_hi, true),
+ DEFINE_PROP_BOOL("smm-compat", ICH9LPCState, pm.smm_compat, false),
DEFINE_PROP_BIT64("x-smi-broadcast", ICH9LPCState, smi_host_features,
ICH9_LPC_SMI_F_BROADCAST_BIT, true),
DEFINE_PROP_BIT64("x-smi-cpu-hotplug", ICH9LPCState, smi_host_features,
diff --git a/include/hw/acpi/ich9.h b/include/hw/acpi/ich9.h
index 54571c77e0..df519e40b5 100644
--- a/include/hw/acpi/ich9.h
+++ b/include/hw/acpi/ich9.h
@@ -59,6 +59,7 @@ typedef struct ICH9LPCPMRegs {
uint8_t disable_s4;
uint8_t s4_val;
uint8_t smm_enabled;
+ bool smm_compat;
bool enable_tco;
TCOIORegs tco_regs;
} ICH9LPCPMRegs;
--
2.17.1
- [PATCH v4 05/10] acpi: set fadt.smi_cmd to zero when SMM is not supported, (continued)
- [PATCH v4 05/10] acpi: set fadt.smi_cmd to zero when SMM is not supported, isaku . yamahata, 2021/02/15
- [PATCH v4 06/10] acpi: add test case for smm unsupported -machine smm=off, isaku . yamahata, 2021/02/15
- [PATCH v4 10/10] qtest/acpi/bios-tables-test: update acpi tables, isaku . yamahata, 2021/02/15
- [PATCH v4 07/10] hw/i386: declare ACPI mother board resource for MMCONFIG region, isaku . yamahata, 2021/02/15
- [PATCH v4 04/10] acpi/core: always set SCI_EN when SMM isn't supported, isaku . yamahata, 2021/02/15
- [PATCH v4 09/10] acpi: add test case for -no-hpet, isaku . yamahata, 2021/02/15
- [PATCH v4 02/10] qtest: update tests/qtest/bios-tables-test-allowed-diff.h, isaku . yamahata, 2021/02/15
- [PATCH v4 08/10] i386: acpi: Don't build HPET ACPI entry if HPET is disabled, isaku . yamahata, 2021/02/15
- [PATCH v4 03/10] ich9, piix4: add properoty, smm-compat, to keep compatibility of SMM,
isaku . yamahata <=