From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 2002:adf:a111:0:0:0:0:0 with SMTP id o17-v6csp2033302wro; Sun, 4 Nov 2018 17:47:48 -0800 (PST) X-Google-Smtp-Source: AJdET5cG5H2e5h3Dyqxp1de2uj/5VYPD3A/SMlE2FgJaS7ytdp5gYeK0xdNZewikDld379b0rxiA X-Received: by 2002:ac8:fd4:: with SMTP id f20mr18902182qtk.63.1541382468218; Sun, 04 Nov 2018 17:47:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541382468; cv=none; d=google.com; s=arc-20160816; b=VVxm4cHYd8aWLYY4z5hzU0xPi6Bkn0fKzUiUk/vsU4BbfWf1JYX3Gvb822ozJLqrvT Sqkg1IyRhO+85ewDZVgvFupaWKsIlo9OhQuNpnQLLbzHzd8xRpPk63adqf1m75jj9fsZ sM8sTNXIqC6uLSs1gWK3cmICpsevZGjSpz4cNT/hdkj096c0z8mTY3A4lVAsENpt/Ame EUirA5eoO4pigOovDslIfXU3/vsND2e1kmkfBssl/8t97D5oIhKgT87WRUDTu4aWdU/D qFnjng0WnDuB8JryfqgJfdNhPsDd0nC0Abg1ybY2lzQeu4ziwdhTy6Rhxp24hU2YQ8wB lSsg== 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:references:in-reply-to :message-id:date:to:from; bh=YXDej9a6aDLfEdgj5iTdCe1Oj9lIsrZizHPsQ1fFa7A=; b=ixzLhj8AtnW7traKOulIkGmdgsvM2vizAklhqty4285eInSb4yj8gorO8MV2arWV9L EjXmkutspTPn3mtdFAGUL2p29FH0TyBQTSMNdzxRyquhQaawaqLOe+njR77qI3M5z7Vj f4lV2HMx1N0+G2fSsRzwOI9VzW1ZMKpDfwId4bbXEZwRhE02IeeOZyrqLbBsyh+NowQS W9k16bfaFKAkjDe4BCYU6Nby8BPTBd2O8vCcVRtWhdUG8/b/5i5Ibdd9GWPi7UjRGRZX AWg0rfvBY7J42mJFg5WF31QWiBUzJMI2AwNwM0yZYadwSWlbVEQFNESlpbnbNcGzo2z2 lp2g== 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 j13si2121295qtk.203.2018.11.04.17.47.48 for (version=TLS1 cipher=AES128-SHA bits=128/128); Sun, 04 Nov 2018 17:47:48 -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]:60875 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gJTzX-0003ZV-MG for alex.bennee@linaro.org; Sun, 04 Nov 2018 20:47:47 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47067) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gJTul-0007qK-AP for qemu-arm@nongnu.org; Sun, 04 Nov 2018 20:42:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gJTuf-0002t5-Ni for qemu-arm@nongnu.org; Sun, 04 Nov 2018 20:42:51 -0500 Received: from mga05.intel.com ([192.55.52.43]:26654) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gJTuf-0002o9-DL; Sun, 04 Nov 2018 20:42:45 -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 fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Nov 2018 17:42:41 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,466,1534834800"; d="scan'208";a="277074384" 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:42:36 -0800 From: Samuel Ortiz To: qemu-devel@nongnu.org Date: Mon, 5 Nov 2018 02:40:35 +0100 Message-Id: <20181105014047.26447-13-sameo@linux.intel.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181105014047.26447-1-sameo@linux.intel.com> References: <20181105014047.26447-1-sameo@linux.intel.com> 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: 192.55.52.43 Subject: [Qemu-arm] [PATCH v5 12/24] hw: acpi: Export the MCFG getter 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: Yang Zhong , 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: hKSQZ5M9BiXp From: Yang Zhong The ACPI MCFG getter is not x86 specific and could be called from anywhere within generic ACPI API, so let's export it. Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Signed-off-by: Yang Zhong --- include/hw/acpi/aml-build.h | 1 + hw/acpi/aml-build.c | 24 ++++++++++++++++++++++++ hw/i386/acpi-build.c | 22 ---------------------- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/include/hw/acpi/aml-build.h b/include/hw/acpi/aml-build.h index 1861e37ebf..64ea371656 100644 --- a/include/hw/acpi/aml-build.h +++ b/include/hw/acpi/aml-build.h @@ -408,6 +408,7 @@ void *acpi_data_push(GArray *table_data, unsigned size); unsigned acpi_data_len(GArray *table); Object *acpi_get_pci_host(void); void acpi_get_pci_holes(Range *hole, Range *hole64); +bool acpi_get_mcfg(AcpiMcfgInfo *mcfg); /* Align AML blob size to a multiple of 'align' */ void acpi_align_size(GArray *blob, unsigned align); void acpi_add_table(GArray *table_offsets, GArray *table_data); diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c index 869ed70db3..2c5446ab23 100644 --- a/hw/acpi/aml-build.c +++ b/hw/acpi/aml-build.c @@ -32,6 +32,8 @@ #include "hw/i386/pc.h" #include "sysemu/tpm.h" #include "hw/acpi/tpm.h" +#include "qom/qom-qobject.h" +#include "qapi/qmp/qnum.h" #define PCI_HOST_BRIDGE_CONFIG_ADDR 0xcf8 #define PCI_HOST_BRIDGE_IO_0_MIN_ADDR 0x0000 @@ -1657,6 +1659,28 @@ void acpi_get_pci_holes(Range *hole, Range *hole64) NULL)); } +bool acpi_get_mcfg(AcpiMcfgInfo *mcfg) +{ + Object *pci_host; + QObject *o; + + pci_host = acpi_get_pci_host(); + g_assert(pci_host); + + o = object_property_get_qobject(pci_host, PCIE_HOST_MCFG_BASE, NULL); + if (!o) { + return false; + } + mcfg->mcfg_base = qnum_get_uint(qobject_to(QNum, o)); + qobject_unref(o); + + o = object_property_get_qobject(pci_host, PCIE_HOST_MCFG_SIZE, NULL); + assert(o); + mcfg->mcfg_size = qnum_get_uint(qobject_to(QNum, o)); + qobject_unref(o); + return true; +} + static void crs_range_insert(GPtrArray *ranges, uint64_t base, uint64_t limit) { CrsRangeEntry *entry; diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 14e2624d14..d8bba16776 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -1856,28 +1856,6 @@ build_amd_iommu(GArray *table_data, BIOSLinker *linker) "IVRS", table_data->len - iommu_start, 1, NULL, NULL); } -static bool acpi_get_mcfg(AcpiMcfgInfo *mcfg) -{ - Object *pci_host; - QObject *o; - - pci_host = acpi_get_pci_host(); - g_assert(pci_host); - - o = object_property_get_qobject(pci_host, PCIE_HOST_MCFG_BASE, NULL); - if (!o) { - return false; - } - mcfg->mcfg_base = qnum_get_uint(qobject_to(QNum, o)); - qobject_unref(o); - - o = object_property_get_qobject(pci_host, PCIE_HOST_MCFG_SIZE, NULL); - assert(o); - mcfg->mcfg_size = qnum_get_uint(qobject_to(QNum, o)); - qobject_unref(o); - return true; -} - static void acpi_build(AcpiBuildTables *tables, MachineState *machine, AcpiConfiguration *acpi_conf) -- 2.19.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Ortiz Subject: [PATCH v5 12/24] hw: acpi: Export the MCFG getter Date: Mon, 5 Nov 2018 02:40:35 +0100 Message-ID: <20181105014047.26447-13-sameo@linux.intel.com> References: <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 all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gJTud-0003w6-NN for xen-devel@lists.xenproject.org; Mon, 05 Nov 2018 01:42:43 +0000 In-Reply-To: <20181105014047.26447-1-sameo@linux.intel.com> 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: Yang Zhong , 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 RnJvbTogWWFuZyBaaG9uZyA8eWFuZy56aG9uZ0BpbnRlbC5jb20+CgpUaGUgQUNQSSBNQ0ZHIGdl dHRlciBpcyBub3QgeDg2IHNwZWNpZmljIGFuZCBjb3VsZCBiZSBjYWxsZWQgZnJvbQphbnl3aGVy ZSB3aXRoaW4gZ2VuZXJpYyBBQ1BJIEFQSSwgc28gbGV0J3MgZXhwb3J0IGl0LgoKUmV2aWV3ZWQt Ynk6IFBoaWxpcHBlIE1hdGhpZXUtRGF1ZMOpIDxwaGlsbWRAcmVkaGF0LmNvbT4KVGVzdGVkLWJ5 OiBQaGlsaXBwZSBNYXRoaWV1LURhdWTDqSA8cGhpbG1kQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYt Ynk6IFlhbmcgWmhvbmcgPHlhbmcuemhvbmdAaW50ZWwuY29tPgotLS0KIGluY2x1ZGUvaHcvYWNw aS9hbWwtYnVpbGQuaCB8ICAxICsKIGh3L2FjcGkvYW1sLWJ1aWxkLmMgICAgICAgICB8IDI0ICsr KysrKysrKysrKysrKysrKysrKysrKwogaHcvaTM4Ni9hY3BpLWJ1aWxkLmMgICAgICAgIHwgMjIg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCsp LCAyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L2FjcGkvYW1sLWJ1aWxk LmggYi9pbmNsdWRlL2h3L2FjcGkvYW1sLWJ1aWxkLmgKaW5kZXggMTg2MWUzN2ViZi4uNjRlYTM3 MTY1NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ody9hY3BpL2FtbC1idWlsZC5oCisrKyBiL2luY2x1 ZGUvaHcvYWNwaS9hbWwtYnVpbGQuaApAQCAtNDA4LDYgKzQwOCw3IEBAIHZvaWQgKmFjcGlfZGF0 YV9wdXNoKEdBcnJheSAqdGFibGVfZGF0YSwgdW5zaWduZWQgc2l6ZSk7CiB1bnNpZ25lZCBhY3Bp X2RhdGFfbGVuKEdBcnJheSAqdGFibGUpOwogT2JqZWN0ICphY3BpX2dldF9wY2lfaG9zdCh2b2lk KTsKIHZvaWQgYWNwaV9nZXRfcGNpX2hvbGVzKFJhbmdlICpob2xlLCBSYW5nZSAqaG9sZTY0KTsK K2Jvb2wgYWNwaV9nZXRfbWNmZyhBY3BpTWNmZ0luZm8gKm1jZmcpOwogLyogQWxpZ24gQU1MIGJs b2Igc2l6ZSB0byBhIG11bHRpcGxlIG9mICdhbGlnbicgKi8KIHZvaWQgYWNwaV9hbGlnbl9zaXpl KEdBcnJheSAqYmxvYiwgdW5zaWduZWQgYWxpZ24pOwogdm9pZCBhY3BpX2FkZF90YWJsZShHQXJy YXkgKnRhYmxlX29mZnNldHMsIEdBcnJheSAqdGFibGVfZGF0YSk7CmRpZmYgLS1naXQgYS9ody9h Y3BpL2FtbC1idWlsZC5jIGIvaHcvYWNwaS9hbWwtYnVpbGQuYwppbmRleCA4NjllZDcwZGIzLi4y YzU0NDZhYjIzIDEwMDY0NAotLS0gYS9ody9hY3BpL2FtbC1idWlsZC5jCisrKyBiL2h3L2FjcGkv YW1sLWJ1aWxkLmMKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJody9pMzg2L3BjLmgiCiAj aW5jbHVkZSAic3lzZW11L3RwbS5oIgogI2luY2x1ZGUgImh3L2FjcGkvdHBtLmgiCisjaW5jbHVk ZSAicW9tL3FvbS1xb2JqZWN0LmgiCisjaW5jbHVkZSAicWFwaS9xbXAvcW51bS5oIgogCiAjZGVm aW5lIFBDSV9IT1NUX0JSSURHRV9DT05GSUdfQUREUiAgICAgICAgMHhjZjgKICNkZWZpbmUgUENJ X0hPU1RfQlJJREdFX0lPXzBfTUlOX0FERFIgICAgICAweDAwMDAKQEAgLTE2NTcsNiArMTY1OSwy OCBAQCB2b2lkIGFjcGlfZ2V0X3BjaV9ob2xlcyhSYW5nZSAqaG9sZSwgUmFuZ2UgKmhvbGU2NCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCkpOwog fQogCitib29sIGFjcGlfZ2V0X21jZmcoQWNwaU1jZmdJbmZvICptY2ZnKQoreworICAgIE9iamVj dCAqcGNpX2hvc3Q7CisgICAgUU9iamVjdCAqbzsKKworICAgIHBjaV9ob3N0ID0gYWNwaV9nZXRf cGNpX2hvc3QoKTsKKyAgICBnX2Fzc2VydChwY2lfaG9zdCk7CisKKyAgICBvID0gb2JqZWN0X3By b3BlcnR5X2dldF9xb2JqZWN0KHBjaV9ob3N0LCBQQ0lFX0hPU1RfTUNGR19CQVNFLCBOVUxMKTsK KyAgICBpZiAoIW8pIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBtY2ZnLT5t Y2ZnX2Jhc2UgPSBxbnVtX2dldF91aW50KHFvYmplY3RfdG8oUU51bSwgbykpOworICAgIHFvYmpl Y3RfdW5yZWYobyk7CisKKyAgICBvID0gb2JqZWN0X3Byb3BlcnR5X2dldF9xb2JqZWN0KHBjaV9o b3N0LCBQQ0lFX0hPU1RfTUNGR19TSVpFLCBOVUxMKTsKKyAgICBhc3NlcnQobyk7CisgICAgbWNm Zy0+bWNmZ19zaXplID0gcW51bV9nZXRfdWludChxb2JqZWN0X3RvKFFOdW0sIG8pKTsKKyAgICBx b2JqZWN0X3VucmVmKG8pOworICAgIHJldHVybiB0cnVlOworfQorCiBzdGF0aWMgdm9pZCBjcnNf cmFuZ2VfaW5zZXJ0KEdQdHJBcnJheSAqcmFuZ2VzLCB1aW50NjRfdCBiYXNlLCB1aW50NjRfdCBs aW1pdCkKIHsKICAgICBDcnNSYW5nZUVudHJ5ICplbnRyeTsKZGlmZiAtLWdpdCBhL2h3L2kzODYv YWNwaS1idWlsZC5jIGIvaHcvaTM4Ni9hY3BpLWJ1aWxkLmMKaW5kZXggMTRlMjYyNGQxNC4uZDhi YmExNjc3NiAxMDA2NDQKLS0tIGEvaHcvaTM4Ni9hY3BpLWJ1aWxkLmMKKysrIGIvaHcvaTM4Ni9h Y3BpLWJ1aWxkLmMKQEAgLTE4NTYsMjggKzE4NTYsNiBAQCBidWlsZF9hbWRfaW9tbXUoR0FycmF5 ICp0YWJsZV9kYXRhLCBCSU9TTGlua2VyICpsaW5rZXIpCiAgICAgICAgICAgICAgICAgICJJVlJT IiwgdGFibGVfZGF0YS0+bGVuIC0gaW9tbXVfc3RhcnQsIDEsIE5VTEwsIE5VTEwpOwogfQogCi1z dGF0aWMgYm9vbCBhY3BpX2dldF9tY2ZnKEFjcGlNY2ZnSW5mbyAqbWNmZykKLXsKLSAgICBPYmpl Y3QgKnBjaV9ob3N0OwotICAgIFFPYmplY3QgKm87Ci0KLSAgICBwY2lfaG9zdCA9IGFjcGlfZ2V0 X3BjaV9ob3N0KCk7Ci0gICAgZ19hc3NlcnQocGNpX2hvc3QpOwotCi0gICAgbyA9IG9iamVjdF9w cm9wZXJ0eV9nZXRfcW9iamVjdChwY2lfaG9zdCwgUENJRV9IT1NUX01DRkdfQkFTRSwgTlVMTCk7 Ci0gICAgaWYgKCFvKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgbWNmZy0+ bWNmZ19iYXNlID0gcW51bV9nZXRfdWludChxb2JqZWN0X3RvKFFOdW0sIG8pKTsKLSAgICBxb2Jq ZWN0X3VucmVmKG8pOwotCi0gICAgbyA9IG9iamVjdF9wcm9wZXJ0eV9nZXRfcW9iamVjdChwY2lf aG9zdCwgUENJRV9IT1NUX01DRkdfU0laRSwgTlVMTCk7Ci0gICAgYXNzZXJ0KG8pOwotICAgIG1j ZmctPm1jZmdfc2l6ZSA9IHFudW1fZ2V0X3VpbnQocW9iamVjdF90byhRTnVtLCBvKSk7Ci0gICAg cW9iamVjdF91bnJlZihvKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogc3RhdGljCiB2b2lkIGFj cGlfYnVpbGQoQWNwaUJ1aWxkVGFibGVzICp0YWJsZXMsCiAgICAgICAgICAgICAgICAgTWFjaGlu ZVN0YXRlICptYWNoaW5lLCBBY3BpQ29uZmlndXJhdGlvbiAqYWNwaV9jb25mKQotLSAKMi4xOS4x CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9s aXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47098) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gJTup-0007xC-2x for qemu-devel@nongnu.org; Sun, 04 Nov 2018 20:42:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gJTun-00033j-4v for qemu-devel@nongnu.org; Sun, 04 Nov 2018 20:42:54 -0500 From: Samuel Ortiz Date: Mon, 5 Nov 2018 02:40:35 +0100 Message-Id: <20181105014047.26447-13-sameo@linux.intel.com> In-Reply-To: <20181105014047.26447-1-sameo@linux.intel.com> References: <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 12/24] hw: acpi: Export the MCFG getter 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 , Yang Zhong From: Yang Zhong The ACPI MCFG getter is not x86 specific and could be called from anywhere within generic ACPI API, so let's export it. Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Signed-off-by: Yang Zhong --- include/hw/acpi/aml-build.h | 1 + hw/acpi/aml-build.c | 24 ++++++++++++++++++++++++ hw/i386/acpi-build.c | 22 ---------------------- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/include/hw/acpi/aml-build.h b/include/hw/acpi/aml-build.h index 1861e37ebf..64ea371656 100644 --- a/include/hw/acpi/aml-build.h +++ b/include/hw/acpi/aml-build.h @@ -408,6 +408,7 @@ void *acpi_data_push(GArray *table_data, unsigned size); unsigned acpi_data_len(GArray *table); Object *acpi_get_pci_host(void); void acpi_get_pci_holes(Range *hole, Range *hole64); +bool acpi_get_mcfg(AcpiMcfgInfo *mcfg); /* Align AML blob size to a multiple of 'align' */ void acpi_align_size(GArray *blob, unsigned align); void acpi_add_table(GArray *table_offsets, GArray *table_data); diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c index 869ed70db3..2c5446ab23 100644 --- a/hw/acpi/aml-build.c +++ b/hw/acpi/aml-build.c @@ -32,6 +32,8 @@ #include "hw/i386/pc.h" #include "sysemu/tpm.h" #include "hw/acpi/tpm.h" +#include "qom/qom-qobject.h" +#include "qapi/qmp/qnum.h" #define PCI_HOST_BRIDGE_CONFIG_ADDR 0xcf8 #define PCI_HOST_BRIDGE_IO_0_MIN_ADDR 0x0000 @@ -1657,6 +1659,28 @@ void acpi_get_pci_holes(Range *hole, Range *hole64) NULL)); } +bool acpi_get_mcfg(AcpiMcfgInfo *mcfg) +{ + Object *pci_host; + QObject *o; + + pci_host = acpi_get_pci_host(); + g_assert(pci_host); + + o = object_property_get_qobject(pci_host, PCIE_HOST_MCFG_BASE, NULL); + if (!o) { + return false; + } + mcfg->mcfg_base = qnum_get_uint(qobject_to(QNum, o)); + qobject_unref(o); + + o = object_property_get_qobject(pci_host, PCIE_HOST_MCFG_SIZE, NULL); + assert(o); + mcfg->mcfg_size = qnum_get_uint(qobject_to(QNum, o)); + qobject_unref(o); + return true; +} + static void crs_range_insert(GPtrArray *ranges, uint64_t base, uint64_t limit) { CrsRangeEntry *entry; diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 14e2624d14..d8bba16776 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -1856,28 +1856,6 @@ build_amd_iommu(GArray *table_data, BIOSLinker *linker) "IVRS", table_data->len - iommu_start, 1, NULL, NULL); } -static bool acpi_get_mcfg(AcpiMcfgInfo *mcfg) -{ - Object *pci_host; - QObject *o; - - pci_host = acpi_get_pci_host(); - g_assert(pci_host); - - o = object_property_get_qobject(pci_host, PCIE_HOST_MCFG_BASE, NULL); - if (!o) { - return false; - } - mcfg->mcfg_base = qnum_get_uint(qobject_to(QNum, o)); - qobject_unref(o); - - o = object_property_get_qobject(pci_host, PCIE_HOST_MCFG_SIZE, NULL); - assert(o); - mcfg->mcfg_size = qnum_get_uint(qobject_to(QNum, o)); - qobject_unref(o); - return true; -} - static void acpi_build(AcpiBuildTables *tables, MachineState *machine, AcpiConfiguration *acpi_conf) -- 2.19.1