xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/23] Make ACPI builder available to components other than hvmloader
@ 2016-08-04 21:06 Boris Ostrovsky
  2016-08-04 21:06 ` [PATCH v2 01/23] hvmloader: Provide hvmloader_acpi_build_tables() Boris Ostrovsky
                   ` (23 more replies)
  0 siblings, 24 replies; 69+ messages in thread
From: Boris Ostrovsky @ 2016-08-04 21:06 UTC (permalink / raw)
  To: xen-devel
  Cc: wei.liu2, andrew.cooper3, ian.jackson, julien.grall, jbeulich,
	zhaoshenglong, boris.ostrovsky, roger.pau

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.

This version is built on top of Anthony's 
git://xenbits.xen.org/people/aperard/xen-unstable.git:hvmloader-with-separated-bios-v7

It also requires (still not fully ACKed, sigh) ACPI relicensing patch
https://lists.xenproject.org/archives/html/xen-devel/2016-07/msg01975.html

Major changes:
* Keep struct_acpi_info private to build.c
* Separate table allocation and loading, similar to ARM's approach

More detailed changes are listed per patch.


Boris Ostrovsky (23):
  hvmloader: Provide hvmloader_acpi_build_tables()
  acpi/hvmloader: Allow acpi_build_tables() callers specify acpi_info
    values
  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
  libxc/libxl: Allow multiple ACPI modules
  libxl/acpi: Add ACPI e820 entry
  libxl/pvhv2: Include APIC page in MMIO hole for PVHv2 guests
  ilibxl: Initialize domain build info before calling libxl__domain_make
  libxl/acpi: Build ACPI tables for HVMlite guests
  libxc/xc_dom_core: Copy ACPI tables to guest space

 .gitignore                                    |  20 +-
 tools/firmware/hvmloader/Makefile             |  20 +-
 tools/firmware/hvmloader/acpi/Makefile        |  70 ---
 tools/firmware/hvmloader/acpi/README          |  24 -
 tools/firmware/hvmloader/acpi/acpi2_0.h       | 470 -------------------
 tools/firmware/hvmloader/acpi/build.c         | 646 --------------------------
 tools/firmware/hvmloader/acpi/dsdt.asl        | 478 -------------------
 tools/firmware/hvmloader/acpi/mk_dsdt.c       | 501 --------------------
 tools/firmware/hvmloader/acpi/ssdt_pm.asl     | 418 -----------------
 tools/firmware/hvmloader/acpi/ssdt_s3.asl     |  28 --
 tools/firmware/hvmloader/acpi/ssdt_s4.asl     |  28 --
 tools/firmware/hvmloader/acpi/ssdt_tpm.asl    |  28 --
 tools/firmware/hvmloader/acpi/static_tables.c | 168 -------
 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               |  98 ++++
 tools/firmware/hvmloader/util.h               |   4 +
 tools/libacpi/Makefile                        |  80 ++++
 tools/libacpi/README                          |  32 ++
 tools/libacpi/acpi2_0.h                       | 461 ++++++++++++++++++
 tools/libacpi/build.c                         | 645 +++++++++++++++++++++++++
 tools/libacpi/dsdt.asl                        | 458 ++++++++++++++++++
 tools/libacpi/dsdt_acpi_info.asl              |  23 +
 tools/libacpi/libacpi.h                       | 110 +++++
 tools/libacpi/mk_dsdt.c                       | 511 ++++++++++++++++++++
 tools/libacpi/ssdt_pm.asl                     | 418 +++++++++++++++++
 tools/libacpi/ssdt_s3.asl                     |  28 ++
 tools/libacpi/ssdt_s4.asl                     |  28 ++
 tools/libacpi/ssdt_tpm.asl                    |  28 ++
 tools/libacpi/static_tables.c                 | 168 +++++++
 tools/libacpi/x86.h                           |  30 ++
 tools/libxc/include/xc_dom.h                  |   5 +-
 tools/libxc/xc_dom_core.c                     |  92 ++++
 tools/libxc/xc_dom_hvmloader.c                |   3 +-
 tools/libxl/Makefile                          |  19 +-
 tools/libxl/libxl_arch.h                      |   3 +
 tools/libxl/libxl_create.c                    |  22 +-
 tools/libxl/libxl_dom.c                       |  57 ++-
 tools/libxl/libxl_x86.c                       |  44 +-
 tools/libxl/libxl_x86_acpi.c                  | 199 ++++++++
 tools/libxl/libxl_x86_acpi.h                  |  35 ++
 xen/arch/x86/domain.c                         |  26 +-
 xen/arch/x86/hvm/vlapic.c                     |  14 +-
 xen/arch/x86/hvm/vpt.c                        |   2 +-
 51 files changed, 3633 insertions(+), 2937 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

-- 
1.8.3.1


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 69+ messages in thread

end of thread, other threads:[~2016-08-16  9:44 UTC | newest]

