^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) # PCI configuration
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) # select this to offer the PCI prompt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) config HAVE_PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) # select this to unconditionally force on PCI support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) config FORCE_PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) select HAVE_PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) select PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) menuconfig PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) bool "PCI support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) depends on HAVE_PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) This option enables support for the PCI local bus, including
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) support for PCI-X and the foundations for PCI Express support.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) Say 'Y' here unless you know what you are doing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) if PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) config PCI_DOMAINS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) depends on PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) config PCI_DOMAINS_GENERIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) select PCI_DOMAINS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) config PCI_SYSCALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) source "drivers/pci/pcie/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) config PCI_MSI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) bool "Message Signaled Interrupts (MSI and MSI-X)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) select GENERIC_MSI_IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) This allows device drivers to enable MSI (Message Signaled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) Interrupts). Message Signaled Interrupts enable a device to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) generate an interrupt using an inbound Memory Write on its
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) PCI bus instead of asserting a device IRQ pin.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) Use of PCI MSI interrupts can be disabled at kernel boot time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) by using the 'pci=nomsi' option. This disables MSI for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) entire system.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) If you don't know what to do here, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) config PCI_MSI_IRQ_DOMAIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) depends on PCI_MSI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) select GENERIC_MSI_IRQ_DOMAIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) config PCI_MSI_ARCH_FALLBACKS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) config PCI_QUIRKS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) bool "Enable PCI quirk workarounds" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) This enables workarounds for various PCI chipset bugs/quirks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) Disable this only if your target machine is unaffected by PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) quirks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) config PCI_DEBUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) bool "PCI Debugging"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) depends on DEBUG_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) Say Y here if you want the PCI core to produce a bunch of debug
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) messages to the system log. Select this if you are having a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) problem with PCI support and want to see more of what is going on.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) When in doubt, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) config PCI_REALLOC_ENABLE_AUTO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) bool "Enable PCI resource re-allocation detection"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) depends on PCI_IOV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) Say Y here if you want the PCI core to detect if PCI resource
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) re-allocation needs to be enabled. You can always use pci=realloc=on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) or pci=realloc=off to override it. It will automatically
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) re-allocate PCI resources if SR-IOV BARs have not been allocated by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) the BIOS.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) When in doubt, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) config PCI_STUB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) tristate "PCI Stub driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) Say Y or M here if you want be able to reserve a PCI device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) when it is going to be assigned to a guest operating system.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) When in doubt, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) config PCI_PF_STUB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) tristate "PCI PF Stub driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) depends on PCI_IOV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) Say Y or M here if you want to enable support for devices that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) require SR-IOV support, while at the same time the PF (Physical
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) Function) itself is not providing any actual services on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) host itself such as storage or networking.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) When in doubt, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) config XEN_PCIDEV_FRONTEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) tristate "Xen PCI Frontend"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) depends on X86 && XEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) select PCI_XEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) select XEN_XENBUS_FRONTEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) The PCI device frontend driver allows the kernel to import arbitrary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) PCI devices from a PCI backend to support PCI driver domains.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) config PCI_ATS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) config PCI_ECAM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) config PCI_LOCKLESS_CONFIG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) config PCI_BRIDGE_EMUL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) config PCI_IOV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) bool "PCI IOV support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) select PCI_ATS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) I/O Virtualization is a PCI feature supported by some devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) which allows them to create virtual devices which share their
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) physical resources.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) config PCI_PRI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) bool "PCI PRI support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) select PCI_ATS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) PRI is the PCI Page Request Interface. It allows PCI devices that are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) behind an IOMMU to recover from page faults.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) config PCI_PASID
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) bool "PCI PASID support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) select PCI_ATS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) Process Address Space Identifiers (PASIDs) can be used by PCI devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) to access more than one IO address space at the same time. To make
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) use of this feature an IOMMU is required which also supports PASIDs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) Select this option if you have such an IOMMU and want to compile the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) driver for it into your kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) config PCI_P2PDMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) bool "PCI peer-to-peer transfer support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) depends on ZONE_DEVICE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) select GENERIC_ALLOCATOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) Enableѕ drivers to do PCI peer-to-peer transactions to and from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) BARs that are exposed in other devices that are the part of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) the hierarchy where peer-to-peer DMA is guaranteed by the PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) specification to work (ie. anything below a single PCI bridge).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) Many PCIe root complexes do not support P2P transactions and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) it's hard to tell which support it at all, so at this time,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) P2P DMA transactions must be between devices behind the same root
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) port.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) config PCI_LABEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) def_bool y if (DMI || ACPI)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) select NLS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) config PCI_HYPERV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) tristate "Hyper-V PCI Frontend"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) depends on X86_64 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && SYSFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) select PCI_HYPERV_INTERFACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) The PCI device frontend driver allows the kernel to import arbitrary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) PCI devices from a PCI backend to support PCI driver domains.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) prompt "PCI Express hierarchy optimization setting"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) default PCIE_BUS_DEFAULT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) depends on PCI && EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) MPS (Max Payload Size) and MRRS (Max Read Request Size) are PCIe
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) device parameters that affect performance and the ability to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) support hotplug and peer-to-peer DMA.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) The following choices set the MPS and MRRS optimization strategy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) at compile-time. The choices are the same as those offered for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) the kernel command-line parameter 'pci', i.e.,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) 'pci=pcie_bus_tune_off', 'pci=pcie_bus_safe',
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) 'pci=pcie_bus_perf', and 'pci=pcie_bus_peer2peer'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) This is a compile-time setting and can be overridden by the above
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) command-line parameters. If unsure, choose PCIE_BUS_DEFAULT.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) config PCIE_BUS_TUNE_OFF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) bool "Tune Off"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) depends on PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) Use the BIOS defaults; don't touch MPS at all. This is the same
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) as booting with 'pci=pcie_bus_tune_off'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) config PCIE_BUS_DEFAULT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) bool "Default"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) depends on PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) Default choice; ensure that the MPS matches upstream bridge.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) config PCIE_BUS_SAFE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) bool "Safe"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) depends on PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) Use largest MPS that boot-time devices support. If you have a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) closed system with no possibility of adding new devices, this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) will use the largest MPS that's supported by all devices. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) is the same as booting with 'pci=pcie_bus_safe'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) config PCIE_BUS_PERFORMANCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) bool "Performance"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) depends on PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) Use MPS and MRRS for best performance. Ensure that a given
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) device's MPS is no larger than its parent MPS, which allows us to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) keep all switches/bridges to the max MPS supported by their
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) parent. This is the same as booting with 'pci=pcie_bus_perf'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) config PCIE_BUS_PEER2PEER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) bool "Peer2peer"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) depends on PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) Set MPS = 128 for all devices. MPS configuration effected by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) other options could cause the MPS on one root port to be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) different than that of the MPS on another, which may cause
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) hot-added devices or peer-to-peer DMA to fail. Set MPS to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) smallest possible value (128B) system-wide to avoid these issues.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) This is the same as booting with 'pci=pcie_bus_peer2peer'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) endchoice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) source "drivers/pci/hotplug/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) source "drivers/pci/controller/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) source "drivers/pci/endpoint/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) source "drivers/pci/switch/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) endif