[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: |
Igor Mammedov |
Subject: |
Re: [Qemu-devel] [PATCH v2 02/18] i386/acpi-build: allow SSDT to operate on 64 bit |
Date: |
Wed, 2 Sep 2015 12:06:02 +0200 |
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
- make sure that you use only 32bit arithmetic in AML
(and emulate 64bit like it has been done for memory hotplug)
> free_aml_allocator();
> }
>
> @@ -1586,7 +1586,7 @@ build_dsdt(GArray *table_data, GArray *linker,
> AcpiMiscInfo *misc)
>
> memset(dsdt, 0, sizeof *dsdt);
> build_header(linker, table_data, dsdt, "DSDT",
> - misc->dsdt_size, 1);
> + misc->dsdt_size, 2);
> }
>
> static GArray *
> diff --git a/hw/i386/acpi-dsdt.dsl b/hw/i386/acpi-dsdt.dsl
> index a2d84ec..5cd3f0e 100644
> --- a/hw/i386/acpi-dsdt.dsl
> +++ b/hw/i386/acpi-dsdt.dsl
> @@ -22,7 +22,7 @@ ACPI_EXTRACT_ALL_CODE AcpiDsdtAmlCode
> DefinitionBlock (
> "acpi-dsdt.aml", // Output Filename
> "DSDT", // Signature
> - 0x01, // DSDT Compliance Revision
> + 0x02, // DSDT Compliance Revision
> "BXPC", // OEMID
> "BXDSDT", // TABLE ID
> 0x1 // OEM Revision
- Re: [Qemu-devel] [PATCH v2 02/18] i386/acpi-build: allow SSDT to operate on 64 bit,
Igor Mammedov <=