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 | ||
2e8cb2cf RH |
24 | if PCI |
25 | ||
2eac9c2d CH |
26 | config PCI_DOMAINS |
27 | bool | |
28 | depends on PCI | |
29 | ||
30 | config PCI_DOMAINS_GENERIC | |
31 | bool | |
2eac9c2d CH |
32 | select PCI_DOMAINS |
33 | ||
20f1b79d CH |
34 | config PCI_SYSCALL |
35 | bool | |
36 | ||
5f8fc432 BS |
37 | source "drivers/pci/pcie/Kconfig" |
38 | ||
1da177e4 LT |
39 | config PCI_MSI |
40 | bool "Message Signaled Interrupts (MSI and MSI-X)" | |
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 |
191d6f91 | 55 | def_bool y |
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 | |
03ea2263 RD |
62 | help |
63 | This enables workarounds for various PCI chipset bugs/quirks. | |
64 | Disable this only if your target machine is unaffected by PCI | |
65 | quirks. | |
66 | ||
1da177e4 LT |
67 | config PCI_DEBUG |
68 | bool "PCI Debugging" | |
2e8cb2cf | 69 | depends on DEBUG_KERNEL |
1da177e4 LT |
70 | help |
71 | Say Y here if you want the PCI core to produce a bunch of debug | |
72 | messages to the system log. Select this if you are having a | |
73 | problem with PCI support and want to see more of what is going on. | |
74 | ||
75 | When in doubt, say N. | |
76 | ||
b07f2ebc YL |
77 | config PCI_REALLOC_ENABLE_AUTO |
78 | bool "Enable PCI resource re-allocation detection" | |
ad581f86 | 79 | depends on PCI_IOV |
b07f2ebc YL |
80 | help |
81 | Say Y here if you want the PCI core to detect if PCI resource | |
82 | re-allocation needs to be enabled. You can always use pci=realloc=on | |
ad581f86 SES |
83 | or pci=realloc=off to override it. It will automatically |
84 | re-allocate PCI resources if SR-IOV BARs have not been allocated by | |
85 | the BIOS. | |
b07f2ebc YL |
86 | |
87 | When in doubt, say N. | |
88 | ||
c70e0d9d CW |
89 | config PCI_STUB |
90 | tristate "PCI Stub driver" | |
c70e0d9d CW |
91 | help |
92 | Say Y or M here if you want be able to reserve a PCI device | |
93 | when it is going to be assigned to a guest operating system. | |
94 | ||
95 | When in doubt, say N. | |
96 | ||
a8ccf8a6 AD |
97 | config PCI_PF_STUB |
98 | tristate "PCI PF Stub driver" | |
a8ccf8a6 AD |
99 | depends on PCI_IOV |
100 | help | |
101 | Say Y or M here if you want to enable support for devices that | |
4a57f58f RD |
102 | require SR-IOV support, while at the same time the PF (Physical |
103 | Function) itself is not providing any actual services on the | |
104 | host itself such as storage or networking. | |
a8ccf8a6 AD |
105 | |
106 | When in doubt, say N. | |
107 | ||
956a9202 | 108 | config XEN_PCIDEV_FRONTEND |
36533f35 KK |
109 | tristate "Xen PCI Frontend" |
110 | depends on X86 && XEN | |
111 | select PCI_XEN | |
fce263c1 | 112 | select XEN_XENBUS_FRONTEND |
36533f35 KK |
113 | default y |
114 | help | |
115 | The PCI device frontend driver allows the kernel to import arbitrary | |
116 | PCI devices from a PCI backend to support PCI driver domains. | |
956a9202 | 117 | |
db3c33c6 JR |
118 | config PCI_ATS |
119 | bool | |
120 | ||
35ff9477 J |
121 | config PCI_ECAM |
122 | bool | |
123 | ||
714fe383 TG |
124 | config PCI_LOCKLESS_CONFIG |
125 | bool | |
126 | ||
23a5fba4 TP |
127 | config PCI_BRIDGE_EMUL |
128 | bool | |
714fe383 | 129 | |
d1b054da YZ |
130 | config PCI_IOV |
131 | bool "PCI IOV support" | |
db3c33c6 | 132 | select PCI_ATS |
d1b054da YZ |
133 | help |
134 | I/O Virtualization is a PCI feature supported by some devices | |
135 | which allows them to create virtual devices which share their | |
136 | physical resources. | |
137 | ||
138 | If unsure, say N. | |
204d49a5 | 139 | |
c320b976 JR |
140 | config PCI_PRI |
141 | bool "PCI PRI support" | |
142 | select PCI_ATS | |
143 | help | |
144 | PRI is the PCI Page Request Interface. It allows PCI devices that are | |
145 | behind an IOMMU to recover from page faults. | |
146 | ||
147 | If unsure, say N. | |
148 | ||
086ac11f JR |
149 | config PCI_PASID |
150 | bool "PCI PASID support" | |
086ac11f JR |
151 | select PCI_ATS |
152 | help | |
153 | Process Address Space Identifiers (PASIDs) can be used by PCI devices | |
154 | to access more than one IO address space at the same time. To make | |
155 | use of this feature an IOMMU is required which also supports PASIDs. | |
156 | Select this option if you have such an IOMMU and want to compile the | |
157 | driver for it into your kernel. | |
158 | ||
159 | If unsure, say N. | |
160 | ||
52916982 LG |
161 | config PCI_P2PDMA |
162 | bool "PCI peer-to-peer transfer support" | |
2e8cb2cf | 163 | depends on ZONE_DEVICE |
52916982 LG |
164 | select GENERIC_ALLOCATOR |
165 | help | |
166 | Enableѕ drivers to do PCI peer-to-peer transactions to and from | |
167 | BARs that are exposed in other devices that are the part of | |
168 | the hierarchy where peer-to-peer DMA is guaranteed by the PCI | |
169 | specification to work (ie. anything below a single PCI bridge). | |
170 | ||
171 | Many PCIe root complexes do not support P2P transactions and | |
172 | it's hard to tell which support it at all, so at this time, | |
d1bbf38a | 173 | P2P DMA transactions must be between devices behind the same root |
52916982 LG |
174 | port. |
175 | ||
176 | If unsure, say N. | |
177 | ||
8a226e00 RD |
178 | config PCI_LABEL |
179 | def_bool y if (DMI || ACPI) | |
180 | select NLS | |
45361a4f | 181 | |
4daace0d | 182 | config PCI_HYPERV |
36533f35 KK |
183 | tristate "Hyper-V PCI Frontend" |
184 | depends on X86_64 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && SYSFS | |
348dd93e | 185 | select PCI_HYPERV_INTERFACE |
36533f35 KK |
186 | help |
187 | The PCI device frontend driver allows the kernel to import arbitrary | |
188 | PCI devices from a PCI backend to support PCI driver domains. | |
4daace0d | 189 | |
30b5b880 | 190 | source "drivers/pci/hotplug/Kconfig" |
6e0832fa | 191 | source "drivers/pci/controller/Kconfig" |
5e8cb403 | 192 | source "drivers/pci/endpoint/Kconfig" |
080b47de | 193 | source "drivers/pci/switch/Kconfig" |
2e8cb2cf RH |
194 | |
195 | endif |