[SeaBIOS] [PATCH] acpi: hide 64-bit PCI hole for Windows XP
Michael S. Tsirkin
mst at redhat.com
Tue Jul 30 13:35:25 CEST 2013
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>
Hmm did you test this with other OS-es?
OSI matches multiple strings so this will often
disable the 64 bit memory for newer windows or e.g.
for linux.
See e.g.
ftp://ftp.suse.com/pub/people/trenn/ACPI_BIOS_on_Linux_guide/acpi_guideline_for_vendors.pdf
Could we use _OS instead?
That's a single string, so it will only match a specific OS.
> ---
> 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