11da177e4SLinus Torvalds# 21da177e4SLinus Torvalds# PCI configuration 31da177e4SLinus Torvalds# 45f8fc432SBogicevic Sasa 55f8fc432SBogicevic Sasasource "drivers/pci/pcie/Kconfig" 65f8fc432SBogicevic Sasa 73a9ad0b4SYinghai Luconfig PCI_BUS_ADDR_T_64BIT 8e02a653eSHelge Deller def_bool y if (ARCH_DMA_ADDR_T_64BIT || 64BIT) 93a9ad0b4SYinghai Lu depends on PCI 103a9ad0b4SYinghai Lu 111da177e4SLinus Torvaldsconfig PCI_MSI 121da177e4SLinus Torvalds bool "Message Signaled Interrupts (MSI and MSI-X)" 131da177e4SLinus Torvalds depends on PCI 1438b6a1cfSJiang Liu select GENERIC_MSI_IRQ 151da177e4SLinus Torvalds help 161da177e4SLinus Torvalds This allows device drivers to enable MSI (Message Signaled 171da177e4SLinus Torvalds Interrupts). Message Signaled Interrupts enable a device to 181da177e4SLinus Torvalds generate an interrupt using an inbound Memory Write on its 191da177e4SLinus Torvalds PCI bus instead of asserting a device IRQ pin. 201da177e4SLinus Torvalds 21309e57dfSMatthew Wilcox Use of PCI MSI interrupts can be disabled at kernel boot time 22309e57dfSMatthew Wilcox by using the 'pci=nomsi' option. This disables MSI for the 23309e57dfSMatthew Wilcox entire system. 24309e57dfSMatthew Wilcox 253196180aSJesse Barnes If you don't know what to do here, say Y. 261da177e4SLinus Torvalds 273878eaefSJiang Liuconfig PCI_MSI_IRQ_DOMAIN 28f8430eaeSJoao Pinto def_bool ARC || ARM || ARM64 || X86 293878eaefSJiang Liu depends on PCI_MSI 303878eaefSJiang Liu select GENERIC_MSI_IRQ_DOMAIN 313878eaefSJiang Liu 32*03ea2263SRandy Dunlapconfig PCI_QUIRKS 33*03ea2263SRandy Dunlap default y 34*03ea2263SRandy Dunlap bool "Enable PCI quirk workarounds" if EXPERT 35*03ea2263SRandy Dunlap depends on PCI 36*03ea2263SRandy Dunlap help 37*03ea2263SRandy Dunlap This enables workarounds for various PCI chipset bugs/quirks. 38*03ea2263SRandy Dunlap Disable this only if your target machine is unaffected by PCI 39*03ea2263SRandy Dunlap quirks. 40*03ea2263SRandy Dunlap 411da177e4SLinus Torvaldsconfig PCI_DEBUG 421da177e4SLinus Torvalds bool "PCI Debugging" 431da177e4SLinus Torvalds depends on PCI && DEBUG_KERNEL 441da177e4SLinus Torvalds help 451da177e4SLinus Torvalds Say Y here if you want the PCI core to produce a bunch of debug 461da177e4SLinus Torvalds messages to the system log. Select this if you are having a 471da177e4SLinus Torvalds problem with PCI support and want to see more of what is going on. 481da177e4SLinus Torvalds 491da177e4SLinus Torvalds When in doubt, say N. 501da177e4SLinus Torvalds 51b07f2ebcSYinghai Luconfig PCI_REALLOC_ENABLE_AUTO 52b07f2ebcSYinghai Lu bool "Enable PCI resource re-allocation detection" 53b07f2ebcSYinghai Lu depends on PCI 54b07f2ebcSYinghai Lu help 55b07f2ebcSYinghai Lu Say Y here if you want the PCI core to detect if PCI resource 56b07f2ebcSYinghai Lu re-allocation needs to be enabled. You can always use pci=realloc=on 57b07f2ebcSYinghai Lu or pci=realloc=off to override it. Note this feature is a no-op 58b07f2ebcSYinghai Lu unless PCI_IOV support is also enabled; in that case it will 59b07f2ebcSYinghai Lu automatically re-allocate PCI resources if SR-IOV BARs have not 60b07f2ebcSYinghai Lu been allocated by the BIOS. 61b07f2ebcSYinghai Lu 62b07f2ebcSYinghai Lu When in doubt, say N. 63b07f2ebcSYinghai Lu 64c70e0d9dSChris Wrightconfig PCI_STUB 65c70e0d9dSChris Wright tristate "PCI Stub driver" 66c70e0d9dSChris Wright depends on PCI 67c70e0d9dSChris Wright help 68c70e0d9dSChris Wright Say Y or M here if you want be able to reserve a PCI device 69c70e0d9dSChris Wright when it is going to be assigned to a guest operating system. 70c70e0d9dSChris Wright 71c70e0d9dSChris Wright When in doubt, say N. 72c70e0d9dSChris Wright 73956a9202SRyan Wilsonconfig XEN_PCIDEV_FRONTEND 74956a9202SRyan Wilson tristate "Xen PCI Frontend" 75956a9202SRyan Wilson depends on PCI && X86 && XEN 76956a9202SRyan Wilson select PCI_XEN 77fce263c1SKonrad Rzeszutek Wilk select XEN_XENBUS_FRONTEND 78956a9202SRyan Wilson default y 79956a9202SRyan Wilson help 80956a9202SRyan Wilson The PCI device frontend driver allows the kernel to import arbitrary 81956a9202SRyan Wilson PCI devices from a PCI backend to support PCI driver domains. 82956a9202SRyan Wilson 838b955b0dSEric W. Biedermanconfig HT_IRQ 848b955b0dSEric W. Biederman bool "Interrupts on hypertransport devices" 858b955b0dSEric W. Biederman default y 862f600025SJiang Liu depends on PCI && X86_LOCAL_APIC 878b955b0dSEric W. Biederman help 888b955b0dSEric W. Biederman This allows native hypertransport devices to use interrupts. 898b955b0dSEric W. Biederman 908b955b0dSEric W. Biederman If unsure say Y. 91d1b054daSYu Zhao 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 101d1b054daSYu Zhaoconfig PCI_IOV 102d1b054daSYu Zhao bool "PCI IOV support" 103d1b054daSYu Zhao depends on PCI 104db3c33c6SJoerg Roedel select PCI_ATS 105d1b054daSYu Zhao help 106d1b054daSYu Zhao I/O Virtualization is a PCI feature supported by some devices 107d1b054daSYu Zhao which allows them to create virtual devices which share their 108d1b054daSYu Zhao physical resources. 109d1b054daSYu Zhao 110d1b054daSYu Zhao If unsure, say N. 111204d49a5SBjorn Helgaas 112c320b976SJoerg Roedelconfig PCI_PRI 113c320b976SJoerg Roedel bool "PCI PRI support" 114c54420d3SJoerg Roedel depends on PCI 115c320b976SJoerg Roedel select PCI_ATS 116c320b976SJoerg Roedel help 117c320b976SJoerg Roedel PRI is the PCI Page Request Interface. It allows PCI devices that are 118c320b976SJoerg Roedel behind an IOMMU to recover from page faults. 119c320b976SJoerg Roedel 120c320b976SJoerg Roedel If unsure, say N. 121c320b976SJoerg Roedel 122086ac11fSJoerg Roedelconfig PCI_PASID 123086ac11fSJoerg Roedel bool "PCI PASID support" 124086ac11fSJoerg Roedel depends on PCI 125086ac11fSJoerg Roedel select PCI_ATS 126086ac11fSJoerg Roedel help 127086ac11fSJoerg Roedel Process Address Space Identifiers (PASIDs) can be used by PCI devices 128086ac11fSJoerg Roedel to access more than one IO address space at the same time. To make 129086ac11fSJoerg Roedel use of this feature an IOMMU is required which also supports PASIDs. 130086ac11fSJoerg Roedel Select this option if you have such an IOMMU and want to compile the 131086ac11fSJoerg Roedel driver for it into your kernel. 132086ac11fSJoerg Roedel 133086ac11fSJoerg Roedel If unsure, say N. 134086ac11fSJoerg Roedel 1358a226e00SRandy Dunlapconfig PCI_LABEL 1368a226e00SRandy Dunlap def_bool y if (DMI || ACPI) 1378a226e00SRandy Dunlap select NLS 13845361a4fSThomas Petazzoni 1394daace0dSJake Oshinsconfig PCI_HYPERV 1404daace0dSJake Oshins tristate "Hyper-V PCI Frontend" 1414daace0dSJake Oshins depends on PCI && X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64 1424daace0dSJake Oshins help 1434daace0dSJake Oshins The PCI device frontend driver allows the kernel to import arbitrary 1444daace0dSJake Oshins PCI devices from a PCI backend to support PCI driver domains. 1454daace0dSJake Oshins 14630b5b880STero Roponensource "drivers/pci/hotplug/Kconfig" 147950bf638SKishon Vijay Abraham Isource "drivers/pci/dwc/Kconfig" 14845361a4fSThomas Petazzonisource "drivers/pci/host/Kconfig" 1495e8cb403SKishon Vijay Abraham Isource "drivers/pci/endpoint/Kconfig" 150080b47deSLogan Gunthorpesource "drivers/pci/switch/Kconfig" 151