| menuconfig PCI |
| bool "PCI support" |
| depends on DM |
| default y if PPC |
| help |
| Enable support for PCI (Peripheral Interconnect Bus), a type of bus |
| used on some devices to allow the CPU to communicate with its |
| peripherals. |
| |
| This subsystem requires driver model. |
| |
| if PCI |
| |
| config DM_PCI_COMPAT |
| bool "Enable compatible functions for PCI" |
| help |
| Enable compatibility functions for PCI so that old code can be used |
| with CONFIG_PCI enabled. This should be used as an interim |
| measure when porting a board to use driver model for PCI. Once the |
| board is fully supported, this option should be disabled. |
| |
| config SYS_PCI_64BIT |
| bool "Enable 64-bit PCI resources" |
| default y if PPC |
| help |
| Enable 64-bit PCI resource access. |
| |
| config PCI_AARDVARK |
| bool "Enable Aardvark PCIe driver" |
| depends on DM_GPIO |
| depends on ARMADA_3700 |
| help |
| Say Y here if you want to enable PCIe controller support on |
| Armada37x0 SoCs. The PCIe controller on Armada37x0 is based on |
| Aardvark hardware. |
| |
| config PCI_PNP |
| bool "Enable Plug & Play support for PCI" |
| default y |
| help |
| Enable PCI memory and I/O space resource allocation and assignment. |
| |
| config SPL_PCI_PNP |
| bool "Enable Plug & Play support for PCI in SPL" |
| depends on SPL_PCI |
| help |
| Enable PCI memory and I/O space resource allocation and assignment. |
| |
| This is required to auto configure the enumerated devices. |
| |
| This is normally not done in SPL, but can be enabled if devices must |
| be set up in the SPL phase. Often it is enough to manually configure |
| one device, so this option can be disabled. |
| |
| config PCI_REGION_MULTI_ENTRY |
| bool "Enable Multiple entries of region type MEMORY in ranges for PCI" |
| help |
| Enable PCI memory regions to be of multiple entry. Multiple entry |
| here refers to allow more than one count of address ranges for MEMORY |
| region type. This helps to add support for SoC's like OcteonTX/TX2 |
| where every peripheral is on the PCI bus. |
| |
| config PCI_CONFIG_HOST_BRIDGE |
| bool "Configure PCI host bridges" |
| default y if X86 |
| |
| config PCI_MAP_SYSTEM_MEMORY |
| bool "Map local system memory from a virtual base address" |
| depends on MIPS |
| help |
| Say Y if base address of system memory is being used as a virtual address |
| instead of a physical address (e.g. on MIPS). The PCI core will then remap |
| the virtual memory base address to a physical address when adding the PCI |
| region of type PCI_REGION_SYS_MEMORY. |
| This should only be required on MIPS where CFG_SYS_SDRAM_BASE is still |
| being used as virtual address. |
| |
| config PCI_SRIOV |
| bool "Enable Single Root I/O Virtualization support for PCI" |
| help |
| Say Y here if you want to enable PCI Single Root I/O Virtualization |
| capability support. This helps to enumerate Virtual Function devices |
| if available on a PCI Physical Function device and probe for |
| applicable drivers. |
| |
| config PCI_ENHANCED_ALLOCATION |
| bool "Enable support for Enhanced Allocation of resources" |
| default y |
| help |
| Enable support for Enhanced Allocation which can be used by supported |
| devices in place of traditional BARS for allocation of resources. |
| |
| config PCI_ARID |
| bool "Enable Alternate Routing-ID support for PCI" |
| help |
| Say Y here if you want to enable Alternate Routing-ID capability |
| support on PCI devices. This helps to skip some devices in BDF |
| scan that are not present. |
| |
| config PCI_SCAN_SHOW |
| bool "Show PCI devices during startup" |
| depends on PCIE_IMX |
| |
| config PCIE_ECAM_GENERIC |
| bool "Generic ECAM-based PCI host controller support" |
| help |
| Say Y here if you want to enable support for generic ECAM-based |
| PCIe host controllers, such as the one emulated by QEMU. |
| |
| config PCIE_ECAM_SYNQUACER |
| bool "SynQuacer ECAM-based PCI host controller support" |
| select PCI_INIT_R |
| select PCI_REGION_MULTI_ENTRY |
| help |
| Say Y here if you want to enable support for Socionext |
| SynQuacer SoC's ECAM-based PCIe host controllers. |
| Note that this must be configured when boot because Linux driver |
| expects the PCIe RC has been configured in the bootloader. |
| |
| config PCIE_APPLE |
| bool "Enable Apple PCIe driver" |
| depends on ARCH_APPLE |
| imply PCI_INIT_R |
| select SYS_PCI_64BIT |
| default y |
| help |
| Say Y here if you want to enable PCIe controller support on |
| Apple SoCs. |
| |
| config PCI_FTPCI100 |
| bool "Enable Faraday FTPCI100 PCI Bridge Controller driver" |
| help |
| Say Y here if you want to enable Faraday FTPCI100 PCI. |
| FTPCI100 IP is used in SoC chip designs. |
| |
| config PCI_GT64120 |
| bool "GT64120 PCI support" |
| depends on MIPS |
| |
| config PCI_PHYTIUM |
| bool "Phytium PCIe support" |
| help |
| Say Y here if you want to enable PCIe controller support on |
| Phytium SoCs. |
| |
| config PCIE_DW_MVEBU |
| bool "Enable Armada-8K PCIe driver (DesignWare core)" |
| depends on ARMADA_8K |
| help |
| Say Y here if you want to enable PCIe controller support on |
| Armada-8K SoCs. The PCIe controller on Armada-8K is based on |
| DesignWare hardware. |
| |
| config PCIE_DW_SIFIVE |
| bool "Enable SiFive FU740 PCIe" |
| depends on CLK_SIFIVE_PRCI |
| depends on RESET_SIFIVE |
| depends on SIFIVE_GPIO |
| select PCIE_DW_COMMON |
| help |
| Say Y here if you want to enable PCIe controller support on |
| FU740. |
| |
| config SYS_FSL_PCI_VER_3_X |
| bool |
| |
| config PCIE_FSL |
| bool "FSL PowerPC PCIe support" |
| select SYS_FSL_PCI_VER_3_X if ARCH_T2080 || ARCH_T4240 |
| help |
| Say Y here if you want to enable PCIe controller support on FSL |
| PowerPC MPC85xx, MPC86xx, B series, P series and T series SoCs. |
| This driver does not support SRIO_PCIE_BOOT feature. |
| |
| config PCI_MPC85XX |
| bool "MPC85XX PowerPC PCI support" |
| help |
| Say Y here if you want to enable PCI controller support on FSL |
| PowerPC MPC85xx SoC. |
| |
| config PCI_MSC01 |
| bool "MSC01 PCI support" |
| depends on TARGET_MALTA |
| |
| config PCI_RCAR_GEN2 |
| bool "Renesas RCar Gen2 PCIe driver" |
| depends on RCAR_32 |
| help |
| Say Y here if you want to enable PCIe controller support on |
| Renesas RCar Gen2 SoCs. The PCIe controller on RCar Gen2 is |
| also used to access EHCI USB controller on the SoC. |
| |
| config PCI_RCAR_GEN3 |
| bool "Renesas RCar Gen3 PCIe driver" |
| depends on RCAR_GEN3 |
| help |
| Say Y here if you want to enable PCIe controller support on |
| Renesas RCar Gen3 SoCs. |
| |
| config PCI_SANDBOX |
| bool "Sandbox PCI support" |
| depends on SANDBOX |
| help |
| Support PCI on sandbox, as an emulated bus. This permits testing of |
| PCI feature such as bus scanning, device configuration and device |
| access. The available (emulated) devices are defined statically in |
| the device tree but the normal PCI scan technique is used to find |
| then. |
| |
| config SH7751_PCI |
| bool "SH7751 PCI controller support" |
| depends on SH |
| help |
| SuperH PCI Bridge Configuration |
| |
| config PCI_TEGRA |
| bool "Tegra PCI support" |
| depends on ARCH_TEGRA |
| depends on (TEGRA186 && POWER_DOMAIN) || (!TEGRA186) |
| help |
| Enable support for the PCIe controller found on some generations of |
| Tegra. Tegra20 has 2 root ports with a total of 4 lanes, Tegra30 has |
| 3 root ports with a total of 6 lanes and Tegra124 has 2 root ports |
| with a total of 5 lanes. Some boards require this for Ethernet |
| support to work (e.g. beaver, jetson-tk1). |
| |
| config PCI_OCTEONTX |
| bool "OcteonTX PCI support" |
| depends on (ARCH_OCTEONTX || ARCH_OCTEONTX2) |
| help |
| Enable support for the OcteonTX/TX2 SoC family ECAM/PEM controllers. |
| These controllers provide PCI configuration access to all on-board |
| peripherals so it should only be disabled for testing purposes |
| |
| config PCIE_OCTEON |
| bool "MIPS Octeon PCIe support" |
| depends on ARCH_OCTEON |
| help |
| Enable support for the MIPS Octeon SoC family PCIe controllers. |
| |
| config PCI_XILINX |
| bool "Xilinx AXI Bridge for PCI Express" |
| help |
| Enable support for the Xilinx AXI bridge for PCI express, an IP block |
| which can be used on some generations of Xilinx FPGAs. |
| |
| config PCIE_LAYERSCAPE |
| bool |
| |
| config PCIE_LAYERSCAPE_RC |
| bool "Layerscape PCIe Root Complex mode support" |
| select PCIE_LAYERSCAPE |
| help |
| Enable Layerscape PCIe Root Complex mode driver support. The Layerscape |
| SoC may have one or several PCIe controllers. Each controller can be |
| configured to Root Complex mode by clearing the corresponding bit of |
| RCW[HOST_AGT_PEX]. |
| |
| config PCI_IOMMU_EXTRA_MAPPINGS |
| bool "Support for specifying extra IOMMU mappings for PCI" |
| depends on PCIE_LAYERSCAPE_RC |
| help |
| Enable support for specifying extra IOMMU mappings for PCI |
| controllers through a special env var called "pci_iommu_extra" or |
| through a device tree property named "pci-iommu-extra" placed in |
| the node describing the PCI controller. |
| The intent is to cover SR-IOV scenarios which need mappings for VFs |
| and PCI hot-plug scenarios. More documentation can be found under: |
| arch/arm/cpu/armv8/fsl-layerscape/doc/README.pci_iommu_extra |
| |
| config PCIE_LAYERSCAPE_EP |
| bool "Layerscape PCIe Endpoint mode support" |
| select PCIE_LAYERSCAPE |
| select PCI_ENDPOINT |
| help |
| Enable Layerscape PCIe Endpoint mode driver support. The Layerscape |
| SoC may have one or several PCIe controllers. Each controller can be |
| configured to Endpoint mode by setting the corresponding bit of |
| RCW[HOST_AGT_PEX]. |
| |
| config PCIE_LAYERSCAPE_GEN4 |
| bool "Layerscape Gen4 PCIe support" |
| help |
| Support PCIe Gen4 on NXP Layerscape SoCs, which may have one or |
| several PCIe controllers. The PCIe controller can work in RC or |
| EP mode according to RCW[HOST_AGT_PEX] setting. |
| |
| config FSL_PCIE_COMPAT |
| string "PCIe compatible of Kernel DT" |
| depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4 |
| default "fsl,ls1012a-pcie" if ARCH_LS1012A |
| default "fsl,ls1028a-pcie" if ARCH_LS1028A |
| default "fsl,ls1043a-pcie" if ARCH_LS1043A |
| default "fsl,ls1046a-pcie" if ARCH_LS1046A |
| default "fsl,ls2080a-pcie" if ARCH_LS2080A |
| default "fsl,ls1088a-pcie" if ARCH_LS1088A |
| default "fsl,ls2088a-pcie" if ARCH_LX2160A || ARCH_LX2162A |
| default "fsl,ls1021a-pcie" if ARCH_LS1021A |
| help |
| This compatible is used to find pci controller node in Kernel DT |
| to complete fixup. |
| |
| config FSL_PCIE_EP_COMPAT |
| string "PCIe EP compatible of Kernel DT" |
| depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4 |
| default "fsl,ls-pcie-ep" |
| help |
| This compatible is used to find pci controller ep node in Kernel DT |
| to complete fixup. |
| |
| config PCIE_IMX |
| bool "i.MX PCIe support" |
| depends on ARCH_MX6 |
| |
| config PCIE_INTEL_FPGA |
| bool "Intel FPGA PCIe support" |
| help |
| Say Y here if you want to enable PCIe controller support on Intel |
| FPGA, example Stratix 10. |
| |
| config PCIE_IPROC |
| bool "Iproc PCIe support" |
| help |
| Broadcom iProc PCIe controller driver. |
| Say Y here if you want to enable Broadcom iProc PCIe controller, |
| |
| config PCI_MVEBU |
| bool "Enable Kirkwood / Armada 370/XP/375/38x PCIe driver" |
| depends on (ARCH_KIRKWOOD || ARCH_MVEBU) |
| select MISC |
| select DM_RESET |
| select DM_GPIO |
| help |
| Say Y here if you want to enable PCIe controller support on |
| Kirkwood and Armada 370/XP/375/38x SoCs. |
| |
| config PCIE_DW_COMMON |
| bool |
| |
| config PCI_KEYSTONE |
| bool "TI Keystone PCIe controller" |
| select PCIE_DW_COMMON |
| help |
| Say Y here if you want to enable PCI controller support on AM654 SoC. |
| |
| config PCIE_MEDIATEK |
| bool "MediaTek PCIe Gen2 controller" |
| depends on ARCH_MEDIATEK |
| help |
| Say Y here if you want to enable Gen2 PCIe controller, |
| which could be found on MT7623 SoC family. |
| |
| config PCIE_MEDIATEK_GEN3 |
| bool "MediaTek PCIe Gen3 controller" |
| depends on ARCH_MEDIATEK |
| help |
| Say Y here if you want to enable Gen3 PCIe controller, |
| which could be found on the Mediatek Filogic SoC family. |
| |
| config PCIE_DW_MESON |
| bool "Amlogic Meson DesignWare based PCIe controller" |
| depends on ARCH_MESON |
| select PCIE_DW_COMMON |
| help |
| Say Y here if you want to enable DW PCIe controller support on |
| Amlogic SoCs. |
| |
| config PCIE_ROCKCHIP |
| bool "Enable Rockchip PCIe driver" |
| depends on ARCH_ROCKCHIP |
| select PHY_ROCKCHIP_PCIE |
| default y if ROCKCHIP_RK3399 |
| help |
| Say Y here if you want to enable PCIe controller support on |
| Rockchip SoCs. |
| |
| config PCIE_DW_ROCKCHIP |
| bool "Rockchip DesignWare based PCIe controller" |
| depends on ARCH_ROCKCHIP |
| select PCIE_DW_COMMON |
| select PHY_ROCKCHIP_SNPS_PCIE3 |
| help |
| Say Y here if you want to enable DW PCIe controller support on |
| Rockchip SoCs. |
| |
| config PCI_BRCMSTB |
| bool "Broadcom STB PCIe controller" |
| depends on ARCH_BCM283X |
| help |
| Say Y here if you want to enable support for PCIe controller |
| on Broadcom set-top-box (STB) SoCs. |
| This driver currently supports only BCM2711 SoC and RC mode |
| of the controller. |
| |
| config PCIE_UNIPHIER |
| bool "Socionext UniPhier PCIe driver" |
| depends on ARCH_UNIPHIER |
| select PHY_UNIPHIER_PCIE |
| help |
| Say Y here if you want to enable PCIe controller support on |
| UniPhier SoCs. |
| |
| config PCIE_XILINX_NWL |
| bool "Xilinx NWL PCIe controller" |
| depends on ARCH_ZYNQMP |
| help |
| Say 'Y' here if you want support for Xilinx / AMD NWL PCIe |
| controller as Root Port. |
| |
| config PCIE_PLDA_COMMON |
| bool |
| |
| config PCIE_STARFIVE_JH7110 |
| bool "Enable Starfive JH7110 PCIe driver" |
| select PCIE_PLDA_COMMON |
| imply STARFIVE_JH7110 |
| imply CLK_JH7110 |
| imply RESET_JH7110 |
| help |
| Say Y here if you want to enable PLDA XpressRich PCIe controller |
| support on StarFive JH7110 SoC. |
| |
| config PCIE_DW_IMX |
| bool "i.MX DW PCIe controller support" |
| depends on ARCH_IMX8M |
| select PCIE_DW_COMMON |
| select DM_REGULATOR |
| select REGMAP |
| select SYSCON |
| help |
| Say Y here if you want to enable DW PCIe controller support on |
| iMX SoCs. |
| |
| endif |