From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35524) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ymxwp-0007zP-8t for qemu-devel@nongnu.org; Tue, 28 Apr 2015 01:20:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ymxwk-0006xI-WF for qemu-devel@nongnu.org; Tue, 28 Apr 2015 01:20:43 -0400 Received: from mx1.redhat.com ([209.132.183.28]:43542) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ymxwk-0006xA-Ng for qemu-devel@nongnu.org; Tue, 28 Apr 2015 01:20:38 -0400 Date: Tue, 28 Apr 2015 07:20:32 +0200 From: "Michael S. Tsirkin" Message-ID: <20150428072001-mutt-send-email-mst@redhat.com> References: <1429104309-3844-1-git-send-email-zhaoshenglong@huawei.com> <553EF546.7030907@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <553EF546.7030907@huawei.com> Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v5 00/20] Generate ACPI v5.1 tables and expose them to guest over fw_cfg on ARM List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Shannon Zhao Cc: peter.maydell@linaro.org, hangaohuai@huawei.com, a.spyridakis@virtualopensystems.com, claudio.fontana@huawei.com, qemu-devel@nongnu.org, peter.huangpeng@huawei.com, alex.bennee@linaro.org, hanjun.guo@linaro.org, imammedo@redhat.com, pbonzini@redhat.com, lersek@redhat.com, christoffer.dall@linaro.org, shannon.zhao@linaro.org 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 > >=20 > > 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) > >=20 > > These tables are created dynamically using the function of aml-build.= c, > > taking into account the needed information passed from the virt machi= ne model. > > When the generation is finalized, it use fw_cfg to expose the tables = to guest. > >=20 > > You can fetch this from following repo: > > http://git.linaro.org/people/shannon.zhao/qemu.git ACPI_ARM_v5 > >=20 > > 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 > >=20 > > Thanks to Laszlo's work on UEFI (ArmVirtualizationQemu) supporting do= wnloading > > ACPI tables over fw_cfg, we now can use ACPI in VM. I have done follo= wing vm > > startup test and attach virtio-net-pci, e1000: > >=20 > > xp, windows2008, sles11 on X86 > > Fedora Linux kernel on ARM64 > >=20 > > 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=3Ddevel > >=20 > > 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 > >=20 > > changes since v3: > > * rebase on upstream qemu > > * fix _HID of CPU (Heyi Guo) > > * Add PCIe host bridge > >=20 > > changes since v2: > > * rebase on Igor Mammedov's new branch ASL_API_v3 > > * use rsdt instead of xsdt according to Igor Mammedov's suggestion > >=20 > > 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 > >=20 > > Shannon Zhao (20): > > hw/i386: Move ACPI header definitions in an arch-independent locati= on > > hw/i386/acpi-build: move generic acpi building helpers into dedicta= ted > > 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 > >=20 > > 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 > >=20 >=20 > Ping=EF=BC=9F I merged first 2 patches in my tree, plan to send pull request soon. > --=20 > Thanks, > Shannon