qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4 07/11] bonito: convert north bridge register


From: Avi Kivity
Subject: Re: [Qemu-devel] [PATCH v4 07/11] bonito: convert north bridge register mapping to memory API
Date: Thu, 24 Nov 2011 15:48:54 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111115 Thunderbird/8.0

On 11/24/2011 03:43 PM, Peter Maydell wrote:
> 2011/11/24 Benoît Canet <address@hidden>:
> > @@ -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...

Oh, this isn't the clean thing to do, certainly.  bonito_initfn() should
only initialize the PCI interface to the PCI controller, not the PCI
controller itself (which should be initialized by bonito_init() or
bonito_pcihost_initfn()).

But memory/master isn't the right place to do such cleanups; such
patches should be directed at the right maintainer, if anyone feels the
need to do them.

-- 
error compiling committee.c: too many arguments to function




reply via email to

[Prev in Thread] Current Thread [Next in Thread]