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@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 ****************************************************************/