[SeaBIOS] [PATCH] acpi: hide 64-bit PCI hole for Windows XP
Igor Mammedov
imammedo at redhat.com
Wed Jul 31 08:14:59 CEST 2013
On Wed, 31 Jul 2013 08:59:59 +0300
"Michael S. Tsirkin" <mst at redhat.com> wrote:
> On Tue, Jul 30, 2013 at 09:00:38AM +0200, Igor Mammedov wrote:
> > 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>
>
> So to expand on what I said, just reading this document:
>
> " Windows operating systems return 0xFFFFFFFF if the argument to the
> _OSI method specifies an earlier version of Windows. For example,
> Windows 7 returns 0xFFFFFFFF for both “Windows 2009” (Windows 7) and
> “Windows 2006” (Windows Vista®)."
>
> This would imply that all moder windows versions return 0xFFFFFFFF
> in response to querying Windows 2001.
>
> To see what a modern Linux supports, see
> drivers/acpi/acpica/utosi.c
>
> Looks like the result of this patch is to always disable
> the 64 bit window?
Yep, patch is not valid.
>
> > ---
> > 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