Commit | Line | Data |
---|---|---|
7328c8f4 | 1 | # SPDX-License-Identifier: GPL-2.0 |
1da177e4 LT |
2 | # |
3 | # PCI configuration | |
4 | # | |
5f8fc432 | 5 | |
eb01d42a CH |
6 | # select this to offer the PCI prompt |
7 | config HAVE_PCI | |
8 | bool | |
9 | ||
10 | # select this to unconditionally force on PCI support | |
11 | config FORCE_PCI | |
12 | bool | |
13 | select HAVE_PCI | |
14 | select PCI | |
15 | ||
16 | menuconfig PCI | |
17 | bool "PCI support" | |
18 | depends on HAVE_PCI | |
19 | help | |
20 | This option enables support for the PCI local bus, including | |
21 | support for PCI-X and the foundations for PCI Express support. | |
22 | Say 'Y' here unless you know what you are doing. | |
23 | ||
2eac9c2d CH |
24 | config PCI_DOMAINS |
25 | bool | |
26 | depends on PCI | |
27 | ||
28 | config PCI_DOMAINS_GENERIC | |
29 | bool | |
30 | depends on PCI | |
31 | select PCI_DOMAINS | |
32 | ||
20f1b79d CH |
33 | config PCI_SYSCALL |
34 | bool | |
35 | ||
5f8fc432 BS |
36 | source "drivers/pci/pcie/Kconfig" |
37 | ||
1da177e4 LT |
38 | config PCI_MSI |
39 | bool "Message Signaled Interrupts (MSI and MSI-X)" | |
40 | depends on PCI | |
38b6a1cf | 41 | select GENERIC_MSI_IRQ |
1da177e4 LT |
42 | help |
43 | This allows device drivers to enable MSI (Message Signaled | |
44 | Interrupts). Message Signaled Interrupts enable a device to | |
45 | generate an interrupt using an inbound Memory Write on its | |
46 | PCI bus instead of asserting a device IRQ pin. | |
47 | ||
309e57df MW |
48 | Use of PCI MSI interrupts can be disabled at kernel boot time |
49 | by using the 'pci=nomsi' option. This disables MSI for the | |
50 | entire system. | |
51 | ||
3196180a | 52 | If you don't know what to do here, say Y. |
1da177e4 | 53 | |
3878eaef | 54 | config PCI_MSI_IRQ_DOMAIN |
f8430eae | 55 | def_bool ARC || ARM || ARM64 || X86 |
3878eaef JL |
56 | depends on PCI_MSI |
57 | select GENERIC_MSI_IRQ_DOMAIN | |
58 | ||
03ea2263 RD |
59 | config PCI_QUIRKS |
60 | default y | |
61 | bool "Enable PCI quirk workarounds" if EXPERT | |
62 | depends on PCI | |
63 | help | |
64 | This enables workarounds for various PCI chipset bugs/quirks. | |
65 | Disable this only if your target machine is unaffected by PCI | |
66 | quirks. | |
67 | ||
1da177e4 LT |
68 | config PCI_DEBUG |
69 | bool "PCI Debugging" | |
70 | depends on PCI && DEBUG_KERNEL | |
71 | help | |
72 | Say Y here if you want the PCI core to produce a bunch of debug | |
73 | messages to the system log. Select this if you are having a | |
74 | problem with PCI support and want to see more of what is going on. | |
75 | ||
76 | When in doubt, say N. | |
77 | ||
b07f2ebc YL |
78 | config PCI_REALLOC_ENABLE_AUTO |
79 | bool "Enable PCI resource re-allocation detection" | |
80 | depends on PCI | |
ad581f86 | 81 | depends on PCI_IOV |
b07f2ebc YL |
82 | help |
83 | Say Y here if you want the PCI core to detect if PCI resource | |
84 | re-allocation needs to be enabled. You can always use pci=realloc=on | |
ad581f86 SES |
85 | or pci=realloc=off to override it. It will automatically |
86 | re-allocate PCI resources if SR-IOV BARs have not been allocated by | |
87 | the BIOS. | |
b07f2ebc YL |
88 | |
89 | When in doubt, say N. | |
90 | ||
c70e0d9d CW |
91 | config PCI_STUB |
92 | tristate "PCI Stub driver" | |
93 | depends on PCI | |
94 | help | |
95 | Say Y or M here if you want be able to reserve a PCI device | |
96 | when it is going to be assigned to a guest operating system. | |
97 | ||
98 | When in doubt, say N. | |
99 | ||
a8ccf8a6 AD |
100 | config PCI_PF_STUB |
101 | tristate "PCI PF Stub driver" | |
102 | depends on PCI | |
103 | depends on PCI_IOV | |
104 | help | |
105 | Say Y or M here if you want to enable support for devices that | |
106 | require SR-IOV support, while at the same time the PF itself is | |
107 | not providing any actual services on the host itself such as | |
108 | storage or networking. | |
109 | ||
110 | When in doubt, say N. | |
111 | ||
956a9202 RW |
112 | config XEN_PCIDEV_FRONTEND |
113 | tristate "Xen PCI Frontend" | |
114 | depends on PCI && X86 && XEN | |
956a9202 | 115 | select PCI_XEN |
fce263c1 | 116 | select XEN_XENBUS_FRONTEND |
956a9202 RW |
117 | default y |
118 | help | |
119 | The PCI device frontend driver allows the kernel to import arbitrary | |
120 | PCI devices from a PCI backend to support PCI driver domains. | |
121 | ||
db3c33c6 JR |
122 | config PCI_ATS |
123 | bool | |
124 | ||
35ff9477 J |
125 | config PCI_ECAM |
126 | bool | |
127 | ||
714fe383 TG |
128 | config PCI_LOCKLESS_CONFIG |
129 | bool | |
130 | ||
23a5fba4 TP |
131 | config PCI_BRIDGE_EMUL |
132 | bool | |
714fe383 | 133 | |
d1b054da YZ |
134 | config PCI_IOV |
135 | bool "PCI IOV support" | |
136 | depends on PCI | |
db3c33c6 | 137 | select PCI_ATS |
d1b054da YZ |
138 | help |
139 | I/O Virtualization is a PCI feature supported by some devices | |
140 | which allows them to create virtual devices which share their | |
141 | physical resources. | |
142 | ||
143 | If unsure, say N. | |
204d49a5 | 144 | |
c320b976 JR |
145 | config PCI_PRI |
146 | bool "PCI PRI support" | |
c54420d3 | 147 | depends on PCI |
c320b976 JR |
148 | select PCI_ATS |
149 | help | |
150 | PRI is the PCI Page Request Interface. It allows PCI devices that are | |
151 | behind an IOMMU to recover from page faults. | |
152 | ||
153 | If unsure, say N. | |
154 | ||
086ac11f JR |
155 | config PCI_PASID |
156 | bool "PCI PASID support" | |
157 | depends on PCI | |
158 | select PCI_ATS | |
159 | help | |
160 | Process Address Space Identifiers (PASIDs) can be used by PCI devices | |
161 | to access more than one IO address space at the same time. To make | |
162 | use of this feature an IOMMU is required which also supports PASIDs. | |
163 | Select this option if you have such an IOMMU and want to compile the | |
164 | driver for it into your kernel. | |
165 | ||
166 | If unsure, say N. | |
167 | ||
52916982 LG |
168 | config PCI_P2PDMA |
169 | bool "PCI peer-to-peer transfer support" | |
170 | depends on PCI && ZONE_DEVICE | |
171 | select GENERIC_ALLOCATOR | |
172 | help | |
173 | Enableѕ drivers to do PCI peer-to-peer transactions to and from | |
174 | BARs that are exposed in other devices that are the part of | |
175 | the hierarchy where peer-to-peer DMA is guaranteed by the PCI | |
176 | specification to work (ie. anything below a single PCI bridge). | |
177 | ||
178 | Many PCIe root complexes do not support P2P transactions and | |
179 | it's hard to tell which support it at all, so at this time, | |
180 | P2P DMA transations must be between devices behind the same root | |
181 | port. | |
182 | ||
183 | If unsure, say N. | |
184 | ||
8a226e00 RD |
185 | config PCI_LABEL |
186 | def_bool y if (DMI || ACPI) | |
9de0eec2 | 187 | depends on PCI |
8a226e00 | 188 | select NLS |
45361a4f | 189 | |
4daace0d JO |
190 | config PCI_HYPERV |
191 | tristate "Hyper-V PCI Frontend" | |
192 | depends on PCI && X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64 | |
193 | help | |
194 | The PCI device frontend driver allows the kernel to import arbitrary | |
195 | PCI devices from a PCI backend to support PCI driver domains. | |
196 | ||
30b5b880 | 197 | source "drivers/pci/hotplug/Kconfig" |
6e0832fa | 198 | source "drivers/pci/controller/Kconfig" |
5e8cb403 | 199 | source "drivers/pci/endpoint/Kconfig" |
080b47de | 200 | source "drivers/pci/switch/Kconfig" |