This patch series generate seven ACPI v5.1 tables for machine virt on ARM. The set of generated tables are: - RSDP - XSDT - MADT - GTDT - FADT - FACS - DSDT
These tables are created dynamically using the function of acpi-build-utils.c, taking into account the needed information passed from the virt machine model. When the generation is finalized, it use fw_cfg to expose the tables to guest. This patchset is based on Igor Mammedov's branch which can be found at below git tree: https://github.com/imammedo/qemu/commits/ASL_API_v2 And this patchset refers to Alexander Spyridakis's patches which are sent to qemu-devel mailing list before. http://lists.gnu.org/archive/html/qemu-devel/2014-10/msg03987.html As UEFI (ArmVirtualizationQemu) doesn't support downloading ACPI tables over fw_cfg, I just do compile test and start a guest with UEFI. But I contacted Laszlo Ersek before, he says that if qemu can expose the generated ACPI tables over fw_cfg, he can quickly add support in UEFI. So just send this out and make it go forward. Todo: 1) add GPIO controller in virt and expose it through ACPI 2) add cpu hotplug support Any comments are welcome. Thanks, Shannon Shannon Zhao (11): hw/i386: Move ACPI header definitions in an arch-independent location hw/arm/virt-acpi-build: Basic framwork for building ACPI tables hw/arm/virt-acpi-build: Generate RSDP table hw/arm/virt-acpi-build: Generate XSDT table and add a build_header function hw/arm/virt-acpi-build: Generate MADT table hw/arm/virt-acpi-build: Generate GTDT table hw/arm/virt-acpi-build: Generate FADT table and update ACPI headers hw/arm/virt-acpi-build: Generate FACS table and update ACPI headers hw/acpi/acpi-build-utils: Add acpi_fixed_memory32() and acpi_extended_irq() hw/arm/virt-acpi-build: Generation of DSDT table for virt devices hw/arm/virt: Enable dynamic generation of ACPI v5.1 tables default-configs/arm-softmmu.mak | 1 + default-configs/i386-softmmu.mak | 3 + default-configs/mips-softmmu.mak | 3 + default-configs/mips64-softmmu.mak | 3 + default-configs/mips64el-softmmu.mak | 3 + default-configs/mipsel-softmmu.mak | 3 + default-configs/x86_64-softmmu.mak | 3 + hw/acpi/Makefile.objs | 5 +- hw/acpi/acpi-build-utils.c | 42 +++ hw/arm/Makefile.objs | 1 + hw/arm/virt-acpi-build.c | 520 ++++++++++++++++++++++++++++++++++ hw/arm/virt.c | 59 ++++- hw/i2c/Makefile.objs | 2 +- hw/i386/acpi-build.c | 2 +- hw/i386/acpi-defs.h | 368 ------------------------ include/hw/acpi/acpi-build-utils.h | 2 + include/hw/acpi/acpi-defs.h | 503 ++++++++++++++++++++++++++++++++ include/hw/arm/virt-acpi-build.h | 71 +++++ tests/bios-tables-test.c | 2 +- 19 files changed, 1219 insertions(+), 377 deletions(-) create mode 100644 hw/arm/virt-acpi-build.c delete mode 100644 hw/i386/acpi-defs.h create mode 100644 include/hw/acpi/acpi-defs.h create mode 100644 include/hw/arm/virt-acpi-build.h