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

Reply via email to