[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH V2] hvmloader: Fix FADT table for QEMU Upstream.



When booting a Windows guest, the OS report an issue with the ACPI (in a
BSOD). The exact issue is "SCI_EN never becomes set in PM1 Control
Register." (quoted from WinDbg help).

To fix this, this patch set some value related to the QEMU upstream: The
SMI command port, and the acpi_enable/acpi_disable values.

Reported-by: Tobias Geiger <tobias.geiger@xxxxxxxxx>
Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
---
 tools/firmware/hvmloader/acpi/static_tables.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

Change:
  - this time, always set, even on old QEMU.
  - Add more descriptive macro.

diff --git a/tools/firmware/hvmloader/acpi/static_tables.c 
b/tools/firmware/hvmloader/acpi/static_tables.c
index cf4b8dc..b68f6e1 100644
--- a/tools/firmware/hvmloader/acpi/static_tables.c
+++ b/tools/firmware/hvmloader/acpi/static_tables.c
@@ -42,6 +42,10 @@ struct acpi_20_facs Facs = {
 #define ACPI_PM_TMR_BLK_BIT_WIDTH           0x20
 #define ACPI_PM_TMR_BLK_BIT_OFFSET          0x00
 
+#define SMI_CMD_IOPORT                      0xb2
+#define PIIX4_ACPI_ENABLE                   0xf1
+#define PIIX4_ACPI_DISABLE                  0xf0
+
 struct acpi_20_fadt Fadt = {
     .header = {
         .signature    = ACPI_2_0_FADT_SIGNATURE,
@@ -55,6 +59,10 @@ struct acpi_20_fadt Fadt = {
     },
 
     .sci_int = 9,
+    .smi_cmd = SMI_CMD_IOPORT,
+
+    .acpi_enable = PIIX4_ACPI_ENABLE,
+    .acpi_disable = PIIX4_ACPI_DISABLE,
 
     .pm1a_evt_blk = ACPI_PM1A_EVT_BLK_ADDRESS_V1,
     .pm1a_cnt_blk = ACPI_PM1A_CNT_BLK_ADDRESS_V1,
-- 
Anthony PERARD


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.