[SeaBIOS] [PATCH] acpi: hide 64-bit PCI hole for Windows XP

Igor Mammedov imammedo at redhat.com
Tue Jul 30 09:00:38 CEST 2013


Windows XP (32 and 64 bit) crashes if 64-bit PCI hole is present.
Use _OSI ACPI method to blacklist it and hide 64-bit PCI hole.

_OSI strings reported by XP are taken from here:
http://msdn.microsoft.com/library/windows/hardware/gg463275

Signed-off-by: Igor Mammedov <imammedo at redhat.com>
---
 src/acpi-dsdt.dsl |   25 +++++++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl
index 158f6b4..7b55636 100644
--- a/src/acpi-dsdt.dsl
+++ b/src/acpi-dsdt.dsl
@@ -33,6 +33,31 @@ DefinitionBlock (
 
 
 /****************************************************************
+ * OS detection
+ ****************************************************************/
+
+    Scope(\_SB) {
+        External(\P1V, IntObj)
+
+        Method(_INI) {
+            If (CondRefOf (\_OSI, Local0)) {
+                /* disable 64-bit PCI window for Windows XP and its variants */
+                If (\_OSI ("Windows 2001")) {
+                    Store (Zero, P1V)
+                }
+
+                If (\_OSI ("Windows 2001 SP1")) {
+                    Store (Zero, P1V)
+                }
+
+                If (\_OSI ("Windows 2001 SP2")) {
+                    Store (Zero, P1V)
+                }
+            }
+        }
+    }
+
+/****************************************************************
  * PCI Bus definition
  ****************************************************************/
 
-- 
1.7.1




More information about the SeaBIOS mailing list