aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2013-04-19 11:15:17 +0100
committerPeter Maydell <peter.maydell@linaro.org>2013-04-19 11:15:17 +0100
commit5fb8084f31e9df7f0b2d63cfd3d10645d29b5eab (patch)
tree48b348751e4f7cb33f553da7b0ac0ebbe7b26d0d
parentc5c86c5346e927f55918ffdf1b09742fee7a5d8d (diff)
downloadqemu-5fb8084f31e9df7f0b2d63cfd3d10645d29b5eab.zip
qemu-5fb8084f31e9df7f0b2d63cfd3d10645d29b5eab.tar.gz
qemu-5fb8084f31e9df7f0b2d63cfd3d10645d29b5eab.tar.bz2
versatile_pci: Expose PCI I/O region on Versatile PB
Comments in the QEMU source code claim that the version of the PCI controller on the VersatilePB board doesn't support the PCI I/O region, but this is incorrect; expose that region, map it in the correct location, and drop the misleading comments. This change removes the only currently implemented difference between the realview-pci and versatile-pci models; however there are other differences in not-yet-implemented functionality, so we retain the distinction between the two device types. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Acked-by: Paul Brook <paul@codesourcery.com>
-rw-r--r--hw/arm/versatilepb.c3
-rw-r--r--hw/pci-host/versatile.c8
2 files changed, 4 insertions, 7 deletions
diff --git a/hw/arm/versatilepb.c b/hw/arm/versatilepb.c
index 25c665a..33a8222 100644
--- a/hw/arm/versatilepb.c
+++ b/hw/arm/versatilepb.c
@@ -226,14 +226,13 @@ static void versatile_init(QEMUMachineInitArgs *args, int board_id)
qdev_init_nofail(dev);
sysbus_mmio_map(busdev, 0, 0x41000000); /* PCI self-config */
sysbus_mmio_map(busdev, 1, 0x42000000); /* PCI config */
+ sysbus_mmio_map(busdev, 2, 0x43000000); /* PCI I/O */
sysbus_connect_irq(busdev, 0, sic[27]);
sysbus_connect_irq(busdev, 1, sic[28]);
sysbus_connect_irq(busdev, 2, sic[29]);
sysbus_connect_irq(busdev, 3, sic[30]);
pci_bus = (PCIBus *)qdev_get_child_bus(dev, "pci");
- /* The Versatile PCI bridge does not provide access to PCI IO space,
- so many of the qemu PCI devices are not useable. */
for(n = 0; n < nb_nics; n++) {
nd = &nd_table[n];
diff --git a/hw/pci-host/versatile.c b/hw/pci-host/versatile.c
index 04d0029..a50a18b 100644
--- a/hw/pci-host/versatile.c
+++ b/hw/pci-host/versatile.c
@@ -77,7 +77,7 @@ static int pci_vpb_init(SysBusDevice *dev)
/* Our memory regions are:
* 0 : PCI self config window
* 1 : PCI config window
- * 2 : PCI IO window (realview_pci only)
+ * 2 : PCI IO window
*/
memory_region_init_io(&s->mem_config, &pci_vpb_config_ops, bus,
"pci-vpb-selfconfig", 0x1000000);
@@ -85,10 +85,8 @@ static int pci_vpb_init(SysBusDevice *dev)
memory_region_init_io(&s->mem_config2, &pci_vpb_config_ops, bus,
"pci-vpb-config", 0x1000000);
sysbus_init_mmio(dev, &s->mem_config2);
- if (s->realview) {
- isa_mmio_setup(&s->isa, 0x0100000);
- sysbus_init_mmio(dev, &s->isa);
- }
+ isa_mmio_setup(&s->isa, 0x0100000);
+ sysbus_init_mmio(dev, &s->isa);
pci_create_simple(bus, -1, "versatile_pci_host");
return 0;