On Fri, 14 Aug 2015 22:51:55 +0800 Xiao Guangrong <guangrong.xiao@xxxxxxxxxxxxxxx> 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 <guangrong.xiao@xxxxxxxxxxxxxxx> > --- > 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 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html