[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v1 00/20] Make ACPI builder available to components other than hvmloader
This is V1 of the series posted earlier as an RFC The goal here is to build ACPI tables for PVHv2/HVMlite guests while reusing existing hvmloader's ACPI builder code. The builder is provided as a library in tools/libacpi. Main changes from RFC are: * Move toolstack code that loads the tables into PVHv2 guest from libxc to libxl * Don't provide the builder to hypervisor as we didn't find a user for that (at least so far) * Update e820 map for PVHv2 guests when ACPI tables are loaded * Don't set HW_REDUCED_ACPI flags: this flag is only available starting with ACPI v5 * Separate ACPI-specific definition from libacpi definitions (i.e. acpi2_0.h vs libacpi.h) * Add Processor objects to PVHv2's AML * Separate out ACPI INFO description into a separate ASL file * Specify ACPI INFO and tables' addresses in callers' code (not in acpi2_0.h) * Build ASL/C files in targets' directories (Jan suggested making symlinks, this is slightly different but serves similar goal of preventing paralell make from making a mess of targets) * Rework include files (x86.h), make callers specify include file that defines standard tools (see for example patch 13) * Reorder some patches to decrease code churn Other changes are described in patches (given number of changes I may have missed mentioning some). Boris Ostrovsky (20): hvmloader: Provide hvmloader_acpi_build_tables() acpi/hvmloader: Move acpi_info initialization out of ACPI code acpi/hvmloader: Initialize vm_gid data outside ACPI code acpi/hvmloader: Decide which SSDTs to install in hvmloader acpi/hvmloader: Move passthrough initialization from ACPI code acpi/hvmloader: Collect processor and NUMA info in hvmloader acpi/hvmloader: Set TIS header address in hvmloader acpi/hvmloader: Make providing IOAPIC in MADT optional acpi/hvmloader: Build WAET optionally acpi/hvmloader: Replace mem_alloc() and virt_to_phys() with memory ops acpi/hvmloader: Translate all addresses when assigning addresses in ACPI tables acpi/hvmloader: Link ACPI object files directly acpi/hvmloader: Include file/paths adjustments acpi: Move ACPI code to tools/libacpi x86: Add more checks verifying that PIT/PIC/IOAPIC are emulated x86: Allow LAPIC-only emulation_flags for HVM guests libacpi: Build DSDT for PVH guests libxl/acpi: Add ACPI e820 entry libxl/pvhv2: Include APIC page in MMIO hole for PVHv2 guests libxl/acpi: Build ACPI tables for HVMlite guests .gitignore | 12 +- tools/firmware/hvmloader/Makefile | 20 +- tools/firmware/hvmloader/acpi/Makefile | 72 --- tools/firmware/hvmloader/acpi/README | 24 - tools/firmware/hvmloader/acpi/acpi2_0.h | 473 ------------------ tools/firmware/hvmloader/acpi/build.c | 648 ------------------------- tools/firmware/hvmloader/acpi/dsdt.asl | 480 ------------------ tools/firmware/hvmloader/acpi/mk_dsdt.c | 489 ------------------- tools/firmware/hvmloader/acpi/ssdt_pm.asl | 421 ---------------- tools/firmware/hvmloader/acpi/ssdt_s3.asl | 31 -- tools/firmware/hvmloader/acpi/ssdt_s4.asl | 31 -- tools/firmware/hvmloader/acpi/ssdt_tpm.asl | 30 -- tools/firmware/hvmloader/acpi/static_tables.c | 170 ------- tools/firmware/hvmloader/config.h | 8 +- tools/firmware/hvmloader/hvmloader.c | 3 +- tools/firmware/hvmloader/mp_tables.c | 1 + tools/firmware/hvmloader/ovmf.c | 4 +- tools/firmware/hvmloader/pci.c | 1 + tools/firmware/hvmloader/pir.c | 1 + tools/firmware/hvmloader/rombios.c | 4 +- tools/firmware/hvmloader/seabios.c | 5 +- tools/firmware/hvmloader/smp.c | 1 + tools/firmware/hvmloader/util.c | 94 ++++ tools/firmware/hvmloader/util.h | 4 + tools/libacpi/Makefile | 87 ++++ tools/libacpi/README | 33 ++ tools/libacpi/acpi2_0.h | 462 ++++++++++++++++++ tools/libacpi/build.c | 613 +++++++++++++++++++++++ tools/libacpi/dsdt.asl | 460 ++++++++++++++++++ tools/libacpi/dsdt_acpi_info.asl | 23 + tools/libacpi/libacpi.h | 128 +++++ tools/libacpi/mk_dsdt.c | 499 +++++++++++++++++++ tools/libacpi/ssdt_pm.asl | 421 ++++++++++++++++ tools/libacpi/ssdt_s3.asl | 31 ++ tools/libacpi/ssdt_s4.asl | 31 ++ tools/libacpi/ssdt_tpm.asl | 30 ++ tools/libacpi/static_tables.c | 170 +++++++ tools/libacpi/x86.h | 38 ++ tools/libxc/include/xc_dom.h | 4 + tools/libxl/Makefile | 19 +- tools/libxl/libxl_arch.h | 3 + tools/libxl/libxl_dom.c | 31 +- tools/libxl/libxl_x86.c | 40 ++- tools/libxl/libxl_x86_acpi.c | 288 +++++++++++ tools/libxl/libxl_x86_acpi.h | 21 + xen/arch/x86/domain.c | 26 +- xen/arch/x86/hvm/vlapic.c | 12 +- xen/arch/x86/hvm/vpt.c | 2 +- 48 files changed, 3578 insertions(+), 2921 deletions(-) delete mode 100644 tools/firmware/hvmloader/acpi/Makefile delete mode 100644 tools/firmware/hvmloader/acpi/README delete mode 100644 tools/firmware/hvmloader/acpi/acpi2_0.h delete mode 100644 tools/firmware/hvmloader/acpi/build.c delete mode 100644 tools/firmware/hvmloader/acpi/dsdt.asl delete mode 100644 tools/firmware/hvmloader/acpi/mk_dsdt.c delete mode 100644 tools/firmware/hvmloader/acpi/ssdt_pm.asl delete mode 100644 tools/firmware/hvmloader/acpi/ssdt_s3.asl delete mode 100644 tools/firmware/hvmloader/acpi/ssdt_s4.asl delete mode 100644 tools/firmware/hvmloader/acpi/ssdt_tpm.asl delete mode 100644 tools/firmware/hvmloader/acpi/static_tables.c create mode 100644 tools/libacpi/Makefile create mode 100644 tools/libacpi/README create mode 100644 tools/libacpi/acpi2_0.h create mode 100644 tools/libacpi/build.c create mode 100644 tools/libacpi/dsdt.asl create mode 100644 tools/libacpi/dsdt_acpi_info.asl create mode 100644 tools/libacpi/libacpi.h create mode 100644 tools/libacpi/mk_dsdt.c create mode 100644 tools/libacpi/ssdt_pm.asl create mode 100644 tools/libacpi/ssdt_s3.asl create mode 100644 tools/libacpi/ssdt_s4.asl create mode 100644 tools/libacpi/ssdt_tpm.asl create mode 100644 tools/libacpi/static_tables.c create mode 100644 tools/libacpi/x86.h create mode 100644 tools/libxl/libxl_x86_acpi.c create mode 100644 tools/libxl/libxl_x86_acpi.h _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |