| 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 |