summaryrefslogtreecommitdiffstats
path: root/hw/pci-host
diff options
context:
space:
mode:
authorMichael S. Tsirkin2013-09-02 11:57:36 +0200
committerMichael S. Tsirkin2013-09-15 10:49:50 +0200
commit8b42d730e3401084720f4ba59d1e18a0d6c67dc6 (patch)
treebd117fa695a764d6a30164c769d0680fb3ca5696 /hw/pci-host
parentpci: add helper to retrieve the 64-bit range (diff)
downloadqemu-8b42d730e3401084720f4ba59d1e18a0d6c67dc6.tar.gz
qemu-8b42d730e3401084720f4ba59d1e18a0d6c67dc6.tar.xz
qemu-8b42d730e3401084720f4ba59d1e18a0d6c67dc6.zip
q35: use 64 bit window programmed by guest
Detect the 64 bit window programmed by firmware and configure properties accordingly. Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'hw/pci-host')
-rw-r--r--hw/pci-host/q35.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c
index 72f6b7213b..23dbeea14f 100644
--- a/hw/pci-host/q35.c
+++ b/hw/pci-host/q35.c
@@ -89,18 +89,24 @@ static void q35_host_get_pci_hole64_start(Object *obj, Visitor *v,
void *opaque, const char *name,
Error **errp)
{
- Q35PCIHost *s = Q35_HOST_DEVICE(obj);
+ PCIHostState *h = PCI_HOST_BRIDGE(obj);
+ Range w64;
+
+ pci_bus_get_w64_range(h->bus, &w64);
- visit_type_uint64(v, &s->mch.pci_info.w64.begin, name, errp);
+ visit_type_uint64(v, &w64.begin, name, errp);
}
static void q35_host_get_pci_hole64_end(Object *obj, Visitor *v,
void *opaque, const char *name,
Error **errp)
{
- Q35PCIHost *s = Q35_HOST_DEVICE(obj);
+ PCIHostState *h = PCI_HOST_BRIDGE(obj);
+ Range w64;
+
+ pci_bus_get_w64_range(h->bus, &w64);
- visit_type_uint64(v, &s->mch.pci_info.w64.end, name, errp);
+ visit_type_uint64(v, &w64.end, name, errp);
}
static Property mch_props[] = {