diff options
author | Bibo Mao <maobibo@loongson.cn> | 2025-02-28 09:44:12 +0800 |
---|---|---|
committer | Bibo Mao <maobibo@loongson.cn> | 2025-05-06 09:17:32 +0800 |
commit | d0897c6970b3717fe707c8d5a807fe2baf836ddd (patch) | |
tree | 2042d0e5283c48bcc2101da9ee14045eb8a19112 | |
parent | 73047c825e25a18127dddb89eff0c0bf97a26aed (diff) | |
download | qemu-d0897c6970b3717fe707c8d5a807fe2baf836ddd.zip qemu-d0897c6970b3717fe707c8d5a807fe2baf836ddd.tar.gz qemu-d0897c6970b3717fe707c8d5a807fe2baf836ddd.tar.bz2 |
hw/loongarch/virt: Replace RSDT with XSDT table
XSDT table is introduced in ACPI Specification 5.0, it supports 64-bit
address in the table. There is LoongArch system support from ACPI
Specification 6.4 and later, XSDT is supported by LoongArch system.
Here replace RSDT with XSDT table.
Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Reviewed-by: Song Gao <gaosong@loongson.cn>
-rw-r--r-- | hw/loongarch/virt-acpi-build.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/hw/loongarch/virt-acpi-build.c b/hw/loongarch/virt-acpi-build.c index fced6c4..073b6de 100644 --- a/hw/loongarch/virt-acpi-build.c +++ b/hw/loongarch/virt-acpi-build.c @@ -514,7 +514,7 @@ static void acpi_build(AcpiBuildTables *tables, MachineState *machine) LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(machine); GArray *table_offsets; AcpiFadtData fadt_data; - unsigned facs, rsdt, dsdt; + unsigned facs, xsdt, dsdt; uint8_t *u; GArray *tables_blob = tables->table_data; @@ -600,17 +600,17 @@ static void acpi_build(AcpiBuildTables *tables, MachineState *machine) } /* RSDT is pointed to by RSDP */ - rsdt = tables_blob->len; - build_rsdt(tables_blob, tables->linker, table_offsets, + xsdt = tables_blob->len; + build_xsdt(tables_blob, tables->linker, table_offsets, lvms->oem_id, lvms->oem_table_id); /* RSDP is in FSEG memory, so allocate it separately */ { AcpiRsdpData rsdp_data = { - .revision = 0, + .revision = 2, .oem_id = lvms->oem_id, - .xsdt_tbl_offset = NULL, - .rsdt_tbl_offset = &rsdt, + .xsdt_tbl_offset = &xsdt, + .rsdt_tbl_offset = NULL, }; build_rsdp(tables->rsdp, tables->linker, &rsdp_data); } |