196 lines
5.1 KiB
Plaintext
196 lines
5.1 KiB
Plaintext
|
# SPDX-License-Identifier: GPL-2.0
|
|||
|
#
|
|||
|
# PCI configuration
|
|||
|
#
|
|||
|
|
|||
|
# select this to offer the PCI prompt
|
|||
|
config HAVE_PCI
|
|||
|
bool
|
|||
|
|
|||
|
# select this to unconditionally force on PCI support
|
|||
|
config FORCE_PCI
|
|||
|
bool
|
|||
|
select HAVE_PCI
|
|||
|
select PCI
|
|||
|
|
|||
|
menuconfig PCI
|
|||
|
bool "PCI support"
|
|||
|
depends on HAVE_PCI
|
|||
|
help
|
|||
|
This option enables support for the PCI local bus, including
|
|||
|
support for PCI-X and the foundations for PCI Express support.
|
|||
|
Say 'Y' here unless you know what you are doing.
|
|||
|
|
|||
|
if PCI
|
|||
|
|
|||
|
config PCI_DOMAINS
|
|||
|
bool
|
|||
|
depends on PCI
|
|||
|
|
|||
|
config PCI_DOMAINS_GENERIC
|
|||
|
bool
|
|||
|
select PCI_DOMAINS
|
|||
|
|
|||
|
config PCI_SYSCALL
|
|||
|
bool
|
|||
|
|
|||
|
source "drivers/pci/pcie/Kconfig"
|
|||
|
|
|||
|
config PCI_MSI
|
|||
|
bool "Message Signaled Interrupts (MSI and MSI-X)"
|
|||
|
select GENERIC_MSI_IRQ
|
|||
|
help
|
|||
|
This allows device drivers to enable MSI (Message Signaled
|
|||
|
Interrupts). Message Signaled Interrupts enable a device to
|
|||
|
generate an interrupt using an inbound Memory Write on its
|
|||
|
PCI bus instead of asserting a device IRQ pin.
|
|||
|
|
|||
|
Use of PCI MSI interrupts can be disabled at kernel boot time
|
|||
|
by using the 'pci=nomsi' option. This disables MSI for the
|
|||
|
entire system.
|
|||
|
|
|||
|
If you don't know what to do here, say Y.
|
|||
|
|
|||
|
config PCI_MSI_IRQ_DOMAIN
|
|||
|
def_bool ARC || ARM || ARM64 || X86 || RISCV
|
|||
|
depends on PCI_MSI
|
|||
|
select GENERIC_MSI_IRQ_DOMAIN
|
|||
|
|
|||
|
config PCI_QUIRKS
|
|||
|
default y
|
|||
|
bool "Enable PCI quirk workarounds" if EXPERT
|
|||
|
help
|
|||
|
This enables workarounds for various PCI chipset bugs/quirks.
|
|||
|
Disable this only if your target machine is unaffected by PCI
|
|||
|
quirks.
|
|||
|
|
|||
|
config PCI_DEBUG
|
|||
|
bool "PCI Debugging"
|
|||
|
depends on DEBUG_KERNEL
|
|||
|
help
|
|||
|
Say Y here if you want the PCI core to produce a bunch of debug
|
|||
|
messages to the system log. Select this if you are having a
|
|||
|
problem with PCI support and want to see more of what is going on.
|
|||
|
|
|||
|
When in doubt, say N.
|
|||
|
|
|||
|
config PCI_REALLOC_ENABLE_AUTO
|
|||
|
bool "Enable PCI resource re-allocation detection"
|
|||
|
depends on PCI_IOV
|
|||
|
help
|
|||
|
Say Y here if you want the PCI core to detect if PCI resource
|
|||
|
re-allocation needs to be enabled. You can always use pci=realloc=on
|
|||
|
or pci=realloc=off to override it. It will automatically
|
|||
|
re-allocate PCI resources if SR-IOV BARs have not been allocated by
|
|||
|
the BIOS.
|
|||
|
|
|||
|
When in doubt, say N.
|
|||
|
|
|||
|
config PCI_STUB
|
|||
|
tristate "PCI Stub driver"
|
|||
|
help
|
|||
|
Say Y or M here if you want be able to reserve a PCI device
|
|||
|
when it is going to be assigned to a guest operating system.
|
|||
|
|
|||
|
When in doubt, say N.
|
|||
|
|
|||
|
config PCI_PF_STUB
|
|||
|
tristate "PCI PF Stub driver"
|
|||
|
depends on PCI_IOV
|
|||
|
help
|
|||
|
Say Y or M here if you want to enable support for devices that
|
|||
|
require SR-IOV support, while at the same time the PF (Physical
|
|||
|
Function) itself is not providing any actual services on the
|
|||
|
host itself such as storage or networking.
|
|||
|
|
|||
|
When in doubt, say N.
|
|||
|
|
|||
|
config XEN_PCIDEV_FRONTEND
|
|||
|
tristate "Xen PCI Frontend"
|
|||
|
depends on X86 && XEN
|
|||
|
select PCI_XEN
|
|||
|
select XEN_XENBUS_FRONTEND
|
|||
|
default y
|
|||
|
help
|
|||
|
The PCI device frontend driver allows the kernel to import arbitrary
|
|||
|
PCI devices from a PCI backend to support PCI driver domains.
|
|||
|
|
|||
|
config PCI_ATS
|
|||
|
bool
|
|||
|
|
|||
|
config PCI_ECAM
|
|||
|
bool
|
|||
|
|
|||
|
config PCI_LOCKLESS_CONFIG
|
|||
|
bool
|
|||
|
|
|||
|
config PCI_BRIDGE_EMUL
|
|||
|
bool
|
|||
|
|
|||
|
config PCI_IOV
|
|||
|
bool "PCI IOV support"
|
|||
|
select PCI_ATS
|
|||
|
help
|
|||
|
I/O Virtualization is a PCI feature supported by some devices
|
|||
|
which allows them to create virtual devices which share their
|
|||
|
physical resources.
|
|||
|
|
|||
|
If unsure, say N.
|
|||
|
|
|||
|
config PCI_PRI
|
|||
|
bool "PCI PRI support"
|
|||
|
select PCI_ATS
|
|||
|
help
|
|||
|
PRI is the PCI Page Request Interface. It allows PCI devices that are
|
|||
|
behind an IOMMU to recover from page faults.
|
|||
|
|
|||
|
If unsure, say N.
|
|||
|
|
|||
|
config PCI_PASID
|
|||
|
bool "PCI PASID support"
|
|||
|
select PCI_ATS
|
|||
|
help
|
|||
|
Process Address Space Identifiers (PASIDs) can be used by PCI devices
|
|||
|
to access more than one IO address space at the same time. To make
|
|||
|
use of this feature an IOMMU is required which also supports PASIDs.
|
|||
|
Select this option if you have such an IOMMU and want to compile the
|
|||
|
driver for it into your kernel.
|
|||
|
|
|||
|
If unsure, say N.
|
|||
|
|
|||
|
config PCI_P2PDMA
|
|||
|
bool "PCI peer-to-peer transfer support"
|
|||
|
depends on ZONE_DEVICE
|
|||
|
select GENERIC_ALLOCATOR
|
|||
|
help
|
|||
|
Enableѕ drivers to do PCI peer-to-peer transactions to and from
|
|||
|
BARs that are exposed in other devices that are the part of
|
|||
|
the hierarchy where peer-to-peer DMA is guaranteed by the PCI
|
|||
|
specification to work (ie. anything below a single PCI bridge).
|
|||
|
|
|||
|
Many PCIe root complexes do not support P2P transactions and
|
|||
|
it's hard to tell which support it at all, so at this time,
|
|||
|
P2P DMA transactions must be between devices behind the same root
|
|||
|
port.
|
|||
|
|
|||
|
If unsure, say N.
|
|||
|
|
|||
|
config PCI_LABEL
|
|||
|
def_bool y if (DMI || ACPI)
|
|||
|
select NLS
|
|||
|
|
|||
|
config PCI_HYPERV
|
|||
|
tristate "Hyper-V PCI Frontend"
|
|||
|
depends on X86_64 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && SYSFS
|
|||
|
select PCI_HYPERV_INTERFACE
|
|||
|
help
|
|||
|
The PCI device frontend driver allows the kernel to import arbitrary
|
|||
|
PCI devices from a PCI backend to support PCI driver domains.
|
|||
|
|
|||
|
source "drivers/pci/hotplug/Kconfig"
|
|||
|
source "drivers/pci/controller/Kconfig"
|
|||
|
source "drivers/pci/endpoint/Kconfig"
|
|||
|
source "drivers/pci/switch/Kconfig"
|
|||
|
|
|||
|
endif
|