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