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

Reply via email to