WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

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

To: Xen Devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH] hvmloader: Fix FADT table with QEMU Upstream.
From: Anthony PERARD <anthony.perard@xxxxxxxxxx>
Date: Tue, 26 Jul 2011 12:57:11 +0100
Cc: Ian Campbell <Ian.Campbell@xxxxxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Tobias Geiger <tobias.geiger@xxxxxxxxx>
Delivery-date: Tue, 26 Jul 2011 05:07:51 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
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/seabios.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/tools/firmware/hvmloader/seabios.c 
b/tools/firmware/hvmloader/seabios.c
index 8cd0108..1b89ba7 100644
--- a/tools/firmware/hvmloader/seabios.c
+++ b/tools/firmware/hvmloader/seabios.c
@@ -28,6 +28,9 @@
 #include "smbios_types.h"
 #include "acpi/acpi2_0.h"
 
+/* Upstream QEMU require to set more field in the FADT */
+extern struct acpi_20_fadt Fadt;
+
 #define ROM_INCLUDE_SEABIOS
 #include "roms.inc"
 
@@ -91,6 +94,11 @@ static void add_table(uint32_t t)
 static void seabios_acpi_build_tables(void)
 {
     uint32_t rsdp = (uint32_t)scratch_alloc(sizeof(struct acpi_20_rsdp), 0);
+
+    Fadt.smi_cmd = 0xb2;
+    Fadt.acpi_enable = 0xf1;
+    Fadt.acpi_disable = 0xf0;
+
     acpi_build_tables(rsdp);
     add_table(rsdp);
 }
-- 
Anthony PERARD


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

<Prev in Thread] Current Thread [Next in Thread>