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