On 06/30/2016 06:06 PM, Alex Williamson wrote:
On Thu, 30 Jun 2016 15:07:27 +0200
Laszlo Ersek <[email protected]> wrote:
- What could be the difference between root ports and downstream ports?
(Hotplug into root ports seems to work fine.)
Hi Laszlo,
It should be no difference IMHO. Both are treated the same by the PCIe spec as
far as I know.
Are OSes entitled to
allocate any unused address space (MMIO and IO) right when a device is
hot-plugged into a root port?
Yes, resources "re-banlancing"| can be triggered by the OS and at least Windows
is actually
doing so if you hot-plug devices behind the bridge using more IO/MEM than what
is allocated
for the bridge by the firmware. I don't know for sure, but I think Linux will
try this too.
A possible difference is simply the depth of the hierarchy, the
apertures on a root port come directly from the host bridge and there's
no affect to other devices to disable and resize the root port
apertures.
In order to resize a switch downstream port aperture, the
OS would need to touch multiple levels, which could affect peer devices
already in operation.
But this should be the same as with nested PCI bridges, right? And If I would
have to guess,
there is no problem with them.
Does hotplug to a downstream switch port work if
the hot added device is the only endpoint within that sub-hierarchy?
I don't see why not. If the firmware pre-allocates IO/MEM ranges there is no
problem.
Otherwise the OS uses the free IO/MEM ranges specified by the _CRS for the
respective host-bridge.
Thanks,
Marcel
I
wouldn't necessarily be surprised either way, it seems like a
complicated resource runtime reallocation issue that probably isn't
very prevalent on real hardware. Thanks,
Alex
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel