mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-07 05:26:39 +07:00
66725152fb
This adds standalone driver to support PCI hotplug for PowerPC PowerNV platform that runs on top of skiboot firmware. The firmware identifies hotpluggable slots and marked their device tree node with proper "ibm,slot-pluggable" and "ibm,reset-by-firmware". The driver scans device tree nodes to create/register PCI hotplug slot accordingly. The PCI slots are organized in fashion of tree, which means one PCI slot might have parent PCI slot and parent PCI slot possibly contains multiple child PCI slots. At the plugging time, the parent PCI slot is populated before its children. The child PCI slots are removed before their parent PCI slot can be removed from the system. If the skiboot firmware doesn't support slot status retrieval, the PCI slot device node shouldn't have property "ibm,reset-by-firmware". In that case, none of valid PCI slots will be detected from device tree. The skiboot firmware doesn't export the capability to access attention LEDs yet and it's something for TBD. Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com> Acked-by: Bjorn Helgaas <bhelgaas@google.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
73 lines
1.8 KiB
Makefile
73 lines
1.8 KiB
Makefile
#
|
|
# Makefile for the Linux kernel pci hotplug controller drivers.
|
|
#
|
|
|
|
obj-$(CONFIG_HOTPLUG_PCI) += pci_hotplug.o
|
|
obj-$(CONFIG_HOTPLUG_PCI_COMPAQ) += cpqphp.o
|
|
obj-$(CONFIG_HOTPLUG_PCI_IBM) += ibmphp.o
|
|
|
|
# native drivers should be linked before acpiphp in order to allow the
|
|
# native driver to attempt to bind first. We can then fall back to
|
|
# generic support.
|
|
|
|
obj-$(CONFIG_HOTPLUG_PCI_PCIE) += pciehp.o
|
|
obj-$(CONFIG_HOTPLUG_PCI_CPCI_ZT5550) += cpcihp_zt5550.o
|
|
obj-$(CONFIG_HOTPLUG_PCI_CPCI_GENERIC) += cpcihp_generic.o
|
|
obj-$(CONFIG_HOTPLUG_PCI_SHPC) += shpchp.o
|
|
obj-$(CONFIG_HOTPLUG_PCI_POWERNV) += pnv-php.o
|
|
obj-$(CONFIG_HOTPLUG_PCI_RPA) += rpaphp.o
|
|
obj-$(CONFIG_HOTPLUG_PCI_RPA_DLPAR) += rpadlpar_io.o
|
|
obj-$(CONFIG_HOTPLUG_PCI_SGI) += sgi_hotplug.o
|
|
obj-$(CONFIG_HOTPLUG_PCI_ACPI) += acpiphp.o
|
|
obj-$(CONFIG_HOTPLUG_PCI_S390) += s390_pci_hpc.o
|
|
|
|
# acpiphp_ibm extends acpiphp, so should be linked afterwards.
|
|
|
|
obj-$(CONFIG_HOTPLUG_PCI_ACPI_IBM) += acpiphp_ibm.o
|
|
|
|
pci_hotplug-objs := pci_hotplug_core.o
|
|
|
|
ifdef CONFIG_HOTPLUG_PCI_CPCI
|
|
pci_hotplug-objs += cpci_hotplug_core.o \
|
|
cpci_hotplug_pci.o
|
|
endif
|
|
ifdef CONFIG_ACPI
|
|
pci_hotplug-objs += acpi_pcihp.o
|
|
endif
|
|
|
|
cpqphp-objs := cpqphp_core.o \
|
|
cpqphp_ctrl.o \
|
|
cpqphp_sysfs.o \
|
|
cpqphp_pci.o
|
|
cpqphp-$(CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM) += cpqphp_nvram.o
|
|
cpqphp-objs += $(cpqphp-y)
|
|
|
|
ibmphp-objs := ibmphp_core.o \
|
|
ibmphp_ebda.o \
|
|
ibmphp_pci.o \
|
|
ibmphp_res.o \
|
|
ibmphp_hpc.o
|
|
|
|
acpiphp-objs := acpiphp_core.o \
|
|
acpiphp_glue.o
|
|
|
|
pnv-php-objs := pnv_php.o
|
|
|
|
rpaphp-objs := rpaphp_core.o \
|
|
rpaphp_pci.o \
|
|
rpaphp_slot.o
|
|
|
|
rpadlpar_io-objs := rpadlpar_core.o \
|
|
rpadlpar_sysfs.o
|
|
|
|
pciehp-objs := pciehp_core.o \
|
|
pciehp_ctrl.o \
|
|
pciehp_pci.o \
|
|
pciehp_hpc.o
|
|
|
|
shpchp-objs := shpchp_core.o \
|
|
shpchp_ctrl.o \
|
|
shpchp_pci.o \
|
|
shpchp_sysfs.o \
|
|
shpchp_hpc.o
|