qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v3] hw/arm/virt: Add high MMIO PCI region


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [PATCH v3] hw/arm/virt: Add high MMIO PCI region
Date: Mon, 27 Jul 2015 18:18:30 +0300

On Mon, Jul 27, 2015 at 05:36:07PM +0300, Pavel Fedin wrote:
>  Hello!
> 
> > > +    /* High MMIO space */
> > > +    mmio_alias = g_new0(MemoryRegion, 1);
> > > +    memory_region_init_alias(mmio_alias, OBJECT(dev), "pcie-mmio-high",
> > > +                             mmio_reg, base_mmio_high, size_mmio_high);
> > > +    memory_region_add_subregion(get_system_memory(), base_mmio_high, 
> > > mmio_alias);
> > Is there any specific reason to have 2 separate regions vs using 1 like in
> >  pc_pci_as_mapping_init()
> > using region priority instead of splitting.
> 
>  Unfortunately i'm not familiar very well with qemu memory internals. I saw 
> PC code and i know that
> it adds PCI region of the size of the whole memory, then adds other things as 
> overlapped regions.
> But wouldn't it be some resource waste in this case? I understand that in PC 
> absolutely all "unused"
> addresses fall through to PCI, so that any device can plug in there. On ARM 
> this is different, PCI
> controller is not a core of the system, it's just one of devices instead. And 
> on our case a huge
> part of PCI region between VIRT_PCIE_MMIO and VIRT_PCIE_MMIO_HIGH would never 
> be used. Does it worth
> that ?
> 
> Kind regards,
> Pavel Fedin
> Expert Engineer
> Samsung Electronics Research center Russia

It's more a question of figuring out what does real hardware do.
It's true, PIIX has this "everything that isn't memory is PCI"
assumption. We do this for Q35 but I'm not even sure it's the
right thing to do there.

If as you say real ARM hardware doesn't work like this, then QEMU
shouldn't do this for ARM.


-- 
MST



reply via email to

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