xref: /openbmc/linux/drivers/pci/Kconfig (revision 4a57f58f)
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
81da177e4SLinus Torvaldsconfig PCI_MSI
91da177e4SLinus Torvalds	bool "Message Signaled Interrupts (MSI and MSI-X)"
101da177e4SLinus Torvalds	depends on PCI
1138b6a1cfSJiang Liu	select GENERIC_MSI_IRQ
121da177e4SLinus Torvalds	help
131da177e4SLinus Torvalds	   This allows device drivers to enable MSI (Message Signaled
141da177e4SLinus Torvalds	   Interrupts).  Message Signaled Interrupts enable a device to
151da177e4SLinus Torvalds	   generate an interrupt using an inbound Memory Write on its
161da177e4SLinus Torvalds	   PCI bus instead of asserting a device IRQ pin.
171da177e4SLinus Torvalds
18309e57dfSMatthew Wilcox	   Use of PCI MSI interrupts can be disabled at kernel boot time
19309e57dfSMatthew Wilcox	   by using the 'pci=nomsi' option.  This disables MSI for the
20309e57dfSMatthew Wilcox	   entire system.
21309e57dfSMatthew Wilcox
223196180aSJesse Barnes	   If you don't know what to do here, say Y.
231da177e4SLinus Torvalds
243878eaefSJiang Liuconfig PCI_MSI_IRQ_DOMAIN
25f8430eaeSJoao Pinto	def_bool ARC || ARM || ARM64 || X86
263878eaefSJiang Liu	depends on PCI_MSI
273878eaefSJiang Liu	select GENERIC_MSI_IRQ_DOMAIN
283878eaefSJiang Liu
2903ea2263SRandy Dunlapconfig PCI_QUIRKS
3003ea2263SRandy Dunlap	default y
3103ea2263SRandy Dunlap	bool "Enable PCI quirk workarounds" if EXPERT
3203ea2263SRandy Dunlap	depends on PCI
3303ea2263SRandy Dunlap	help
3403ea2263SRandy Dunlap	  This enables workarounds for various PCI chipset bugs/quirks.
3503ea2263SRandy Dunlap	  Disable this only if your target machine is unaffected by PCI
3603ea2263SRandy Dunlap	  quirks.
3703ea2263SRandy Dunlap
381da177e4SLinus Torvaldsconfig PCI_DEBUG
391da177e4SLinus Torvalds	bool "PCI Debugging"
401da177e4SLinus Torvalds	depends on PCI && DEBUG_KERNEL
411da177e4SLinus Torvalds	help
421da177e4SLinus Torvalds	  Say Y here if you want the PCI core to produce a bunch of debug
431da177e4SLinus Torvalds	  messages to the system log.  Select this if you are having a
441da177e4SLinus Torvalds	  problem with PCI support and want to see more of what is going on.
451da177e4SLinus Torvalds
461da177e4SLinus Torvalds	  When in doubt, say N.
471da177e4SLinus Torvalds
48b07f2ebcSYinghai Luconfig PCI_REALLOC_ENABLE_AUTO
49b07f2ebcSYinghai Lu	bool "Enable PCI resource re-allocation detection"
50b07f2ebcSYinghai Lu	depends on PCI
51ad581f86SSascha El-Sharkawy	depends on PCI_IOV
52b07f2ebcSYinghai Lu	help
53b07f2ebcSYinghai Lu	  Say Y here if you want the PCI core to detect if PCI resource
54b07f2ebcSYinghai Lu	  re-allocation needs to be enabled. You can always use pci=realloc=on
55ad581f86SSascha El-Sharkawy	  or pci=realloc=off to override it.  It will automatically
56ad581f86SSascha El-Sharkawy	  re-allocate PCI resources if SR-IOV BARs have not been allocated by
57ad581f86SSascha El-Sharkawy	  the BIOS.
58b07f2ebcSYinghai Lu
59b07f2ebcSYinghai Lu	  When in doubt, say N.
60b07f2ebcSYinghai Lu
61c70e0d9dSChris Wrightconfig PCI_STUB
62c70e0d9dSChris Wright	tristate "PCI Stub driver"
63c70e0d9dSChris Wright	depends on PCI
64c70e0d9dSChris Wright	help
65c70e0d9dSChris Wright	  Say Y or M here if you want be able to reserve a PCI device
66c70e0d9dSChris Wright	  when it is going to be assigned to a guest operating system.
67c70e0d9dSChris Wright
68c70e0d9dSChris Wright	  When in doubt, say N.
69c70e0d9dSChris Wright
70a8ccf8a6SAlexander Duyckconfig PCI_PF_STUB
71a8ccf8a6SAlexander Duyck	tristate "PCI PF Stub driver"
72a8ccf8a6SAlexander Duyck	depends on PCI
73a8ccf8a6SAlexander Duyck	depends on PCI_IOV
74a8ccf8a6SAlexander Duyck	help
75a8ccf8a6SAlexander Duyck	  Say Y or M here if you want to enable support for devices that
764a57f58fSRandy Dunlap	  require SR-IOV support, while at the same time the PF (Physical
774a57f58fSRandy Dunlap	  Function) itself is not providing any actual services on the
784a57f58fSRandy Dunlap	  host itself such as storage or networking.
79a8ccf8a6SAlexander Duyck
80a8ccf8a6SAlexander Duyck	  When in doubt, say N.
81a8ccf8a6SAlexander Duyck
82956a9202SRyan Wilsonconfig XEN_PCIDEV_FRONTEND
83956a9202SRyan Wilson        tristate "Xen PCI Frontend"
84956a9202SRyan Wilson        depends on PCI && X86 && XEN
85956a9202SRyan Wilson        select PCI_XEN
86fce263c1SKonrad Rzeszutek Wilk	select XEN_XENBUS_FRONTEND
87956a9202SRyan Wilson        default y
88956a9202SRyan Wilson        help
89956a9202SRyan Wilson          The PCI device frontend driver allows the kernel to import arbitrary
90956a9202SRyan Wilson          PCI devices from a PCI backend to support PCI driver domains.
91956a9202SRyan Wilson
92db3c33c6SJoerg Roedelconfig PCI_ATS
93db3c33c6SJoerg Roedel	bool
94db3c33c6SJoerg Roedel
9535ff9477SJayachandran Cconfig PCI_ECAM
9635ff9477SJayachandran C	bool
9735ff9477SJayachandran C
98714fe383SThomas Gleixnerconfig PCI_LOCKLESS_CONFIG
99714fe383SThomas Gleixner	bool
100714fe383SThomas Gleixner
10123a5fba4SThomas Petazzoniconfig PCI_BRIDGE_EMUL
10223a5fba4SThomas Petazzoni	bool
10323a5fba4SThomas Petazzoni
104d1b054daSYu Zhaoconfig PCI_IOV
105d1b054daSYu Zhao	bool "PCI IOV support"
106d1b054daSYu Zhao	depends on PCI
107db3c33c6SJoerg Roedel	select PCI_ATS
108d1b054daSYu Zhao	help
109d1b054daSYu Zhao	  I/O Virtualization is a PCI feature supported by some devices
110d1b054daSYu Zhao	  which allows them to create virtual devices which share their
111d1b054daSYu Zhao	  physical resources.
112d1b054daSYu Zhao
113d1b054daSYu Zhao	  If unsure, say N.
114204d49a5SBjorn Helgaas
115c320b976SJoerg Roedelconfig PCI_PRI
116c320b976SJoerg Roedel	bool "PCI PRI support"
117c54420d3SJoerg Roedel	depends on PCI
118c320b976SJoerg Roedel	select PCI_ATS
119c320b976SJoerg Roedel	help
120c320b976SJoerg Roedel	  PRI is the PCI Page Request Interface. It allows PCI devices that are
121c320b976SJoerg Roedel	  behind an IOMMU to recover from page faults.
122c320b976SJoerg Roedel
123c320b976SJoerg Roedel	  If unsure, say N.
124c320b976SJoerg Roedel
125086ac11fSJoerg Roedelconfig PCI_PASID
126086ac11fSJoerg Roedel	bool "PCI PASID support"
127086ac11fSJoerg Roedel	depends on PCI
128086ac11fSJoerg Roedel	select PCI_ATS
129086ac11fSJoerg Roedel	help
130086ac11fSJoerg Roedel	  Process Address Space Identifiers (PASIDs) can be used by PCI devices
131086ac11fSJoerg Roedel	  to access more than one IO address space at the same time. To make
132086ac11fSJoerg Roedel	  use of this feature an IOMMU is required which also supports PASIDs.
133086ac11fSJoerg Roedel	  Select this option if you have such an IOMMU and want to compile the
134086ac11fSJoerg Roedel	  driver for it into your kernel.
135086ac11fSJoerg Roedel
136086ac11fSJoerg Roedel	  If unsure, say N.
137086ac11fSJoerg Roedel
13852916982SLogan Gunthorpeconfig PCI_P2PDMA
13952916982SLogan Gunthorpe	bool "PCI peer-to-peer transfer support"
14052916982SLogan Gunthorpe	depends on PCI && ZONE_DEVICE
14152916982SLogan Gunthorpe	select GENERIC_ALLOCATOR
14252916982SLogan Gunthorpe	help
14352916982SLogan Gunthorpe	  Enableѕ drivers to do PCI peer-to-peer transactions to and from
14452916982SLogan Gunthorpe	  BARs that are exposed in other devices that are the part of
14552916982SLogan Gunthorpe	  the hierarchy where peer-to-peer DMA is guaranteed by the PCI
14652916982SLogan Gunthorpe	  specification to work (ie. anything below a single PCI bridge).
14752916982SLogan Gunthorpe
14852916982SLogan Gunthorpe	  Many PCIe root complexes do not support P2P transactions and
14952916982SLogan Gunthorpe	  it's hard to tell which support it at all, so at this time,
15052916982SLogan Gunthorpe	  P2P DMA transations must be between devices behind the same root
15152916982SLogan Gunthorpe	  port.
15252916982SLogan Gunthorpe
15352916982SLogan Gunthorpe	  If unsure, say N.
15452916982SLogan Gunthorpe
1558a226e00SRandy Dunlapconfig PCI_LABEL
1568a226e00SRandy Dunlap	def_bool y if (DMI || ACPI)
1579de0eec2SCyrille Pitchen	depends on PCI
1588a226e00SRandy Dunlap	select NLS
15945361a4fSThomas Petazzoni
1604daace0dSJake Oshinsconfig PCI_HYPERV
1614daace0dSJake Oshins        tristate "Hyper-V PCI Frontend"
1624daace0dSJake Oshins        depends on PCI && X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
1634daace0dSJake Oshins        help
1644daace0dSJake Oshins          The PCI device frontend driver allows the kernel to import arbitrary
1654daace0dSJake Oshins          PCI devices from a PCI backend to support PCI driver domains.
1664daace0dSJake Oshins
16730b5b880STero Roponensource "drivers/pci/hotplug/Kconfig"
1686e0832faSShawn Linsource "drivers/pci/controller/Kconfig"
1695e8cb403SKishon Vijay Abraham Isource "drivers/pci/endpoint/Kconfig"
170080b47deSLogan Gunthorpesource "drivers/pci/switch/Kconfig"
171