From 210a239899b650d3d9efd7e6e9db54c628a8d744 Mon Sep 17 00:00:00 2001 From: Wei Liu Date: Tue, 29 Aug 2017 15:02:54 +0100 Subject: [PATCH] Revert "hvmloader, libxl: use the correct ACPI settings depending on device model" This reverts commit 149c6bbbf775b5e6dd6beae329fcdaab33a0f8cd. --- tools/firmware/hvmloader/hvmloader.c | 2 ++ tools/firmware/hvmloader/ovmf.c | 5 +++-- tools/firmware/hvmloader/rombios.c | 5 +++-- tools/firmware/hvmloader/seabios.c | 6 +++--- tools/firmware/hvmloader/util.c | 21 --------------------- tools/firmware/hvmloader/util.h | 3 --- tools/libxl/libxl_create.c | 4 +--- 7 files changed, 12 insertions(+), 34 deletions(-) diff --git a/tools/firmware/hvmloader/hvmloader.c b/tools/firmware/hvmloader/hvmloader.c index db11ab185a..f603f68ded 100644 --- a/tools/firmware/hvmloader/hvmloader.c +++ b/tools/firmware/hvmloader/hvmloader.c @@ -405,6 +405,8 @@ int main(void) } acpi_enable_sci(); + + hvm_param_set(HVM_PARAM_ACPI_IOPORTS_LOCATION, 1); } init_vm86_tss(); diff --git a/tools/firmware/hvmloader/ovmf.c b/tools/firmware/hvmloader/ovmf.c index 17bd0fe95f..4ff7f1d544 100644 --- a/tools/firmware/hvmloader/ovmf.c +++ b/tools/firmware/hvmloader/ovmf.c @@ -41,6 +41,9 @@ #define LOWCHUNK_MAXOFFSET 0x0000FFFF #define OVMF_INFO_PHYSICAL_ADDRESS 0x00001000 +extern unsigned char dsdt_anycpu_qemu_xen[]; +extern int dsdt_anycpu_qemu_xen_len; + #define OVMF_INFO_MAX_TABLES 4 struct ovmf_info { char signature[14]; /* XenHVMOVMF\0\0\0\0 */ @@ -124,8 +127,6 @@ static void ovmf_acpi_build_tables(void) .dsdt_15cpu_len = 0 }; - hvm_param_set(HVM_PARAM_ACPI_IOPORTS_LOCATION, 1); - hvmloader_acpi_build_tables(&config, ACPI_PHYSICAL_ADDRESS); } diff --git a/tools/firmware/hvmloader/rombios.c b/tools/firmware/hvmloader/rombios.c index b14d1f2af3..56b39b7d58 100644 --- a/tools/firmware/hvmloader/rombios.c +++ b/tools/firmware/hvmloader/rombios.c @@ -42,6 +42,9 @@ #define ROMBIOS_MAXOFFSET 0x0000FFFF #define ROMBIOS_END (ROMBIOS_BEGIN + ROMBIOS_SIZE) +extern unsigned char dsdt_anycpu[], dsdt_15cpu[]; +extern int dsdt_anycpu_len, dsdt_15cpu_len; + static void rombios_setup_e820(void) { /* @@ -178,8 +181,6 @@ static void rombios_acpi_build_tables(void) .dsdt_15cpu_len = dsdt_15cpu_len, }; - hvm_param_set(HVM_PARAM_ACPI_IOPORTS_LOCATION, 0); - hvmloader_acpi_build_tables(&config, ACPI_PHYSICAL_ADDRESS); } diff --git a/tools/firmware/hvmloader/seabios.c b/tools/firmware/hvmloader/seabios.c index c8792cd42b..870576ae7f 100644 --- a/tools/firmware/hvmloader/seabios.c +++ b/tools/firmware/hvmloader/seabios.c @@ -28,7 +28,9 @@ #include #include -#include + +extern unsigned char dsdt_anycpu_qemu_xen[]; +extern int dsdt_anycpu_qemu_xen_len; struct seabios_info { char signature[14]; /* XenHVMSeaBIOS\0 */ @@ -97,8 +99,6 @@ static void seabios_acpi_build_tables(void) .dsdt_15cpu_len = 0, }; - hvm_param_set(HVM_PARAM_ACPI_IOPORTS_LOCATION, 1); - hvmloader_acpi_build_tables(&config, rsdp); add_table(rsdp); } diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/util.c index 934b566a5d..db5f240bb9 100644 --- a/tools/firmware/hvmloader/util.c +++ b/tools/firmware/hvmloader/util.c @@ -897,27 +897,6 @@ void hvmloader_acpi_build_tables(struct acpi_config *config, /* Allocate and initialise the acpi info area. */ mem_hole_populate_ram(ACPI_INFO_PHYSICAL_ADDRESS >> PAGE_SHIFT, 1); - /* If the device model is specified switch to the corresponding tables */ - s = xenstore_read("platform/device-model", ""); - if ( !strncmp(s, "qemu_xen_traditional", 21) ) - { - config->dsdt_anycpu = dsdt_anycpu; - config->dsdt_anycpu_len = dsdt_anycpu_len; - config->dsdt_15cpu = dsdt_15cpu; - config->dsdt_15cpu_len = dsdt_15cpu_len; - - hvm_param_set(HVM_PARAM_ACPI_IOPORTS_LOCATION, 0); - } - else if ( !strncmp(s, "qemu_xen", 9) ) - { - config->dsdt_anycpu = dsdt_anycpu_qemu_xen; - config->dsdt_anycpu_len = dsdt_anycpu_qemu_xen_len; - config->dsdt_15cpu = NULL; - config->dsdt_15cpu_len = 0; - - hvm_param_set(HVM_PARAM_ACPI_IOPORTS_LOCATION, 1); - } - config->lapic_base_address = LAPIC_BASE_ADDRESS; config->lapic_id = acpi_lapic_id; config->ioapic_base_address = ioapic_base_address; diff --git a/tools/firmware/hvmloader/util.h b/tools/firmware/hvmloader/util.h index 874916c09c..6062f0b8cf 100644 --- a/tools/firmware/hvmloader/util.h +++ b/tools/firmware/hvmloader/util.h @@ -276,9 +276,6 @@ extern struct e820map memory_map; bool check_overlap(uint64_t start, uint64_t size, uint64_t reserved_start, uint64_t reserved_size); -extern unsigned char dsdt_anycpu_qemu_xen[], dsdt_anycpu[], dsdt_15cpu[]; -extern int dsdt_anycpu_qemu_xen_len, dsdt_anycpu_len, dsdt_15cpu_len; - struct acpi_config; void hvmloader_acpi_build_tables(struct acpi_config *config, unsigned int physical); diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c index 1d24209242..1158303e1a 100644 --- a/tools/libxl/libxl_create.c +++ b/tools/libxl/libxl_create.c @@ -451,7 +451,7 @@ int libxl__domain_build(libxl__gc *gc, vments[4] = "start_time"; vments[5] = GCSPRINTF("%lu.%02d", start_time.tv_sec,(int)start_time.tv_usec/10000); - localents = libxl__calloc(gc, 13, sizeof(char *)); + localents = libxl__calloc(gc, 11, sizeof(char *)); i = 0; localents[i++] = "platform/acpi"; localents[i++] = libxl__acpi_defbool_val(info) ? "1" : "0"; @@ -472,8 +472,6 @@ int libxl__domain_build(libxl__gc *gc, info->u.hvm.mmio_hole_memkb << 10); } } - localents[i++] = "platform/device-model"; - localents[i++] = (char *) libxl_device_model_version_to_string(info->device_model_version); break; case LIBXL_DOMAIN_TYPE_PV: -- 2.30.2