mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-16 15:34:48 +08:00
00937f36b0
-----BEGIN PGP SIGNATURE----- iQJIBAABCgAyFiEEgMe7l+5h9hnxdsnuWYigwDrT+vwFAl+QUFkUHGJoZWxnYWFz QGdvb2dsZS5jb20ACgkQWYigwDrT+vw6SQ/9FHiAlHIa48/l5ZweqAuN3XnU8hoO sqMoJE8eqTkIYIT0aQdW6b1sDB0YE6b4UVxzg+UL/E0qYeJqgIUakig7QkyyF1qU aT5hq2ic+lk88G7AAxK3kgQGPk+JvP1EFIyOu6HBWzzDDzgLme1Iuh/5ulc2/lo+ E4biy0WOnI8vMfCieXGK4bSpc17Rn0+3N4cuVwZXBlntsvicE90VqeWBzqti1sk5 R6gkZuW+EIUNHHL7TLlkCeYZq6QNbXWzhfKCiaGW2wW4eJ4Ek1/ncQjyTbCFytKU 7OIYvrH20XO3L5GEfJ5fdbWErI1dRpoHO4NmhWljyBcVh44VYnM2ixhA7TuJ+TOk OtMbtoJAlP+QDlVdAW6rmRYmMPLFK/AQl5Aq7ftY22b2rYXqP20BobPy2MpDT71T sGC8z0ABl/ijo23g3I+3/2VzP/RzGhZJ0ZqagrXj8jHtg8SVy2fLcR5nr/dlrgFk TG83zML6ui1KViyx5nzElaEtw18aTqP61CNQxijQtNoYwKBTtRKNTrdRr4Qo7Hi6 6S+No3+4z8Kf8d90y0LkJQqr7JRkG6nI3AhXHO3rxXpXJOD2+QzlpwBZTQnASqq7 3kC1doUPmN97rFUYPQWWyOs6xSMcGbGIz8Uus3shH6yDtNxgpnIVoctH55hTEh6w nSY/4ssIfzJxZCE= =RCFo -----END PGP SIGNATURE----- Merge tag 'pci-v5.10-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci Pull PCI updates from Bjorn Helgaas: "Enumeration: - Print IRQ number used by PCIe Link Bandwidth Notification (Dongdong Liu) - Add schedule point in pci_read_config() to reduce max latency (Jiang Biao) - Add Kconfig options for MPS/MRRS strategy (Jim Quinlan) Resource management: - Fix pci_iounmap() memory leak when !CONFIG_GENERIC_IOMAP (Lorenzo Pieralisi) PCIe native device hotplug: - Reduce noisiness on hot removal (Lukas Wunner) Power management: - Revert "PCI/PM: Apply D2 delay as milliseconds, not microseconds" that was done on the basis of spec typo (Bjorn Helgaas) - Rename pci_dev.d3_delay to d3hot_delay to remove D3hot/D3cold ambiguity (Krzysztof Wilczyński) - Remove unused pcibios_pm_ops (Vaibhav Gupta) IOMMU: - Enable Translation Blocking for external devices to harden against DMA attacks (Rajat Jain) Error handling: - Add an ACPI APEI notifier chain for vendor CPER records to enable device-specific error handling (Shiju Jose) ASPM: - Remove struct aspm_register_info to simplify code (Saheed O. Bolarinwa) Amlogic Meson PCIe controller driver: - Build as module by default (Kevin Hilman) Ampere Altra PCIe controller driver: - Add MCFG quirk to work around non-standard ECAM implementation (Tuan Phan) Broadcom iProc PCIe controller driver: - Set affinity mask on MSI interrupts (Mark Tomlinson) Broadcom STB PCIe controller driver: - Make PCIE_BRCMSTB depend on ARCH_BRCMSTB (Jim Quinlan) - Add DT bindings for more Brcmstb chips (Jim Quinlan) - Add bcm7278 register info (Jim Quinlan) - Add bcm7278 PERST# support (Jim Quinlan) - Add suspend and resume pm_ops (Jim Quinlan) - Add control of rescal reset (Jim Quinlan) - Set additional internal memory DMA viewport sizes (Jim Quinlan) - Accommodate MSI for older chips (Jim Quinlan) - Set bus max burst size by chip type (Jim Quinlan) - Add support for bcm7211, bcm7216, bcm7445, bcm7278 (Jim Quinlan) Freescale i.MX6 PCIe controller driver: - Use dev_err_probe() to reduce redundant messages (Anson Huang) Freescale Layerscape PCIe controller driver: - Enforce 4K DMA buffer alignment in endpoint test (Hou Zhiqiang) - Add DT compatible strings for ls1088a, ls2088a (Xiaowei Bao) - Add endpoint support for ls1088a, ls2088a (Xiaowei Bao) - Add endpoint test support for lS1088a (Xiaowei Bao) - Add MSI-X support for ls1088a (Xiaowei Bao) HiSilicon HIP PCIe controller driver: - Handle HIP-specific errors via ACPI APEI (Yicong Yang) HiSilicon Kirin PCIe controller driver: - Return -EPROBE_DEFER if the GPIO isn't ready (Bean Huo) Intel VMD host bridge driver: - Factor out physical offset, bus offset, IRQ domain, IRQ allocation (Jon Derrick) - Use generic PCI PM correctly (Jon Derrick) Marvell Aardvark PCIe controller driver: - Fix compilation on s390 (Pali Rohár) - Implement driver 'remove' function and allow to build it as module (Pali Rohár) - Move PCIe reset card code to advk_pcie_train_link() (Pali Rohár) - Convert mvebu a3700 internal SMCC firmware return codes to errno (Pali Rohár) - Fix initialization with old Marvell's Arm Trusted Firmware (Pali Rohár) Microsoft Hyper-V host bridge driver: - Fix hibernation in case interrupts are not re-created (Dexuan Cui) NVIDIA Tegra PCIe controller driver: - Stop checking return value of debugfs_create() functions (Greg Kroah-Hartman) - Convert to use DEFINE_SEQ_ATTRIBUTE macro (Liu Shixin) Qualcomm PCIe controller driver: - Reset PCIe to work around Qsdk U-Boot issue (Ansuel Smith) Renesas R-Car PCIe controller driver: - Add DT documentation for r8a774a1, r8a774b1, r8a774e1 endpoints (Lad Prabhakar) - Add RZ/G2M, RZ/G2N, RZ/G2H IDs to endpoint test (Lad Prabhakar) - Add DT support for r8a7742 (Lad Prabhakar) Socionext UniPhier Pro5 controller driver: - Add DT descriptions of iATU register (host and endpoint) (Kunihiko Hayashi) Synopsys DesignWare PCIe controller driver: - Add link up check in dw_child_pcie_ops.map_bus() (racy, but seems unavoidable) (Hou Zhiqiang) - Fix endpoint Header Type check so multi-function devices work (Hou Zhiqiang) - Skip PCIE_MSI_INTR0* programming if MSI is disabled (Jisheng Zhang) - Stop leaking MSI page in suspend/resume (Jisheng Zhang) - Add common iATU register support instead of keystone-specific code (Kunihiko Hayashi) - Major config space access and other cleanups in dwc core and drivers that use it (al, exynos, histb, imx6, intel-gw, keystone, kirin, meson, qcom, tegra) (Rob Herring) - Add multiple PFs support for endpoint (Xiaowei Bao) - Add MSI-X doorbell mode in endpoint mode (Xiaowei Bao) Miscellaneous: - Use fallthrough pseudo-keyword (Gustavo A. R. Silva) - Fix "0 used as NULL pointer" warnings (Gustavo Pimentel) - Fix "cast truncates bits from constant value" warnings (Gustavo Pimentel) - Remove redundant zeroing for sg_init_table() (Julia Lawall) - Use scnprintf(), not snprintf(), in sysfs "show" functions (Krzysztof Wilczyński) - Remove unused assignments (Krzysztof Wilczyński) - Fix "0 used as NULL pointer" warning (Krzysztof Wilczyński) - Simplify bool comparisons (Krzysztof Wilczyński) - Use for_each_child_of_node() and for_each_node_by_name() (Qinglang Miao) - Simplify return expressions (Qinglang Miao)" * tag 'pci-v5.10-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (147 commits) PCI: vmd: Update VMD PM to correctly use generic PCI PM PCI: vmd: Create IRQ allocation helper PCI: vmd: Create IRQ Domain configuration helper PCI: vmd: Create bus offset configuration helper PCI: vmd: Create physical offset helper PCI: v3-semi: Remove unneeded break PCI: dwc: Add link up check in dw_child_pcie_ops.map_bus() PCI/ASPM: Remove struct pcie_link_state.l1ss PCI/ASPM: Remove struct aspm_register_info.l1ss_cap PCI/ASPM: Pass L1SS Capabilities value, not struct aspm_register_info PCI/ASPM: Remove struct aspm_register_info.l1ss_ctl1 PCI/ASPM: Remove struct aspm_register_info.l1ss_ctl2 (unused) PCI/ASPM: Remove struct aspm_register_info.l1ss_cap_ptr PCI/ASPM: Remove struct aspm_register_info.latency_encoding PCI/ASPM: Remove struct aspm_register_info.enabled PCI/ASPM: Remove struct aspm_register_info.support PCI/ASPM: Use 'parent' and 'child' for readability PCI/ASPM: Move LTR path check to where it's used PCI/ASPM: Move pci_clear_and_set_dword() earlier PCI: dwc: Fix MSI page leakage in suspend/resume ...
312 lines
9.1 KiB
Plaintext
312 lines
9.1 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
menu "PCI controller drivers"
|
|
depends on PCI
|
|
|
|
config PCI_MVEBU
|
|
bool "Marvell EBU PCIe controller"
|
|
depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
|
|
depends on MVEBU_MBUS
|
|
depends on ARM
|
|
depends on OF
|
|
select PCI_BRIDGE_EMUL
|
|
|
|
config PCI_AARDVARK
|
|
tristate "Aardvark PCIe controller"
|
|
depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
|
|
depends on OF
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
|
select PCI_BRIDGE_EMUL
|
|
help
|
|
Add support for Aardvark 64bit PCIe Host Controller. This
|
|
controller is part of the South Bridge of the Marvel Armada
|
|
3700 SoC.
|
|
|
|
config PCIE_XILINX_NWL
|
|
bool "NWL PCIe Core"
|
|
depends on ARCH_ZYNQMP || COMPILE_TEST
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
|
help
|
|
Say 'Y' here if you want kernel support for Xilinx
|
|
NWL PCIe controller. The controller can act as Root Port
|
|
or End Point. The current option selection will only
|
|
support root port enabling.
|
|
|
|
config PCI_FTPCI100
|
|
bool "Faraday Technology FTPCI100 PCI controller"
|
|
depends on OF
|
|
default ARCH_GEMINI
|
|
|
|
config PCI_TEGRA
|
|
bool "NVIDIA Tegra PCIe controller"
|
|
depends on ARCH_TEGRA || COMPILE_TEST
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
|
select PCI_MSI_ARCH_FALLBACKS
|
|
help
|
|
Say Y here if you want support for the PCIe host controller found
|
|
on NVIDIA Tegra SoCs.
|
|
|
|
config PCI_RCAR_GEN2
|
|
bool "Renesas R-Car Gen2 Internal PCI controller"
|
|
depends on ARCH_RENESAS || COMPILE_TEST
|
|
depends on ARM
|
|
help
|
|
Say Y here if you want internal PCI support on R-Car Gen2 SoC.
|
|
There are 3 internal PCI controllers available with a single
|
|
built-in EHCI/OHCI host controller present on each one.
|
|
|
|
config PCIE_RCAR
|
|
bool "Renesas R-Car PCIe controller"
|
|
depends on ARCH_RENESAS || COMPILE_TEST
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
|
select PCIE_RCAR_HOST
|
|
help
|
|
Say Y here if you want PCIe controller support on R-Car SoCs.
|
|
This option will be removed after arm64 defconfig is updated.
|
|
|
|
config PCIE_RCAR_HOST
|
|
bool "Renesas R-Car PCIe host controller"
|
|
depends on ARCH_RENESAS || COMPILE_TEST
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
|
select PCI_MSI_ARCH_FALLBACKS
|
|
help
|
|
Say Y here if you want PCIe controller support on R-Car SoCs in host
|
|
mode.
|
|
|
|
config PCIE_RCAR_EP
|
|
bool "Renesas R-Car PCIe endpoint controller"
|
|
depends on ARCH_RENESAS || COMPILE_TEST
|
|
depends on PCI_ENDPOINT
|
|
help
|
|
Say Y here if you want PCIe controller support on R-Car SoCs in
|
|
endpoint mode.
|
|
|
|
config PCI_HOST_COMMON
|
|
tristate
|
|
select PCI_ECAM
|
|
|
|
config PCI_HOST_GENERIC
|
|
tristate "Generic PCI host controller"
|
|
depends on OF
|
|
select PCI_HOST_COMMON
|
|
select IRQ_DOMAIN
|
|
help
|
|
Say Y here if you want to support a simple generic PCI host
|
|
controller, such as the one emulated by kvmtool.
|
|
|
|
config PCIE_XILINX
|
|
bool "Xilinx AXI PCIe host bridge support"
|
|
depends on OF || COMPILE_TEST
|
|
select PCI_MSI_ARCH_FALLBACKS
|
|
help
|
|
Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
|
|
Host Bridge driver.
|
|
|
|
config PCIE_XILINX_CPM
|
|
bool "Xilinx Versal CPM host bridge support"
|
|
depends on ARCH_ZYNQMP || COMPILE_TEST
|
|
select PCI_HOST_COMMON
|
|
help
|
|
Say 'Y' here if you want kernel support for the
|
|
Xilinx Versal CPM host bridge.
|
|
|
|
config PCI_XGENE
|
|
bool "X-Gene PCIe controller"
|
|
depends on ARM64 || COMPILE_TEST
|
|
depends on OF || (ACPI && PCI_QUIRKS)
|
|
help
|
|
Say Y here if you want internal PCI support on APM X-Gene SoC.
|
|
There are 5 internal PCIe ports available. Each port is GEN3 capable
|
|
and have varied lanes from x1 to x8.
|
|
|
|
config PCI_XGENE_MSI
|
|
bool "X-Gene v1 PCIe MSI feature"
|
|
depends on PCI_XGENE
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
|
default y
|
|
help
|
|
Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
|
|
This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
|
|
|
|
config PCI_V3_SEMI
|
|
bool "V3 Semiconductor PCI controller"
|
|
depends on OF
|
|
depends on ARM || COMPILE_TEST
|
|
default ARCH_INTEGRATOR_AP
|
|
|
|
config PCI_VERSATILE
|
|
bool "ARM Versatile PB PCI controller"
|
|
depends on ARCH_VERSATILE || COMPILE_TEST
|
|
|
|
config PCIE_IPROC
|
|
tristate
|
|
help
|
|
This enables the iProc PCIe core controller support for Broadcom's
|
|
iProc family of SoCs. An appropriate bus interface driver needs
|
|
to be enabled to select this.
|
|
|
|
config PCIE_IPROC_PLATFORM
|
|
tristate "Broadcom iProc PCIe platform bus driver"
|
|
depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
|
|
depends on OF
|
|
select PCIE_IPROC
|
|
default ARCH_BCM_IPROC
|
|
help
|
|
Say Y here if you want to use the Broadcom iProc PCIe controller
|
|
through the generic platform bus interface
|
|
|
|
config PCIE_IPROC_BCMA
|
|
tristate "Broadcom iProc PCIe BCMA bus driver"
|
|
depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
|
|
select PCIE_IPROC
|
|
select BCMA
|
|
default ARCH_BCM_5301X
|
|
help
|
|
Say Y here if you want to use the Broadcom iProc PCIe controller
|
|
through the BCMA bus interface
|
|
|
|
config PCIE_IPROC_MSI
|
|
bool "Broadcom iProc PCIe MSI support"
|
|
depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
|
default ARCH_BCM_IPROC
|
|
help
|
|
Say Y here if you want to enable MSI support for Broadcom's iProc
|
|
PCIe controller
|
|
|
|
config PCIE_ALTERA
|
|
tristate "Altera PCIe controller"
|
|
depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
|
|
help
|
|
Say Y here if you want to enable PCIe controller support on Altera
|
|
FPGA.
|
|
|
|
config PCIE_ALTERA_MSI
|
|
tristate "Altera PCIe MSI feature"
|
|
depends on PCIE_ALTERA
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
|
help
|
|
Say Y here if you want PCIe MSI support for the Altera FPGA.
|
|
This MSI driver supports Altera MSI to GIC controller IP.
|
|
|
|
config PCI_HOST_THUNDER_PEM
|
|
bool "Cavium Thunder PCIe controller to off-chip devices"
|
|
depends on ARM64 || COMPILE_TEST
|
|
depends on OF || (ACPI && PCI_QUIRKS)
|
|
select PCI_HOST_COMMON
|
|
help
|
|
Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
|
|
|
|
config PCI_HOST_THUNDER_ECAM
|
|
bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
|
|
depends on ARM64 || COMPILE_TEST
|
|
depends on OF || (ACPI && PCI_QUIRKS)
|
|
select PCI_HOST_COMMON
|
|
help
|
|
Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
|
|
|
|
config PCIE_ROCKCHIP
|
|
bool
|
|
depends on PCI
|
|
|
|
config PCIE_ROCKCHIP_HOST
|
|
tristate "Rockchip PCIe host controller"
|
|
depends on ARCH_ROCKCHIP || COMPILE_TEST
|
|
depends on OF
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
|
select MFD_SYSCON
|
|
select PCIE_ROCKCHIP
|
|
help
|
|
Say Y here if you want internal PCI support on Rockchip SoC.
|
|
There is 1 internal PCIe port available to support GEN2 with
|
|
4 slots.
|
|
|
|
config PCIE_ROCKCHIP_EP
|
|
bool "Rockchip PCIe endpoint controller"
|
|
depends on ARCH_ROCKCHIP || COMPILE_TEST
|
|
depends on OF
|
|
depends on PCI_ENDPOINT
|
|
select MFD_SYSCON
|
|
select PCIE_ROCKCHIP
|
|
help
|
|
Say Y here if you want to support Rockchip PCIe controller in
|
|
endpoint mode on Rockchip SoC. There is 1 internal PCIe port
|
|
available to support GEN2 with 4 slots.
|
|
|
|
config PCIE_MEDIATEK
|
|
tristate "MediaTek PCIe controller"
|
|
depends on ARCH_MEDIATEK || COMPILE_TEST
|
|
depends on OF
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
|
help
|
|
Say Y here if you want to enable PCIe controller support on
|
|
MediaTek SoCs.
|
|
|
|
config PCIE_TANGO_SMP8759
|
|
bool "Tango SMP8759 PCIe controller (DANGEROUS)"
|
|
depends on ARCH_TANGO && PCI_MSI && OF
|
|
depends on BROKEN
|
|
select PCI_HOST_COMMON
|
|
help
|
|
Say Y here to enable PCIe controller support for Sigma Designs
|
|
Tango SMP8759-based systems.
|
|
|
|
Note: The SMP8759 controller multiplexes PCI config and MMIO
|
|
accesses, and Linux doesn't provide a way to serialize them.
|
|
This can lead to data corruption if drivers perform concurrent
|
|
config and MMIO accesses.
|
|
|
|
config VMD
|
|
depends on PCI_MSI && X86_64 && SRCU
|
|
tristate "Intel Volume Management Device Driver"
|
|
help
|
|
Adds support for the Intel Volume Management Device (VMD). VMD is a
|
|
secondary PCI host bridge that allows PCI Express root ports,
|
|
and devices attached to them, to be removed from the default
|
|
PCI domain and placed within the VMD domain. This provides
|
|
more bus resources than are otherwise possible with a
|
|
single domain. If you know your system provides one of these and
|
|
has devices attached to it, say Y; if you are not sure, say N.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called vmd.
|
|
|
|
config PCIE_BRCMSTB
|
|
tristate "Broadcom Brcmstb PCIe host controller"
|
|
depends on ARCH_BRCMSTB || ARCH_BCM2835 || COMPILE_TEST
|
|
depends on OF
|
|
depends on PCI_MSI_IRQ_DOMAIN
|
|
default ARCH_BRCMSTB
|
|
help
|
|
Say Y here to enable PCIe host controller support for
|
|
Broadcom STB based SoCs, like the Raspberry Pi 4.
|
|
|
|
config PCI_HYPERV_INTERFACE
|
|
tristate "Hyper-V PCI Interface"
|
|
depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
|
|
help
|
|
The Hyper-V PCI Interface is a helper driver allows other drivers to
|
|
have a common interface with the Hyper-V PCI frontend driver.
|
|
|
|
config PCI_LOONGSON
|
|
bool "LOONGSON PCI Controller"
|
|
depends on MACH_LOONGSON64 || COMPILE_TEST
|
|
depends on OF
|
|
depends on PCI_QUIRKS
|
|
default MACH_LOONGSON64
|
|
help
|
|
Say Y here if you want to enable PCI controller support on
|
|
Loongson systems.
|
|
|
|
config PCIE_HISI_ERR
|
|
depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
|
|
bool "HiSilicon HIP PCIe controller error handling driver"
|
|
help
|
|
Say Y here if you want error handling support
|
|
for the PCIe controller's errors on HiSilicon HIP SoCs
|
|
|
|
source "drivers/pci/controller/dwc/Kconfig"
|
|
source "drivers/pci/controller/mobiveil/Kconfig"
|
|
source "drivers/pci/controller/cadence/Kconfig"
|
|
endmenu
|