[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [Qemu-devel] [PATCH 15/19] uninorth: move PCI IO (ISA) me
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-ppc] [Qemu-devel] [PATCH 15/19] uninorth: move PCI IO (ISA) memory region into the uninorth device |
Date: |
Mon, 12 Mar 2018 12:01:32 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 |
On 03/06/2018 09:30 PM, Mark Cave-Ayland wrote:
> Do this for both the uninorth main and uninorth u3 AGP buses, using the main
> PCI bus for each machine (this ensures the IO addresses still match those
> used by OpenBIOS).
>
> Signed-off-by: Mark Cave-Ayland <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
> ---
> hw/pci-host/uninorth.c | 14 ++++++++++----
> hw/ppc/mac_newworld.c | 12 ++++++------
> include/hw/pci-host/uninorth.h | 1 +
> 3 files changed, 17 insertions(+), 10 deletions(-)
>
> diff --git a/hw/pci-host/uninorth.c b/hw/pci-host/uninorth.c
> index e2278fd0f0..3a29a4410e 100644
> --- a/hw/pci-host/uninorth.c
> +++ b/hw/pci-host/uninorth.c
> @@ -127,7 +127,7 @@ static void pci_unin_main_realize(DeviceState *dev, Error
> **errp)
> pci_unin_set_irq, pci_unin_map_irq,
> s,
> &s->pci_mmio,
> - get_system_io(),
> + &s->pci_io,
> PCI_DEVFN(11, 0), 4, TYPE_PCI_BUS);
>
> pci_create_simple(h->bus, PCI_DEVFN(11, 0), "uni-north-pci");
> @@ -155,6 +155,8 @@ static void pci_unin_main_init(Object *obj)
>
> memory_region_init(&s->pci_mmio, OBJECT(s), "unin-pci-mmio",
> 0x100000000ULL);
> + memory_region_init_io(&s->pci_io, OBJECT(s), &unassigned_io_ops, obj,
> + "unin-pci-isa-mmio", 0x00800000);
>
> memory_region_init_alias(&s->pci_hole, OBJECT(s),
> "unin-pci-hole", &s->pci_mmio,
> @@ -168,6 +170,7 @@ static void pci_unin_main_init(Object *obj)
> sysbus_init_mmio(sbd, &h->conf_mem);
> sysbus_init_mmio(sbd, &h->data_mem);
> sysbus_init_mmio(sbd, &s->pci_hole);
> + sysbus_init_mmio(sbd, &s->pci_io);
> }
>
> static void pci_u3_agp_realize(DeviceState *dev, Error **errp)
> @@ -179,7 +182,7 @@ static void pci_u3_agp_realize(DeviceState *dev, Error
> **errp)
> pci_unin_set_irq, pci_unin_map_irq,
> s,
> &s->pci_mmio,
> - get_system_io(),
> + &s->pci_io,
> PCI_DEVFN(11, 0), 4, TYPE_PCI_BUS);
>
> pci_create_simple(h->bus, PCI_DEVFN(11, 0), "u3-agp");
> @@ -200,6 +203,8 @@ static void pci_u3_agp_init(Object *obj)
>
> memory_region_init(&s->pci_mmio, OBJECT(s), "unin-pci-mmio",
> 0x100000000ULL);
> + memory_region_init_io(&s->pci_io, OBJECT(s), &unassigned_io_ops, obj,
> + "unin-pci-isa-mmio", 0x00800000);
>
> memory_region_init_alias(&s->pci_hole, OBJECT(s),
> "unin-pci-hole", &s->pci_mmio,
> @@ -213,6 +218,7 @@ static void pci_u3_agp_init(Object *obj)
> sysbus_init_mmio(sbd, &h->conf_mem);
> sysbus_init_mmio(sbd, &h->data_mem);
> sysbus_init_mmio(sbd, &s->pci_hole);
> + sysbus_init_mmio(sbd, &s->pci_io);
> }
>
> static void pci_unin_agp_realize(DeviceState *dev, Error **errp)
> @@ -224,7 +230,7 @@ static void pci_unin_agp_realize(DeviceState *dev, Error
> **errp)
> pci_unin_set_irq, pci_unin_map_irq,
> s,
> &s->pci_mmio,
> - get_system_io(),
> + &s->pci_io,
> PCI_DEVFN(11, 0), 4, TYPE_PCI_BUS);
>
> pci_create_simple(h->bus, PCI_DEVFN(11, 0), "uni-north-agp");
> @@ -261,7 +267,7 @@ static void pci_unin_internal_realize(DeviceState *dev,
> Error **errp)
> pci_unin_set_irq, pci_unin_map_irq,
> s,
> &s->pci_mmio,
> - get_system_io(),
> + &s->pci_io,
> PCI_DEVFN(14, 0), 4, TYPE_PCI_BUS);
>
> pci_create_simple(h->bus, PCI_DEVFN(14, 0), "uni-north-internal-pci");
> diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
> index 5d121a6071..5cb9f9abd0 100644
> --- a/hw/ppc/mac_newworld.c
> +++ b/hw/ppc/mac_newworld.c
> @@ -146,7 +146,6 @@ static void ppc_core99_init(MachineState *machine)
> CPUPPCState *env = NULL;
> char *filename;
> qemu_irq *pic, **openpic_irqs;
> - MemoryRegion *isa = g_new(MemoryRegion, 1);
> MemoryRegion *unin_memory = g_new(MemoryRegion, 1);
> int linux_boot, i, j, k;
> MemoryRegion *ram = g_new(MemoryRegion, 1), *bios = g_new(MemoryRegion,
> 1);
> @@ -274,11 +273,6 @@ static void ppc_core99_init(MachineState *machine)
> }
> }
>
> - /* Register 8 MB of ISA IO space */
> - memory_region_init_alias(isa, NULL, "isa_mmio",
> - get_system_io(), 0, 0x00800000);
> - memory_region_add_subregion(get_system_memory(), 0xf2000000, isa);
> -
> /* UniN init: XXX should be a real device */
> memory_region_init_io(unin_memory, NULL, &unin_ops, token, "unin",
> 0x1000);
> memory_region_add_subregion(get_system_memory(), 0xf8000000,
> unin_memory);
> @@ -356,6 +350,9 @@ static void ppc_core99_init(MachineState *machine)
> /* PCI hole */
> memory_region_add_subregion(get_system_memory(), 0x80000000ULL,
> sysbus_mmio_get_region(s, 2));
> + /* Register 8 MB of ISA IO space */
> + memory_region_add_subregion(get_system_memory(), 0xf2000000,
> + sysbus_mmio_get_region(s, 3));
> sysbus_mmio_map(s, 0, 0xf0800000);
> sysbus_mmio_map(s, 1, 0xf0c00000);
>
> @@ -390,6 +387,9 @@ static void ppc_core99_init(MachineState *machine)
> /* PCI hole */
> memory_region_add_subregion(get_system_memory(), 0x80000000ULL,
> sysbus_mmio_get_region(s, 2));
> + /* Register 8 MB of ISA IO space */
> + memory_region_add_subregion(get_system_memory(), 0xf2000000,
> + sysbus_mmio_get_region(s, 3));
> sysbus_mmio_map(s, 0, 0xf2800000);
> sysbus_mmio_map(s, 1, 0xf2c00000);
>
> diff --git a/include/hw/pci-host/uninorth.h b/include/hw/pci-host/uninorth.h
> index 6b520e753c..c4771aa7fa 100644
> --- a/include/hw/pci-host/uninorth.h
> +++ b/include/hw/pci-host/uninorth.h
> @@ -48,6 +48,7 @@ typedef struct UNINState {
> qemu_irq irqs[4];
> MemoryRegion pci_mmio;
> MemoryRegion pci_hole;
> + MemoryRegion pci_io;
> } UNINState;
>
> #endif /* UNINORTH_H */
>
- [Qemu-ppc] [PATCH 13/19] uninorth: remove obsolete pci_pmac_u3_init() function, (continued)
- [Qemu-ppc] [PATCH 13/19] uninorth: remove obsolete pci_pmac_u3_init() function, Mark Cave-Ayland, 2018/03/06
- [Qemu-ppc] [PATCH 10/19] uninorth: fix PCI and AGP bus mixup, Mark Cave-Ayland, 2018/03/06
- [Qemu-ppc] [PATCH 12/19] uninorth: remove obsolete pci_pmac_init() function, Mark Cave-Ayland, 2018/03/06
- [Qemu-ppc] [PATCH 11/19] uninorth: enable internal PCI host bridge, Mark Cave-Ayland, 2018/03/06
- [Qemu-ppc] [PATCH 16/19] uninorth: rename UNINState to UNINHostState, Mark Cave-Ayland, 2018/03/06
- [Qemu-ppc] [PATCH 18/19] mac_newworld: remove pics IRQ array and wire up macio to OpenPIC directly, Mark Cave-Ayland, 2018/03/06
- [Qemu-ppc] [PATCH 15/19] uninorth: move PCI IO (ISA) memory region into the uninorth device, Mark Cave-Ayland, 2018/03/06
- Re: [Qemu-ppc] [Qemu-devel] [PATCH 15/19] uninorth: move PCI IO (ISA) memory region into the uninorth device,
Philippe Mathieu-Daudé <=
- [Qemu-ppc] [PATCH 17/19] uninorth: create new uninorth device, Mark Cave-Ayland, 2018/03/06
- Re: [Qemu-ppc] [Qemu-devel] [PATCH 00/19] uninorth fixes/mac_newworld board wiring improvements, no-reply, 2018/03/06
- Re: [Qemu-ppc] [PATCH 00/19] uninorth fixes/mac_newworld board wiring improvements, David Gibson, 2018/03/14
- Re: [Qemu-ppc] [PATCH 00/19] uninorth fixes/mac_newworld board wiring improvements, David Gibson, 2018/03/14