[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH V2 3/4] hw/pc: query both q35 and i440fx bus
From: |
Marcel Apfelbaum |
Subject: |
[Qemu-devel] [PATCH V2 3/4] hw/pc: query both q35 and i440fx bus |
Date: |
Sun, 15 Nov 2015 17:39:05 +0200 |
Look for pxb devices on both i386 machines.
Signed-off-by: Marcel Apfelbaum <address@hidden>
---
hw/i386/acpi-build.c | 3 +--
hw/i386/pc.c | 2 +-
hw/pci-host/q35.c | 8 ++++++++
include/hw/i386/pc.h | 9 +++++++++
4 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index 736b252..80e9d47 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -950,8 +950,7 @@ build_ssdt(GArray *table_data, GArray *linker,
/* Reserve space for header */
acpi_data_push(ssdt->buf, sizeof(AcpiTableHeader));
- /* Extra PCI root buses are implemented only for i440fx */
- bus = find_i440fx();
+ bus = find_pc();
if (bus) {
QLIST_FOREACH(bus, &bus->child, sibling) {
uint8_t bus_num = pci_bus_num(bus);
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 0cb8afd..c027782 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1174,7 +1174,7 @@ void pc_guest_info_machine_done(Notifier *notifier, void
*data)
PcGuestInfoState *guest_info_state = container_of(notifier,
PcGuestInfoState,
machine_done);
- PCIBus *bus = find_i440fx();
+ PCIBus *bus = find_pc();
if (bus) {
int extra_hosts = 0;
diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c
index c81507d..2fbbcd3 100644
--- a/hw/pci-host/q35.c
+++ b/hw/pci-host/q35.c
@@ -511,6 +511,14 @@ static void mch_realize(PCIDevice *d, Error **errp)
}
}
+PCIBus *find_q35(void)
+{
+ PCIHostState *s = OBJECT_CHECK(PCIHostState,
+ object_resolve_path("/machine/q35", NULL),
+ TYPE_PCI_HOST_BRIDGE);
+ return s ? s->bus : NULL;
+}
+
uint64_t mch_mcfg_base(void)
{
bool ambiguous;
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 4bbc0ff..95d7610 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -242,6 +242,15 @@ PCIBus *i440fx_init(const char *host_type, const char
*pci_type,
MemoryRegion *ram_memory);
PCIBus *find_i440fx(void);
+PCIBus *find_q35(void);
+
+static inline PCIBus *find_pc(void)
+{
+ PCIBus *bus = find_i440fx();
+
+ return bus ? bus : find_q35();
+}
+
/* piix4.c */
extern PCIDevice *piix4_dev;
int piix4_init(PCIBus *bus, ISABus **isa_bus, int devfn);
--
2.1.0
- Re: [Qemu-devel] [PATCH V2 0/4] hw/pcie: Multi-root support for Q35, (continued)
- Re: [Qemu-devel] [PATCH V2 0/4] hw/pcie: Multi-root support for Q35, Paolo Bonzini, 2015/11/16
- Re: [Qemu-devel] [PATCH V2 0/4] hw/pcie: Multi-root support for Q35, Laine Stump, 2015/11/19
- Re: [Qemu-devel] [PATCH V2 0/4] hw/pcie: Multi-root support for Q35, Markus Armbruster, 2015/11/17
- Re: [Qemu-devel] [PATCH V2 0/4] hw/pcie: Multi-root support for Q35, Marcel Apfelbaum, 2015/11/17
- Re: [Qemu-devel] [PATCH V2 0/4] hw/pcie: Multi-root support for Q35, Markus Armbruster, 2015/11/17
- Re: [Qemu-devel] [PATCH V2 0/4] hw/pcie: Multi-root support for Q35, Marcel Apfelbaum, 2015/11/17
[Qemu-devel] [PATCH V2 1/4] hw/pxb: remove the built-in pci bridge, Marcel Apfelbaum, 2015/11/16
[Qemu-devel] [PATCH V2 3/4] hw/pc: query both q35 and i440fx bus,
Marcel Apfelbaum <=
[Qemu-devel] [PATCH V2 2/4] hw/acpi: merge pxb adjacent memory/IO ranges, Marcel Apfelbaum, 2015/11/16
[Qemu-devel] [PATCH V2 4/4] hw/pxb: add support for PCIe, Marcel Apfelbaum, 2015/11/16