qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 02/18] i386/acpi-build: allow SSDT to operate


From: Xiao Guangrong
Subject: Re: [Qemu-devel] [PATCH v2 02/18] i386/acpi-build: allow SSDT to operate on 64 bit
Date: Wed, 2 Sep 2015 18:43:41 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0



On 09/02/2015 06:06 PM, Igor Mammedov wrote:
On Fri, 14 Aug 2015 22:51:55 +0800
Xiao Guangrong <address@hidden> wrote:

Only 512M is left for MMIO below 4G and that are used by PCI, BIOS etc.
Other components also reserve regions from their internal usage, e.g,
[0xFED00000, 0xFED00000 + 0x400) is reserved for HPET

Switch SSDT to 64 bit to use the huge free room above 4G. In the later
patches, we will dynamical allocate free space within this region which
is used by NVDIMM _DSM method

Signed-off-by: Xiao Guangrong <address@hidden>
---
  hw/i386/acpi-build.c  | 4 ++--
  hw/i386/acpi-dsdt.dsl | 2 +-
  2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 46eddb8..8ead1c1 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -1348,7 +1348,7 @@ build_ssdt(GArray *table_data, GArray *linker,
      g_array_append_vals(table_data, ssdt->buf->data, ssdt->buf->len);
      build_header(linker, table_data,
          (void *)(table_data->data + table_data->len - ssdt->buf->len),
-        "SSDT", ssdt->buf->len, 1);
+        "SSDT", ssdt->buf->len, 2);
That might break Windows XP, since it supports only 1.0b ACPI with some
2.0 extensions.
there is 2 way to work around it:
  - add an additional Rev2 ssdt table if NVDIMMs are present
    and describe them there

I like this way, it's more straightforward to me.

BTW, IIUC the DSDT still need to be changed to Rev2 to recognise SSDT with Rev2,
does it hurt Windows XP?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]