xref: /openbmc/linux/drivers/pci/pcie/Kconfig (revision 10c1d542)
1# SPDX-License-Identifier: GPL-2.0
2#
3# PCI Express Port Bus Configuration
4#
5config PCIEPORTBUS
6	bool "PCI Express Port Bus support"
7	depends on PCI
8	help
9	  This automatically enables PCI Express Port Bus support. Users can
10	  choose Native Hot-Plug support, Advanced Error Reporting support,
11	  Power Management Event support and Virtual Channel support to run
12	  on PCI Express Ports (Root or Switch).
13
14#
15# Include service Kconfig here
16#
17config HOTPLUG_PCI_PCIE
18	bool "PCI Express Hotplug driver"
19	depends on HOTPLUG_PCI && PCIEPORTBUS
20	help
21	  Say Y here if you have a motherboard that supports PCI Express Native
22	  Hotplug
23
24	  When in doubt, say N.
25
26source "drivers/pci/pcie/aer/Kconfig"
27
28#
29# PCI Express ASPM
30#
31config PCIEASPM
32	bool "PCI Express ASPM control" if EXPERT
33	depends on PCI && PCIEPORTBUS
34	default y
35	help
36	  This enables OS control over PCI Express ASPM (Active State
37	  Power Management) and Clock Power Management. ASPM supports
38	  state L0/L0s/L1.
39
40	  ASPM is initially set up by the firmware. With this option enabled,
41	  Linux can modify this state in order to disable ASPM on known-bad
42	  hardware or configurations and enable it when known-safe.
43
44	  ASPM can be disabled or enabled at runtime via
45	  /sys/module/pcie_aspm/parameters/policy
46
47	  When in doubt, say Y.
48
49config PCIEASPM_DEBUG
50	bool "Debug PCI Express ASPM"
51	depends on PCIEASPM
52	default n
53	help
54	  This enables PCI Express ASPM debug support. It will add per-device
55	  interface to control ASPM.
56
57choice
58	prompt "Default ASPM policy"
59	default PCIEASPM_DEFAULT
60	depends on PCIEASPM
61
62config PCIEASPM_DEFAULT
63	bool "BIOS default"
64	depends on PCIEASPM
65	help
66	  Use the BIOS defaults for PCI Express ASPM.
67
68config PCIEASPM_POWERSAVE
69	bool "Powersave"
70	depends on PCIEASPM
71	help
72	  Enable PCI Express ASPM L0s and L1 where possible, even if the
73	  BIOS did not.
74
75config PCIEASPM_POWER_SUPERSAVE
76	bool "Power Supersave"
77	depends on PCIEASPM
78	help
79	  Same as PCIEASPM_POWERSAVE, except it also enables L1 substates where
80	  possible. This would result in higher power savings while staying in L1
81	  where the components support it.
82
83config PCIEASPM_PERFORMANCE
84	bool "Performance"
85	depends on PCIEASPM
86	help
87	  Disable PCI Express ASPM L0s and L1, even if the BIOS enabled them.
88endchoice
89
90config PCIE_PME
91	def_bool y
92	depends on PCIEPORTBUS && PM
93
94config PCIE_DPC
95	bool "PCIe Downstream Port Containment support"
96	depends on PCIEPORTBUS && PCIEAER
97	default n
98	help
99	  This enables PCI Express Downstream Port Containment (DPC)
100	  driver support.  DPC events from Root and Downstream ports
101	  will be handled by the DPC driver.  If your system doesn't
102	  have this capability or you do not want to use this feature,
103	  it is safe to answer N.
104
105config PCIE_PTM
106	bool "PCIe Precision Time Measurement support"
107	default n
108	depends on PCIEPORTBUS
109	help
110	  This enables PCI Express Precision Time Measurement (PTM)
111	  support.
112
113	  This is only useful if you have devices that support PTM, but it
114	  is safe to enable even if you don't.
115