From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44562) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evSIC-0007wX-AU for qemu-devel@nongnu.org; Mon, 12 Mar 2018 14:35:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1evSIB-0005F6-B9 for qemu-devel@nongnu.org; Mon, 12 Mar 2018 14:35:28 -0400 Received: from mail-pl0-x241.google.com ([2607:f8b0:400e:c01::241]:43995) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1evSIB-0005Ec-0F for qemu-devel@nongnu.org; Mon, 12 Mar 2018 14:35:27 -0400 Received: by mail-pl0-x241.google.com with SMTP id f23-v6so9824183plr.10 for ; Mon, 12 Mar 2018 11:35:26 -0700 (PDT) From: Alexey Gerasimenko Date: Tue, 13 Mar 2018 04:33:59 +1000 Message-Id: <4d4ea2e1b6632474660bf4e46126984256b8db3f.1520867956.git.x1917x@gmail.com> In-Reply-To: References: In-Reply-To: References: Subject: [Qemu-devel] [RFC PATCH 14/30] pc/q35: Apply PCI bus BSEL property for Xen PCI device hotplug List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: xen-devel@lists.xenproject.org Cc: Alexey Gerasimenko , qemu-devel@nongnu.org, "Michael S. Tsirkin" , Igor Mammedov , Marcel Apfelbaum On Q35 we still need to assign BSEL property to bus(es) for PCI device add/hotplug to work. Extend acpi_set_pci_info() function to support Q35 as well. Previously it was limited to find_i440fx() call, this patch adds new (trivial) function find_q35() which returns root PCIBus object on Q35, in a way similar to what find_i440fx does. Signed-off-by: Alexey Gerasimenko --- hw/acpi/pcihp.c | 6 +++++- hw/pci-host/q35.c | 8 ++++++++ include/hw/i386/pc.h | 3 +++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/hw/acpi/pcihp.c b/hw/acpi/pcihp.c index 91c82fdc7a..f70d8620d7 100644 --- a/hw/acpi/pcihp.c +++ b/hw/acpi/pcihp.c @@ -105,7 +105,11 @@ static void acpi_set_pci_info(void) } bsel_is_set = true; - bus = find_i440fx(); /* TODO: Q35 support */ + bus = find_i440fx(); + if (!bus) { + bus = find_q35(); + } + if (bus) { /* Scan all PCI buses. Set property to enable acpi based hotplug. */ pci_for_each_bus_depth_first(bus, acpi_set_bsel, NULL, &bsel_alloc); diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c index a36a1195e4..8c1603fce9 100644 --- a/hw/pci-host/q35.c +++ b/hw/pci-host/q35.c @@ -258,6 +258,14 @@ static void q35_host_initfn(Object *obj) IO_APIC_DEFAULT_ADDRESS - 1); } +PCIBus *find_q35(void) +{ + PCIHostState *s = OBJECT_CHECK(PCIHostState, + object_resolve_path("/machine/q35", NULL), + TYPE_PCI_HOST_BRIDGE); + return s ? s->bus : NULL; +} + static const TypeInfo q35_host_info = { .name = TYPE_Q35_HOST_DEVICE, .parent = TYPE_PCIE_HOST_BRIDGE, diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index bb49165fe0..96d74b35bd 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -302,6 +302,9 @@ PCIBus *find_i440fx(void); extern PCIDevice *piix4_dev; int piix4_init(PCIBus *bus, ISABus **isa_bus, int devfn); +/* q35.c */ +PCIBus *find_q35(void); + /* pc_sysfw.c */ void pc_system_firmware_init(MemoryRegion *rom_memory, bool isapc_ram_fw); -- 2.11.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey Gerasimenko Subject: [RFC PATCH 14/30] pc/q35: Apply PCI bus BSEL property for Xen PCI device hotplug Date: Tue, 13 Mar 2018 04:33:59 +1000 Message-ID: <4d4ea2e1b6632474660bf4e46126984256b8db3f.1520867956.git.x1917x@gmail.com> References: 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.84_2) (envelope-from ) id 1evSIC-0007fd-Cj for xen-devel@lists.xenproject.org; Mon, 12 Mar 2018 18:35:28 +0000 Received: by mail-pl0-x241.google.com with SMTP id v9-v6so9809298plp.12 for ; Mon, 12 Mar 2018 11:35:26 -0700 (PDT) In-Reply-To: In-Reply-To: References: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Marcel Apfelbaum , Igor Mammedov , "Michael S. Tsirkin" , Alexey Gerasimenko , qemu-devel@nongnu.org List-Id: xen-devel@lists.xenproject.org T24gUTM1IHdlIHN0aWxsIG5lZWQgdG8gYXNzaWduIEJTRUwgcHJvcGVydHkgdG8gYnVzKGVzKSBm b3IgUENJIGRldmljZQphZGQvaG90cGx1ZyB0byB3b3JrLgpFeHRlbmQgYWNwaV9zZXRfcGNpX2lu Zm8oKSBmdW5jdGlvbiB0byBzdXBwb3J0IFEzNSBhcyB3ZWxsLiBQcmV2aW91c2x5Cml0IHdhcyBs aW1pdGVkIHRvIGZpbmRfaTQ0MGZ4KCkgY2FsbCwgdGhpcyBwYXRjaCBhZGRzIG5ldyAodHJpdmlh bCkKZnVuY3Rpb24gZmluZF9xMzUoKSB3aGljaCByZXR1cm5zIHJvb3QgUENJQnVzIG9iamVjdCBv biBRMzUsIGluIGEgd2F5CnNpbWlsYXIgdG8gd2hhdCBmaW5kX2k0NDBmeCBkb2VzLgoKU2lnbmVk LW9mZi1ieTogQWxleGV5IEdlcmFzaW1lbmtvIDx4MTkxN3hAZ21haWwuY29tPgotLS0KIGh3L2Fj cGkvcGNpaHAuYyAgICAgIHwgNiArKysrKy0KIGh3L3BjaS1ob3N0L3EzNS5jICAgIHwgOCArKysr KysrKwogaW5jbHVkZS9ody9pMzg2L3BjLmggfCAzICsrKwogMyBmaWxlcyBjaGFuZ2VkLCAxNiBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvaHcvYWNwaS9wY2locC5j IGIvaHcvYWNwaS9wY2locC5jCmluZGV4IDkxYzgyZmRjN2EuLmY3MGQ4NjIwZDcgMTAwNjQ0Ci0t LSBhL2h3L2FjcGkvcGNpaHAuYworKysgYi9ody9hY3BpL3BjaWhwLmMKQEAgLTEwNSw3ICsxMDUs MTEgQEAgc3RhdGljIHZvaWQgYWNwaV9zZXRfcGNpX2luZm8odm9pZCkKICAgICB9CiAgICAgYnNl bF9pc19zZXQgPSB0cnVlOwogCi0gICAgYnVzID0gZmluZF9pNDQwZngoKTsgLyogVE9ETzogUTM1 IHN1cHBvcnQgKi8KKyAgICBidXMgPSBmaW5kX2k0NDBmeCgpOworICAgIGlmICghYnVzKSB7Cisg ICAgICAgIGJ1cyA9IGZpbmRfcTM1KCk7CisgICAgfQorCiAgICAgaWYgKGJ1cykgewogICAgICAg ICAvKiBTY2FuIGFsbCBQQ0kgYnVzZXMuIFNldCBwcm9wZXJ0eSB0byBlbmFibGUgYWNwaSBiYXNl ZCBob3RwbHVnLiAqLwogICAgICAgICBwY2lfZm9yX2VhY2hfYnVzX2RlcHRoX2ZpcnN0KGJ1cywg YWNwaV9zZXRfYnNlbCwgTlVMTCwgJmJzZWxfYWxsb2MpOwpkaWZmIC0tZ2l0IGEvaHcvcGNpLWhv c3QvcTM1LmMgYi9ody9wY2ktaG9zdC9xMzUuYwppbmRleCBhMzZhMTE5NWU0Li44YzE2MDNmY2U5 IDEwMDY0NAotLS0gYS9ody9wY2ktaG9zdC9xMzUuYworKysgYi9ody9wY2ktaG9zdC9xMzUuYwpA QCAtMjU4LDYgKzI1OCwxNCBAQCBzdGF0aWMgdm9pZCBxMzVfaG9zdF9pbml0Zm4oT2JqZWN0ICpv YmopCiAgICAgICAgICAgICBJT19BUElDX0RFRkFVTFRfQUREUkVTUyAtIDEpOwogfQogCitQQ0lC dXMgKmZpbmRfcTM1KHZvaWQpCit7CisgICAgUENJSG9zdFN0YXRlICpzID0gT0JKRUNUX0NIRUNL KFBDSUhvc3RTdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0 X3Jlc29sdmVfcGF0aCgiL21hY2hpbmUvcTM1IiwgTlVMTCksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRZUEVfUENJX0hPU1RfQlJJREdFKTsKKyAgICByZXR1cm4gcyA/IHMt PmJ1cyA6IE5VTEw7Cit9CisKIHN0YXRpYyBjb25zdCBUeXBlSW5mbyBxMzVfaG9zdF9pbmZvID0g ewogICAgIC5uYW1lICAgICAgID0gVFlQRV9RMzVfSE9TVF9ERVZJQ0UsCiAgICAgLnBhcmVudCAg ICAgPSBUWVBFX1BDSUVfSE9TVF9CUklER0UsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L2kzODYv cGMuaCBiL2luY2x1ZGUvaHcvaTM4Ni9wYy5oCmluZGV4IGJiNDkxNjVmZTAuLjk2ZDc0YjM1YmQg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvaHcvaTM4Ni9wYy5oCisrKyBiL2luY2x1ZGUvaHcvaTM4Ni9w Yy5oCkBAIC0zMDIsNiArMzAyLDkgQEAgUENJQnVzICpmaW5kX2k0NDBmeCh2b2lkKTsKIGV4dGVy biBQQ0lEZXZpY2UgKnBpaXg0X2RldjsKIGludCBwaWl4NF9pbml0KFBDSUJ1cyAqYnVzLCBJU0FC dXMgKippc2FfYnVzLCBpbnQgZGV2Zm4pOwogCisvKiBxMzUuYyAqLworUENJQnVzICpmaW5kX3Ez NSh2b2lkKTsKKwogLyogcGNfc3lzZncuYyAqLwogdm9pZCBwY19zeXN0ZW1fZmlybXdhcmVfaW5p dChNZW1vcnlSZWdpb24gKnJvbV9tZW1vcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJvb2wgaXNhcGNfcmFtX2Z3KTsKLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1h bi9saXN0aW5mby94ZW4tZGV2ZWw=