Thread overview: 69+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-04 21:06 [PATCH v2 00/23] Make ACPI builder available to components other than hvmloader Boris Ostrovsky
2016-08-04 21:06 ` [PATCH v2 01/23] hvmloader: Provide hvmloader_acpi_build_tables() Boris Ostrovsky
2016-08-04 21:06 ` [PATCH v2 02/23] acpi/hvmloader: Allow acpi_build_tables() callers specify acpi_info values Boris Ostrovsky
2016-08-09 12:29   ` Jan Beulich
2016-08-04 21:06 ` [PATCH v2 03/23] acpi/hvmloader: Initialize vm_gid data outside ACPI code Boris Ostrovsky
2016-08-09 13:11   ` Jan Beulich
2016-08-09 13:50     ` Boris Ostrovsky
2016-08-09 14:31       ` Jan Beulich
2016-08-09 14:47         ` Andrew Cooper
2016-08-09 15:09           ` Boris Ostrovsky
2016-08-09 15:13             ` Andrew Cooper
2016-08-09 15:15             ` Jan Beulich
2016-08-04 21:06 ` [PATCH v2 04/23] acpi/hvmloader: Decide which SSDTs to install in hvmloader Boris Ostrovsky
2016-08-04 21:06 ` [PATCH v2 05/23] acpi/hvmloader: Move passthrough initialization from ACPI code Boris Ostrovsky
2016-08-09 13:14   ` Jan Beulich
2016-08-04 21:06 ` [PATCH v2 06/23] acpi/hvmloader: Collect processor and NUMA info in hvmloader Boris Ostrovsky
2016-08-09 13:27   ` Jan Beulich
2016-08-09 13:43     ` Boris Ostrovsky
2016-08-09 13:57       ` Boris Ostrovsky
2016-08-09 14:44       ` Jan Beulich
2016-08-04 21:06 ` [PATCH v2 07/23] acpi/hvmloader: Set TIS header address " Boris Ostrovsky
2016-08-04 21:06 ` [PATCH v2 08/23] acpi/hvmloader: Make providing IOAPIC in MADT optional Boris Ostrovsky
2016-08-04 21:06 ` [PATCH v2 09/23] acpi/hvmloader: Build WAET optionally Boris Ostrovsky
2016-08-09 13:29   ` Jan Beulich
2016-08-09 13:51     ` Boris Ostrovsky
2016-08-09 14:48       ` Jan Beulich
2016-08-09 15:13         ` Boris Ostrovsky
2016-08-09 15:17           ` Jan Beulich
2016-08-04 21:06 ` [PATCH v2 10/23] acpi/hvmloader: Replace mem_alloc() and virt_to_phys() with memory ops Boris Ostrovsky
2016-08-09 13:36   ` Jan Beulich
2016-08-04 21:06 ` [PATCH v2 11/23] acpi/hvmloader: Translate all addresses when assigning addresses in ACPI tables Boris Ostrovsky
2016-08-04 21:06 ` [PATCH v2 12/23] acpi/hvmloader: Link ACPI object files directly Boris Ostrovsky
2016-08-10 13:17   ` Jan Beulich
2016-08-10 14:17     ` Boris Ostrovsky
2016-08-04 21:06 ` [PATCH v2 13/23] acpi/hvmloader: Include file/paths adjustments Boris Ostrovsky
2016-08-10 13:30   ` Jan Beulich
2016-08-10 14:20     ` Boris Ostrovsky
2016-08-04 21:06 ` [PATCH v2 14/23] acpi: Move ACPI code to tools/libacpi Boris Ostrovsky
2016-08-05 10:43   ` Jan Beulich
2016-08-05 11:01     ` Wei Liu
2016-08-16  8:13   ` Shannon Zhao
2016-08-16  8:29     ` Wei Liu
2016-08-16  9:36       ` Shannon Zhao
2016-08-16  9:44         ` Wei Liu
2016-08-04 21:06 ` [PATCH v2 15/23] x86: Add more checks verifying that PIT/PIC/IOAPIC are emulated Boris Ostrovsky
2016-08-04 21:06 ` [PATCH v2 16/23] x86: Allow LAPIC-only emulation_flags for HVM guests Boris Ostrovsky
2016-08-04 21:06 ` [PATCH v2 17/23] libacpi: Build DSDT for PVH guests Boris Ostrovsky
2016-08-10 13:50   ` Jan Beulich
2016-08-04 21:06 ` [PATCH v2 18/23] libxc/libxl: Allow multiple ACPI modules Boris Ostrovsky
2016-08-11 16:36   ` Wei Liu
2016-08-04 21:06 ` [PATCH v2 19/23] libxl/acpi: Add ACPI e820 entry Boris Ostrovsky
2016-08-11 16:36   ` Wei Liu
2016-08-04 21:06 ` [PATCH v2 20/23] libxl/pvhv2: Include APIC page in MMIO hole for PVHv2 guests Boris Ostrovsky
2016-08-04 21:06 ` [PATCH v2 21/23] ilibxl: Initialize domain build info before calling libxl__domain_make Boris Ostrovsky
2016-08-04 21:06 ` [PATCH v2 22/23] libxl/acpi: Build ACPI tables for HVMlite guests Boris Ostrovsky
2016-08-09 14:46   ` Jan Beulich
2016-08-09 15:07     ` Boris Ostrovsky
2016-08-11 16:36   ` Wei Liu
2016-08-11 18:08     ` Boris Ostrovsky
2016-08-04 21:06 ` [PATCH v2 23/23] libxc/xc_dom_core: Copy ACPI tables to guest space Boris Ostrovsky
2016-08-11 16:40   ` Wei Liu
2016-08-11 18:16     ` Boris Ostrovsky
2016-08-11 18:19       ` Andrew Cooper
2016-08-11 18:34         ` Boris Ostrovsky
2016-08-15  7:48   ` Shannon Zhao
2016-08-15 12:49     ` Boris Ostrovsky
2016-08-16  1:07       ` Shannon Zhao
2016-08-15  6:37 ` [PATCH v2 00/23] Make ACPI builder available to components other than hvmloader Shannon Zhao
2016-08-15 12:43   ` Boris Ostrovsky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).