@@ -67,7 +67,6 @@ struct PRePPCIState {
PCIBus pci_bus;
AddressSpace pci_io_as;
MemoryRegion pci_io;
- MemoryRegion pci_io_alias;
MemoryRegion pci_io_non_contiguous;
MemoryRegion pci_memory;
MemoryRegion pci_intack;
@@ -299,8 +298,6 @@ static void raven_pcihost_initfn(Object *obj)
DeviceState *pci_dev;
memory_region_init(&s->pci_io, obj, "pci-io", 0x3f800000);
- memory_region_init_alias(&s->pci_io_alias, obj, "pci-io",
- &s->pci_io, 0, memory_region_size(&s->pci_io));
memory_region_init_io(&s->pci_io_non_contiguous, obj, &raven_io_ops, s,
"pci-io-non-contiguous", 0x00800000);
memory_region_init(&s->pci_memory, obj, "pci-memory", 0x3f000000);
@@ -308,9 +305,7 @@ static void raven_pcihost_initfn(Object *obj)
/* CPU address space */
memory_region_add_subregion(address_space_mem, PCI_IO_BASE_ADDR,
- &s->pci_io_alias);
- memory_region_add_subregion_overlap(address_space_mem, PCI_IO_BASE_ADDR,
- &s->pci_io_non_contiguous, 1);
+ &s->pci_io_non_contiguous);
memory_region_add_subregion(address_space_mem, 0xc0000000, &s->pci_memory);
pci_root_bus_new_inplace(&s->pci_bus, sizeof(s->pci_bus), DEVICE(obj), NULL,
&s->pci_memory, &s->pci_io, 0, TYPE_PCI_BUS);
The 'pci-io' alias (mapped with priority 0) ends up masked by the 'pci-io-non-contiguous' I/O region (mapped with priority 1). The flatview rendering is ('pci-io-non-contiguous' is written 'pci-io-nc'): (base addr) [ MemoryRegion ] [ FlatView ] +----------------------------+---------------+ | priority 0 | priority 1 | +----------------------------+---------------+ 8000.0000 +- +--------------+---------------+ +---------------+ | "pci-io" | "pci-io-nc" | | "pci-io-nc" | | | | | | | / - isadev | | | | | | - isadev | | | | | | - isadev | +----> | | | \ - isadev | | | | | | | | | | | | | | | | | | | 8080.0000 +-------------+ +---------------+ +---------------+ | "pciio" | | | "pciio" | | | | | | | | | | | | + - - - - |--------------------> | | | | | | | | | | | | | | | | | 80c0.0000 +-------------+ | +---------------+ | | +-------------+ | | | "???" | | | | | | | ???????-----> | unassigned? | | | | | | | | | | | | | bf80.0000 +- +--------------+ +-------------+ The before/after this commit memory tree diff is: (qemu) info mtree memory-region: system 0000000000000000-ffffffffffffffff (prio 0, i/o): system 0000000000000000-0000000001ffffff (prio 0, ram): simm.0 0000000002000000-0000000003ffffff (prio 1, ram): simm.1 0000000004000000-0000000005ffffff (prio 2, ram): simm.2 0000000006000000-0000000007ffffff (prio 3, ram): simm.3 0000000080000000-00000000807fffff (prio 1, i/o): pci-io-non-contiguous - 0000000080000000-00000000bf7fffff (prio 0, i/o): alias pci-io @pci-io 0000000000000000-000000003f7fffff 0000000080800000-0000000080bfffff (prio 0, i/o): pciio 00000000bfffeff0-00000000bfffeff3 (prio 0, i/o): ppc-parity 00000000bffffff0-00000000bffffff0 (prio 0, i/o): pci-intack 00000000c0000000-00000000feffffff (prio 0, i/o): pci-memory 00000000c00a0000-00000000c00bffff (prio 1, i/o): vga-lowmem 00000000f0000510-00000000f0000511 (prio 0, i/o): fwcfg.ctl 00000000f0000512-00000000f0000512 (prio 0, i/o): fwcfg.data 00000000fff00000-00000000ffffffff (prio 0, rom): bios We can see it in the monitor, before/after this patch, the flatview rendering is left unchanged (note the unassigned 80c0.0000-bf7f.ffff range): (qemu) info mtree -f FlatView #1 AS "memory", root: system AS "cpu-memory-0", root: system Root memory region: system 0000000000000000-0000000001ffffff (prio 0, ram): simm.0 0000000002000000-0000000003ffffff (prio 1, ram): simm.1 0000000004000000-0000000005ffffff (prio 2, ram): simm.2 0000000006000000-0000000007ffffff (prio 3, ram): simm.3 0000000080000000-00000000807fffff (prio 1, i/o): pci-io-non-contiguous 0000000080800000-0000000080bfffff (prio 0, i/o): pciio 00000000bfffeff0-00000000bfffeff3 (prio 0, i/o): ppc-parity 00000000bffffff0-00000000bffffff0 (prio 0, i/o): pci-intack 00000000c00a0000-00000000c00bffff (prio 1, i/o): vga-lowmem 00000000f0000510-00000000f0000511 (prio 0, i/o): fwcfg.ctl 00000000f0000512-00000000f0000512 (prio 0, i/o): fwcfg.data 00000000fff00000-00000000ffffffff (prio 0, rom): bios Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- RFC because I can't justify the unassigned 80c0.0000-bf7f.ffff range. --- hw/pci-host/raven.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-)