1*7328c8f4SBjorn 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 74956a9202SRyan Wilsonconfig XEN_PCIDEV_FRONTEND 75956a9202SRyan Wilson tristate "Xen PCI Frontend" 76956a9202SRyan Wilson depends on PCI && X86 && XEN 77956a9202SRyan Wilson select PCI_XEN 78fce263c1SKonrad Rzeszutek Wilk select XEN_XENBUS_FRONTEND 79956a9202SRyan Wilson default y 80956a9202SRyan Wilson help 81956a9202SRyan Wilson The PCI device frontend driver allows the kernel to import arbitrary 82956a9202SRyan Wilson PCI devices from a PCI backend to support PCI driver domains. 83956a9202SRyan Wilson 84db3c33c6SJoerg Roedelconfig PCI_ATS 85db3c33c6SJoerg Roedel bool 86db3c33c6SJoerg Roedel 8735ff9477SJayachandran Cconfig PCI_ECAM 8835ff9477SJayachandran C bool 8935ff9477SJayachandran C 90714fe383SThomas Gleixnerconfig PCI_LOCKLESS_CONFIG 91714fe383SThomas Gleixner bool 92714fe383SThomas Gleixner 93d1b054daSYu Zhaoconfig PCI_IOV 94d1b054daSYu Zhao bool "PCI IOV support" 95d1b054daSYu Zhao depends on PCI 96db3c33c6SJoerg Roedel select PCI_ATS 97d1b054daSYu Zhao help 98d1b054daSYu Zhao I/O Virtualization is a PCI feature supported by some devices 99d1b054daSYu Zhao which allows them to create virtual devices which share their 100d1b054daSYu Zhao physical resources. 101d1b054daSYu Zhao 102d1b054daSYu Zhao If unsure, say N. 103204d49a5SBjorn Helgaas 104c320b976SJoerg Roedelconfig PCI_PRI 105c320b976SJoerg Roedel bool "PCI PRI support" 106c54420d3SJoerg Roedel depends on PCI 107c320b976SJoerg Roedel select PCI_ATS 108c320b976SJoerg Roedel help 109c320b976SJoerg Roedel PRI is the PCI Page Request Interface. It allows PCI devices that are 110c320b976SJoerg Roedel behind an IOMMU to recover from page faults. 111c320b976SJoerg Roedel 112c320b976SJoerg Roedel If unsure, say N. 113c320b976SJoerg Roedel 114086ac11fSJoerg Roedelconfig PCI_PASID 115086ac11fSJoerg Roedel bool "PCI PASID support" 116086ac11fSJoerg Roedel depends on PCI 117086ac11fSJoerg Roedel select PCI_ATS 118086ac11fSJoerg Roedel help 119086ac11fSJoerg Roedel Process Address Space Identifiers (PASIDs) can be used by PCI devices 120086ac11fSJoerg Roedel to access more than one IO address space at the same time. To make 121086ac11fSJoerg Roedel use of this feature an IOMMU is required which also supports PASIDs. 122086ac11fSJoerg Roedel Select this option if you have such an IOMMU and want to compile the 123086ac11fSJoerg Roedel driver for it into your kernel. 124086ac11fSJoerg Roedel 125086ac11fSJoerg Roedel If unsure, say N. 126086ac11fSJoerg Roedel 1278a226e00SRandy Dunlapconfig PCI_LABEL 1288a226e00SRandy Dunlap def_bool y if (DMI || ACPI) 1298a226e00SRandy Dunlap select NLS 13045361a4fSThomas Petazzoni 1314daace0dSJake Oshinsconfig PCI_HYPERV 1324daace0dSJake Oshins tristate "Hyper-V PCI Frontend" 1334daace0dSJake Oshins depends on PCI && X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64 1344daace0dSJake Oshins help 1354daace0dSJake Oshins The PCI device frontend driver allows the kernel to import arbitrary 1364daace0dSJake Oshins PCI devices from a PCI backend to support PCI driver domains. 1374daace0dSJake Oshins 13830b5b880STero Roponensource "drivers/pci/hotplug/Kconfig" 139950bf638SKishon Vijay Abraham Isource "drivers/pci/dwc/Kconfig" 14045361a4fSThomas Petazzonisource "drivers/pci/host/Kconfig" 1415e8cb403SKishon Vijay Abraham Isource "drivers/pci/endpoint/Kconfig" 142080b47deSLogan Gunthorpesource "drivers/pci/switch/Kconfig" 143