aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2020-12-29 17:56:14 +0000
committerMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2021-01-13 12:20:22 +0000
commit49ac51ae8048661c8fa9ad45b008e15bce1decaf (patch)
tree7f4fced8614164a52d14aeb0c935f14a6ccd5e60
parent5d9d37697939375310fbcfd507481ae78116411a (diff)
downloadqemu-49ac51ae8048661c8fa9ad45b008e15bce1decaf.zip
qemu-49ac51ae8048661c8fa9ad45b008e15bce1decaf.tar.gz
qemu-49ac51ae8048661c8fa9ad45b008e15bce1decaf.tar.bz2
mac_oldworld: move initialisation of grackle before heathrow
In order to move the heathrow PIC to the macio device, the PCI bus needs to be initialised before the macio device and also before wiring the PIC IRQs. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Message-Id: <20201229175619.6051-3-mark.cave-ayland@ilande.co.uk> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
-rw-r--r--hw/ppc/mac_oldworld.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
index 2ead34b..e58e052 100644
--- a/hw/ppc/mac_oldworld.c
+++ b/hw/ppc/mac_oldworld.c
@@ -227,6 +227,21 @@ static void ppc_heathrow_init(MachineState *machine)
}
}
+ /* Grackle PCI host bridge */
+ dev = qdev_new(TYPE_GRACKLE_PCI_HOST_BRIDGE);
+ qdev_prop_set_uint32(dev, "ofw-addr", 0x80000000);
+ s = SYS_BUS_DEVICE(dev);
+ sysbus_realize_and_unref(s, &error_fatal);
+
+ sysbus_mmio_map(s, 0, GRACKLE_BASE);
+ sysbus_mmio_map(s, 1, GRACKLE_BASE + 0x200000);
+ /* PCI hole */
+ memory_region_add_subregion(get_system_memory(), 0x80000000ULL,
+ sysbus_mmio_get_region(s, 2));
+ /* Register 2 MB of ISA IO space */
+ memory_region_add_subregion(get_system_memory(), 0xfe000000,
+ sysbus_mmio_get_region(s, 3));
+
/* XXX: we register only 1 output pin for heathrow PIC */
pic_dev = qdev_new(TYPE_HEATHROW);
sysbus_realize_and_unref(SYS_BUS_DEVICE(pic_dev), &error_fatal);
@@ -251,21 +266,6 @@ static void ppc_heathrow_init(MachineState *machine)
tbfreq = TBFREQ;
}
- /* Grackle PCI host bridge */
- dev = qdev_new(TYPE_GRACKLE_PCI_HOST_BRIDGE);
- qdev_prop_set_uint32(dev, "ofw-addr", 0x80000000);
- s = SYS_BUS_DEVICE(dev);
- sysbus_realize_and_unref(s, &error_fatal);
-
- sysbus_mmio_map(s, 0, GRACKLE_BASE);
- sysbus_mmio_map(s, 1, GRACKLE_BASE + 0x200000);
- /* PCI hole */
- memory_region_add_subregion(get_system_memory(), 0x80000000ULL,
- sysbus_mmio_get_region(s, 2));
- /* Register 2 MB of ISA IO space */
- memory_region_add_subregion(get_system_memory(), 0xfe000000,
- sysbus_mmio_get_region(s, 3));
-
for (i = 0; i < 4; i++) {
qdev_connect_gpio_out(dev, i, qdev_get_gpio_in(pic_dev, 0x15 + i));
}