blob: 45a2ef702b45b500f974cfd45ab915068e9e24c5 [file] [log] [blame]
Bjorn Helgaas7328c8f2018-01-26 11:45:16 -06001# SPDX-License-Identifier: GPL-2.0
Linus Torvalds1da177e2005-04-16 15:20:36 -07002#
3# PCI Express Port Bus Configuration
4#
5config PCIEPORTBUS
Ezequiel Garciad47af0b2013-07-04 17:45:20 -03006 bool "PCI Express Port Bus support"
Linus Torvalds1da177e2005-04-16 15:20:36 -07007 help
Hou Zhiqiang8f55ed32019-03-06 06:09:46 +00008 This enables PCI Express Port Bus support. Users can then enable
9 support for Native Hot-Plug, Advanced Error Reporting, Power
10 Management Events, and Downstream Port Containment.
Linus Torvalds1da177e2005-04-16 15:20:36 -070011
12#
13# Include service Kconfig here
14#
15config HOTPLUG_PCI_PCIE
Bjorn Helgaasc10cc482013-07-23 10:55:56 -060016 bool "PCI Express Hotplug driver"
Linus Torvalds1da177e2005-04-16 15:20:36 -070017 depends on HOTPLUG_PCI && PCIEPORTBUS
18 help
19 Say Y here if you have a motherboard that supports PCI Express Native
20 Hotplug
21
Linus Torvalds1da177e2005-04-16 15:20:36 -070022 When in doubt, say N.
23
Bjorn Helgaas4696b822018-06-08 08:48:47 -050024config PCIEAER
Bjorn Helgaas0b15f1e2018-06-08 08:48:55 -050025 bool "PCI Express Advanced Error Reporting support"
Bjorn Helgaas4696b822018-06-08 08:48:47 -050026 depends on PCIEPORTBUS
27 select RAS
Bjorn Helgaas4696b822018-06-08 08:48:47 -050028 help
29 This enables PCI Express Root Port Advanced Error Reporting
30 (AER) driver support. Error reporting messages sent to Root
31 Port will be handled by PCI Express AER driver.
32
33config PCIEAER_INJECT
Bjorn Helgaas0b15f1e2018-06-08 08:48:55 -050034 tristate "PCI Express error injection support"
Bjorn Helgaas4696b822018-06-08 08:48:47 -050035 depends on PCIEAER
Thomas Gleixner9ae05222020-03-06 14:03:48 +010036 select GENERIC_IRQ_INJECTION
Bjorn Helgaas4696b822018-06-08 08:48:47 -050037 help
38 This enables PCI Express Root Port Advanced Error Reporting
39 (AER) software error injector.
40
Bjorn Helgaas0b15f1e2018-06-08 08:48:55 -050041 Debugging AER code is quite difficult because it is hard
42 to trigger various real hardware errors. Software-based
Bjorn Helgaas4696b822018-06-08 08:48:47 -050043 error injection can fake almost all kinds of errors with the
44 help of a user space helper tool aer-inject, which can be
45 gotten from:
Alexander A. Klimov7ecd4a82020-06-27 12:30:50 +020046 https://www.kernel.org/pub/linux/utils/pci/aer-inject/
Bjorn Helgaas4696b822018-06-08 08:48:47 -050047
48#
49# PCI Express ECRC
50#
51config PCIE_ECRC
52 bool "PCI Express ECRC settings control"
53 depends on PCIEAER
54 help
55 Used to override firmware/bios settings for PCI Express ECRC
56 (transaction layer end-to-end CRC checking).
57
58 When in doubt, say N.
Shaohua Li7d715a62008-02-25 09:46:41 +080059
60#
61# PCI Express ASPM
62#
63config PCIEASPM
David Rientjes6a108a12011-01-20 14:44:16 -080064 bool "PCI Express ASPM control" if EXPERT
Matthew Garrettea5f9fc2010-06-22 17:03:03 -040065 default y
Shaohua Li7d715a62008-02-25 09:46:41 +080066 help
Matthew Garrettea5f9fc2010-06-22 17:03:03 -040067 This enables OS control over PCI Express ASPM (Active State
68 Power Management) and Clock Power Management. ASPM supports
69 state L0/L0s/L1.
Shaohua Li7d715a62008-02-25 09:46:41 +080070
P. Christeasd56641c2011-12-06 20:48:35 +020071 ASPM is initially set up by the firmware. With this option enabled,
Matthew Garrettea5f9fc2010-06-22 17:03:03 -040072 Linux can modify this state in order to disable ASPM on known-bad
73 hardware or configurations and enable it when known-safe.
74
75 ASPM can be disabled or enabled at runtime via
76 /sys/module/pcie_aspm/parameters/policy
77
78 When in doubt, say Y.
Andreas Zieglercc731762016-03-15 12:28:32 +010079
Matthew Garrettad71c962012-02-03 10:18:13 -050080choice
81 prompt "Default ASPM policy"
82 default PCIEASPM_DEFAULT
83 depends on PCIEASPM
84
85config PCIEASPM_DEFAULT
Andreas Zieglercc731762016-03-15 12:28:32 +010086 bool "BIOS default"
Matthew Garrettad71c962012-02-03 10:18:13 -050087 depends on PCIEASPM
88 help
89 Use the BIOS defaults for PCI Express ASPM.
90
91config PCIEASPM_POWERSAVE
Andreas Zieglercc731762016-03-15 12:28:32 +010092 bool "Powersave"
Matthew Garrettad71c962012-02-03 10:18:13 -050093 depends on PCIEASPM
94 help
95 Enable PCI Express ASPM L0s and L1 where possible, even if the
96 BIOS did not.
97
Rajat Jainb2103cc2017-01-02 22:34:11 -080098config PCIEASPM_POWER_SUPERSAVE
99 bool "Power Supersave"
100 depends on PCIEASPM
101 help
102 Same as PCIEASPM_POWERSAVE, except it also enables L1 substates where
103 possible. This would result in higher power savings while staying in L1
104 where the components support it.
105
Matthew Garrettad71c962012-02-03 10:18:13 -0500106config PCIEASPM_PERFORMANCE
Andreas Zieglercc731762016-03-15 12:28:32 +0100107 bool "Performance"
Matthew Garrettad71c962012-02-03 10:18:13 -0500108 depends on PCIEASPM
109 help
110 Disable PCI Express ASPM L0s and L1, even if the BIOS enabled them.
111endchoice
112
Rafael J. Wysockic7f48652010-02-17 23:39:08 +0100113config PCIE_PME
114 def_bool y
Rafael J. Wysockifbb988b2014-11-27 23:16:57 +0100115 depends on PCIEPORTBUS && PM
Keith Busch26e51572016-04-28 16:24:48 -0600116
117config PCIE_DPC
Bjorn Helgaas0b15f1e2018-06-08 08:48:55 -0500118 bool "PCI Express Downstream Port Containment support"
Keith Buscheed85ff2018-01-24 17:03:18 -0600119 depends on PCIEPORTBUS && PCIEAER
Keith Busch26e51572016-04-28 16:24:48 -0600120 help
121 This enables PCI Express Downstream Port Containment (DPC)
122 driver support. DPC events from Root and Downstream ports
123 will be handled by the DPC driver. If your system doesn't
124 have this capability or you do not want to use this feature,
125 it is safe to answer N.
Jonathan Yong9bb04a02016-06-11 14:13:38 -0500126
127config PCIE_PTM
Bjorn Helgaas0b15f1e2018-06-08 08:48:55 -0500128 bool "PCI Express Precision Time Measurement support"
Jonathan Yong9bb04a02016-06-11 14:13:38 -0500129 help
130 This enables PCI Express Precision Time Measurement (PTM)
131 support.
132
133 This is only useful if you have devices that support PTM, but it
134 is safe to enable even if you don't.
Keith Busch2078e1e2019-05-01 08:29:42 -0600135
Kuppuswamy Sathyanarayananac1c8e32020-03-23 17:26:07 -0700136config PCIE_EDR
137 bool "PCI Express Error Disconnect Recover support"
138 depends on PCIE_DPC && ACPI
139 help
140 This option adds Error Disconnect Recover support as specified
141 in the Downstream Port Containment Related Enhancements ECN to
142 the PCI Firmware Specification r3.2. Enable this if you want to
143 support hybrid DPC model which uses both firmware and OS to
144 implement DPC.