diff mbox

[2/3] sun4u: expose fw_cfg on ebus PCI IO address space

Message ID 1497099616-2615-3-git-send-email-mark.cave-ayland@ilande.co.uk (mailing list archive)
State New, archived
Headers show

Commit Message

Mark Cave-Ayland June 10, 2017, 1 p.m. UTC
To allow future changes to the sun4u PCI topology.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
---
 hw/sparc64/sun4u.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Comments

Philippe Mathieu-Daudé June 10, 2017, 6:01 p.m. UTC | #1
On 06/10/2017 10:00 AM, Mark Cave-Ayland wrote:
> To allow future changes to the sun4u PCI topology.
>
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>  hw/sparc64/sun4u.c |   10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
> index 98ee6f5..19e64be 100644
> --- a/hw/sparc64/sun4u.c
> +++ b/hw/sparc64/sun4u.c
> @@ -224,13 +224,11 @@ static void isa_irq_handler(void *opaque, int n, int level)
>
>  /* EBUS (Eight bit bus) bridge */
>  static ISABus *
> -pci_ebus_init(PCIBus *bus, int devfn, qemu_irq *irqs)
> +pci_ebus_init(PCIDevice *pci_dev, qemu_irq *irqs)
>  {
>      qemu_irq *isa_irq;
> -    PCIDevice *pci_dev;
>      ISABus *isa_bus;
>
> -    pci_dev = pci_create_simple(bus, devfn, "ebus");
>      isa_bus = ISA_BUS(qdev_get_child_bus(DEVICE(pci_dev), "isa.0"));
>      isa_irq = qemu_allocate_irqs(isa_irq_handler, irqs, 16);
>      isa_bus_irqs(isa_bus, isa_irq);
> @@ -429,6 +427,7 @@ static void sun4uv_init(MemoryRegion *address_space_mem,
>      unsigned int i;
>      uint64_t initrd_addr, initrd_size, kernel_addr, kernel_size, kernel_entry;
>      PCIBus *pci_bus, *pci_bus2, *pci_bus3;
> +    PCIDevice *ebus;
>      ISABus *isa_bus;
>      SysBusDevice *s;
>      qemu_irq *ivec_irqs, *pbm_irqs;
> @@ -452,7 +451,8 @@ static void sun4uv_init(MemoryRegion *address_space_mem,
>      pci_vga_init(pci_bus);
>
>      // XXX Should be pci_bus3
> -    isa_bus = pci_ebus_init(pci_bus, -1, pbm_irqs);
> +    ebus = pci_create_simple(pci_bus, -1, "ebus");
> +    isa_bus = pci_ebus_init(ebus, pbm_irqs);
>
>      i = 0;
>      if (hwdef->console_serial_base) {
> @@ -517,7 +517,7 @@ static void sun4uv_init(MemoryRegion *address_space_mem,
>      qdev_prop_set_bit(dev, "dma_enabled", false);
>      qdev_init_nofail(dev);
>      s = SYS_BUS_DEVICE(dev);
> -    memory_region_add_subregion(get_system_io(), BIOS_CFG_IOPORT,
> +    memory_region_add_subregion(pci_address_space_io(ebus), BIOS_CFG_IOPORT,
>                                  sysbus_mmio_get_region(s, 0));
>
>      fw_cfg = FW_CFG(dev);
>
diff mbox

Patch

diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
index 98ee6f5..19e64be 100644
--- a/hw/sparc64/sun4u.c
+++ b/hw/sparc64/sun4u.c
@@ -224,13 +224,11 @@  static void isa_irq_handler(void *opaque, int n, int level)
 
 /* EBUS (Eight bit bus) bridge */
 static ISABus *
-pci_ebus_init(PCIBus *bus, int devfn, qemu_irq *irqs)
+pci_ebus_init(PCIDevice *pci_dev, qemu_irq *irqs)
 {
     qemu_irq *isa_irq;
-    PCIDevice *pci_dev;
     ISABus *isa_bus;
 
-    pci_dev = pci_create_simple(bus, devfn, "ebus");
     isa_bus = ISA_BUS(qdev_get_child_bus(DEVICE(pci_dev), "isa.0"));
     isa_irq = qemu_allocate_irqs(isa_irq_handler, irqs, 16);
     isa_bus_irqs(isa_bus, isa_irq);
@@ -429,6 +427,7 @@  static void sun4uv_init(MemoryRegion *address_space_mem,
     unsigned int i;
     uint64_t initrd_addr, initrd_size, kernel_addr, kernel_size, kernel_entry;
     PCIBus *pci_bus, *pci_bus2, *pci_bus3;
+    PCIDevice *ebus;
     ISABus *isa_bus;
     SysBusDevice *s;
     qemu_irq *ivec_irqs, *pbm_irqs;
@@ -452,7 +451,8 @@  static void sun4uv_init(MemoryRegion *address_space_mem,
     pci_vga_init(pci_bus);
 
     // XXX Should be pci_bus3
-    isa_bus = pci_ebus_init(pci_bus, -1, pbm_irqs);
+    ebus = pci_create_simple(pci_bus, -1, "ebus");
+    isa_bus = pci_ebus_init(ebus, pbm_irqs);
 
     i = 0;
     if (hwdef->console_serial_base) {
@@ -517,7 +517,7 @@  static void sun4uv_init(MemoryRegion *address_space_mem,
     qdev_prop_set_bit(dev, "dma_enabled", false);
     qdev_init_nofail(dev);
     s = SYS_BUS_DEVICE(dev);
-    memory_region_add_subregion(get_system_io(), BIOS_CFG_IOPORT,
+    memory_region_add_subregion(pci_address_space_io(ebus), BIOS_CFG_IOPORT,
                                 sysbus_mmio_get_region(s, 0));
 
     fw_cfg = FW_CFG(dev);