On Thu, 2017-09-14 at 09:27 +0000, David Laight wrote: > You can logically 'hotplug' PCI(e) on any system [1]. > > The 'problem' is that whatever enumerates the PCI(e) at system > powerup doesn't normally assign extra resources to bridges to allow > for devices that aren't present at boot time. > So you can normally only replace cards with ones that use the same > (or less) resources, or that are not behind any bridges. > This is problematic if you have a docking station connected via > a bridge.
There's also the problem of Max Payload Size. If you can hotplug behind a bridge then the standard algorithm of finding the max of all devices behind a host bridge doesn't work anymore and you have to clamp everybody to 128 bytes. > [1] Apart from some annoying x86 Dell servers we have which generate > an NMI when the PCIe link goes down (when we reprogram the fpga). > They also fail to boot if a link doesn't come up... > > David