On Wed, Oct 9, 2013 at 7:36 AM, Rajat Jain <rajatjain@xxxxxxxxxxx> wrote: > Hello, > > 1) Does the pciehp support hotplug on both rootport and downstream port? Yes. To be precise, pciehp supports hotplug of PCIe devices below Root Ports and Downstream Ports. > 2) What is so different about these that downstream port hotplug was part of the kernel since very long, but root port hotplug was included releatively recently? Are there any added complexities? I couldn't find anything on the net on this. From my understanding it should be exactly similar? Hotplugging of PCIe devices below Root Ports and Downstream Ports should be identical. My guess is that you're confused by the recent addition of PCI *host bridge* hotplug. This is for hotplugging an entire Root Complex or other host bridge. A host bridge is not a PCI or PCIe device (though a Root Complex *contains* Root Ports). It has some platform-specific interface on the upstream side and a PCI or PCIe interface on the downstream side. There is no architected way to discover host bridge existence, apertures, address translation, etc. This is all done via ACPI or other platform-specific methods, not via PCI mechanisms. Therefore, hotplug of a host bridge is much different than hotplug of a PCI device. > 3) I understand the hotplug on downstream port is architecture independent. But is the root port hotplug architecture dependent (assuming that the CPU complies to the PCIe, spec, it shouldn't be, right)? The PCIe spec doesn't really apply to CPUs. The above should clarify the rest. > 4) Can you point me to the code where the root port hotplug is implemented? Host bridge hotplug is implemented in drivers/acpi/pci_root.c. Obviously this only applies to arches that use ACPI (currently x86 and ia64). Bjorn -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html