[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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.