From patchwork Mon Oct 29 17:01:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Ortiz X-Patchwork-Id: 10659785 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0494313A4 for ; Mon, 29 Oct 2018 17:04:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E8BCD28692 for ; Mon, 29 Oct 2018 17:04:35 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DAC5729771; Mon, 29 Oct 2018 17:04:35 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 7416B28692 for ; Mon, 29 Oct 2018 17:04:35 +0000 (UTC) Received: from localhost ([::1]:47176 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHAxt-0002nw-WC for patchwork-qemu-devel@patchwork.kernel.org; Mon, 29 Oct 2018 13:04:34 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46506) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gHAwJ-0001Xr-QD for qemu-devel@nongnu.org; Mon, 29 Oct 2018 13:02:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gHAwF-0003qs-SP for qemu-devel@nongnu.org; Mon, 29 Oct 2018 13:02:55 -0400 Received: from mga07.intel.com ([134.134.136.100]:25841) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gHAwA-0003ee-9X for qemu-devel@nongnu.org; Mon, 29 Oct 2018 13:02:49 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Oct 2018 10:02:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,441,1534834800"; d="scan'208";a="276598733" Received: from mjadwisz-mobl.ger.corp.intel.com (HELO localhost.localdomain) ([10.252.7.64]) by fmsmga006.fm.intel.com with ESMTP; 29 Oct 2018 10:02:42 -0700 From: Samuel Ortiz To: qemu-devel@nongnu.org Date: Mon, 29 Oct 2018 18:01:40 +0100 Message-Id: <20181029170159.3801-1-sameo@linux.intel.com> X-Mailer: git-send-email 2.17.2 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 134.134.136.100 Subject: [Qemu-devel] [PATCH v3 00/19] ACPI reorganization for hardware-reduced support X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP This patch set provides an ACPI code reorganization in preparation for adding hardware-reduced support to QEMU. The changes are coming from the NEMU [1] project where we're defining a new x86 machine type: i386/virt. This is an EFI only, ACPI hardware-reduced platform and as such we had to implement support for the latter. As a preliminary for adding hardware-reduced support to QEMU, we did some ACPI code reorganization with the following goals: * Share as much as possible of the current ACPI build APIs between legacy and hardware-reduced ACPI. * Share the ACPI build code across machine types and architectures and remove the typical PC machine type dependency. Eventually we hope to see arm/virt also re-use much of that code. The patches are also available in their own git branch [2]. [1] https://github.com/intel/nemu [2] https://github.com/intel/nemu/tree/topic/upstream/acpi v1 -> v2: * Drop the hardware-reduced implementation for now. Our next patch set will add hardware-reduced and convert arm/virt to it. * Implement the ACPI build methods as a QOM Interface Class and convert the PC machine type to it. * acpi_conf_pc_init() uses a PCMachineState pointer and not a MachineState one as its argument. v2 -> v3: * Cc all relevant maintainers, no functional changes. Samuel Ortiz (10): hw: i386: Decouple the ACPI build from the PC machine type hw: acpi: Export ACPI build alignment API hw: acpi: Export the RSDP build API hw: acpi: Implement XSDT support for RSDP hw: arm: Switch to the AML build RSDP building routine hw: acpi: Do not create hotplug method when handler is not defined hw: i386: Make the hotpluggable memory size property more generic hw: acpi: Define ACPI tables builder interface hw: i386: Export the MADT build method hw: i386: Implement the ACPI builder interface for PC Sebastien Boeuf (2): hw: acpi: Export the PCI hotplug API hw: acpi: Retrieve the PCI bus from AcpiPciHpState Yang Zhong (7): hw: acpi: Generalize AML build routines hw: acpi: Factorize _OSC AML across architectures hw: i386: Refactor PCI host getter hw: acpi: Export and generalize the PCI host AML API hw: acpi: Export the MCFG getter hw: acpi: Export the SRAT AML build API hw: acpi: Fix memory hotplug AML generation error hw/acpi/Makefile.objs | 1 + hw/acpi/aml-build.c | 1129 ++++++++++++++++++++++++++++++ hw/acpi/builder.c | 97 +++ hw/acpi/cpu.c | 8 +- hw/acpi/cpu_hotplug.c | 9 +- hw/acpi/memory_hotplug.c | 21 +- hw/acpi/pcihp.c | 10 +- hw/arm/virt-acpi-build.c | 98 +-- hw/i386/acpi-build.c | 1174 ++------------------------------ hw/i386/acpi-build.h | 4 +- hw/i386/pc.c | 197 ++++-- hw/i386/pc_piix.c | 21 +- hw/i386/pc_q35.c | 21 +- hw/i386/xen/xen-hvm.c | 19 +- hw/pci-host/piix.c | 8 - include/hw/acpi/acpi-defs.h | 14 + include/hw/acpi/acpi.h | 43 ++ include/hw/acpi/aml-build.h | 50 ++ include/hw/acpi/builder.h | 97 +++ include/hw/i386/acpi.h | 27 + include/hw/i386/pc.h | 21 +- include/hw/mem/memory-device.h | 2 + stubs/Makefile.objs | 1 - stubs/pci-host-piix.c | 6 - 24 files changed, 1734 insertions(+), 1344 deletions(-) create mode 100644 hw/acpi/builder.c create mode 100644 include/hw/acpi/builder.h create mode 100644 include/hw/i386/acpi.h delete mode 100644 stubs/pci-host-piix.c