From: liang yan <liangy@hpe.com>
To: zhaoshenglong@huawei.com, shannon.zhao@linaro.org
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v9 00/24] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM
Date: Fri, 9 Oct 2015 16:34:22 -0600 [thread overview]
Message-ID: <561840EE.2070008@hpe.com> (raw)
Hello, Shannon,
> 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_v9
>
> 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.
>
> Now upstream kernel applies ACPI patchset, so we can boot it with ACPI,
> while we need to apply patches[1] to make tty work, patch[2] to make
> virtio-mmio work and apply patch[3] and the relevant patches to make PCI
> devices works, e.g. virtio-net-pci, e1000.
> On the other hand, you can directly use the Fedora Linux kernel from
> following address:
> https://git.fedorahosted.org/cgit/kernel-arm64.git/log/?h=devel
>
> I've done test with following VM:
> xp, windows2008, sles11 on X86
> upstream kernel and Fedora Linux kernel on ARM64
>
> In addtion, dump all the acpi tables, use iasl -d *.dat to convert to
> *.asl and use iasl -tc *.asl to compile them to *.hex. No error appears.
>
> If you want to test, you could get kernel Image from [4] which contains
> uart, virtio-mmio, pci drivers, UEFI binary from [5] and Qemu command
> line example from [6].
I tested with your kernel and bios, all runs well. But when I try to
build a new debian(upstream) with your qemu patch and bios,
it always told me could find the right driver, or could not enable ACPI
from kernel command line. Do you have a full vm for fedora or
you just use the kernel there? Could you tell me more about your detail?
Thanks.
Also, we have our own EDK-II, and it could not work now, so I need to do
patches too. Do you mind to tell me how you build your QMEU.fd? Where
can I access those source code? Thanks.
Best,
Liang
> [1]http://git.linaro.org/leg/acpi/acpi.git/shortlog/refs/heads/acpi-sbsa
> [2]
> http://git.linaro.org/leg/acpi/acpi.git/commit/57acba56d55e3fb521fd6ce767446459ef7a4943
> [3]
> https://git.fedorahosted.org/cgit/kernel-arm64.git/commit/?h=devel&id=8cf58cbe94b982b680229e5b164231eea0ca2d11
> [4]http://people.linaro.org/~shannon.zhao/ACPI_ARM/Image.gz
> <http://people.linaro.org/%7Eshannon.zhao/ACPI_ARM/Image.gz>
> [5]http://people.linaro.org/~shannon.zhao/ACPI_ARM/QEMU_EFI.fd
> <http://people.linaro.org/%7Eshannon.zhao/ACPI_ARM/QEMU_EFI.fd>
> [6]http://people.linaro.org/~shannon.zhao/ACPI_ARM/acpi_test.sh
> <http://people.linaro.org/%7Eshannon.zhao/ACPI_ARM/acpi_test.sh>
>
> changes since v8:
> * remove empty _CRS in processor device node and use a define macro
> for SPI base (Igor)
> * Add some reviewd-bys from Igor and Alex
>
> changes since v7:
> * replace build_append_uint32 with 4 build_append_byte (Igor)
> * Fix byte order of aml_unicode() (Igor)
> * Use upper case for enum values and fix enums in aml-build.h (Michael)
> * implement aml_interrupt() based on ACPI 5.0 (Igor)
> * use separate assert (Laszlo)
> * some doc comments fix (Igor & Michael)
>
> changes since v6:
> * add build_append_uint32 (Peter)
> * drop some unnecessary headers and adjust the order of headers (Peter)
> * drop struct AcpiDsdtInfo, AcpiMadtInfo, AcpiGtdtInfo, AcpiPcieInfo
> and reuse MemMapEntry[] and irqmap[] (Peter)
> * record PCI ranges info in MemMapEntry[], not calculate those (Peter)
> * add a separate patch for splitting CONFIG_ACPI (Peter)
> * use VMSTATE_BOOL (Alex)
>
> changes since v5:
> * Fix table version (Igor)
> * only create CPU device objects for present CPUs (Igor)
> * drop madt->local_apic_address and madt->flags (Igor)
> * adjust implementation of ToUUID macro (Igor)
> * Fix aml_buffer() (Michael & Igor)
> * Fix aml_not()
>
> 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 (24):
> hw/acpi/aml-build: Make enum values to be upper case to match coding
> style
> hw/arm/virt: Move common definitions to virt.h
> hw/arm/virt: Record PCIe ranges in MemMapEntry array
> 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: Generate MCFG table
> hw/acpi/aml-build: Make aml_buffer() definition consistent with the
> spec
> hw/acpi/aml-build: Add ToUUID macro
> hw/acpi/aml-build: Add aml_or() term
> hw/acpi/aml-build: Add aml_lnot() 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/acpi/aml-build: Add Unicode macro
> hw/arm/virt-acpi-build: Add PCIe controller in ACPI DSDT table
> ACPI: split CONFIG_ACPI into 4 pieces
> 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 | 231 ++++++++++++-
> hw/arm/Makefile.objs | 1 +
> hw/arm/virt-acpi-build.c | 644 +++++++++++++++++++++++++++++++++++
> hw/arm/virt.c | 85 ++---
> hw/i2c/Makefile.objs | 2 +-
> hw/i386/acpi-build.c | 82 ++---
> include/hw/acpi/acpi-defs.h | 210 +++++++++---
> include/hw/acpi/aml-build.h | 127 +++++--
> include/hw/arm/virt-acpi-build.h | 44 +++
> include/hw/arm/virt.h | 64 ++++
> qemu-options.hx | 2 +-
> trace-events | 3 +
> 20 files changed, 1333 insertions(+), 186 deletions(-)
> create mode 100644 hw/arm/virt-acpi-build.c
> create mode 100644 include/hw/arm/virt-acpi-build.h
> create mode 100644 include/hw/arm/virt.h
>
> --
> 2.0.4
next reply other threads:[~2015-10-09 22:34 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-09 22:34 liang yan [this message]
2015-10-10 0:37 ` [Qemu-devel] [PATCH v9 00/24] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM Laszlo Ersek
-- strict thread matches above, loose matches on Subject: below --
2015-10-13 23:15 liang yan
2015-05-25 2:54 Shannon Zhao
2015-05-27 9:43 ` Igor Mammedov
2015-05-27 10:16 ` Michael S. Tsirkin
2015-05-27 11:58 ` Peter Maydell
2015-05-27 12:01 ` Michael S. Tsirkin
2015-05-27 12:07 ` Peter Maydell
2015-05-27 14:07 ` Michael S. Tsirkin
2015-05-28 14:46 ` Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=561840EE.2070008@hpe.com \
--to=liangy@hpe.com \
--cc=qemu-devel@nongnu.org \
--cc=shannon.zhao@linaro.org \
--cc=zhaoshenglong@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).