xref: /linux/drivers/pci/pcie/Kconfig (revision 7328c8f48d1895b3fec98b0b319cfb856b4c4fa1)
1*7328c8f4SBjorn Helgaas# SPDX-License-Identifier: GPL-2.0
21da177e4SLinus Torvalds#
31da177e4SLinus Torvalds# PCI Express Port Bus Configuration
41da177e4SLinus Torvalds#
51da177e4SLinus Torvaldsconfig PCIEPORTBUS
6d47af0bcSEzequiel Garcia	bool "PCI Express Port Bus support"
71da177e4SLinus Torvalds	depends on PCI
81da177e4SLinus Torvalds	help
91da177e4SLinus Torvalds	  This automatically enables PCI Express Port Bus support. Users can
101da177e4SLinus Torvalds	  choose Native Hot-Plug support, Advanced Error Reporting support,
111da177e4SLinus Torvalds	  Power Management Event support and Virtual Channel support to run
121da177e4SLinus Torvalds	  on PCI Express Ports (Root or Switch).
131da177e4SLinus Torvalds
141da177e4SLinus Torvalds#
151da177e4SLinus Torvalds# Include service Kconfig here
161da177e4SLinus Torvalds#
171da177e4SLinus Torvaldsconfig HOTPLUG_PCI_PCIE
18c10cc483SBjorn Helgaas	bool "PCI Express Hotplug driver"
191da177e4SLinus Torvalds	depends on HOTPLUG_PCI && PCIEPORTBUS
201da177e4SLinus Torvalds	help
211da177e4SLinus Torvalds	  Say Y here if you have a motherboard that supports PCI Express Native
221da177e4SLinus Torvalds	  Hotplug
231da177e4SLinus Torvalds
241da177e4SLinus Torvalds	  When in doubt, say N.
251da177e4SLinus Torvalds
266c2b374dSZhang, Yanminsource "drivers/pci/pcie/aer/Kconfig"
277d715a6cSShaohua Li
287d715a6cSShaohua Li#
297d715a6cSShaohua Li# PCI Express ASPM
307d715a6cSShaohua Li#
317d715a6cSShaohua Liconfig PCIEASPM
326a108a14SDavid Rientjes	bool "PCI Express ASPM control" if EXPERT
33ea5f9fc5SMatthew Garrett	depends on PCI && PCIEPORTBUS
34ea5f9fc5SMatthew Garrett	default y
357d715a6cSShaohua Li	help
36ea5f9fc5SMatthew Garrett	  This enables OS control over PCI Express ASPM (Active State
37ea5f9fc5SMatthew Garrett	  Power Management) and Clock Power Management. ASPM supports
38ea5f9fc5SMatthew Garrett	  state L0/L0s/L1.
397d715a6cSShaohua Li
40d56641c7SP. Christeas	  ASPM is initially set up by the firmware. With this option enabled,
41ea5f9fc5SMatthew Garrett	  Linux can modify this state in order to disable ASPM on known-bad
42ea5f9fc5SMatthew Garrett	  hardware or configurations and enable it when known-safe.
43ea5f9fc5SMatthew Garrett
44ea5f9fc5SMatthew Garrett	  ASPM can be disabled or enabled at runtime via
45ea5f9fc5SMatthew Garrett	  /sys/module/pcie_aspm/parameters/policy
46ea5f9fc5SMatthew Garrett
47ea5f9fc5SMatthew Garrett	  When in doubt, say Y.
48cc73176cSAndreas Ziegler
497d715a6cSShaohua Liconfig PCIEASPM_DEBUG
507d715a6cSShaohua Li	bool "Debug PCI Express ASPM"
517d715a6cSShaohua Li	depends on PCIEASPM
527d715a6cSShaohua Li	default n
537d715a6cSShaohua Li	help
547d715a6cSShaohua Li	  This enables PCI Express ASPM debug support. It will add per-device
557d715a6cSShaohua Li	  interface to control ASPM.
56c7f48656SRafael J. Wysocki
57ad71c962SMatthew Garrettchoice
58ad71c962SMatthew Garrett	prompt "Default ASPM policy"
59ad71c962SMatthew Garrett	default PCIEASPM_DEFAULT
60ad71c962SMatthew Garrett	depends on PCIEASPM
61ad71c962SMatthew Garrett
62ad71c962SMatthew Garrettconfig PCIEASPM_DEFAULT
63ad71c962SMatthew Garrett	bool "BIOS default"
64ad71c962SMatthew Garrett	depends on PCIEASPM
65ad71c962SMatthew Garrett	help
66ad71c962SMatthew Garrett	  Use the BIOS defaults for PCI Express ASPM.
67ad71c962SMatthew Garrett
68ad71c962SMatthew Garrettconfig PCIEASPM_POWERSAVE
69ad71c962SMatthew Garrett	bool "Powersave"
70ad71c962SMatthew Garrett	depends on PCIEASPM
71ad71c962SMatthew Garrett	help
72ad71c962SMatthew Garrett	  Enable PCI Express ASPM L0s and L1 where possible, even if the
73ad71c962SMatthew Garrett	  BIOS did not.
74ad71c962SMatthew Garrett
75b2103ccbSRajat Jainconfig PCIEASPM_POWER_SUPERSAVE
76b2103ccbSRajat Jain	bool "Power Supersave"
77b2103ccbSRajat Jain	depends on PCIEASPM
78b2103ccbSRajat Jain	help
79b2103ccbSRajat Jain	  Same as PCIEASPM_POWERSAVE, except it also enables L1 substates where
80b2103ccbSRajat Jain	  possible. This would result in higher power savings while staying in L1
81b2103ccbSRajat Jain	  where the components support it.
82b2103ccbSRajat Jain
83ad71c962SMatthew Garrettconfig PCIEASPM_PERFORMANCE
84ad71c962SMatthew Garrett	bool "Performance"
85ad71c962SMatthew Garrett	depends on PCIEASPM
86ad71c962SMatthew Garrett	help
87ad71c962SMatthew Garrett	  Disable PCI Express ASPM L0s and L1, even if the BIOS enabled them.
88ad71c962SMatthew Garrettendchoice
89ad71c962SMatthew Garrett
90c7f48656SRafael J. Wysockiconfig PCIE_PME
91c7f48656SRafael J. Wysocki	def_bool y
92fbb988beSRafael J. Wysocki	depends on PCIEPORTBUS && PM
9326e51571SKeith Busch
9426e51571SKeith Buschconfig PCIE_DPC
95a4959d8cSKeith Busch	bool "PCIe Downstream Port Containment support"
9626e51571SKeith Busch	depends on PCIEPORTBUS
9726e51571SKeith Busch	default n
9826e51571SKeith Busch	help
9926e51571SKeith Busch	  This enables PCI Express Downstream Port Containment (DPC)
10026e51571SKeith Busch	  driver support.  DPC events from Root and Downstream ports
10126e51571SKeith Busch	  will be handled by the DPC driver.  If your system doesn't
10226e51571SKeith Busch	  have this capability or you do not want to use this feature,
10326e51571SKeith Busch	  it is safe to answer N.
1049bb04a0cSJonathan Yong
1059bb04a0cSJonathan Yongconfig PCIE_PTM
1069bb04a0cSJonathan Yong	bool "PCIe Precision Time Measurement support"
1079bb04a0cSJonathan Yong	default n
1089bb04a0cSJonathan Yong	depends on PCIEPORTBUS
1099bb04a0cSJonathan Yong	help
1109bb04a0cSJonathan Yong	  This enables PCI Express Precision Time Measurement (PTM)
1119bb04a0cSJonathan Yong	  support.
1129bb04a0cSJonathan Yong
1139bb04a0cSJonathan Yong	  This is only useful if you have devices that support PTM, but it
1149bb04a0cSJonathan Yong	  is safe to enable even if you don't.
115