Convert CONFIG_PCI_MSC01 to Kconfig
[platform/kernel/u-boot.git] / drivers / pci / Kconfig
index 5e0a393..e4c6056 100644 (file)
@@ -1,35 +1,33 @@
 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.
 
-if PCI
+         This subsystem requires driver model.
 
-config DM_PCI
-       bool "Enable driver model for PCI"
-       depends on DM
-       help
-         Use driver model for PCI. Driver model is the new method for
-         orgnising devices in U-Boot. For PCI, driver model keeps track of
-         available PCI devices, allows scanning of PCI buses and provides
-         device configuration support.
+if PCI
 
 config DM_PCI_COMPAT
        bool "Enable compatible functions for PCI"
-       depends on DM_PCI
        help
          Enable compatibility functions for PCI so that old code can be used
-         with CONFIG_DM_PCI enabled. This should be used as an interim
+         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"
-       default n
-       depends on DM_PCI
+       depends on DM_GPIO
        depends on ARMADA_3700
        help
          Say Y here if you want to enable PCIe controller support on
@@ -38,38 +36,105 @@ config PCI_AARDVARK
 
 config PCI_PNP
        bool "Enable Plug & Play support for PCI"
-       depends on PCI || DM_PCI
        default y
        help
          Enable PCI memory and I/O space resource allocation and assignment.
 
+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 CONFIG_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"
-       default n
-       depends on DM_PCI
        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 PCI_GT64120
+       bool "GT64120 PCI support"
+       depends on MIPS
+
 config PCI_PHYTIUM
        bool "Phytium PCIe support"
-       depends on DM_PCI
        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 DM_PCI
        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 PCIE_FSL
        bool "FSL PowerPC PCIe support"
-       depends on DM_PCI
        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.
@@ -77,14 +142,16 @@ config PCIE_FSL
 
 config PCI_MPC85XX
        bool "MPC85XX PowerPC PCI support"
-       depends on DM_PCI
        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 DM_PCI
        depends on RCAR_32
        help
          Say Y here if you want to enable PCIe controller support on
@@ -93,7 +160,6 @@ config PCI_RCAR_GEN2
 
 config PCI_RCAR_GEN3
        bool "Renesas RCar Gen3 PCIe driver"
-       depends on DM_PCI
        depends on RCAR_GEN3
        help
          Say Y here if you want to enable PCIe controller support on
@@ -101,7 +167,7 @@ config PCI_RCAR_GEN3
 
 config PCI_SANDBOX
        bool "Sandbox PCI support"
-       depends on SANDBOX && DM_PCI
+       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
@@ -109,6 +175,12 @@ config PCI_SANDBOX
          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
@@ -120,20 +192,31 @@ config PCI_TEGRA
          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"
-       depends on DM_PCI
        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
-       default n
 
 config PCIE_LAYERSCAPE_RC
        bool "Layerscape PCIe Root Complex mode support"
-       depends on DM_PCI
        select PCIE_LAYERSCAPE
        help
          Enable Layerscape PCIe Root Complex mode driver support. The Layerscape
@@ -141,9 +224,20 @@ config PCIE_LAYERSCAPE_RC
          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"
-       depends on DM_PCI
        select PCIE_LAYERSCAPE
        select PCI_ENDPOINT
        help
@@ -154,7 +248,6 @@ config PCIE_LAYERSCAPE_EP
 
 config PCIE_LAYERSCAPE_GEN4
        bool "Layerscape Gen4 PCIe support"
-       depends on DM_PCI
        help
          Support PCIe Gen4 on NXP Layerscape SoCs, which may have one or
          several PCIe controllers. The PCIe controller can work in RC or
@@ -169,7 +262,7 @@ config FSL_PCIE_COMPAT
        default "fsl,ls1046a-pcie" if ARCH_LS1046A
        default "fsl,ls2080a-pcie" if ARCH_LS2080A
        default "fsl,ls1088a-pcie" if ARCH_LS1088A
-       default "fsl,lx2160a-pcie" if ARCH_LX2160A
+       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
@@ -178,65 +271,93 @@ config FSL_PCIE_COMPAT
 config FSL_PCIE_EP_COMPAT
        string "PCIe EP compatible of Kernel DT"
        depends on PCIE_LAYERSCAPE_RC || PCIE_LAYERSCAPE_GEN4
-       default "fsl,lx2160a-pcie-ep" if ARCH_LX2160A
        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"
-       depends on DM_PCI
        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"
-       depends on DM_PCI
        help
          Broadcom iProc PCIe controller driver.
          Say Y here if you want to enable Broadcom iProc PCIe controller,
 
 config PCI_MVEBU
-       bool "Enable Armada XP/38x PCIe driver"
-       depends on ARCH_MVEBU
-       select DM_PCI
+       bool "Enable Kirkwood / Armada 370/XP/375/38x PCIe driver"
+       depends on (ARCH_KIRKWOOD || ARCH_MVEBU)
        select MISC
+       select DM_RESET
        help
          Say Y here if you want to enable PCIe controller support on
-         Armada XP/38x SoCs.
+         Kirkwood and Armada 370/XP/375/38x SoCs.
+
+config PCIE_DW_COMMON
+       bool
 
 config PCI_KEYSTONE
        bool "TI Keystone PCIe controller"
-       depends on DM_PCI
+       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 DM_PCI
        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_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"
-       select DM_PCI
+       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 DM_PCI
        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.
+
 endif