# SPDX-License-Identifier: GPL-2.0
#
# [31mCONFIG_PCI[0m configuration
#
# select this to offer the [31mCONFIG_PCI[0m prompt
config [31mCONFIG_HAVE_PCI[0m
bool
# select this to unconditionally force on [31mCONFIG_PCI[0m support
config [31mCONFIG_FORCE_PCI[0m
bool
select [31mCONFIG_HAVE_PCI[0m
select [31mCONFIG_PCI[0m
menuconfig [31mCONFIG_PCI[0m
bool "PCI support"
depends on [31mCONFIG_HAVE_PCI[0m
help
This option enables support for the [31mCONFIG_PCI[0m local bus, including
support for [31mCONFIG_PCI[0m-X and the foundations for [31mCONFIG_PCI[0m Express support.
Say 'Y' here unless you know what you are doing.
if [31mCONFIG_PCI[0m
config [31mCONFIG_PCI_DOMAINS[0m
bool
depends on [31mCONFIG_PCI[0m
config [31mCONFIG_PCI_DOMAINS_GENERIC[0m
bool
select [31mCONFIG_PCI_DOMAINS[0m
config [31mCONFIG_PCI_SYSCALL[0m
bool
source "drivers/pci/pcie/Kconfig"
config [31mCONFIG_PCI_MSI[0m
bool "Message Signaled Interrupts (MSI and MSI-X)"
select [31mCONFIG_GENERIC_MSI_IRQ[0m
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
[31mCONFIG_PCI[0m bus instead of asserting a device IRQ pin.
Use of [31mCONFIG_PCI[0m 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 [31mCONFIG_PCI_MSI_IRQ_DOMAIN[0m
def_bool [31mCONFIG_ARC[0m || [31mCONFIG_ARM[0m || [31mCONFIG_ARM64[0m || [31mCONFIG_X86[0m || [31mCONFIG_RISCV[0m
depends on [31mCONFIG_PCI_MSI[0m
select [31mCONFIG_GENERIC_MSI_IRQ_DOMAIN[0m
config [31mCONFIG_PCI_QUIRKS[0m
default y
bool "Enable PCI quirk workarounds" if [31mCONFIG_EXPERT[0m
help
This enables workarounds for various [31mCONFIG_PCI[0m chipset bugs/quirks.
Disable this only if your target machine is unaffected by [31mCONFIG_PCI[0m
quirks.
config [31mCONFIG_PCI_DEBUG[0m
bool "PCI Debugging"
depends on [31mCONFIG_DEBUG_KERNEL[0m
help
Say Y here if you want the [31mCONFIG_PCI[0m core to produce a bunch of debug
messages to the system log. Select this if you are having a
problem with [31mCONFIG_PCI[0m support and want to see more of what is going on.
When in doubt, say N.
config [31mCONFIG_PCI_REALLOC_ENABLE_AUTO[0m
bool "Enable PCI resource re-allocation detection"
depends on [31mCONFIG_PCI_IOV[0m
help
Say Y here if you want the [31mCONFIG_PCI[0m core to detect if [31mCONFIG_PCI[0m 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 [31mCONFIG_PCI[0m resources if SR-IOV BARs have not been allocated by
the BIOS.
When in doubt, say N.
config [31mCONFIG_PCI_STUB[0m
tristate "PCI Stub driver"
help
Say Y or [31mCONFIG_M[0m here if you want be able to reserve a [31mCONFIG_PCI[0m device
when it is going to be assigned to a guest operating system.
When in doubt, say N.
config [31mCONFIG_PCI_PF_STUB[0m
tristate "PCI PF Stub driver"
depends on [31mCONFIG_PCI_IOV[0m
help
Say Y or [31mCONFIG_M[0m 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 [31mCONFIG_XEN_PCIDEV_FRONTEND[0m
tristate "Xen PCI Frontend"
depends on [31mCONFIG_X86[0m && [31mCONFIG_XEN[0m
select [31mCONFIG_PCI_XEN[0m
select [31mCONFIG_XEN_XENBUS_FRONTEND[0m
default y
help
The [31mCONFIG_PCI[0m device frontend driver allows the kernel to import arbitrary
[31mCONFIG_PCI[0m devices from a [31mCONFIG_PCI[0m backend to support [31mCONFIG_PCI[0m driver domains.
config [31mCONFIG_PCI_ATS[0m
bool
config [31mCONFIG_PCI_ECAM[0m
bool
config [31mCONFIG_PCI_LOCKLESS_CONFIG[0m
bool
config [31mCONFIG_PCI_BRIDGE_EMUL[0m
bool
config [31mCONFIG_PCI_IOV[0m
bool "PCI IOV support"
select [31mCONFIG_PCI_ATS[0m
help
I/O Virtualization is a [31mCONFIG_PCI[0m feature supported by some devices
which allows them to create virtual devices which share their
physical resources.
If unsure, say N.
config [31mCONFIG_PCI_PRI[0m
bool "PCI PRI support"
select [31mCONFIG_PCI_ATS[0m
help
PRI is the [31mCONFIG_PCI[0m Page Request Interface. It allows [31mCONFIG_PCI[0m devices that are
behind an IOMMU to recover from page faults.
If unsure, say N.
config [31mCONFIG_PCI_PASID[0m
bool "PCI PASID support"
select [31mCONFIG_PCI_ATS[0m
help
Process Address Space Identifiers (PASIDs) can be used by [31mCONFIG_PCI[0m 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 [31mCONFIG_PCI_P2PDMA[0m
bool "PCI peer-to-peer transfer support"
depends on [31mCONFIG_ZONE_DEVICE[0m
select [31mCONFIG_GENERIC_ALLOCATOR[0m
help
Enableѕ drivers to do [31mCONFIG_PCI[0m 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 [31mCONFIG_PCI[0m
specification to work (ie. anything below a single [31mCONFIG_PCI[0m 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 [31mCONFIG_PCI_LABEL[0m
def_bool y if ([31mCONFIG_DMI[0m || [31mCONFIG_ACPI[0m)
select [31mCONFIG_NLS[0m
config [31mCONFIG_PCI_HYPERV[0m
tristate "Hyper-V PCI Frontend"
depends on [31mCONFIG_X86_64[0m && [31mCONFIG_HYPERV[0m && [31mCONFIG_PCI_MSI[0m && [31mCONFIG_PCI_MSI_IRQ_DOMAIN[0m && [31mCONFIG_SYSFS[0m
select [31mCONFIG_PCI_HYPERV_INTERFACE[0m
help
The [31mCONFIG_PCI[0m device frontend driver allows the kernel to import arbitrary
[31mCONFIG_PCI[0m devices from a [31mCONFIG_PCI[0m backend to support [31mCONFIG_PCI[0m driver domains.
source "drivers/pci/hotplug/Kconfig"
source "drivers/pci/controller/Kconfig"
source "drivers/pci/endpoint/Kconfig"
source "drivers/pci/switch/Kconfig"
endif