From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 2002:adf:a111:0:0:0:0:0 with SMTP id o17-v6csp2029293wro; Sun, 4 Nov 2018 17:42:01 -0800 (PST) X-Google-Smtp-Source: AJdET5cEieh9D7uHLTXRgBDJKGE9ecmooH4LfS4eHOAmFXWxg85Q6vQMaGZCtnfe1f7LZL+1urvP X-Received: by 2002:a37:2bcf:: with SMTP id r76mr18189784qkr.218.1541382121011; Sun, 04 Nov 2018 17:42:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541382121; cv=none; d=google.com; s=arc-20160816; b=Na40pv5EqBQAHL9+IYHxMHpfi4hFJxyIV7NPh9SbkdSi/EbacJTrWoioBAVt73gSXm e7uP9f5kk+hXtSFfukAIU8MLkAYNbBOndbTCe3kqiaM34O8OMovQ0IJk6mSSLRRUzSwN WO/1GX/axZkrxU4qv0AGZzgj3w+NExuxFNdqoUkIgDqwLuK0V9q3ln4KZ903SoBdEci2 7pSWlonvgOkzFt+6xrbABzxJPq1XufpMlPdl3tG+bktAMiojX71aM/QwaY7exB65jJqO pVFHQegrY6CFLmk8GvLj+7xMKnAdZpqHfqA/Clbb1zKw8xaux9f+hyApawYxtxSARwl+ xVmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:message-id:date:to:from; bh=RO80y3JSmDjAMu4JXVQstT/Kp3bSUjh45+ZvLj6Bje8=; b=hFiSkmYtR17WnVSwoeGf+ZWNQRMFjwLRw+XHs0iqDpdzTLaQqpeN4Xc9gCFSuU2kjW OzS1/XKoFyIxeOrG/jGFstATkNR5Ge5XGJ2C3L9ZNy/MBoA3+DeXaMcqhLrSfLHQRDnQ idDwgQec5czl01JhYYdy4+DRq6eYS1svEgCHRriy3rxGFyDLkpE9oHSLLUMzrRfU+FNe 3DLfMR3WONLTpvxXqBZhWGn7dha8/omHMnLJoPxkJxg+Xzh6fFcQRa5Iyjga2BNhz0Uk Al+ZGULbjbHevzzDS6ZeSpGF8YT+jUpmHyjWU0NcL1vgtnZ41oS6VcSCmgtzFkjUS5j0 2Q8A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom="qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id g10-v6si5013970qtq.103.2018.11.04.17.42.00 for (version=TLS1 cipher=AES128-SHA bits=128/128); Sun, 04 Nov 2018 17:42:00 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom="qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from localhost ([::1]:60842 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gJTtw-00061N-Ed for alex.bennee@linaro.org; Sun, 04 Nov 2018 20:42:00 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46657) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gJTti-0005zg-Ax for qemu-arm@nongnu.org; Sun, 04 Nov 2018 20:41:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gJTth-0000z1-5q for qemu-arm@nongnu.org; Sun, 04 Nov 2018 20:41:46 -0500 Received: from mga02.intel.com ([134.134.136.20]:9126) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gJTta-0000gW-Le; Sun, 04 Nov 2018 20:41:38 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Nov 2018 17:41:35 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,466,1534834800"; d="scan'208";a="277074237" Received: from emurphy1-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.252.26.250]) by fmsmga005.fm.intel.com with ESMTP; 04 Nov 2018 17:41:30 -0800 From: Samuel Ortiz To: qemu-devel@nongnu.org Date: Mon, 5 Nov 2018 02:40:23 +0100 Message-Id: <20181105014047.26447-1-sameo@linux.intel.com> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 134.134.136.20 Subject: [Qemu-arm] [PATCH v5 00/24] ACPI reorganization for hardware-reduced API addition X-BeenThere: qemu-arm@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Stefano Stabellini , Eduardo Habkost , "Michael S. Tsirkin" , Shannon Zhao , Igor Mammedov , qemu-arm@nongnu.org, Marcel Apfelbaum , Paolo Bonzini , Anthony Perard , xen-devel@lists.xenproject.org, Richard Henderson Errors-To: qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org Sender: "Qemu-arm" X-TUID: kuDBaIkTuaFh This patch set provides an ACPI code reorganization in preparation for adding a shared hardware-reduced ACPI API 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 that is built on top of a generic hardware-reduced ACPI API [2]. This API was initially based off the generic parts of the arm/virt-acpi-build.c implementation, and the goal is for both i386/virt and arm/virt to duplicate as little code as possible by using this new, shared API. As a preliminary for adding this hardware-reduced ACPI API 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. The patches are also available in their own git branch [3]. [1] https://github.com/intel/nemu [2] https://github.com/intel/nemu/blob/topic/virt-x86/hw/acpi/reduced.c [3] 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. v3 -> v4: * Renamed all AcpiConfiguration pointers from conf to acpi_conf. * Removed the ACPI_BUILD_ALIGN_SIZE export. * Temporarily updated the arm virt build_rsdp() prototype for bisectability purposes. * Removed unneeded pci headers from acpi-build.c. * Refactor the acpi PCI host getter so that it truly is architecture agnostic, by carrying the PCI host pointer through the AcpiConfiguration structure. * Splitted the PCI host AML builder API export patch from the PCI host and holes getter one. * Reduced the build_srat() export scope to hw/i386 instead of the broader hw/acpi. SRAT builders are truly architecture specific and can hardly be generalized. * Completed the ACPI builder documentation. v4 -> v5: * Reorganize the ACPI RSDP export and XSDT implementation into 3 patches. * Fix the hw/i386/acpi header inclusions. Samuel Ortiz (16): hw: i386: Decouple the ACPI build from the PC machine type hw: acpi: Export ACPI build alignment API hw: acpi: The RSDP build API can return void hw: acpi: Export the RSDP build API hw: acpi: Implement XSDT support for RSDP hw: acpi: Factorize the RSDP build API implementation hw: i386: Move PCI host definitions to pci_host.h hw: acpi: Export the PCI host and holes getters hw: acpi: Do not create hotplug method when handler is not defined hw: i386: Make the hotpluggable memory size property more generic hw: i386: Export the i386 ACPI SRAT build method hw: i386: Export the MADT build method hw: acpi: Define ACPI tables builder interface hw: i386: Implement the ACPI builder interface for PC hw: pci-host: piix: Return PCI host pointer instead of PCI bus hw: i386: Set ACPI configuration PCI host pointer Sebastien Boeuf (2): hw: acpi: Export the PCI hotplug API hw: acpi: Retrieve the PCI bus from AcpiPciHpState Yang Zhong (6): hw: acpi: Generalize AML build routines hw: acpi: Factorize _OSC AML across architectures hw: acpi: Export and generalize the PCI host AML API hw: acpi: Export the MCFG getter hw: acpi: Fix memory hotplug AML generation error hw: i386: Refactor PCI host getter hw/i386/acpi-build.h | 9 +- include/hw/acpi/acpi-defs.h | 14 + include/hw/acpi/acpi.h | 44 ++ include/hw/acpi/aml-build.h | 47 ++ include/hw/acpi/builder.h | 100 +++ include/hw/i386/acpi.h | 28 + include/hw/i386/pc.h | 49 +- include/hw/mem/memory-device.h | 2 + include/hw/pci/pci_host.h | 6 + hw/acpi/aml-build.c | 981 +++++++++++++++++++++++++++++ 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 | 93 +-- hw/i386/acpi-build.c | 1072 +++----------------------------- hw/i386/pc.c | 198 +++--- hw/i386/pc_piix.c | 36 +- hw/i386/pc_q35.c | 22 +- hw/i386/xen/xen-hvm.c | 19 +- hw/pci-host/piix.c | 32 +- stubs/pci-host-piix.c | 6 - hw/acpi/Makefile.objs | 1 + stubs/Makefile.objs | 1 - 25 files changed, 1644 insertions(+), 1261 deletions(-) create mode 100644 include/hw/acpi/builder.h create mode 100644 include/hw/i386/acpi.h create mode 100644 hw/acpi/builder.c delete mode 100644 stubs/pci-host-piix.c -- 2.19.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Ortiz Subject: [PATCH v5 00/24] ACPI reorganization for hardware-reduced API addition Date: Mon, 5 Nov 2018 02:40:23 +0100 Message-ID: <20181105014047.26447-1-sameo@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gJTta-0003Tk-7d for xen-devel@lists.xenproject.org; Mon, 05 Nov 2018 01:41:38 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: qemu-devel@nongnu.org Cc: Peter Maydell , Stefano Stabellini , Eduardo Habkost , "Michael S. Tsirkin" , Shannon Zhao , Igor Mammedov , qemu-arm@nongnu.org, Marcel Apfelbaum , Paolo Bonzini , Anthony Perard , xen-devel@lists.xenproject.org, Richard Henderson List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBzZXQgcHJvdmlkZXMgYW4gQUNQSSBjb2RlIHJlb3JnYW5pemF0aW9uIGluIHBy ZXBhcmF0aW9uIGZvcgphZGRpbmcgYSBzaGFyZWQgaGFyZHdhcmUtcmVkdWNlZCBBQ1BJIEFQSSB0 byBRRU1VLgoKVGhlIGNoYW5nZXMgYXJlIGNvbWluZyBmcm9tIHRoZSBORU1VIFsxXSBwcm9qZWN0 IHdoZXJlIHdlJ3JlIGRlZmluaW5nCmEgbmV3IHg4NiBtYWNoaW5lIHR5cGU6IGkzODYvdmlydC4g VGhpcyBpcyBhbiBFRkkgb25seSwgQUNQSQpoYXJkd2FyZS1yZWR1Y2VkIHBsYXRmb3JtIHRoYXQg aXMgYnVpbHQgb24gdG9wIG9mIGEgZ2VuZXJpYwpoYXJkd2FyZS1yZWR1Y2VkIEFDUEkgQVBJIFsy XS4gVGhpcyBBUEkgd2FzIGluaXRpYWxseSBiYXNlZCBvZmYgdGhlCmdlbmVyaWMgcGFydHMgb2Yg dGhlIGFybS92aXJ0LWFjcGktYnVpbGQuYyBpbXBsZW1lbnRhdGlvbiwgYW5kIHRoZSBnb2FsCmlz IGZvciBib3RoIGkzODYvdmlydCBhbmQgYXJtL3ZpcnQgdG8gZHVwbGljYXRlIGFzIGxpdHRsZSBj b2RlIGFzCnBvc3NpYmxlIGJ5IHVzaW5nIHRoaXMgbmV3LCBzaGFyZWQgQVBJLgoKQXMgYSBwcmVs aW1pbmFyeSBmb3IgYWRkaW5nIHRoaXMgaGFyZHdhcmUtcmVkdWNlZCBBQ1BJIEFQSSB0byBRRU1V LCB3ZSBkaWQKc29tZSBBQ1BJIGNvZGUgcmVvcmdhbml6YXRpb24gd2l0aCB0aGUgZm9sbG93aW5n IGdvYWxzOgoKKiBTaGFyZSBhcyBtdWNoIGFzIHBvc3NpYmxlIG9mIHRoZSBjdXJyZW50IEFDUEkg YnVpbGQgQVBJcyBiZXR3ZWVuCiAgbGVnYWN5IGFuZCBoYXJkd2FyZS1yZWR1Y2VkIEFDUEkuCiog U2hhcmUgdGhlIEFDUEkgYnVpbGQgY29kZSBhY3Jvc3MgbWFjaGluZSB0eXBlcyBhbmQgYXJjaGl0 ZWN0dXJlcyBhbmQKICByZW1vdmUgdGhlIHR5cGljYWwgUEMgbWFjaGluZSB0eXBlIGRlcGVuZGVu Y3kuCgpUaGUgcGF0Y2hlcyBhcmUgYWxzbyBhdmFpbGFibGUgaW4gdGhlaXIgb3duIGdpdCBicmFu Y2ggWzNdLgoKWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9pbnRlbC9uZW11ClsyXSBodHRwczovL2dp dGh1Yi5jb20vaW50ZWwvbmVtdS9ibG9iL3RvcGljL3ZpcnQteDg2L2h3L2FjcGkvcmVkdWNlZC5j ClszXSBodHRwczovL2dpdGh1Yi5jb20vaW50ZWwvbmVtdS90cmVlL3RvcGljL3Vwc3RyZWFtL2Fj cGkKCnYxIC0+IHYyOgogICAqIERyb3AgdGhlIGhhcmR3YXJlLXJlZHVjZWQgaW1wbGVtZW50YXRp b24gZm9yIG5vdy4gT3VyIG5leHQgcGF0Y2gKICAgKiBzZXQKICAgICB3aWxsIGFkZCBoYXJkd2Fy ZS1yZWR1Y2VkIGFuZCBjb252ZXJ0IGFybS92aXJ0IHRvIGl0LgogICAqIEltcGxlbWVudCB0aGUg QUNQSSBidWlsZCBtZXRob2RzIGFzIGEgUU9NIEludGVyZmFjZSBDbGFzcyBhbmQKICAgKiBjb252 ZXJ0CiAgICAgdGhlIFBDIG1hY2hpbmUgdHlwZSB0byBpdC4KICAgKiBhY3BpX2NvbmZfcGNfaW5p dCgpIHVzZXMgYSBQQ01hY2hpbmVTdGF0ZSBwb2ludGVyIGFuZCBub3QgYQogICAgIE1hY2hpbmVT dGF0ZSBvbmUgYXMgaXRzIGFyZ3VtZW50LgoKdjIgLT4gdjM6CiAgICogQ2MgYWxsIHJlbGV2YW50 IG1haW50YWluZXJzLCBubyBmdW5jdGlvbmFsIGNoYW5nZXMuCgp2MyAtPiB2NDoKICAgKiBSZW5h bWVkIGFsbCBBY3BpQ29uZmlndXJhdGlvbiBwb2ludGVycyBmcm9tIGNvbmYgdG8gYWNwaV9jb25m LgogICAqIFJlbW92ZWQgdGhlIEFDUElfQlVJTERfQUxJR05fU0laRSBleHBvcnQuCiAgICogVGVt cG9yYXJpbHkgdXBkYXRlZCB0aGUgYXJtIHZpcnQgYnVpbGRfcnNkcCgpIHByb3RvdHlwZSBmb3IK ICAgICBiaXNlY3RhYmlsaXR5IHB1cnBvc2VzLgogICAqIFJlbW92ZWQgdW5uZWVkZWQgcGNpIGhl YWRlcnMgZnJvbSBhY3BpLWJ1aWxkLmMuCiAgICogUmVmYWN0b3IgdGhlIGFjcGkgUENJIGhvc3Qg Z2V0dGVyIHNvIHRoYXQgaXQgdHJ1bHkgaXMgYXJjaGl0ZWN0dXJlCiAgICAgYWdub3N0aWMsIGJ5 IGNhcnJ5aW5nIHRoZSBQQ0kgaG9zdCBwb2ludGVyIHRocm91Z2ggdGhlCiAgICAgQWNwaUNvbmZp Z3VyYXRpb24gc3RydWN0dXJlLgogICAqIFNwbGl0dGVkIHRoZSBQQ0kgaG9zdCBBTUwgYnVpbGRl ciBBUEkgZXhwb3J0IHBhdGNoIGZyb20gdGhlIFBDSQogICAgIGhvc3QgYW5kIGhvbGVzIGdldHRl ciBvbmUuCiAgICogUmVkdWNlZCB0aGUgYnVpbGRfc3JhdCgpIGV4cG9ydCBzY29wZSB0byBody9p Mzg2IGluc3RlYWQgb2YgdGhlCiAgICAgYnJvYWRlciBody9hY3BpLiBTUkFUIGJ1aWxkZXJzIGFy ZSB0cnVseSBhcmNoaXRlY3R1cmUgc3BlY2lmaWMKICAgICBhbmQgY2FuIGhhcmRseSBiZSBnZW5l cmFsaXplZC4KICAgKiBDb21wbGV0ZWQgdGhlIEFDUEkgYnVpbGRlciBkb2N1bWVudGF0aW9uLgoK djQgLT4gdjU6CiAgICogUmVvcmdhbml6ZSB0aGUgQUNQSSBSU0RQIGV4cG9ydCBhbmQgWFNEVCBp bXBsZW1lbnRhdGlvbiBpbnRvIDMKICAgICBwYXRjaGVzLgogICAqIEZpeCB0aGUgaHcvaTM4Ni9h Y3BpIGhlYWRlciBpbmNsdXNpb25zLgoKU2FtdWVsIE9ydGl6ICgxNik6CiAgaHc6IGkzODY6IERl Y291cGxlIHRoZSBBQ1BJIGJ1aWxkIGZyb20gdGhlIFBDIG1hY2hpbmUgdHlwZQogIGh3OiBhY3Bp OiBFeHBvcnQgQUNQSSBidWlsZCBhbGlnbm1lbnQgQVBJCiAgaHc6IGFjcGk6IFRoZSBSU0RQIGJ1 aWxkIEFQSSBjYW4gcmV0dXJuIHZvaWQKICBodzogYWNwaTogRXhwb3J0IHRoZSBSU0RQIGJ1aWxk IEFQSQogIGh3OiBhY3BpOiBJbXBsZW1lbnQgWFNEVCBzdXBwb3J0IGZvciBSU0RQCiAgaHc6IGFj cGk6IEZhY3Rvcml6ZSB0aGUgUlNEUCBidWlsZCBBUEkgaW1wbGVtZW50YXRpb24KICBodzogaTM4 NjogTW92ZSBQQ0kgaG9zdCBkZWZpbml0aW9ucyB0byBwY2lfaG9zdC5oCiAgaHc6IGFjcGk6IEV4 cG9ydCB0aGUgUENJIGhvc3QgYW5kIGhvbGVzIGdldHRlcnMKICBodzogYWNwaTogRG8gbm90IGNy ZWF0ZSBob3RwbHVnIG1ldGhvZCB3aGVuIGhhbmRsZXIgaXMgbm90IGRlZmluZWQKICBodzogaTM4 NjogTWFrZSB0aGUgaG90cGx1Z2dhYmxlIG1lbW9yeSBzaXplIHByb3BlcnR5IG1vcmUgZ2VuZXJp YwogIGh3OiBpMzg2OiBFeHBvcnQgdGhlIGkzODYgQUNQSSBTUkFUIGJ1aWxkIG1ldGhvZAogIGh3 OiBpMzg2OiBFeHBvcnQgdGhlIE1BRFQgYnVpbGQgbWV0aG9kCiAgaHc6IGFjcGk6IERlZmluZSBB Q1BJIHRhYmxlcyBidWlsZGVyIGludGVyZmFjZQogIGh3OiBpMzg2OiBJbXBsZW1lbnQgdGhlIEFD UEkgYnVpbGRlciBpbnRlcmZhY2UgZm9yIFBDCiAgaHc6IHBjaS1ob3N0OiBwaWl4OiBSZXR1cm4g UENJIGhvc3QgcG9pbnRlciBpbnN0ZWFkIG9mIFBDSSBidXMKICBodzogaTM4NjogU2V0IEFDUEkg Y29uZmlndXJhdGlvbiBQQ0kgaG9zdCBwb2ludGVyCgpTZWJhc3RpZW4gQm9ldWYgKDIpOgogIGh3 OiBhY3BpOiBFeHBvcnQgdGhlIFBDSSBob3RwbHVnIEFQSQogIGh3OiBhY3BpOiBSZXRyaWV2ZSB0 aGUgUENJIGJ1cyBmcm9tIEFjcGlQY2lIcFN0YXRlCgpZYW5nIFpob25nICg2KToKICBodzogYWNw aTogR2VuZXJhbGl6ZSBBTUwgYnVpbGQgcm91dGluZXMKICBodzogYWNwaTogRmFjdG9yaXplIF9P U0MgQU1MIGFjcm9zcyBhcmNoaXRlY3R1cmVzCiAgaHc6IGFjcGk6IEV4cG9ydCBhbmQgZ2VuZXJh bGl6ZSB0aGUgUENJIGhvc3QgQU1MIEFQSQogIGh3OiBhY3BpOiBFeHBvcnQgdGhlIE1DRkcgZ2V0 dGVyCiAgaHc6IGFjcGk6IEZpeCBtZW1vcnkgaG90cGx1ZyBBTUwgZ2VuZXJhdGlvbiBlcnJvcgog IGh3OiBpMzg2OiBSZWZhY3RvciBQQ0kgaG9zdCBnZXR0ZXIKCiBody9pMzg2L2FjcGktYnVpbGQu aCAgICAgICAgICAgfCAgICA5ICstCiBpbmNsdWRlL2h3L2FjcGkvYWNwaS1kZWZzLmggICAgfCAg IDE0ICsKIGluY2x1ZGUvaHcvYWNwaS9hY3BpLmggICAgICAgICB8ICAgNDQgKysKIGluY2x1ZGUv aHcvYWNwaS9hbWwtYnVpbGQuaCAgICB8ICAgNDcgKysKIGluY2x1ZGUvaHcvYWNwaS9idWlsZGVy LmggICAgICB8ICAxMDAgKysrCiBpbmNsdWRlL2h3L2kzODYvYWNwaS5oICAgICAgICAgfCAgIDI4 ICsKIGluY2x1ZGUvaHcvaTM4Ni9wYy5oICAgICAgICAgICB8ICAgNDkgKy0KIGluY2x1ZGUvaHcv bWVtL21lbW9yeS1kZXZpY2UuaCB8ICAgIDIgKwogaW5jbHVkZS9ody9wY2kvcGNpX2hvc3QuaCAg ICAgIHwgICAgNiArCiBody9hY3BpL2FtbC1idWlsZC5jICAgICAgICAgICAgfCAgOTgxICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiBody9hY3BpL2J1aWxkZXIuYyAgICAgICAgICAgICAg fCAgIDk3ICsrKwogaHcvYWNwaS9jcHUuYyAgICAgICAgICAgICAgICAgIHwgICAgOCArLQogaHcv YWNwaS9jcHVfaG90cGx1Zy5jICAgICAgICAgIHwgICAgOSArLQogaHcvYWNwaS9tZW1vcnlfaG90 cGx1Zy5jICAgICAgIHwgICAyMSArLQogaHcvYWNwaS9wY2locC5jICAgICAgICAgICAgICAgIHwg ICAxMCArLQogaHcvYXJtL3ZpcnQtYWNwaS1idWlsZC5jICAgICAgIHwgICA5MyArLS0KIGh3L2kz ODYvYWNwaS1idWlsZC5jICAgICAgICAgICB8IDEwNzIgKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIGh3L2kzODYvcGMuYyAgICAgICAgICAgICAgICAgICB8ICAxOTggKysrLS0tCiBo dy9pMzg2L3BjX3BpaXguYyAgICAgICAgICAgICAgfCAgIDM2ICstCiBody9pMzg2L3BjX3EzNS5j ICAgICAgICAgICAgICAgfCAgIDIyICstCiBody9pMzg2L3hlbi94ZW4taHZtLmMgICAgICAgICAg fCAgIDE5ICstCiBody9wY2ktaG9zdC9waWl4LmMgICAgICAgICAgICAgfCAgIDMyICstCiBzdHVi cy9wY2ktaG9zdC1waWl4LmMgICAgICAgICAgfCAgICA2IC0KIGh3L2FjcGkvTWFrZWZpbGUub2Jq cyAgICAgICAgICB8ICAgIDEgKwogc3R1YnMvTWFrZWZpbGUub2JqcyAgICAgICAgICAgIHwgICAg MSAtCiAyNSBmaWxlcyBjaGFuZ2VkLCAxNjQ0IGluc2VydGlvbnMoKyksIDEyNjEgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9ody9hY3BpL2J1aWxkZXIuaAogY3JlYXRl IG1vZGUgMTAwNjQ0IGluY2x1ZGUvaHcvaTM4Ni9hY3BpLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBo dy9hY3BpL2J1aWxkZXIuYwogZGVsZXRlIG1vZGUgMTAwNjQ0IHN0dWJzL3BjaS1ob3N0LXBpaXgu YwoKLS0gCjIuMTkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2 ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46642) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gJTtf-0005zV-TM for qemu-devel@nongnu.org; Sun, 04 Nov 2018 20:41:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gJTta-0000nY-U8 for qemu-devel@nongnu.org; Sun, 04 Nov 2018 20:41:43 -0500 From: Samuel Ortiz Date: Mon, 5 Nov 2018 02:40:23 +0100 Message-Id: <20181105014047.26447-1-sameo@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [Qemu-devel] [PATCH v5 00/24] ACPI reorganization for hardware-reduced API addition List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Shannon Zhao , Stefano Stabellini , Anthony Perard , Richard Henderson , Marcel Apfelbaum , xen-devel@lists.xenproject.org, Paolo Bonzini , "Michael S. Tsirkin" , Igor Mammedov , qemu-arm@nongnu.org, Peter Maydell , Eduardo Habkost This patch set provides an ACPI code reorganization in preparation for adding a shared hardware-reduced ACPI API 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 that is built on top of a generic hardware-reduced ACPI API [2]. This API was initially based off the generic parts of the arm/virt-acpi-build.c implementation, and the goal is for both i386/virt and arm/virt to duplicate as little code as possible by using this new, shared API. As a preliminary for adding this hardware-reduced ACPI API 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. The patches are also available in their own git branch [3]. [1] https://github.com/intel/nemu [2] https://github.com/intel/nemu/blob/topic/virt-x86/hw/acpi/reduced.c [3] 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. v3 -> v4: * Renamed all AcpiConfiguration pointers from conf to acpi_conf. * Removed the ACPI_BUILD_ALIGN_SIZE export. * Temporarily updated the arm virt build_rsdp() prototype for bisectability purposes. * Removed unneeded pci headers from acpi-build.c. * Refactor the acpi PCI host getter so that it truly is architecture agnostic, by carrying the PCI host pointer through the AcpiConfiguration structure. * Splitted the PCI host AML builder API export patch from the PCI host and holes getter one. * Reduced the build_srat() export scope to hw/i386 instead of the broader hw/acpi. SRAT builders are truly architecture specific and can hardly be generalized. * Completed the ACPI builder documentation. v4 -> v5: * Reorganize the ACPI RSDP export and XSDT implementation into 3 patches. * Fix the hw/i386/acpi header inclusions. Samuel Ortiz (16): hw: i386: Decouple the ACPI build from the PC machine type hw: acpi: Export ACPI build alignment API hw: acpi: The RSDP build API can return void hw: acpi: Export the RSDP build API hw: acpi: Implement XSDT support for RSDP hw: acpi: Factorize the RSDP build API implementation hw: i386: Move PCI host definitions to pci_host.h hw: acpi: Export the PCI host and holes getters hw: acpi: Do not create hotplug method when handler is not defined hw: i386: Make the hotpluggable memory size property more generic hw: i386: Export the i386 ACPI SRAT build method hw: i386: Export the MADT build method hw: acpi: Define ACPI tables builder interface hw: i386: Implement the ACPI builder interface for PC hw: pci-host: piix: Return PCI host pointer instead of PCI bus hw: i386: Set ACPI configuration PCI host pointer Sebastien Boeuf (2): hw: acpi: Export the PCI hotplug API hw: acpi: Retrieve the PCI bus from AcpiPciHpState Yang Zhong (6): hw: acpi: Generalize AML build routines hw: acpi: Factorize _OSC AML across architectures hw: acpi: Export and generalize the PCI host AML API hw: acpi: Export the MCFG getter hw: acpi: Fix memory hotplug AML generation error hw: i386: Refactor PCI host getter hw/i386/acpi-build.h | 9 +- include/hw/acpi/acpi-defs.h | 14 + include/hw/acpi/acpi.h | 44 ++ include/hw/acpi/aml-build.h | 47 ++ include/hw/acpi/builder.h | 100 +++ include/hw/i386/acpi.h | 28 + include/hw/i386/pc.h | 49 +- include/hw/mem/memory-device.h | 2 + include/hw/pci/pci_host.h | 6 + hw/acpi/aml-build.c | 981 +++++++++++++++++++++++++++++ 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 | 93 +-- hw/i386/acpi-build.c | 1072 +++----------------------------- hw/i386/pc.c | 198 +++--- hw/i386/pc_piix.c | 36 +- hw/i386/pc_q35.c | 22 +- hw/i386/xen/xen-hvm.c | 19 +- hw/pci-host/piix.c | 32 +- stubs/pci-host-piix.c | 6 - hw/acpi/Makefile.objs | 1 + stubs/Makefile.objs | 1 - 25 files changed, 1644 insertions(+), 1261 deletions(-) create mode 100644 include/hw/acpi/builder.h create mode 100644 include/hw/i386/acpi.h create mode 100644 hw/acpi/builder.c delete mode 100644 stubs/pci-host-piix.c -- 2.19.1