summaryrefslogtreecommitdiffstats
path: root/hw
diff options
context:
space:
mode:
authorMichael S. Tsirkin2013-09-02 11:58:57 +0200
committerMichael S. Tsirkin2013-09-15 10:49:50 +0200
commit2028fdf3791e14c5ad156252afa0e792192a3e92 (patch)
treef838306c3d3769f0cc1afde02aa612bbad20866e /hw
parentq35: use 64 bit window programmed by guest (diff)
downloadqemu-2028fdf3791e14c5ad156252afa0e792192a3e92.tar.gz
qemu-2028fdf3791e14c5ad156252afa0e792192a3e92.tar.xz
qemu-2028fdf3791e14c5ad156252afa0e792192a3e92.zip
piix: 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')
-rw-r--r--hw/pci-host/piix.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c
index 221d82b637..c041149320 100644
--- a/hw/pci-host/piix.c
+++ b/hw/pci-host/piix.c
@@ -235,18 +235,24 @@ static void i440fx_pcihost_get_pci_hole64_start(Object *obj, Visitor *v,
void *opaque, const char *name,
Error **errp)
{
- I440FXState *s = I440FX_PCI_HOST_BRIDGE(obj);
+ PCIHostState *h = PCI_HOST_BRIDGE(obj);
+ Range w64;
+
+ pci_bus_get_w64_range(h->bus, &w64);
- visit_type_uint64(v, &s->pci_info.w64.begin, name, errp);
+ visit_type_uint64(v, &w64.begin, name, errp);
}
static void i440fx_pcihost_get_pci_hole64_end(Object *obj, Visitor *v,
void *opaque, const char *name,
Error **errp)
{
- I440FXState *s = I440FX_PCI_HOST_BRIDGE(obj);
+ PCIHostState *h = PCI_HOST_BRIDGE(obj);
+ Range w64;
+
+ pci_bus_get_w64_range(h->bus, &w64);
- visit_type_uint64(v, &s->pci_info.w64.end, name, errp);
+ visit_type_uint64(v, &w64.end, name, errp);
}
static void i440fx_pcihost_initfn(Object *obj)