2011/11/24 Benoît Canet <benoit.ca...@gmail.com>: > @@ -690,17 +688,16 @@ static int bonito_pcihost_initfn(SysBusDevice *dev) > static int bonito_initfn(PCIDevice *dev) > { > PCIBonitoState *s = DO_UPCAST(PCIBonitoState, dev, dev); > + SysBusDevice *sysbus = &s->pcihost->busdev; > > /* Bonito North Bridge, built on FPGA, VENDOR_ID/DEVICE_ID are > "undefined" */ > pci_config_set_prog_interface(dev->config, 0x00); > > /* set the north bridge register mapping */ > - s->bonito_reg_handle = cpu_register_io_memory(bonito_read, bonito_write, > s, > - DEVICE_NATIVE_ENDIAN); > - s->bonito_reg_start = BONITO_INTERNAL_REG_BASE; > - s->bonito_reg_length = BONITO_INTERNAL_REG_SIZE; > - cpu_register_physical_memory(s->bonito_reg_start, s->bonito_reg_length, > - s->bonito_reg_handle); > + memory_region_init_io(&s->iomem, &bonito_ops, s, > + "north-bridge-register", BONITO_INTERNAL_REG_SIZE); > + sysbus_init_mmio_region(sysbus, &s->iomem); > + sysbus_mmio_map(sysbus, 0, BONITO_INTERNAL_REG_BASE); > > /* set the north bridge pci configure mapping */ > s->bonito_pciconf_handle = cpu_register_io_memory(bonito_pciconf_read,
I guess this is the minimal-change conversion patch, but I'm still not sure it makes any sense to be have one device's initfn be adding sysbus mmio regions to a totally different device and then mapping them into address space itself... -- PMM