From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 2002:a5d:6089:0:0:0:0:0 with SMTP id w9csp1844836wrt; Fri, 23 Nov 2018 02:55:53 -0800 (PST) X-Google-Smtp-Source: AJdET5d+pLicEF+ykviCtNl8pMcD0YPmjBfLq5EHJAKhLBJFRLtZngD3RvNJg/g0Hph4r2kSICD3 X-Received: by 2002:a81:a943:: with SMTP id g64mr15772661ywh.374.1542970553469; Fri, 23 Nov 2018 02:55:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542970553; cv=none; d=google.com; s=arc-20160816; b=lVKdK6Xmz9QtepbOIYRf4YU0pgyLZ9pZd2EJvYY4lsfMAU5Zk+KnOrybeHRg9GoUYZ 9guzTf5B09qDCEJEtROH8RLqjwLQtDLYBSFclZUCDImnwVBdqyE/dnosw55FApbqqp/u zbgbQ/Qptb6c18LmYFhxvvvLxWbHaDJyouEW93Fp7IAPDHjgd1K/EZ9VSRKKZUdy6Gb4 lR3XKrHLMQmbnsHm9+s8byUy0+nCbhHK02wDzdm2KLpLUNO8y3zBvj5gVXsqMdmXbZrZ gKceJtNc6G//ts/mhy36dRl6wRwJ2DC8rvhKV6eKFEcD9MzqjXMq2kro4v68WVFEUjsW z6ow== 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=pKY8VQkoJX9FiQymLQSq12Qgfy+aEVEY0FEEHH90tS0=; b=DzORbkXNt7/ZWRaeKk+0/oOlJ1F4VhTw9U5w+Ri2wFUtrCA8qua45KaQeI1xDK4YbN fwb1ZIeKDE4HOkD5VJcaIyO7wf+lPvgkzedcjVfqLeJTVbJ+q2ulbipyjLGSjddjLvW6 fij2FtcoZ4xJKh4qt5+tkGECjGRcH3d91vn6pDLn4Xm0/vATCnATskAg/9jDhITKKyNx iPVbLeH10eDlpzXOIZi69/2jM84oUhCOvHu6hp0CsD302OpKFoC4wpq45mHo90+WvWsK WjHoFOymcZVXfqiinICE1eit0DfYuJXQKiejEtwOW9KV3scO9Fwj7GKBbsdlY/1yKZp7 qb2A== 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 g125si3245938ywh.69.2018.11.23.02.55.53 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 23 Nov 2018 02:55:53 -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]:51587 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gQ97p-0004QW-2j for alex.bennee@linaro.org; Fri, 23 Nov 2018 05:55:53 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59446) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gQ97f-0004QA-MI for qemu-arm@nongnu.org; Fri, 23 Nov 2018 05:55:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gQ97b-0001ml-Hy for qemu-arm@nongnu.org; Fri, 23 Nov 2018 05:55:43 -0500 Received: from mx1.redhat.com ([209.132.183.28]:59822) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gQ97b-0001kb-9W; Fri, 23 Nov 2018 05:55:39 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D0B1D3084218; Fri, 23 Nov 2018 10:55:37 +0000 (UTC) Received: from localhost (unknown [10.43.2.182]) by smtp.corp.redhat.com (Postfix) with ESMTP id 754EC1057062; Fri, 23 Nov 2018 10:55:35 +0000 (UTC) Date: Fri, 23 Nov 2018 11:55:33 +0100 From: Igor Mammedov To: Samuel Ortiz Message-ID: <20181123115533.0d2c37c3@redhat.com> In-Reply-To: <20181121154312.GI4426@caravaggio> References: <20181105014047.26447-1-sameo@linux.intel.com> <20181105014047.26447-11-sameo@linux.intel.com> <20181113165918.5cc2b2b5@redhat.com> <20181121154312.GI4426@caravaggio> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.40]); Fri, 23 Nov 2018 10:55:37 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: Re: [Qemu-arm] [Qemu-devel] [PATCH v5 10/24] hw: acpi: Export the PCI host and holes getters 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" , qemu-devel@nongnu.org, Shannon Zhao , qemu-arm@nongnu.org, xen-devel@lists.xenproject.org, Anthony Perard , Paolo Bonzini , Richard Henderson Errors-To: qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org Sender: "Qemu-arm" X-TUID: tLh6FBYExu/6 On Wed, 21 Nov 2018 16:43:12 +0100 Samuel Ortiz wrote: > On Tue, Nov 13, 2018 at 04:59:18PM +0100, Igor Mammedov wrote: > > On Mon, 5 Nov 2018 02:40:33 +0100 > > Samuel Ortiz wrote: > > > > > This is going to be needed by the hardware reduced implementation, so > > > let's export it. > > > Once the ACPI builder methods and getters will be implemented, the > > > acpi_get_pci_host() implementation will become hardware agnostic. > > > > > > Signed-off-by: Samuel Ortiz > > > --- > > > include/hw/acpi/aml-build.h | 2 ++ > > > hw/acpi/aml-build.c | 43 +++++++++++++++++++++++++++++++++ > > > hw/i386/acpi-build.c | 47 ++----------------------------------- > > > 3 files changed, 47 insertions(+), 45 deletions(-) > > > > > > diff --git a/include/hw/acpi/aml-build.h b/include/hw/acpi/aml-build.h > > > index c27c0935ae..fde2785b9a 100644 > > > --- a/include/hw/acpi/aml-build.h > > > +++ b/include/hw/acpi/aml-build.h > > > @@ -400,6 +400,8 @@ build_header(BIOSLinker *linker, GArray *table_data, > > > const char *oem_id, const char *oem_table_id); > > > 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); > > > /* 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 2b9a636e75..b8e32f15f7 100644 > > > --- a/hw/acpi/aml-build.c > > > +++ b/hw/acpi/aml-build.c > > > @@ -1601,6 +1601,49 @@ void acpi_build_tables_cleanup(AcpiBuildTables *tables, bool mfre) > > > g_array_free(tables->vmgenid, mfre); > > > } > > > > > +/* > > > + * Because of the PXB hosts we cannot simply query TYPE_PCI_HOST_BRIDGE. > > > + */ > > > +Object *acpi_get_pci_host(void) > > > +{ > > > + PCIHostState *host; > > > + > > > + host = OBJECT_CHECK(PCIHostState, > > > + object_resolve_path("/machine/i440fx", NULL), > > > + TYPE_PCI_HOST_BRIDGE); > > > + if (!host) { > > > + host = OBJECT_CHECK(PCIHostState, > > > + object_resolve_path("/machine/q35", NULL), > > > + TYPE_PCI_HOST_BRIDGE); > > > + } > > > + > > > + return OBJECT(host); > > > +} > > in general aml-build.c is a place to put ACPI spec primitives, > > so I'd suggest to move it somewhere else. > > > > Considering it's x86 code (so far), maybe move it to something like > > hw/i386/acpi-pci.c > > > > Also it might be good to get rid of acpi_get_pci_host() and pass > > a pointer to pci_host as acpi_setup() an argument, since it's static > > for life of boar we can keep it in AcpiBuildState, and reuse for > > mfg/pci_hole/pci bus accesses. > That's what I'm trying to do with patches #23 and 24, but through the > ACPI configuration structure. I could try using the build state instead, > as it's platform agnostic as well. May be it will work. Note: try not to pass whole build_state to concrete tables builders and use arguments/dedicated structures to pass data needed for that concrete table. > > Cheers, > Samuel. > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Igor Mammedov Subject: Re: [Qemu-devel] [PATCH v5 10/24] hw: acpi: Export the PCI host and holes getters Date: Fri, 23 Nov 2018 11:55:33 +0100 Message-ID: <20181123115533.0d2c37c3@redhat.com> References: <20181105014047.26447-1-sameo@linux.intel.com> <20181105014047.26447-11-sameo@linux.intel.com> <20181113165918.5cc2b2b5@redhat.com> <20181121154312.GI4426@caravaggio> 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 1gQ97b-00019a-KT for xen-devel@lists.xenproject.org; Fri, 23 Nov 2018 10:55:39 +0000 In-Reply-To: <20181121154312.GI4426@caravaggio> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Samuel Ortiz Cc: Peter Maydell , Stefano Stabellini , Eduardo Habkost , "Michael S. Tsirkin" , qemu-devel@nongnu.org, Shannon Zhao , qemu-arm@nongnu.org, xen-devel@lists.xenproject.org, Anthony Perard , Paolo Bonzini , Richard Henderson List-Id: xen-devel@lists.xenproject.org T24gV2VkLCAyMSBOb3YgMjAxOCAxNjo0MzoxMiArMDEwMApTYW11ZWwgT3J0aXogPHNhbWVvQGxp bnV4LmludGVsLmNvbT4gd3JvdGU6Cgo+IE9uIFR1ZSwgTm92IDEzLCAyMDE4IGF0IDA0OjU5OjE4 UE0gKzAxMDAsIElnb3IgTWFtbWVkb3Ygd3JvdGU6Cj4gPiBPbiBNb24sICA1IE5vdiAyMDE4IDAy OjQwOjMzICswMTAwCj4gPiBTYW11ZWwgT3J0aXogPHNhbWVvQGxpbnV4LmludGVsLmNvbT4gd3Jv dGU6Cj4gPiAgIAo+ID4gPiBUaGlzIGlzIGdvaW5nIHRvIGJlIG5lZWRlZCBieSB0aGUgaGFyZHdh cmUgcmVkdWNlZCBpbXBsZW1lbnRhdGlvbiwgc28KPiA+ID4gbGV0J3MgZXhwb3J0IGl0Lgo+ID4g PiBPbmNlIHRoZSBBQ1BJIGJ1aWxkZXIgbWV0aG9kcyBhbmQgZ2V0dGVycyB3aWxsIGJlIGltcGxl bWVudGVkLCB0aGUKPiA+ID4gYWNwaV9nZXRfcGNpX2hvc3QoKSBpbXBsZW1lbnRhdGlvbiB3aWxs IGJlY29tZSBoYXJkd2FyZSBhZ25vc3RpYy4KPiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IFNh bXVlbCBPcnRpeiA8c2FtZW9AbGludXguaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ID4gIGluY2x1 ZGUvaHcvYWNwaS9hbWwtYnVpbGQuaCB8ICAyICsrCj4gPiA+ICBody9hY3BpL2FtbC1idWlsZC5j ICAgICAgICAgfCA0MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ID4gIGh3 L2kzODYvYWNwaS1idWlsZC5jICAgICAgICB8IDQ3ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KPiA+ID4gIDMgZmlsZXMgY2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwgNDUg ZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ody9hY3BpL2Ft bC1idWlsZC5oIGIvaW5jbHVkZS9ody9hY3BpL2FtbC1idWlsZC5oCj4gPiA+IGluZGV4IGMyN2Mw OTM1YWUuLmZkZTI3ODViOWEgMTAwNjQ0Cj4gPiA+IC0tLSBhL2luY2x1ZGUvaHcvYWNwaS9hbWwt YnVpbGQuaAo+ID4gPiArKysgYi9pbmNsdWRlL2h3L2FjcGkvYW1sLWJ1aWxkLmgKPiA+ID4gQEAg LTQwMCw2ICs0MDAsOCBAQCBidWlsZF9oZWFkZXIoQklPU0xpbmtlciAqbGlua2VyLCBHQXJyYXkg KnRhYmxlX2RhdGEsCj4gPiA+ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqb2VtX2lkLCBjb25z dCBjaGFyICpvZW1fdGFibGVfaWQpOwo+ID4gPiAgdm9pZCAqYWNwaV9kYXRhX3B1c2goR0FycmF5 ICp0YWJsZV9kYXRhLCB1bnNpZ25lZCBzaXplKTsKPiA+ID4gIHVuc2lnbmVkIGFjcGlfZGF0YV9s ZW4oR0FycmF5ICp0YWJsZSk7Cj4gPiA+ICtPYmplY3QgKmFjcGlfZ2V0X3BjaV9ob3N0KHZvaWQp Owo+ID4gPiArdm9pZCBhY3BpX2dldF9wY2lfaG9sZXMoUmFuZ2UgKmhvbGUsIFJhbmdlICpob2xl NjQpOwo+ID4gPiAgLyogQWxpZ24gQU1MIGJsb2Igc2l6ZSB0byBhIG11bHRpcGxlIG9mICdhbGln bicgKi8KPiA+ID4gIHZvaWQgYWNwaV9hbGlnbl9zaXplKEdBcnJheSAqYmxvYiwgdW5zaWduZWQg YWxpZ24pOwo+ID4gPiAgdm9pZCBhY3BpX2FkZF90YWJsZShHQXJyYXkgKnRhYmxlX29mZnNldHMs IEdBcnJheSAqdGFibGVfZGF0YSk7Cj4gPiA+IGRpZmYgLS1naXQgYS9ody9hY3BpL2FtbC1idWls ZC5jIGIvaHcvYWNwaS9hbWwtYnVpbGQuYwo+ID4gPiBpbmRleCAyYjlhNjM2ZTc1Li5iOGUzMmYx NWY3IDEwMDY0NAo+ID4gPiAtLS0gYS9ody9hY3BpL2FtbC1idWlsZC5jCj4gPiA+ICsrKyBiL2h3 L2FjcGkvYW1sLWJ1aWxkLmMKPiA+ID4gQEAgLTE2MDEsNiArMTYwMSw0OSBAQCB2b2lkIGFjcGlf YnVpbGRfdGFibGVzX2NsZWFudXAoQWNwaUJ1aWxkVGFibGVzICp0YWJsZXMsIGJvb2wgbWZyZSkK PiA+ID4gICAgICBnX2FycmF5X2ZyZWUodGFibGVzLT52bWdlbmlkLCBtZnJlKTsKPiA+ID4gIH0g IAo+ID4gICAKPiA+ID4gKy8qCj4gPiA+ICsgKiBCZWNhdXNlIG9mIHRoZSBQWEIgaG9zdHMgd2Ug Y2Fubm90IHNpbXBseSBxdWVyeSBUWVBFX1BDSV9IT1NUX0JSSURHRS4KPiA+ID4gKyAqLwo+ID4g PiArT2JqZWN0ICphY3BpX2dldF9wY2lfaG9zdCh2b2lkKQo+ID4gPiArewo+ID4gPiArICAgIFBD SUhvc3RTdGF0ZSAqaG9zdDsKPiA+ID4gKwo+ID4gPiArICAgIGhvc3QgPSBPQkpFQ1RfQ0hFQ0so UENJSG9zdFN0YXRlLAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0X3Jlc29s dmVfcGF0aCgiL21hY2hpbmUvaTQ0MGZ4IiwgTlVMTCksCj4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICBUWVBFX1BDSV9IT1NUX0JSSURHRSk7Cj4gPiA+ICsgICAgaWYgKCFob3N0KSB7Cj4g PiA+ICsgICAgICAgIGhvc3QgPSBPQkpFQ1RfQ0hFQ0soUENJSG9zdFN0YXRlLAo+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdF9yZXNvbHZlX3BhdGgoIi9tYWNoaW5lL3Ez NSIsIE5VTEwpLAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRZUEVfUENJX0hP U1RfQlJJREdFKTsKPiA+ID4gKyAgICB9Cj4gPiA+ICsKPiA+ID4gKyAgICByZXR1cm4gT0JKRUNU KGhvc3QpOwo+ID4gPiArfSAgCj4gPiBpbiBnZW5lcmFsIGFtbC1idWlsZC5jIGlzIGEgcGxhY2Ug dG8gcHV0IEFDUEkgc3BlYyBwcmltaXRpdmVzLAo+ID4gc28gSSdkIHN1Z2dlc3QgdG8gbW92ZSBp dCBzb21ld2hlcmUgZWxzZS4KPiA+IAo+ID4gQ29uc2lkZXJpbmcgaXQncyB4ODYgY29kZSAoc28g ZmFyKSwgbWF5YmUgbW92ZSBpdCB0byBzb21ldGhpbmcgbGlrZQo+ID4gaHcvaTM4Ni9hY3BpLXBj aS5jCj4gPiAKPiA+IEFsc28gaXQgbWlnaHQgYmUgZ29vZCB0byBnZXQgcmlkIG9mIGFjcGlfZ2V0 X3BjaV9ob3N0KCkgYW5kIHBhc3MKPiA+IGEgcG9pbnRlciB0byBwY2lfaG9zdCBhcyBhY3BpX3Nl dHVwKCkgYW4gYXJndW1lbnQsIHNpbmNlIGl0J3Mgc3RhdGljCj4gPiBmb3IgbGlmZSBvZiBib2Fy IHdlIGNhbiBrZWVwIGl0IGluIEFjcGlCdWlsZFN0YXRlLCBhbmQgcmV1c2UgZm9yCj4gPiBtZmcv cGNpX2hvbGUvcGNpIGJ1cyBhY2Nlc3Nlcy4gIAo+IFRoYXQncyB3aGF0IEknbSB0cnlpbmcgdG8g ZG8gd2l0aCBwYXRjaGVzICMyMyBhbmQgMjQsIGJ1dCB0aHJvdWdoIHRoZQo+IEFDUEkgY29uZmln dXJhdGlvbiBzdHJ1Y3R1cmUuIEkgY291bGQgdHJ5IHVzaW5nIHRoZSBidWlsZCBzdGF0ZSBpbnN0 ZWFkLAo+IGFzIGl0J3MgcGxhdGZvcm0gYWdub3N0aWMgYXMgd2VsbC4KTWF5IGJlIGl0IHdpbGwg d29yay4KTm90ZToKdHJ5IG5vdCB0byBwYXNzIHdob2xlIGJ1aWxkX3N0YXRlIHRvIGNvbmNyZXRl IHRhYmxlcyBidWlsZGVycyBhbmQgdXNlCmFyZ3VtZW50cy9kZWRpY2F0ZWQgc3RydWN0dXJlcyB0 byBwYXNzIGRhdGEgbmVlZGVkIGZvciB0aGF0IGNvbmNyZXRlCnRhYmxlLgoKPiAKPiBDaGVlcnMs Cj4gU2FtdWVsLgo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2 ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60706) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gQ9Ce-0006JA-3j for qemu-devel@nongnu.org; Fri, 23 Nov 2018 06:00:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gQ9CX-0001S9-HL for qemu-devel@nongnu.org; Fri, 23 Nov 2018 06:00:52 -0500 Date: Fri, 23 Nov 2018 11:55:33 +0100 From: Igor Mammedov Message-ID: <20181123115533.0d2c37c3@redhat.com> In-Reply-To: <20181121154312.GI4426@caravaggio> References: <20181105014047.26447-1-sameo@linux.intel.com> <20181105014047.26447-11-sameo@linux.intel.com> <20181113165918.5cc2b2b5@redhat.com> <20181121154312.GI4426@caravaggio> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v5 10/24] hw: acpi: Export the PCI host and holes getters List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Samuel Ortiz Cc: qemu-devel@nongnu.org, Peter Maydell , Stefano Stabellini , Eduardo Habkost , "Michael S. Tsirkin" , Shannon Zhao , qemu-arm@nongnu.org, Paolo Bonzini , Anthony Perard , xen-devel@lists.xenproject.org, Richard Henderson On Wed, 21 Nov 2018 16:43:12 +0100 Samuel Ortiz wrote: > On Tue, Nov 13, 2018 at 04:59:18PM +0100, Igor Mammedov wrote: > > On Mon, 5 Nov 2018 02:40:33 +0100 > > Samuel Ortiz wrote: > > > > > This is going to be needed by the hardware reduced implementation, so > > > let's export it. > > > Once the ACPI builder methods and getters will be implemented, the > > > acpi_get_pci_host() implementation will become hardware agnostic. > > > > > > Signed-off-by: Samuel Ortiz > > > --- > > > include/hw/acpi/aml-build.h | 2 ++ > > > hw/acpi/aml-build.c | 43 +++++++++++++++++++++++++++++++++ > > > hw/i386/acpi-build.c | 47 ++----------------------------------- > > > 3 files changed, 47 insertions(+), 45 deletions(-) > > > > > > diff --git a/include/hw/acpi/aml-build.h b/include/hw/acpi/aml-build.h > > > index c27c0935ae..fde2785b9a 100644 > > > --- a/include/hw/acpi/aml-build.h > > > +++ b/include/hw/acpi/aml-build.h > > > @@ -400,6 +400,8 @@ build_header(BIOSLinker *linker, GArray *table_data, > > > const char *oem_id, const char *oem_table_id); > > > 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); > > > /* 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 2b9a636e75..b8e32f15f7 100644 > > > --- a/hw/acpi/aml-build.c > > > +++ b/hw/acpi/aml-build.c > > > @@ -1601,6 +1601,49 @@ void acpi_build_tables_cleanup(AcpiBuildTables *tables, bool mfre) > > > g_array_free(tables->vmgenid, mfre); > > > } > > > > > +/* > > > + * Because of the PXB hosts we cannot simply query TYPE_PCI_HOST_BRIDGE. > > > + */ > > > +Object *acpi_get_pci_host(void) > > > +{ > > > + PCIHostState *host; > > > + > > > + host = OBJECT_CHECK(PCIHostState, > > > + object_resolve_path("/machine/i440fx", NULL), > > > + TYPE_PCI_HOST_BRIDGE); > > > + if (!host) { > > > + host = OBJECT_CHECK(PCIHostState, > > > + object_resolve_path("/machine/q35", NULL), > > > + TYPE_PCI_HOST_BRIDGE); > > > + } > > > + > > > + return OBJECT(host); > > > +} > > in general aml-build.c is a place to put ACPI spec primitives, > > so I'd suggest to move it somewhere else. > > > > Considering it's x86 code (so far), maybe move it to something like > > hw/i386/acpi-pci.c > > > > Also it might be good to get rid of acpi_get_pci_host() and pass > > a pointer to pci_host as acpi_setup() an argument, since it's static > > for life of boar we can keep it in AcpiBuildState, and reuse for > > mfg/pci_hole/pci bus accesses. > That's what I'm trying to do with patches #23 and 24, but through the > ACPI configuration structure. I could try using the build state instead, > as it's platform agnostic as well. May be it will work. Note: try not to pass whole build_state to concrete tables builders and use arguments/dedicated structures to pass data needed for that concrete table. > > Cheers, > Samuel. >