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 83a9ad0b4SYinghai Luconfig PCI_BUS_ADDR_T_64BIT 9e02a653eSHelge Deller def_bool y if (ARCH_DMA_ADDR_T_64BIT || 64BIT) 103a9ad0b4SYinghai Lu depends on PCI 113a9ad0b4SYinghai Lu 121da177e4SLinus Torvaldsconfig PCI_MSI 131da177e4SLinus Torvalds bool "Message Signaled Interrupts (MSI and MSI-X)" 141da177e4SLinus Torvalds depends on PCI 1538b6a1cfSJiang Liu select GENERIC_MSI_IRQ 161da177e4SLinus Torvalds help 171da177e4SLinus Torvalds This allows device drivers to enable MSI (Message Signaled 181da177e4SLinus Torvalds Interrupts). Message Signaled Interrupts enable a device to 191da177e4SLinus Torvalds generate an interrupt using an inbound Memory Write on its 201da177e4SLinus Torvalds PCI bus instead of asserting a device IRQ pin. 211da177e4SLinus Torvalds 22309e57dfSMatthew Wilcox Use of PCI MSI interrupts can be disabled at kernel boot time 23309e57dfSMatthew Wilcox by using the 'pci=nomsi' option. This disables MSI for the 24309e57dfSMatthew Wilcox entire system. 25309e57dfSMatthew Wilcox 263196180aSJesse Barnes If you don't know what to do here, say Y. 271da177e4SLinus Torvalds 283878eaefSJiang Liuconfig PCI_MSI_IRQ_DOMAIN 29f8430eaeSJoao Pinto def_bool ARC || ARM || ARM64 || X86 303878eaefSJiang Liu depends on PCI_MSI 313878eaefSJiang Liu select GENERIC_MSI_IRQ_DOMAIN 323878eaefSJiang Liu 3303ea2263SRandy Dunlapconfig PCI_QUIRKS 3403ea2263SRandy Dunlap default y 3503ea2263SRandy Dunlap bool "Enable PCI quirk workarounds" if EXPERT 3603ea2263SRandy Dunlap depends on PCI 3703ea2263SRandy Dunlap help 3803ea2263SRandy Dunlap This enables workarounds for various PCI chipset bugs/quirks. 3903ea2263SRandy Dunlap Disable this only if your target machine is unaffected by PCI 4003ea2263SRandy Dunlap quirks. 4103ea2263SRandy Dunlap 421da177e4SLinus Torvaldsconfig PCI_DEBUG 431da177e4SLinus Torvalds bool "PCI Debugging" 441da177e4SLinus Torvalds depends on PCI && DEBUG_KERNEL 451da177e4SLinus Torvalds help 461da177e4SLinus Torvalds Say Y here if you want the PCI core to produce a bunch of debug 471da177e4SLinus Torvalds messages to the system log. Select this if you are having a 481da177e4SLinus Torvalds problem with PCI support and want to see more of what is going on. 491da177e4SLinus Torvalds 501da177e4SLinus Torvalds When in doubt, say N. 511da177e4SLinus Torvalds 52b07f2ebcSYinghai Luconfig PCI_REALLOC_ENABLE_AUTO 53b07f2ebcSYinghai Lu bool "Enable PCI resource re-allocation detection" 54b07f2ebcSYinghai Lu depends on PCI 55ad581f86SSascha El-Sharkawy depends on PCI_IOV 56b07f2ebcSYinghai Lu help 57b07f2ebcSYinghai Lu Say Y here if you want the PCI core to detect if PCI resource 58b07f2ebcSYinghai Lu re-allocation needs to be enabled. You can always use pci=realloc=on 59ad581f86SSascha El-Sharkawy or pci=realloc=off to override it. It will automatically 60ad581f86SSascha El-Sharkawy re-allocate PCI resources if SR-IOV BARs have not been allocated by 61ad581f86SSascha El-Sharkawy the BIOS. 62b07f2ebcSYinghai Lu 63b07f2ebcSYinghai Lu When in doubt, say N. 64b07f2ebcSYinghai Lu 65c70e0d9dSChris Wrightconfig PCI_STUB 66c70e0d9dSChris Wright tristate "PCI Stub driver" 67c70e0d9dSChris Wright depends on PCI 68c70e0d9dSChris Wright help 69c70e0d9dSChris Wright Say Y or M here if you want be able to reserve a PCI device 70c70e0d9dSChris Wright when it is going to be assigned to a guest operating system. 71c70e0d9dSChris Wright 72c70e0d9dSChris Wright When in doubt, say N. 73c70e0d9dSChris Wright 74*a8ccf8a6SAlexander Duyckconfig PCI_PF_STUB 75*a8ccf8a6SAlexander Duyck tristate "PCI PF Stub driver" 76*a8ccf8a6SAlexander Duyck depends on PCI 77*a8ccf8a6SAlexander Duyck depends on PCI_IOV 78*a8ccf8a6SAlexander Duyck help 79*a8ccf8a6SAlexander Duyck Say Y or M here if you want to enable support for devices that 80*a8ccf8a6SAlexander Duyck require SR-IOV support, while at the same time the PF itself is 81*a8ccf8a6SAlexander Duyck not providing any actual services on the host itself such as 82*a8ccf8a6SAlexander Duyck storage or networking. 83*a8ccf8a6SAlexander Duyck 84*a8ccf8a6SAlexander Duyck When in doubt, say N. 85*a8ccf8a6SAlexander Duyck 86956a9202SRyan Wilsonconfig XEN_PCIDEV_FRONTEND 87956a9202SRyan Wilson tristate "Xen PCI Frontend" 88956a9202SRyan Wilson depends on PCI && X86 && XEN 89956a9202SRyan Wilson select PCI_XEN 90fce263c1SKonrad Rzeszutek Wilk select XEN_XENBUS_FRONTEND 91956a9202SRyan Wilson default y 92956a9202SRyan Wilson help 93956a9202SRyan Wilson The PCI device frontend driver allows the kernel to import arbitrary 94956a9202SRyan Wilson PCI devices from a PCI backend to support PCI driver domains. 95956a9202SRyan Wilson 96db3c33c6SJoerg Roedelconfig PCI_ATS 97db3c33c6SJoerg Roedel bool 98db3c33c6SJoerg Roedel 9935ff9477SJayachandran Cconfig PCI_ECAM 10035ff9477SJayachandran C bool 10135ff9477SJayachandran C 102714fe383SThomas Gleixnerconfig PCI_LOCKLESS_CONFIG 103714fe383SThomas Gleixner bool 104714fe383SThomas Gleixner 105d1b054daSYu Zhaoconfig PCI_IOV 106d1b054daSYu Zhao bool "PCI IOV support" 107d1b054daSYu Zhao depends on PCI 108db3c33c6SJoerg Roedel select PCI_ATS 109d1b054daSYu Zhao help 110d1b054daSYu Zhao I/O Virtualization is a PCI feature supported by some devices 111d1b054daSYu Zhao which allows them to create virtual devices which share their 112d1b054daSYu Zhao physical resources. 113d1b054daSYu Zhao 114d1b054daSYu Zhao If unsure, say N. 115204d49a5SBjorn Helgaas 116c320b976SJoerg Roedelconfig PCI_PRI 117c320b976SJoerg Roedel bool "PCI PRI support" 118c54420d3SJoerg Roedel depends on PCI 119c320b976SJoerg Roedel select PCI_ATS 120c320b976SJoerg Roedel help 121c320b976SJoerg Roedel PRI is the PCI Page Request Interface. It allows PCI devices that are 122c320b976SJoerg Roedel behind an IOMMU to recover from page faults. 123c320b976SJoerg Roedel 124c320b976SJoerg Roedel If unsure, say N. 125c320b976SJoerg Roedel 126086ac11fSJoerg Roedelconfig PCI_PASID 127086ac11fSJoerg Roedel bool "PCI PASID support" 128086ac11fSJoerg Roedel depends on PCI 129086ac11fSJoerg Roedel select PCI_ATS 130086ac11fSJoerg Roedel help 131086ac11fSJoerg Roedel Process Address Space Identifiers (PASIDs) can be used by PCI devices 132086ac11fSJoerg Roedel to access more than one IO address space at the same time. To make 133086ac11fSJoerg Roedel use of this feature an IOMMU is required which also supports PASIDs. 134086ac11fSJoerg Roedel Select this option if you have such an IOMMU and want to compile the 135086ac11fSJoerg Roedel driver for it into your kernel. 136086ac11fSJoerg Roedel 137086ac11fSJoerg Roedel If unsure, say N. 138086ac11fSJoerg Roedel 1398a226e00SRandy Dunlapconfig PCI_LABEL 1408a226e00SRandy Dunlap def_bool y if (DMI || ACPI) 1419de0eec2SCyrille Pitchen depends on PCI 1428a226e00SRandy Dunlap select NLS 14345361a4fSThomas Petazzoni 1444daace0dSJake Oshinsconfig PCI_HYPERV 1454daace0dSJake Oshins tristate "Hyper-V PCI Frontend" 1464daace0dSJake Oshins depends on PCI && X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64 1474daace0dSJake Oshins help 1484daace0dSJake Oshins The PCI device frontend driver allows the kernel to import arbitrary 1494daace0dSJake Oshins PCI devices from a PCI backend to support PCI driver domains. 1504daace0dSJake Oshins 15130b5b880STero Roponensource "drivers/pci/hotplug/Kconfig" 15237dddf14SCyrille Pitchensource "drivers/pci/cadence/Kconfig" 153950bf638SKishon Vijay Abraham Isource "drivers/pci/dwc/Kconfig" 15445361a4fSThomas Petazzonisource "drivers/pci/host/Kconfig" 1555e8cb403SKishon Vijay Abraham Isource "drivers/pci/endpoint/Kconfig" 156080b47deSLogan Gunthorpesource "drivers/pci/switch/Kconfig" 157