From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 2002:a5d:6844:0:0:0:0:0 with SMTP id o4-v6csp6954426wrw; Thu, 15 Nov 2018 04:37:26 -0800 (PST) X-Google-Smtp-Source: AJdET5cwA9pen480BNvylxJXwbMO9DbdEvx9MpbgdREwFP+sCXRpbukx5+C7RsUeu5KiMtCUZXCD X-Received: by 2002:ac8:4611:: with SMTP id p17mr5842224qtn.263.1542285446667; Thu, 15 Nov 2018 04:37:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542285446; cv=none; d=google.com; s=arc-20160816; b=o6WCM0HQFatGyqSq7+IRmtDUWAeLN51+Ar+OSG6XCBJ/qFx+lUktuXS3lIuIXJXmGe MNiqTPKOK183YUk5RBz3mYs7d31u8JBi+oolI2TPVw0TChdxEa4dmhzrf0f3JIV6yagx MiqVGAi8U4/K/fE07dnAd69mWtwrYVGqEKkk3RQ0nqKIFZj+IkKuo4gu2Oy491byQoVb WhCUD+oI8KVhk8iY90sDdKSHAiUOZJs9gpU7jvE+nTW3BT4vaFaBJbpoNJaHrRUvq9WX leAsh5rJ+BQomupWwcQzONFSnaU1TXKi9smVMftmkvSYvysMvOVQbdlni3wy2tGaQ/gI FWTA== 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:to:from:date; bh=lNY/SdxT2O9hhqsMF2dzEtFJEXpKk8KvfbwtKDIpsTY=; b=gBgbOvGxcPyN4LBmZvs63yMlhlHUKSjRiib9gtvnnaFm4oCzYey89KWrsmfmVIoPVO zYY12+Z/z05VsDI8qJYl0ZfwvuAAZiOY/j+YbH9M9S/Cu7O6KMUZO3EjVhKu8zgriezI y9oUCTLU04ERecK/dUtf0g4U1DRQ4hvCLPNp1F5gRJC0sjxIeZ2ac73etGpqBSYUPNje 9NCpFTomGJYYyzyvAJmW7TUHtow1fQRGQjhz2R4627TcQD9t8Bwln5FNu8TfwXN3itld bxWjyCD+E5LK9E7llIl/nmLUV+gOmfGzzg2gHeF8cxE5OWqBbVVVrZfroCYNlveKalCH VgLw== 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=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id m23si5298597qtn.236.2018.11.15.04.37.26 for (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 15 Nov 2018 04:37:26 -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=redhat.com Received: from localhost ([::1]:38418 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gNGti-00084E-0z for alex.bennee@linaro.org; Thu, 15 Nov 2018 07:37:26 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57591) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gNGtU-00082E-4R for qemu-arm@nongnu.org; Thu, 15 Nov 2018 07:37:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gNGtQ-0007pk-Qc for qemu-arm@nongnu.org; Thu, 15 Nov 2018 07:37:12 -0500 Received: from mx1.redhat.com ([209.132.183.28]:50544) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gNGtQ-0007p6-I5; Thu, 15 Nov 2018 07:37:08 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8B238308AA0F; Thu, 15 Nov 2018 12:37:06 +0000 (UTC) Received: from localhost (unknown [10.43.2.182]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3D6765D9D1; Thu, 15 Nov 2018 12:37:00 +0000 (UTC) Date: Thu, 15 Nov 2018 13:36:58 +0100 From: Igor Mammedov To: Samuel Ortiz Message-ID: <20181115133658.2cdbd918@redhat.com> In-Reply-To: <20181105014047.26447-13-sameo@linux.intel.com> References: <20181105014047.26447-1-sameo@linux.intel.com> <20181105014047.26447-13-sameo@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.41]); Thu, 15 Nov 2018 12:37:06 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: Re: [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" , qemu-devel@nongnu.org, Shannon Zhao , 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: GMCLZUPJ+00C On Mon, 5 Nov 2018 02:40:35 +0100 Samuel Ortiz wrote: > From: Yang Zhong >=20 > The ACPI MCFG getter is not x86 specific and could be called from > anywhere within generic ACPI API, so let's export it. So far it's x86 or more exactly q35 specific thing, for example it won't work with arm/virt without refactoring the later. We probably over-engineered it and could get by without properties here at all, but that's not related to this series. So for now I'd suggest to move it to x86/acpi-pci.c for now and we can generalize the way we get address/size later, but if you feel like replacing all this property complications and making it simpler go ahead. =20 > Reviewed-by: Philippe Mathieu-Daud=C3=A9 > Tested-by: Philippe Mathieu-Daud=C3=A9 > 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(-) >=20 > 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 siz= e); > 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" > =20 > #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)); > } > =20 > +bool acpi_get_mcfg(AcpiMcfgInfo *mcfg) > +{ > + Object *pci_host; > + QObject *o; > + > + pci_host =3D acpi_get_pci_host(); it would be better to get bus from struct AcpiPciBus instead of doing lookup again. (that's a separate patch from moving functio= n around) > + g_assert(pci_host); > + > + o =3D object_property_get_qobject(pci_host, PCIE_HOST_MCFG_BASE, NUL= L); > + if (!o) { > + return false; > + } > + mcfg->mcfg_base =3D qnum_get_uint(qobject_to(QNum, o)); > + qobject_unref(o); > + > + o =3D object_property_get_qobject(pci_host, PCIE_HOST_MCFG_SIZE, NUL= L); > + assert(o); > + mcfg->mcfg_size =3D 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 *li= nker) > "IVRS", table_data->len - iommu_start, 1, NULL, NULL); > } > =20 > -static bool acpi_get_mcfg(AcpiMcfgInfo *mcfg) > -{ > - Object *pci_host; > - QObject *o; > - > - pci_host =3D acpi_get_pci_host(); > - g_assert(pci_host); > - > - o =3D object_property_get_qobject(pci_host, PCIE_HOST_MCFG_BASE, NUL= L); > - if (!o) { > - return false; > - } > - mcfg->mcfg_base =3D qnum_get_uint(qobject_to(QNum, o)); > - qobject_unref(o); > - > - o =3D object_property_get_qobject(pci_host, PCIE_HOST_MCFG_SIZE, NUL= L); > - assert(o); > - mcfg->mcfg_size =3D qnum_get_uint(qobject_to(QNum, o)); > - qobject_unref(o); > - return true; > -} > - > static > void acpi_build(AcpiBuildTables *tables, > MachineState *machine, AcpiConfiguration *acpi_conf) From mboxrd@z Thu Jan 1 00:00:00 1970 From: Igor Mammedov Subject: Re: [PATCH v5 12/24] hw: acpi: Export the MCFG getter Date: Thu, 15 Nov 2018 13:36:58 +0100 Message-ID: <20181115133658.2cdbd918@redhat.com> References: <20181105014047.26447-1-sameo@linux.intel.com> <20181105014047.26447-13-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 1gNGtQ-0007LW-HJ for xen-devel@lists.xenproject.org; Thu, 15 Nov 2018 12:37:08 +0000 In-Reply-To: <20181105014047.26447-13-sameo@linux.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Samuel Ortiz Cc: Yang Zhong , Peter Maydell , Stefano Stabellini , Eduardo Habkost , "Michael S. Tsirkin" , qemu-devel@nongnu.org, Shannon Zhao , qemu-arm@nongnu.org, Marcel Apfelbaum , Paolo Bonzini , Anthony Perard , xen-devel@lists.xenproject.org, Richard Henderson List-Id: xen-devel@lists.xenproject.org T24gTW9uLCAgNSBOb3YgMjAxOCAwMjo0MDozNSArMDEwMApTYW11ZWwgT3J0aXogPHNhbWVvQGxp bnV4LmludGVsLmNvbT4gd3JvdGU6Cgo+IEZyb206IFlhbmcgWmhvbmcgPHlhbmcuemhvbmdAaW50 ZWwuY29tPgo+IAo+IFRoZSBBQ1BJIE1DRkcgZ2V0dGVyIGlzIG5vdCB4ODYgc3BlY2lmaWMgYW5k IGNvdWxkIGJlIGNhbGxlZCBmcm9tCj4gYW55d2hlcmUgd2l0aGluIGdlbmVyaWMgQUNQSSBBUEks IHNvIGxldCdzIGV4cG9ydCBpdC4KU28gZmFyIGl0J3MgeDg2IG9yIG1vcmUgZXhhY3RseSBxMzUg c3BlY2lmaWMgdGhpbmcsCmZvciBleGFtcGxlIGl0IHdvbid0IHdvcmsgd2l0aCBhcm0vdmlydCB3 aXRob3V0IHJlZmFjdG9yaW5nCnRoZSBsYXRlci4KCldlIHByb2JhYmx5IG92ZXItZW5naW5lZXJl ZCBpdCBhbmQgY291bGQgZ2V0IGJ5IHdpdGhvdXQKcHJvcGVydGllcyBoZXJlIGF0IGFsbCwgYnV0 IHRoYXQncyBub3QgcmVsYXRlZCB0byB0aGlzIHNlcmllcy4KClNvIGZvciBub3cgSSdkIHN1Z2dl c3QgdG8gbW92ZSBpdCB0byB4ODYvYWNwaS1wY2kuYyBmb3Igbm93CmFuZCB3ZSBjYW4gZ2VuZXJh bGl6ZSB0aGUgd2F5IHdlIGdldCBhZGRyZXNzL3NpemUgbGF0ZXIsCmJ1dCBpZiB5b3UgZmVlbCBs aWtlIHJlcGxhY2luZyBhbGwgdGhpcyBwcm9wZXJ0eSBjb21wbGljYXRpb25zCmFuZCBtYWtpbmcg aXQgc2ltcGxlciBnbyBhaGVhZC4KCgogCj4gUmV2aWV3ZWQtYnk6IFBoaWxpcHBlIE1hdGhpZXUt RGF1ZMOpIDxwaGlsbWRAcmVkaGF0LmNvbT4KPiBUZXN0ZWQtYnk6IFBoaWxpcHBlIE1hdGhpZXUt RGF1ZMOpIDxwaGlsbWRAcmVkaGF0LmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBZYW5nIFpob25nIDx5 YW5nLnpob25nQGludGVsLmNvbT4KPiAtLS0KPiAgaW5jbHVkZS9ody9hY3BpL2FtbC1idWlsZC5o IHwgIDEgKwo+ICBody9hY3BpL2FtbC1idWlsZC5jICAgICAgICAgfCAyNCArKysrKysrKysrKysr KysrKysrKysrKysKPiAgaHcvaTM4Ni9hY3BpLWJ1aWxkLmMgICAgICAgIHwgMjIgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQo+ICAzIGZpbGVzIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDIyIGRl bGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L2FjcGkvYW1sLWJ1aWxkLmgg Yi9pbmNsdWRlL2h3L2FjcGkvYW1sLWJ1aWxkLmgKPiBpbmRleCAxODYxZTM3ZWJmLi42NGVhMzcx NjU2IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvaHcvYWNwaS9hbWwtYnVpbGQuaAo+ICsrKyBiL2lu Y2x1ZGUvaHcvYWNwaS9hbWwtYnVpbGQuaAo+IEBAIC00MDgsNiArNDA4LDcgQEAgdm9pZCAqYWNw aV9kYXRhX3B1c2goR0FycmF5ICp0YWJsZV9kYXRhLCB1bnNpZ25lZCBzaXplKTsKPiAgdW5zaWdu ZWQgYWNwaV9kYXRhX2xlbihHQXJyYXkgKnRhYmxlKTsKPiAgT2JqZWN0ICphY3BpX2dldF9wY2lf aG9zdCh2b2lkKTsKPiAgdm9pZCBhY3BpX2dldF9wY2lfaG9sZXMoUmFuZ2UgKmhvbGUsIFJhbmdl ICpob2xlNjQpOwo+ICtib29sIGFjcGlfZ2V0X21jZmcoQWNwaU1jZmdJbmZvICptY2ZnKTsKPiAg LyogQWxpZ24gQU1MIGJsb2Igc2l6ZSB0byBhIG11bHRpcGxlIG9mICdhbGlnbicgKi8KPiAgdm9p ZCBhY3BpX2FsaWduX3NpemUoR0FycmF5ICpibG9iLCB1bnNpZ25lZCBhbGlnbik7Cj4gIHZvaWQg YWNwaV9hZGRfdGFibGUoR0FycmF5ICp0YWJsZV9vZmZzZXRzLCBHQXJyYXkgKnRhYmxlX2RhdGEp Owo+IGRpZmYgLS1naXQgYS9ody9hY3BpL2FtbC1idWlsZC5jIGIvaHcvYWNwaS9hbWwtYnVpbGQu Ywo+IGluZGV4IDg2OWVkNzBkYjMuLjJjNTQ0NmFiMjMgMTAwNjQ0Cj4gLS0tIGEvaHcvYWNwaS9h bWwtYnVpbGQuYwo+ICsrKyBiL2h3L2FjcGkvYW1sLWJ1aWxkLmMKPiBAQCAtMzIsNiArMzIsOCBA QAo+ICAjaW5jbHVkZSAiaHcvaTM4Ni9wYy5oIgo+ICAjaW5jbHVkZSAic3lzZW11L3RwbS5oIgo+ ICAjaW5jbHVkZSAiaHcvYWNwaS90cG0uaCIKPiArI2luY2x1ZGUgInFvbS9xb20tcW9iamVjdC5o Igo+ICsjaW5jbHVkZSAicWFwaS9xbXAvcW51bS5oIgo+ICAKPiAgI2RlZmluZSBQQ0lfSE9TVF9C UklER0VfQ09ORklHX0FERFIgICAgICAgIDB4Y2Y4Cj4gICNkZWZpbmUgUENJX0hPU1RfQlJJREdF X0lPXzBfTUlOX0FERFIgICAgICAweDAwMDAKPiBAQCAtMTY1Nyw2ICsxNjU5LDI4IEBAIHZvaWQg YWNwaV9nZXRfcGNpX2hvbGVzKFJhbmdlICpob2xlLCBSYW5nZSAqaG9sZTY0KQo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpKTsKPiAgfQo+ICAK PiArYm9vbCBhY3BpX2dldF9tY2ZnKEFjcGlNY2ZnSW5mbyAqbWNmZykKPiArewo+ICsgICAgT2Jq ZWN0ICpwY2lfaG9zdDsKPiArICAgIFFPYmplY3QgKm87Cj4gKwo+ICsgICAgcGNpX2hvc3QgPSBh Y3BpX2dldF9wY2lfaG9zdCgpOwoKaXQgd291bGQgYmUgYmV0dGVyIHRvIGdldCBidXMgZnJvbSBz dHJ1Y3QgQWNwaVBjaUJ1cwppbnN0ZWFkIG9mIGRvaW5nIGxvb2t1cCBhZ2Fpbi4gKHRoYXQncyBh IHNlcGFyYXRlIHBhdGNoIGZyb20gbW92aW5nIGZ1bmN0aW9uIGFyb3VuZCkKCj4gKyAgICBnX2Fz c2VydChwY2lfaG9zdCk7Cj4gKwo+ICsgICAgbyA9IG9iamVjdF9wcm9wZXJ0eV9nZXRfcW9iamVj dChwY2lfaG9zdCwgUENJRV9IT1NUX01DRkdfQkFTRSwgTlVMTCk7Cj4gKyAgICBpZiAoIW8pIHsK PiArICAgICAgICByZXR1cm4gZmFsc2U7Cj4gKyAgICB9Cj4gKyAgICBtY2ZnLT5tY2ZnX2Jhc2Ug PSBxbnVtX2dldF91aW50KHFvYmplY3RfdG8oUU51bSwgbykpOwo+ICsgICAgcW9iamVjdF91bnJl ZihvKTsKPiArCj4gKyAgICBvID0gb2JqZWN0X3Byb3BlcnR5X2dldF9xb2JqZWN0KHBjaV9ob3N0 LCBQQ0lFX0hPU1RfTUNGR19TSVpFLCBOVUxMKTsKPiArICAgIGFzc2VydChvKTsKPiArICAgIG1j ZmctPm1jZmdfc2l6ZSA9IHFudW1fZ2V0X3VpbnQocW9iamVjdF90byhRTnVtLCBvKSk7Cj4gKyAg ICBxb2JqZWN0X3VucmVmKG8pOwo+ICsgICAgcmV0dXJuIHRydWU7Cj4gK30KPiArCj4gIHN0YXRp YyB2b2lkIGNyc19yYW5nZV9pbnNlcnQoR1B0ckFycmF5ICpyYW5nZXMsIHVpbnQ2NF90IGJhc2Us IHVpbnQ2NF90IGxpbWl0KQo+ICB7Cj4gICAgICBDcnNSYW5nZUVudHJ5ICplbnRyeTsKPiBkaWZm IC0tZ2l0IGEvaHcvaTM4Ni9hY3BpLWJ1aWxkLmMgYi9ody9pMzg2L2FjcGktYnVpbGQuYwo+IGlu ZGV4IDE0ZTI2MjRkMTQuLmQ4YmJhMTY3NzYgMTAwNjQ0Cj4gLS0tIGEvaHcvaTM4Ni9hY3BpLWJ1 aWxkLmMKPiArKysgYi9ody9pMzg2L2FjcGktYnVpbGQuYwo+IEBAIC0xODU2LDI4ICsxODU2LDYg QEAgYnVpbGRfYW1kX2lvbW11KEdBcnJheSAqdGFibGVfZGF0YSwgQklPU0xpbmtlciAqbGlua2Vy KQo+ICAgICAgICAgICAgICAgICAgICJJVlJTIiwgdGFibGVfZGF0YS0+bGVuIC0gaW9tbXVfc3Rh cnQsIDEsIE5VTEwsIE5VTEwpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgYm9vbCBhY3BpX2dldF9tY2Zn KEFjcGlNY2ZnSW5mbyAqbWNmZykKPiAtewo+IC0gICAgT2JqZWN0ICpwY2lfaG9zdDsKPiAtICAg IFFPYmplY3QgKm87Cj4gLQo+IC0gICAgcGNpX2hvc3QgPSBhY3BpX2dldF9wY2lfaG9zdCgpOwo+ IC0gICAgZ19hc3NlcnQocGNpX2hvc3QpOwo+IC0KPiAtICAgIG8gPSBvYmplY3RfcHJvcGVydHlf Z2V0X3FvYmplY3QocGNpX2hvc3QsIFBDSUVfSE9TVF9NQ0ZHX0JBU0UsIE5VTEwpOwo+IC0gICAg aWYgKCFvKSB7Cj4gLSAgICAgICAgcmV0dXJuIGZhbHNlOwo+IC0gICAgfQo+IC0gICAgbWNmZy0+ bWNmZ19iYXNlID0gcW51bV9nZXRfdWludChxb2JqZWN0X3RvKFFOdW0sIG8pKTsKPiAtICAgIHFv YmplY3RfdW5yZWYobyk7Cj4gLQo+IC0gICAgbyA9IG9iamVjdF9wcm9wZXJ0eV9nZXRfcW9iamVj dChwY2lfaG9zdCwgUENJRV9IT1NUX01DRkdfU0laRSwgTlVMTCk7Cj4gLSAgICBhc3NlcnQobyk7 Cj4gLSAgICBtY2ZnLT5tY2ZnX3NpemUgPSBxbnVtX2dldF91aW50KHFvYmplY3RfdG8oUU51bSwg bykpOwo+IC0gICAgcW9iamVjdF91bnJlZihvKTsKPiAtICAgIHJldHVybiB0cnVlOwo+IC19Cj4g LQo+ICBzdGF0aWMKPiAgdm9pZCBhY3BpX2J1aWxkKEFjcGlCdWlsZFRhYmxlcyAqdGFibGVzLAo+ ICAgICAgICAgICAgICAgICAgTWFjaGluZVN0YXRlICptYWNoaW5lLCBBY3BpQ29uZmlndXJhdGlv biAqYWNwaV9jb25mKQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2 ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57646) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gNGtX-000855-Nc for qemu-devel@nongnu.org; Thu, 15 Nov 2018 07:37:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gNGtW-0007rr-K8 for qemu-devel@nongnu.org; Thu, 15 Nov 2018 07:37:15 -0500 Date: Thu, 15 Nov 2018 13:36:58 +0100 From: Igor Mammedov Message-ID: <20181115133658.2cdbd918@redhat.com> In-Reply-To: <20181105014047.26447-13-sameo@linux.intel.com> References: <20181105014047.26447-1-sameo@linux.intel.com> <20181105014047.26447-13-sameo@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [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: Samuel Ortiz Cc: qemu-devel@nongnu.org, Shannon Zhao , Stefano Stabellini , Anthony Perard , Richard Henderson , Marcel Apfelbaum , xen-devel@lists.xenproject.org, Paolo Bonzini , "Michael S. Tsirkin" , qemu-arm@nongnu.org, Peter Maydell , Eduardo Habkost , Yang Zhong On Mon, 5 Nov 2018 02:40:35 +0100 Samuel Ortiz wrote: > From: Yang Zhong >=20 > The ACPI MCFG getter is not x86 specific and could be called from > anywhere within generic ACPI API, so let's export it. So far it's x86 or more exactly q35 specific thing, for example it won't work with arm/virt without refactoring the later. We probably over-engineered it and could get by without properties here at all, but that's not related to this series. So for now I'd suggest to move it to x86/acpi-pci.c for now and we can generalize the way we get address/size later, but if you feel like replacing all this property complications and making it simpler go ahead. =20 > Reviewed-by: Philippe Mathieu-Daud=C3=A9 > Tested-by: Philippe Mathieu-Daud=C3=A9 > 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(-) >=20 > 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 siz= e); > 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" > =20 > #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)); > } > =20 > +bool acpi_get_mcfg(AcpiMcfgInfo *mcfg) > +{ > + Object *pci_host; > + QObject *o; > + > + pci_host =3D acpi_get_pci_host(); it would be better to get bus from struct AcpiPciBus instead of doing lookup again. (that's a separate patch from moving functio= n around) > + g_assert(pci_host); > + > + o =3D object_property_get_qobject(pci_host, PCIE_HOST_MCFG_BASE, NUL= L); > + if (!o) { > + return false; > + } > + mcfg->mcfg_base =3D qnum_get_uint(qobject_to(QNum, o)); > + qobject_unref(o); > + > + o =3D object_property_get_qobject(pci_host, PCIE_HOST_MCFG_SIZE, NUL= L); > + assert(o); > + mcfg->mcfg_size =3D 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 *li= nker) > "IVRS", table_data->len - iommu_start, 1, NULL, NULL); > } > =20 > -static bool acpi_get_mcfg(AcpiMcfgInfo *mcfg) > -{ > - Object *pci_host; > - QObject *o; > - > - pci_host =3D acpi_get_pci_host(); > - g_assert(pci_host); > - > - o =3D object_property_get_qobject(pci_host, PCIE_HOST_MCFG_BASE, NUL= L); > - if (!o) { > - return false; > - } > - mcfg->mcfg_base =3D qnum_get_uint(qobject_to(QNum, o)); > - qobject_unref(o); > - > - o =3D object_property_get_qobject(pci_host, PCIE_HOST_MCFG_SIZE, NUL= L); > - assert(o); > - mcfg->mcfg_size =3D qnum_get_uint(qobject_to(QNum, o)); > - qobject_unref(o); > - return true; > -} > - > static > void acpi_build(AcpiBuildTables *tables, > MachineState *machine, AcpiConfiguration *acpi_conf)