qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 5/6] q35: use 64 bit window programmed by guest


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [PATCH 5/6] q35: use 64 bit window programmed by guest
Date: Tue, 10 Sep 2013 17:19:06 +0300

On Tue, Sep 10, 2013 at 04:12:09PM +0200, Igor Mammedov wrote:
> On Wed, 4 Sep 2013 13:48:40 +0300
> "Michael S. Tsirkin" <address@hidden> wrote:
> 
> > Detect the 64 bit window programmed by firmware
> > and configure properties accordingly.
> > 
> > Signed-off-by: Michael S. Tsirkin <address@hidden>
> > ---
> >  hw/pci-host/q35.c | 6 ++++++
> >  1 file changed, 6 insertions(+)
> > 
> > diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c
> > index 3f1d447..5cb1e8a 100644
> > --- a/hw/pci-host/q35.c
> > +++ b/hw/pci-host/q35.c
> > @@ -90,6 +90,9 @@ static void q35_host_get_pci_hole64_start(Object *obj, 
> > Visitor *v,
> >                                            Error **errp)
> >  {
> >      Q35PCIHost *s = Q35_HOST_DEVICE(obj);
> > +    PCIHostState *h = PCI_HOST_BRIDGE(obj);
> > +
> > +    pci_bus_get_w64_range(h->bus, &s->mch.pci_info.w64);
> Shouldn't be it done at the time when BIOS initializes BAR, to avoid
> inconsistent state in between write and read.

What's inconsistent with what?
We just report the current state.
If you query it during initialization, you get what
has been programmed so far.

> Also missing remapping of existing 64-bit PCI hole alias to a new range.

We shouldn't remap the region - this is not how hardware works.
This property merely reports what BIOS decided to use.


> >  
> >      visit_type_uint64(v, &s->mch.pci_info.w64.begin, name, errp);
> >  }
> > @@ -99,6 +102,9 @@ static void q35_host_get_pci_hole64_end(Object *obj, 
> > Visitor *v,
> >                                          Error **errp)
> >  {
> >      Q35PCIHost *s = Q35_HOST_DEVICE(obj);
> > +    PCIHostState *h = PCI_HOST_BRIDGE(obj);
> > +
> > +    pci_bus_get_w64_range(h->bus, &s->mch.pci_info.w64);
> ditto
> 
> >  
> >      visit_type_uint64(v, &s->mch.pci_info.w64.end, name, errp);
> >  }



reply via email to

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