xref: /linux/drivers/pci/Kconfig (revision a8ccf8a666639ca9184e8b23d515d9fbe722a27d)
17328c8f4SBjorn Helgaas# SPDX-License-Identifier: GPL-2.0
21da177e4SLinus Torvalds#
31da177e4SLinus Torvalds# PCI configuration
41da177e4SLinus Torvalds#
55f8fc432SBogicevic Sasa
65f8fc432SBogicevic Sasasource "drivers/pci/pcie/Kconfig"
75f8fc432SBogicevic Sasa
83a9ad0b4SYinghai Luconfig PCI_BUS_ADDR_T_64BIT
9e02a653eSHelge Deller	def_bool y if (ARCH_DMA_ADDR_T_64BIT || 64BIT)
103a9ad0b4SYinghai Lu	depends on PCI
113a9ad0b4SYinghai Lu
121da177e4SLinus Torvaldsconfig PCI_MSI
131da177e4SLinus Torvalds	bool "Message Signaled Interrupts (MSI and MSI-X)"
141da177e4SLinus Torvalds	depends on PCI
1538b6a1cfSJiang Liu	select GENERIC_MSI_IRQ
161da177e4SLinus Torvalds	help
171da177e4SLinus Torvalds	   This allows device drivers to enable MSI (Message Signaled
181da177e4SLinus Torvalds	   Interrupts).  Message Signaled Interrupts enable a device to
191da177e4SLinus Torvalds	   generate an interrupt using an inbound Memory Write on its
201da177e4SLinus Torvalds	   PCI bus instead of asserting a device IRQ pin.
211da177e4SLinus Torvalds
22309e57dfSMatthew Wilcox	   Use of PCI MSI interrupts can be disabled at kernel boot time
23309e57dfSMatthew Wilcox	   by using the 'pci=nomsi' option.  This disables MSI for the
24309e57dfSMatthew Wilcox	   entire system.
25309e57dfSMatthew Wilcox
263196180aSJesse Barnes	   If you don't know what to do here, say Y.
271da177e4SLinus Torvalds
283878eaefSJiang Liuconfig PCI_MSI_IRQ_DOMAIN
29f8430eaeSJoao Pinto	def_bool ARC || ARM || ARM64 || X86
303878eaefSJiang Liu	depends on PCI_MSI
313878eaefSJiang Liu	select GENERIC_MSI_IRQ_DOMAIN
323878eaefSJiang Liu
3303ea2263SRandy Dunlapconfig PCI_QUIRKS
3403ea2263SRandy Dunlap	default y
3503ea2263SRandy Dunlap	bool "Enable PCI quirk workarounds" if EXPERT
3603ea2263SRandy Dunlap	depends on PCI
3703ea2263SRandy Dunlap	help
3803ea2263SRandy Dunlap	  This enables workarounds for various PCI chipset bugs/quirks.
3903ea2263SRandy Dunlap	  Disable this only if your target machine is unaffected by PCI
4003ea2263SRandy Dunlap	  quirks.
4103ea2263SRandy Dunlap
421da177e4SLinus Torvaldsconfig PCI_DEBUG
431da177e4SLinus Torvalds	bool "PCI Debugging"
441da177e4SLinus Torvalds	depends on PCI && DEBUG_KERNEL
451da177e4SLinus Torvalds	help
461da177e4SLinus Torvalds	  Say Y here if you want the PCI core to produce a bunch of debug
471da177e4SLinus Torvalds	  messages to the system log.  Select this if you are having a
481da177e4SLinus Torvalds	  problem with PCI support and want to see more of what is going on.
491da177e4SLinus Torvalds
501da177e4SLinus Torvalds	  When in doubt, say N.
511da177e4SLinus Torvalds
52b07f2ebcSYinghai Luconfig PCI_REALLOC_ENABLE_AUTO
53b07f2ebcSYinghai Lu	bool "Enable PCI resource re-allocation detection"
54b07f2ebcSYinghai Lu	depends on PCI
55ad581f86SSascha El-Sharkawy	depends on PCI_IOV
56b07f2ebcSYinghai Lu	help
57b07f2ebcSYinghai Lu	  Say Y here if you want the PCI core to detect if PCI resource
58b07f2ebcSYinghai Lu	  re-allocation needs to be enabled. You can always use pci=realloc=on
59ad581f86SSascha El-Sharkawy	  or pci=realloc=off to override it.  It will automatically
60ad581f86SSascha El-Sharkawy	  re-allocate PCI resources if SR-IOV BARs have not been allocated by
61ad581f86SSascha El-Sharkawy	  the BIOS.
62b07f2ebcSYinghai Lu
63b07f2ebcSYinghai Lu	  When in doubt, say N.
64b07f2ebcSYinghai Lu
65c70e0d9dSChris Wrightconfig PCI_STUB
66c70e0d9dSChris Wright	tristate "PCI Stub driver"
67c70e0d9dSChris Wright	depends on PCI
68c70e0d9dSChris Wright	help
69c70e0d9dSChris Wright	  Say Y or M here if you want be able to reserve a PCI device
70c70e0d9dSChris Wright	  when it is going to be assigned to a guest operating system.
71c70e0d9dSChris Wright
72c70e0d9dSChris Wright	  When in doubt, say N.
73c70e0d9dSChris Wright
74*a8ccf8a6SAlexander Duyckconfig PCI_PF_STUB
75*a8ccf8a6SAlexander Duyck	tristate "PCI PF Stub driver"
76*a8ccf8a6SAlexander Duyck	depends on PCI
77*a8ccf8a6SAlexander Duyck	depends on PCI_IOV
78*a8ccf8a6SAlexander Duyck	help
79*a8ccf8a6SAlexander Duyck	  Say Y or M here if you want to enable support for devices that
80*a8ccf8a6SAlexander Duyck	  require SR-IOV support, while at the same time the PF itself is
81*a8ccf8a6SAlexander Duyck	  not providing any actual services on the host itself such as
82*a8ccf8a6SAlexander Duyck	  storage or networking.
83*a8ccf8a6SAlexander Duyck
84*a8ccf8a6SAlexander Duyck	  When in doubt, say N.
85*a8ccf8a6SAlexander Duyck
86956a9202SRyan Wilsonconfig XEN_PCIDEV_FRONTEND
87956a9202SRyan Wilson        tristate "Xen PCI Frontend"
88956a9202SRyan Wilson        depends on PCI && X86 && XEN
89956a9202SRyan Wilson        select PCI_XEN
90fce263c1SKonrad Rzeszutek Wilk	select XEN_XENBUS_FRONTEND
91956a9202SRyan Wilson        default y
92956a9202SRyan Wilson        help
93956a9202SRyan Wilson          The PCI device frontend driver allows the kernel to import arbitrary
94956a9202SRyan Wilson          PCI devices from a PCI backend to support PCI driver domains.
95956a9202SRyan Wilson
96db3c33c6SJoerg Roedelconfig PCI_ATS
97db3c33c6SJoerg Roedel	bool
98db3c33c6SJoerg Roedel
9935ff9477SJayachandran Cconfig PCI_ECAM
10035ff9477SJayachandran C	bool
10135ff9477SJayachandran C
102714fe383SThomas Gleixnerconfig PCI_LOCKLESS_CONFIG
103714fe383SThomas Gleixner	bool
104714fe383SThomas Gleixner
105d1b054daSYu Zhaoconfig PCI_IOV
106d1b054daSYu Zhao	bool "PCI IOV support"
107d1b054daSYu Zhao	depends on PCI
108db3c33c6SJoerg Roedel	select PCI_ATS
109d1b054daSYu Zhao	help
110d1b054daSYu Zhao	  I/O Virtualization is a PCI feature supported by some devices
111d1b054daSYu Zhao	  which allows them to create virtual devices which share their
112d1b054daSYu Zhao	  physical resources.
113d1b054daSYu Zhao
114d1b054daSYu Zhao	  If unsure, say N.
115204d49a5SBjorn Helgaas
116c320b976SJoerg Roedelconfig PCI_PRI
117c320b976SJoerg Roedel	bool "PCI PRI support"
118c54420d3SJoerg Roedel	depends on PCI
119c320b976SJoerg Roedel	select PCI_ATS
120c320b976SJoerg Roedel	help
121c320b976SJoerg Roedel	  PRI is the PCI Page Request Interface. It allows PCI devices that are
122c320b976SJoerg Roedel	  behind an IOMMU to recover from page faults.
123c320b976SJoerg Roedel
124c320b976SJoerg Roedel	  If unsure, say N.
125c320b976SJoerg Roedel
126086ac11fSJoerg Roedelconfig PCI_PASID
127086ac11fSJoerg Roedel	bool "PCI PASID support"
128086ac11fSJoerg Roedel	depends on PCI
129086ac11fSJoerg Roedel	select PCI_ATS
130086ac11fSJoerg Roedel	help
131086ac11fSJoerg Roedel	  Process Address Space Identifiers (PASIDs) can be used by PCI devices
132086ac11fSJoerg Roedel	  to access more than one IO address space at the same time. To make
133086ac11fSJoerg Roedel	  use of this feature an IOMMU is required which also supports PASIDs.
134086ac11fSJoerg Roedel	  Select this option if you have such an IOMMU and want to compile the
135086ac11fSJoerg Roedel	  driver for it into your kernel.
136086ac11fSJoerg Roedel
137086ac11fSJoerg Roedel	  If unsure, say N.
138086ac11fSJoerg Roedel
1398a226e00SRandy Dunlapconfig PCI_LABEL
1408a226e00SRandy Dunlap	def_bool y if (DMI || ACPI)
1419de0eec2SCyrille Pitchen	depends on PCI
1428a226e00SRandy Dunlap	select NLS
14345361a4fSThomas Petazzoni
1444daace0dSJake Oshinsconfig PCI_HYPERV
1454daace0dSJake Oshins        tristate "Hyper-V PCI Frontend"
1464daace0dSJake Oshins        depends on PCI && X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
1474daace0dSJake Oshins        help
1484daace0dSJake Oshins          The PCI device frontend driver allows the kernel to import arbitrary
1494daace0dSJake Oshins          PCI devices from a PCI backend to support PCI driver domains.
1504daace0dSJake Oshins
15130b5b880STero Roponensource "drivers/pci/hotplug/Kconfig"
15237dddf14SCyrille Pitchensource "drivers/pci/cadence/Kconfig"
153950bf638SKishon Vijay Abraham Isource "drivers/pci/dwc/Kconfig"
15445361a4fSThomas Petazzonisource "drivers/pci/host/Kconfig"
1555e8cb403SKishon Vijay Abraham Isource "drivers/pci/endpoint/Kconfig"
156080b47deSLogan Gunthorpesource "drivers/pci/switch/Kconfig"
157