| # SPDX-License-Identifier: GPL-2.0 | |
| # | |
| # PCI Express Port Bus Configuration | |
| # | |
| config PCIEPORTBUS | |
| bool "PCI Express Port Bus support" | |
| depends on PCI | |
| help | |
| This automatically enables PCI Express Port Bus support. Users can | |
| choose Native Hot-Plug support, Advanced Error Reporting support, | |
| Power Management Event support and Virtual Channel support to run | |
| on PCI Express Ports (Root or Switch). | |
| # | |
| # Include service Kconfig here | |
| # | |
| config HOTPLUG_PCI_PCIE | |
| bool "PCI Express Hotplug driver" | |
| depends on HOTPLUG_PCI && PCIEPORTBUS | |
| help | |
| Say Y here if you have a motherboard that supports PCI Express Native | |
| Hotplug | |
| When in doubt, say N. | |
| config PCIEAER | |
| bool "PCI Express Advanced Error Reporting support" | |
| depends on PCIEPORTBUS | |
| select RAS | |
| default y | |
| help | |
| This enables PCI Express Root Port Advanced Error Reporting | |
| (AER) driver support. Error reporting messages sent to Root | |
| Port will be handled by PCI Express AER driver. | |
| config PCIEAER_INJECT | |
| tristate "PCI Express error injection support" | |
| depends on PCIEAER | |
| default n | |
| help | |
| This enables PCI Express Root Port Advanced Error Reporting | |
| (AER) software error injector. | |
| Debugging AER code is quite difficult because it is hard | |
| to trigger various real hardware errors. Software-based | |
| error injection can fake almost all kinds of errors with the | |
| help of a user space helper tool aer-inject, which can be | |
| gotten from: | |
| http://www.kernel.org/pub/linux/utils/pci/aer-inject/ | |
| # | |
| # PCI Express ECRC | |
| # | |
| config PCIE_ECRC | |
| bool "PCI Express ECRC settings control" | |
| depends on PCIEAER | |
| help | |
| Used to override firmware/bios settings for PCI Express ECRC | |
| (transaction layer end-to-end CRC checking). | |
| When in doubt, say N. | |
| # | |
| # PCI Express ASPM | |
| # | |
| config PCIEASPM | |
| bool "PCI Express ASPM control" if EXPERT | |
| depends on PCI && PCIEPORTBUS | |
| default y | |
| help | |
| This enables OS control over PCI Express ASPM (Active State | |
| Power Management) and Clock Power Management. ASPM supports | |
| state L0/L0s/L1. | |
| ASPM is initially set up by the firmware. With this option enabled, | |
| Linux can modify this state in order to disable ASPM on known-bad | |
| hardware or configurations and enable it when known-safe. | |
| ASPM can be disabled or enabled at runtime via | |
| /sys/module/pcie_aspm/parameters/policy | |
| When in doubt, say Y. | |
| config PCIEASPM_DEBUG | |
| bool "Debug PCI Express ASPM" | |
| depends on PCIEASPM | |
| default n | |
| help | |
| This enables PCI Express ASPM debug support. It will add per-device | |
| interface to control ASPM. | |
| choice | |
| prompt "Default ASPM policy" | |
| default PCIEASPM_DEFAULT | |
| depends on PCIEASPM | |
| config PCIEASPM_DEFAULT | |
| bool "BIOS default" | |
| depends on PCIEASPM | |
| help | |
| Use the BIOS defaults for PCI Express ASPM. | |
| config PCIEASPM_POWERSAVE | |
| bool "Powersave" | |
| depends on PCIEASPM | |
| help | |
| Enable PCI Express ASPM L0s and L1 where possible, even if the | |
| BIOS did not. | |
| config PCIEASPM_POWER_SUPERSAVE | |
| bool "Power Supersave" | |
| depends on PCIEASPM | |
| help | |
| Same as PCIEASPM_POWERSAVE, except it also enables L1 substates where | |
| possible. This would result in higher power savings while staying in L1 | |
| where the components support it. | |
| config PCIEASPM_PERFORMANCE | |
| bool "Performance" | |
| depends on PCIEASPM | |
| help | |
| Disable PCI Express ASPM L0s and L1, even if the BIOS enabled them. | |
| endchoice | |
| config PCIE_PME | |
| def_bool y | |
| depends on PCIEPORTBUS && PM | |
| config PCIE_DPC | |
| bool "PCI Express Downstream Port Containment support" | |
| depends on PCIEPORTBUS && PCIEAER | |
| default n | |
| help | |
| This enables PCI Express Downstream Port Containment (DPC) | |
| driver support. DPC events from Root and Downstream ports | |
| will be handled by the DPC driver. If your system doesn't | |
| have this capability or you do not want to use this feature, | |
| it is safe to answer N. | |
| config PCIE_PTM | |
| bool "PCI Express Precision Time Measurement support" | |
| default n | |
| depends on PCIEPORTBUS | |
| help | |
| This enables PCI Express Precision Time Measurement (PTM) | |
| support. | |
| This is only useful if you have devices that support PTM, but it | |
| is safe to enable even if you don't. |