}
acpi_enable_sci();
+
+ hvm_param_set(HVM_PARAM_ACPI_IOPORTS_LOCATION, 1);
}
init_vm86_tss();
#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 */
.dsdt_15cpu_len = 0
};
- hvm_param_set(HVM_PARAM_ACPI_IOPORTS_LOCATION, 1);
-
hvmloader_acpi_build_tables(&config, ACPI_PHYSICAL_ADDRESS);
}
#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)
{
/*
.dsdt_15cpu_len = dsdt_15cpu_len,
};
- hvm_param_set(HVM_PARAM_ACPI_IOPORTS_LOCATION, 0);
-
hvmloader_acpi_build_tables(&config, ACPI_PHYSICAL_ADDRESS);
}
#include <acpi2_0.h>
#include <libacpi.h>
-#include <xen/hvm/params.h>
+
+extern unsigned char dsdt_anycpu_qemu_xen[];
+extern int dsdt_anycpu_qemu_xen_len;
struct seabios_info {
char signature[14]; /* XenHVMSeaBIOS\0 */
.dsdt_15cpu_len = 0,
};
- hvm_param_set(HVM_PARAM_ACPI_IOPORTS_LOCATION, 1);
-
hvmloader_acpi_build_tables(&config, rsdp);
add_table(rsdp);
}
/* 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;
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);
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";
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: