xref: /linux/drivers/pci/Kconfig (revision 03ea2263c2ef22dd57f8fc6d54c44ccad3214520)
11da177e4SLinus Torvalds#
21da177e4SLinus Torvalds# PCI configuration
31da177e4SLinus Torvalds#
45f8fc432SBogicevic Sasa
55f8fc432SBogicevic Sasasource "drivers/pci/pcie/Kconfig"
65f8fc432SBogicevic Sasa
73a9ad0b4SYinghai Luconfig PCI_BUS_ADDR_T_64BIT
8e02a653eSHelge Deller	def_bool y if (ARCH_DMA_ADDR_T_64BIT || 64BIT)
93a9ad0b4SYinghai Lu	depends on PCI
103a9ad0b4SYinghai Lu
111da177e4SLinus Torvaldsconfig PCI_MSI
121da177e4SLinus Torvalds	bool "Message Signaled Interrupts (MSI and MSI-X)"
131da177e4SLinus Torvalds	depends on PCI
1438b6a1cfSJiang Liu	select GENERIC_MSI_IRQ
151da177e4SLinus Torvalds	help
161da177e4SLinus Torvalds	   This allows device drivers to enable MSI (Message Signaled
171da177e4SLinus Torvalds	   Interrupts).  Message Signaled Interrupts enable a device to
181da177e4SLinus Torvalds	   generate an interrupt using an inbound Memory Write on its
191da177e4SLinus Torvalds	   PCI bus instead of asserting a device IRQ pin.
201da177e4SLinus Torvalds
21309e57dfSMatthew Wilcox	   Use of PCI MSI interrupts can be disabled at kernel boot time
22309e57dfSMatthew Wilcox	   by using the 'pci=nomsi' option.  This disables MSI for the
23309e57dfSMatthew Wilcox	   entire system.
24309e57dfSMatthew Wilcox
253196180aSJesse Barnes	   If you don't know what to do here, say Y.
261da177e4SLinus Torvalds
273878eaefSJiang Liuconfig PCI_MSI_IRQ_DOMAIN
28f8430eaeSJoao Pinto	def_bool ARC || ARM || ARM64 || X86
293878eaefSJiang Liu	depends on PCI_MSI
303878eaefSJiang Liu	select GENERIC_MSI_IRQ_DOMAIN
313878eaefSJiang Liu
32*03ea2263SRandy Dunlapconfig PCI_QUIRKS
33*03ea2263SRandy Dunlap	default y
34*03ea2263SRandy Dunlap	bool "Enable PCI quirk workarounds" if EXPERT
35*03ea2263SRandy Dunlap	depends on PCI
36*03ea2263SRandy Dunlap	help
37*03ea2263SRandy Dunlap	  This enables workarounds for various PCI chipset bugs/quirks.
38*03ea2263SRandy Dunlap	  Disable this only if your target machine is unaffected by PCI
39*03ea2263SRandy Dunlap	  quirks.
40*03ea2263SRandy Dunlap
411da177e4SLinus Torvaldsconfig PCI_DEBUG
421da177e4SLinus Torvalds	bool "PCI Debugging"
431da177e4SLinus Torvalds	depends on PCI && DEBUG_KERNEL
441da177e4SLinus Torvalds	help
451da177e4SLinus Torvalds	  Say Y here if you want the PCI core to produce a bunch of debug
461da177e4SLinus Torvalds	  messages to the system log.  Select this if you are having a
471da177e4SLinus Torvalds	  problem with PCI support and want to see more of what is going on.
481da177e4SLinus Torvalds
491da177e4SLinus Torvalds	  When in doubt, say N.
501da177e4SLinus Torvalds
51b07f2ebcSYinghai Luconfig PCI_REALLOC_ENABLE_AUTO
52b07f2ebcSYinghai Lu	bool "Enable PCI resource re-allocation detection"
53b07f2ebcSYinghai Lu	depends on PCI
54b07f2ebcSYinghai Lu	help
55b07f2ebcSYinghai Lu	  Say Y here if you want the PCI core to detect if PCI resource
56b07f2ebcSYinghai Lu	  re-allocation needs to be enabled. You can always use pci=realloc=on
57b07f2ebcSYinghai Lu          or pci=realloc=off to override it.  Note this feature is a no-op
58b07f2ebcSYinghai Lu          unless PCI_IOV support is also enabled; in that case it will
59b07f2ebcSYinghai Lu          automatically re-allocate PCI resources if SR-IOV BARs have not
60b07f2ebcSYinghai Lu          been allocated by the BIOS.
61b07f2ebcSYinghai Lu
62b07f2ebcSYinghai Lu	  When in doubt, say N.
63b07f2ebcSYinghai Lu
64c70e0d9dSChris Wrightconfig PCI_STUB
65c70e0d9dSChris Wright	tristate "PCI Stub driver"
66c70e0d9dSChris Wright	depends on PCI
67c70e0d9dSChris Wright	help
68c70e0d9dSChris Wright	  Say Y or M here if you want be able to reserve a PCI device
69c70e0d9dSChris Wright	  when it is going to be assigned to a guest operating system.
70c70e0d9dSChris Wright
71c70e0d9dSChris Wright	  When in doubt, say N.
72c70e0d9dSChris Wright
73956a9202SRyan Wilsonconfig XEN_PCIDEV_FRONTEND
74956a9202SRyan Wilson        tristate "Xen PCI Frontend"
75956a9202SRyan Wilson        depends on PCI && X86 && XEN
76956a9202SRyan Wilson        select PCI_XEN
77fce263c1SKonrad Rzeszutek Wilk	select XEN_XENBUS_FRONTEND
78956a9202SRyan Wilson        default y
79956a9202SRyan Wilson        help
80956a9202SRyan Wilson          The PCI device frontend driver allows the kernel to import arbitrary
81956a9202SRyan Wilson          PCI devices from a PCI backend to support PCI driver domains.
82956a9202SRyan Wilson
838b955b0dSEric W. Biedermanconfig HT_IRQ
848b955b0dSEric W. Biederman	bool "Interrupts on hypertransport devices"
858b955b0dSEric W. Biederman	default y
862f600025SJiang Liu	depends on PCI && X86_LOCAL_APIC
878b955b0dSEric W. Biederman	help
888b955b0dSEric W. Biederman	   This allows native hypertransport devices to use interrupts.
898b955b0dSEric W. Biederman
908b955b0dSEric W. Biederman	   If unsure say Y.
91d1b054daSYu Zhao
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
101d1b054daSYu Zhaoconfig PCI_IOV
102d1b054daSYu Zhao	bool "PCI IOV support"
103d1b054daSYu Zhao	depends on PCI
104db3c33c6SJoerg Roedel	select PCI_ATS
105d1b054daSYu Zhao	help
106d1b054daSYu Zhao	  I/O Virtualization is a PCI feature supported by some devices
107d1b054daSYu Zhao	  which allows them to create virtual devices which share their
108d1b054daSYu Zhao	  physical resources.
109d1b054daSYu Zhao
110d1b054daSYu Zhao	  If unsure, say N.
111204d49a5SBjorn Helgaas
112c320b976SJoerg Roedelconfig PCI_PRI
113c320b976SJoerg Roedel	bool "PCI PRI support"
114c54420d3SJoerg Roedel	depends on PCI
115c320b976SJoerg Roedel	select PCI_ATS
116c320b976SJoerg Roedel	help
117c320b976SJoerg Roedel	  PRI is the PCI Page Request Interface. It allows PCI devices that are
118c320b976SJoerg Roedel	  behind an IOMMU to recover from page faults.
119c320b976SJoerg Roedel
120c320b976SJoerg Roedel	  If unsure, say N.
121c320b976SJoerg Roedel
122086ac11fSJoerg Roedelconfig PCI_PASID
123086ac11fSJoerg Roedel	bool "PCI PASID support"
124086ac11fSJoerg Roedel	depends on PCI
125086ac11fSJoerg Roedel	select PCI_ATS
126086ac11fSJoerg Roedel	help
127086ac11fSJoerg Roedel	  Process Address Space Identifiers (PASIDs) can be used by PCI devices
128086ac11fSJoerg Roedel	  to access more than one IO address space at the same time. To make
129086ac11fSJoerg Roedel	  use of this feature an IOMMU is required which also supports PASIDs.
130086ac11fSJoerg Roedel	  Select this option if you have such an IOMMU and want to compile the
131086ac11fSJoerg Roedel	  driver for it into your kernel.
132086ac11fSJoerg Roedel
133086ac11fSJoerg Roedel	  If unsure, say N.
134086ac11fSJoerg Roedel
1358a226e00SRandy Dunlapconfig PCI_LABEL
1368a226e00SRandy Dunlap	def_bool y if (DMI || ACPI)
1378a226e00SRandy Dunlap	select NLS
13845361a4fSThomas Petazzoni
1394daace0dSJake Oshinsconfig PCI_HYPERV
1404daace0dSJake Oshins        tristate "Hyper-V PCI Frontend"
1414daace0dSJake Oshins        depends on PCI && X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
1424daace0dSJake Oshins        help
1434daace0dSJake Oshins          The PCI device frontend driver allows the kernel to import arbitrary
1444daace0dSJake Oshins          PCI devices from a PCI backend to support PCI driver domains.
1454daace0dSJake Oshins
14630b5b880STero Roponensource "drivers/pci/hotplug/Kconfig"
147950bf638SKishon Vijay Abraham Isource "drivers/pci/dwc/Kconfig"
14845361a4fSThomas Petazzonisource "drivers/pci/host/Kconfig"
1495e8cb403SKishon Vijay Abraham Isource "drivers/pci/endpoint/Kconfig"
150080b47deSLogan Gunthorpesource "drivers/pci/switch/Kconfig"
151