qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v5 00/20] Generate ACPI v5.1 tables and expose t


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [PATCH v5 00/20] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM
Date: Tue, 28 Apr 2015 07:20:32 +0200

On Tue, Apr 28, 2015 at 10:49:42AM +0800, Shannon Zhao wrote:
> On 2015/4/15 21:24, Shannon Zhao wrote:
> > From: Shannon Zhao <address@hidden>
> > 
> > This patch series generate seven ACPI tables for machine virt on ARM.
> > The set of generated tables are:
> > - RSDP
> > - RSDT
> > - MADT
> > - GTDT
> > - FADT
> > - DSDT
> > - MCFG (For PCIe host bridge)
> > 
> > These tables are created dynamically using the function of aml-build.c,
> > taking into account the needed information passed from the virt machine 
> > model.
> > When the generation is finalized, it use fw_cfg to expose the tables to 
> > guest.
> > 
> > You can fetch this from following repo:
> >     http://git.linaro.org/people/shannon.zhao/qemu.git  ACPI_ARM_v5
> > 
> > And this patchset refers to Alexander Spyridakis's patches which are sent to
> > qemu-devel mailing list before.
> >     http://lists.gnu.org/archive/html/qemu-devel/2014-10/msg03987.html
> > 
> > Thanks to Laszlo's work on UEFI (ArmVirtualizationQemu) supporting 
> > downloading
> > ACPI tables over fw_cfg, we now can use ACPI in VM. I have done following vm
> > startup test and attach virtio-net-pci, e1000:
> > 
> > xp, windows2008, sles11 on X86
> > Fedora Linux kernel on ARM64
> > 
> > Note:
> > As upstream kernel doesn't support ACPI PCI host bridge on ARM64, so I use 
> > the
> > Fedora Linux kernel from following address:
> >     https://git.fedorahosted.org/cgit/kernel-arm64.git/log/?h=devel
> > 
> > changes since v4:
> >   * use trace_* instead of DPRINTF (Igor & Alex)
> >   * use standard QEMU style for structs (Michael)
> >   * add "-no-acpi" option support for arm
> >   * use extractNN for bits operation (Alex)
> >   * use AmlReadAndWrite enum for rw flags (Igor)
> >   * s/uint64_t/uint32_t/ (Igor)
> >   * use enum for interrupt flag (Igor)
> >   * simplify aml_device use in DSDT (Alex)
> >   * share RSDT table generating code with x86 (Igor)
> >   * remove unnecessary 1 in MCFG table generating code (Alex & Peter)
> >   * use string for ToUUID macro (Igor)
> >   * aml_or and aml_and use two args (Igor)
> >   * add comments on UUID (Michael)
> >   * change PCI MMIO region non-cacheable (Peter)
> >   * fix wrong io map (Peter)
> >   * add several reviewed-by's from Alex, thanks
> > 
> > changes since v3:
> >   * rebase on upstream qemu
> >   * fix _HID of CPU (Heyi Guo)
> >   * Add PCIe host bridge
> > 
> > changes since v2:
> >   * rebase on Igor Mammedov's new branch ASL_API_v3
> >   * use rsdt instead of xsdt according to Igor Mammedov's suggestion
> > 
> > changes since v1:
> >   * fix bug found by Laszlo
> >   * move common helpers into dedictated file and change generating
> >     table order according to Igor's comments
> >   * fix copyright and function name according to Michael's comments
> > 
> > Shannon Zhao (20):
> >   hw/i386: Move ACPI header definitions in an arch-independent location
> >   hw/i386/acpi-build: move generic acpi building helpers into dedictated
> >     file
> >   hw/arm/virt-acpi-build: Basic framework for building ACPI tables on
> >     ARM
> >   hw/acpi/aml-build: Add aml_memory32_fixed() term
> >   hw/acpi/aml-build: Add aml_interrupt() term
> >   hw/arm/virt-acpi-build: Generation of DSDT table for virt devices
> >   hw/arm/virt-acpi-build: Generate FADT table and update ACPI headers
> >   hw/arm/virt-acpi-build: Generate MADT table
> >   hw/arm/virt-acpi-build: Generate GTDT table
> >   hw/arm/virt-acpi-build: Generate RSDT table
> >   hw/arm/virt-acpi-build: Generate RSDP table
> >   hw/arm/virt-acpi-build: Add PCIe info and generate MCFG table
> >   hw/acpi/aml-build: Add ToUUID macro
> >   hw/acpi/aml-build: Add aml_or() term
> >   hw/acpi/aml-build: Add aml_not() term
> >   hw/acpi/aml-build: Add aml_else() term
> >   hw/acpi/aml-build: Add aml_create_dword_field() term
> >   hw/acpi/aml-build: Add aml_dword_io() term
> >   hw/arm/virt-acpi-build: Add PCIe controller in ACPI DSDT table
> >   hw/arm/virt: Enable dynamic generation of ACPI v5.1 tables
> > 
> >  default-configs/arm-softmmu.mak      |   1 +
> >  default-configs/i386-softmmu.mak     |   3 +
> >  default-configs/mips-softmmu.mak     |   3 +
> >  default-configs/mips64-softmmu.mak   |   3 +
> >  default-configs/mips64el-softmmu.mak |   3 +
> >  default-configs/mipsel-softmmu.mak   |   3 +
> >  default-configs/x86_64-softmmu.mak   |   3 +
> >  hw/acpi/Makefile.objs                |   5 +-
> >  hw/acpi/aml-build.c                  | 234 ++++++++++++-
> >  hw/arm/Makefile.objs                 |   1 +
> >  hw/arm/virt-acpi-build.c             | 650 
> > +++++++++++++++++++++++++++++++++++
> >  hw/arm/virt.c                        |  78 ++++-
> >  hw/i2c/Makefile.objs                 |   2 +-
> >  hw/i386/acpi-build.c                 | 103 +-----
> >  hw/i386/acpi-defs.h                  | 368 --------------------
> >  include/hw/acpi/acpi-defs.h          | 482 ++++++++++++++++++++++++++
> >  include/hw/acpi/aml-build.h          |  94 +++++
> >  include/hw/arm/virt-acpi-build.h     |  81 +++++
> >  qemu-options.hx                      |   2 +-
> >  tests/bios-tables-test.c             |   2 +-
> >  trace-events                         |   3 +
> >  21 files changed, 1641 insertions(+), 483 deletions(-)
> >  create mode 100644 hw/arm/virt-acpi-build.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-build.h
> > 
> 
> Ping?

I merged first 2 patches in my tree, plan to send pull request soon.

> -- 
> Thanks,
> Shannon



reply via email to

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