|
@@ -364,12 +364,12 @@ static void acpi_dsdt_add_power_button(Aml *scope)
|
|
|
|
|
|
/* RSDP */
|
|
/* RSDP */
|
|
static GArray *
|
|
static GArray *
|
|
-build_rsdp(GArray *rsdp_table, BIOSLinker *linker, unsigned rsdt_tbl_offset)
|
|
|
|
|
|
+build_rsdp(GArray *rsdp_table, BIOSLinker *linker, unsigned xsdt_tbl_offset)
|
|
{
|
|
{
|
|
AcpiRsdpDescriptor *rsdp = acpi_data_push(rsdp_table, sizeof *rsdp);
|
|
AcpiRsdpDescriptor *rsdp = acpi_data_push(rsdp_table, sizeof *rsdp);
|
|
- unsigned rsdt_pa_size = sizeof(rsdp->rsdt_physical_address);
|
|
|
|
- unsigned rsdt_pa_offset =
|
|
|
|
- (char *)&rsdp->rsdt_physical_address - rsdp_table->data;
|
|
|
|
|
|
+ unsigned xsdt_pa_size = sizeof(rsdp->xsdt_physical_address);
|
|
|
|
+ unsigned xsdt_pa_offset =
|
|
|
|
+ (char *)&rsdp->xsdt_physical_address - rsdp_table->data;
|
|
|
|
|
|
bios_linker_loader_alloc(linker, ACPI_BUILD_RSDP_FILE, rsdp_table, 16,
|
|
bios_linker_loader_alloc(linker, ACPI_BUILD_RSDP_FILE, rsdp_table, 16,
|
|
true /* fseg memory */);
|
|
true /* fseg memory */);
|
|
@@ -381,8 +381,8 @@ build_rsdp(GArray *rsdp_table, BIOSLinker *linker, unsigned rsdt_tbl_offset)
|
|
|
|
|
|
/* Address to be filled by Guest linker */
|
|
/* Address to be filled by Guest linker */
|
|
bios_linker_loader_add_pointer(linker,
|
|
bios_linker_loader_add_pointer(linker,
|
|
- ACPI_BUILD_RSDP_FILE, rsdt_pa_offset, rsdt_pa_size,
|
|
|
|
- ACPI_BUILD_TABLE_FILE, rsdt_tbl_offset);
|
|
|
|
|
|
+ ACPI_BUILD_RSDP_FILE, xsdt_pa_offset, xsdt_pa_size,
|
|
|
|
+ ACPI_BUILD_TABLE_FILE, xsdt_tbl_offset);
|
|
|
|
|
|
/* Checksum to be filled by Guest linker */
|
|
/* Checksum to be filled by Guest linker */
|
|
bios_linker_loader_add_checksum(linker, ACPI_BUILD_RSDP_FILE,
|
|
bios_linker_loader_add_checksum(linker, ACPI_BUILD_RSDP_FILE,
|
|
@@ -659,7 +659,7 @@ static void build_fadt(GArray *table_data, BIOSLinker *linker,
|
|
VirtMachineState *vms, unsigned dsdt_tbl_offset)
|
|
VirtMachineState *vms, unsigned dsdt_tbl_offset)
|
|
{
|
|
{
|
|
AcpiFadtDescriptorRev5_1 *fadt = acpi_data_push(table_data, sizeof(*fadt));
|
|
AcpiFadtDescriptorRev5_1 *fadt = acpi_data_push(table_data, sizeof(*fadt));
|
|
- unsigned dsdt_entry_offset = (char *)&fadt->dsdt - table_data->data;
|
|
|
|
|
|
+ unsigned xdsdt_entry_offset = (char *)&fadt->x_dsdt - table_data->data;
|
|
uint16_t bootflags;
|
|
uint16_t bootflags;
|
|
|
|
|
|
switch (vms->psci_conduit) {
|
|
switch (vms->psci_conduit) {
|
|
@@ -685,7 +685,7 @@ static void build_fadt(GArray *table_data, BIOSLinker *linker,
|
|
|
|
|
|
/* DSDT address to be filled by Guest linker */
|
|
/* DSDT address to be filled by Guest linker */
|
|
bios_linker_loader_add_pointer(linker,
|
|
bios_linker_loader_add_pointer(linker,
|
|
- ACPI_BUILD_TABLE_FILE, dsdt_entry_offset, sizeof(fadt->dsdt),
|
|
|
|
|
|
+ ACPI_BUILD_TABLE_FILE, xdsdt_entry_offset, sizeof(fadt->x_dsdt),
|
|
ACPI_BUILD_TABLE_FILE, dsdt_tbl_offset);
|
|
ACPI_BUILD_TABLE_FILE, dsdt_tbl_offset);
|
|
|
|
|
|
build_header(linker, table_data,
|
|
build_header(linker, table_data,
|
|
@@ -748,7 +748,7 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables)
|
|
{
|
|
{
|
|
VirtMachineClass *vmc = VIRT_MACHINE_GET_CLASS(vms);
|
|
VirtMachineClass *vmc = VIRT_MACHINE_GET_CLASS(vms);
|
|
GArray *table_offsets;
|
|
GArray *table_offsets;
|
|
- unsigned dsdt, rsdt;
|
|
|
|
|
|
+ unsigned dsdt, xsdt;
|
|
GArray *tables_blob = tables->table_data;
|
|
GArray *tables_blob = tables->table_data;
|
|
|
|
|
|
table_offsets = g_array_new(false, true /* clear */,
|
|
table_offsets = g_array_new(false, true /* clear */,
|
|
@@ -788,12 +788,12 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables)
|
|
build_iort(tables_blob, tables->linker);
|
|
build_iort(tables_blob, tables->linker);
|
|
}
|
|
}
|
|
|
|
|
|
- /* RSDT is pointed to by RSDP */
|
|
|
|
- rsdt = tables_blob->len;
|
|
|
|
- build_rsdt(tables_blob, tables->linker, table_offsets, NULL, NULL);
|
|
|
|
|
|
+ /* XSDT is pointed to by RSDP */
|
|
|
|
+ xsdt = tables_blob->len;
|
|
|
|
+ build_xsdt(tables_blob, tables->linker, table_offsets, NULL, NULL);
|
|
|
|
|
|
/* RSDP is in FSEG memory, so allocate it separately */
|
|
/* RSDP is in FSEG memory, so allocate it separately */
|
|
- build_rsdp(tables->rsdp, tables->linker, rsdt);
|
|
|
|
|
|
+ build_rsdp(tables->rsdp, tables->linker, xsdt);
|
|
|
|
|
|
/* Cleanup memory that's no longer used. */
|
|
/* Cleanup memory that's no longer used. */
|
|
g_array_free(table_offsets, true);
|
|
g_array_free(table_offsets, true);
|