On 2 December 2011 14:51, Benoît Canet <benoit.ca...@gmail.com> wrote: > @@ -320,10 +321,15 @@ static void mpc8544ds_init(ram_addr_t ram_size, > sysbus_create_simple("mpc8544-guts", MPC8544_UTIL_BASE, NULL); > > /* PCI */ > - dev = sysbus_create_varargs("e500-pcihost", MPC8544_PCI_REGS_BASE, > - mpic[pci_irq_nrs[0]], mpic[pci_irq_nrs[1]], > - mpic[pci_irq_nrs[2]], mpic[pci_irq_nrs[3]], > - NULL); > + dev = qdev_create(NULL, "e500-pcihost"); > + busdev = sysbus_from_qdev(dev); > + qdev_init_nofail(dev); > + sysbus_mmio_map(busdev, 0, MPC8544_PCI_REGS_BASE); > + sysbus_connect_irq(busdev, 0, mpic[pci_irq_nrs[0]]); > + sysbus_connect_irq(busdev, 1, mpic[pci_irq_nrs[1]]); > + sysbus_connect_irq(busdev, 2, mpic[pci_irq_nrs[2]]); > + sysbus_connect_irq(busdev, 3, mpic[pci_irq_nrs[3]]); > +
Is this change actually necessary? If we only have one MMIO region to map then sysbus_create_varargs() suffices. How much did you test this patch, by the way? I've been running into some odd behaviour with sub-page-sized memory regions which I'm wondering if you hit here... -- PMM