|
[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 |