qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [SeaBIOS] [PATCH] hw/pci: reserve IO and mem for pci-2-


From: Gerd Hoffmann
Subject: Re: [Qemu-devel] [SeaBIOS] [PATCH] hw/pci: reserve IO and mem for pci-2-pci bridges with no devices attached
Date: Mon, 07 Apr 2014 14:44:06 +0200

  Hi,

> > +        u8 shpc_cap = pci_find_capability(s->bus_dev, PCI_CAP_ID_SHPC);

> One thing I'd do is maybe check that the relevant memory type is
> enabled in the bridge (probably just by writing fff to base and reading
> it back).

> This will give hypervisors an option to avoid wasting resources:
> e.g. it's uncommon for express devices to claim IO.

I don't think we'll need that for the SHPC bridge.

For express it indeed makes sense to avoid claiming IO address space.
I'd try to find something more automatic though, where you don't need
some kind of "disable io for this express port" config option.

For express ports which can only have a single device underneath we can
check whenever we have a device and if one is present already don't
bother claiming extra resources for hotplug.

> > +    for (cap = pci_config_readb(pci->bdf, PCI_CAPABILITY_LIST); cap;
> > +                cap = pci_config_readb(pci->bdf, cap + PCI_CAP_LIST_NEXT))
> > +        if (pci_config_readb(pci->bdf, cap + PCI_CAP_LIST_ID) == cap_id)
> > +            return cap;
> 
> I would also limit this to 256 iterations, to make sure
> we dont' get into an infinite loop with a broken device.

Good point.

cheers,
  Gerd





reply via email to

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