Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^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