qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [RFC PATCH 0/7] hw/arm/virt: Dynamic ACPI v5.1 table genera


From: Alexander Spyridakis
Subject: [Qemu-devel] [RFC PATCH 0/7] hw/arm/virt: Dynamic ACPI v5.1 table generation
Date: Thu, 30 Oct 2014 18:43:58 +0100

Currently, the virt machine model generates Device Tree information dynamically 
based on the existing devices in the system. This patch series extends the same 
concept but for ACPI information instead. A total of seven tables have been
implemented in this patch series, which is the minimum for a basic ARM support.

The set of generated tables are:
- RSDP
- XSDT
- MADT
- GTDT
- FADT
- FACS
- DSDT

The tables are created in standalone buffers, taking into account the
needed information passed from the virt machine model. When the generation
is finalized, the individual buffers are compacted to a single ACPI binary
blob, where it is injected on the guest memory space in a fixed location.
The guest kernel can find the ACPI tables by providing to it the physical
address of the ACPI blob (e.g. acpi_rsdp=0x47000000 boot argument).

This series has been tested on the Foundation Model 0.8 build 5206 and
the Juno development board. For kernel and driver support it is based
on the "Introduce ACPI for ARM64 based on ACPI 5.1" and
"Drivers for Juno to boot from ACPI" patch series from Hanjun Guo.

Alexander Spyridakis (7):
  hw/i386: Move ACPI header definitions in an arch-independent location
  hw/arm/virt-acpi: Basic skeleton for dynamic generation of ACPI tables
  hw/arm/virt-acpi: Generate RSDP and XSDT, add helper functions
  hw/arm/virt-acpi: Generate FACS and FADT, update ACPI headers
  hw/arm/virt-acpi: GIC and Arch Timer definitions in MADT and GTDT
  hw/arm/virt-acpi: Generation of DSDT including virt devices
  hw/arm/virt: Enable dynamic generation of ACPI v5.1 tables

 hw/arm/Makefile.objs        |   2 +-
 hw/arm/boot.c               |  26 +++
 hw/arm/virt-acpi.c          | 555 ++++++++++++++++++++++++++++++++++++++++++++
 hw/arm/virt.c               |  54 ++++-
 hw/i386/acpi-build.c        |   2 +-
 hw/i386/acpi-defs.h         | 368 -----------------------------
 include/hw/acpi/acpi-defs.h | 535 ++++++++++++++++++++++++++++++++++++++++++
 include/hw/arm/arm.h        |   2 +
 include/hw/arm/virt-acpi.h  |  73 ++++++
 tests/bios-tables-test.c    |   2 +-
 10 files changed, 1244 insertions(+), 375 deletions(-)
 create mode 100644 hw/arm/virt-acpi.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.h

-- 
1.9.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]