Message ID | 19ca518931d704615e801df249f2071c9f74a7dc.1688421085.git.balaton@eik.bme.hu (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | PPC440 devices misc clean up | expand |
On 4/7/23 00:02, BALATON Zoltan wrote: > Use the iomem region for the PCI io space and map it directly from the > board without an intermediate alias that is not really needed. "Reduce the I/O region to 64K." > Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> > --- > hw/ppc/ppc440_pcix.c | 8 +++++--- > hw/ppc/sam460ex.c | 6 +----- > 2 files changed, 6 insertions(+), 8 deletions(-) > > diff --git a/hw/ppc/ppc440_pcix.c b/hw/ppc/ppc440_pcix.c > index ee2dc44f67..cca8a72c72 100644 > --- a/hw/ppc/ppc440_pcix.c > +++ b/hw/ppc/ppc440_pcix.c > @@ -490,10 +490,11 @@ static void ppc440_pcix_realize(DeviceState *dev, Error **errp) > s = PPC440_PCIX_HOST(dev); > > sysbus_init_irq(sbd, &s->irq); > - memory_region_init(&s->busmem, OBJECT(dev), "pci bus memory", UINT64_MAX); > + memory_region_init(&s->busmem, OBJECT(dev), "pci-mem", UINT64_MAX); > + memory_region_init(&s->iomem, OBJECT(dev), "pci-io", 0x10000); 64 * KiB > h->bus = pci_register_root_bus(dev, NULL, ppc440_pcix_set_irq, > - ppc440_pcix_map_irq, &s->irq, &s->busmem, > - get_system_io(), PCI_DEVFN(0, 0), 1, TYPE_PCI_BUS); > + ppc440_pcix_map_irq, &s->irq, &s->busmem, &s->iomem, > + PCI_DEVFN(0, 0), 1, TYPE_PCI_BUS); > > s->dev = pci_create_simple(h->bus, PCI_DEVFN(0, 0), > TYPE_PPC4xx_HOST_BRIDGE); > @@ -514,6 +515,7 @@ static void ppc440_pcix_realize(DeviceState *dev, Error **errp) > memory_region_add_subregion(&s->container, PCIC0_CFGDATA, &h->data_mem); > memory_region_add_subregion(&s->container, PPC440_REG_BASE, regs); > sysbus_init_mmio(sbd, &s->container); > + sysbus_init_mmio(sbd, &s->iomem); > } With the changes requested: Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
diff --git a/hw/ppc/ppc440_pcix.c b/hw/ppc/ppc440_pcix.c index ee2dc44f67..cca8a72c72 100644 --- a/hw/ppc/ppc440_pcix.c +++ b/hw/ppc/ppc440_pcix.c @@ -490,10 +490,11 @@ static void ppc440_pcix_realize(DeviceState *dev, Error **errp) s = PPC440_PCIX_HOST(dev); sysbus_init_irq(sbd, &s->irq); - memory_region_init(&s->busmem, OBJECT(dev), "pci bus memory", UINT64_MAX); + memory_region_init(&s->busmem, OBJECT(dev), "pci-mem", UINT64_MAX); + memory_region_init(&s->iomem, OBJECT(dev), "pci-io", 0x10000); h->bus = pci_register_root_bus(dev, NULL, ppc440_pcix_set_irq, - ppc440_pcix_map_irq, &s->irq, &s->busmem, - get_system_io(), PCI_DEVFN(0, 0), 1, TYPE_PCI_BUS); + ppc440_pcix_map_irq, &s->irq, &s->busmem, &s->iomem, + PCI_DEVFN(0, 0), 1, TYPE_PCI_BUS); s->dev = pci_create_simple(h->bus, PCI_DEVFN(0, 0), TYPE_PPC4xx_HOST_BRIDGE); @@ -514,6 +515,7 @@ static void ppc440_pcix_realize(DeviceState *dev, Error **errp) memory_region_add_subregion(&s->container, PCIC0_CFGDATA, &h->data_mem); memory_region_add_subregion(&s->container, PPC440_REG_BASE, regs); sysbus_init_mmio(sbd, &s->container); + sysbus_init_mmio(sbd, &s->iomem); } static void ppc440_pcix_class_init(ObjectClass *klass, void *data) diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c index 8d0e551d14..1e615b8d35 100644 --- a/hw/ppc/sam460ex.c +++ b/hw/ppc/sam460ex.c @@ -269,7 +269,6 @@ static void main_cpu_reset(void *opaque) static void sam460ex_init(MachineState *machine) { - MemoryRegion *isa = g_new(MemoryRegion, 1); MemoryRegion *l2cache_ram = g_new(MemoryRegion, 1); DeviceState *uic[4]; int i; @@ -441,12 +440,9 @@ static void sam460ex_init(MachineState *machine) /* All PCI irqs are connected to the same UIC pin (cf. UBoot source) */ dev = sysbus_create_simple(TYPE_PPC440_PCIX_HOST, 0xc0ec00000, qdev_get_gpio_in(uic[1], 0)); + sysbus_mmio_map(SYS_BUS_DEVICE(dev), 1, 0xc08000000); pci_bus = PCI_BUS(qdev_get_child_bus(dev, "pci.0")); - memory_region_init_alias(isa, NULL, "isa_mmio", get_system_io(), - 0, 0x10000); - memory_region_add_subregion(get_system_memory(), 0xc08000000, isa); - /* PCI devices */ pci_create_simple(pci_bus, PCI_DEVFN(6, 0), "sm501"); /* SoC has a single SATA port but we don't emulate that yet
Use the iomem region for the PCI io space and map it directly from the board without an intermediate alias that is not really needed. Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> --- hw/ppc/ppc440_pcix.c | 8 +++++--- hw/ppc/sam460ex.c | 6 +----- 2 files changed, 6 insertions(+), 8 deletions(-)