0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # Memory devices
0004 #
0005
0006 menuconfig MEMORY
0007 bool "Memory Controller drivers"
0008 help
0009 This option allows to enable specific memory controller drivers,
0010 useful mostly on embedded systems. These could be controllers
0011 for DRAM (SDR, DDR), ROM, SRAM and others. The drivers features
0012 vary from memory tuning and frequency scaling to enabling
0013 access to attached peripherals through memory bus.
0014
0015 if MEMORY
0016
0017 config DDR
0018 bool
0019 help
0020 Data from JEDEC specs for DDR SDRAM memories,
0021 particularly the AC timing parameters and addressing
0022 information. This data is useful for drivers handling
0023 DDR SDRAM controllers.
0024
0025 config ARM_PL172_MPMC
0026 tristate "ARM PL172 MPMC driver"
0027 depends on ARM_AMBA && OF
0028 help
0029 This selects the ARM PrimeCell PL172 MultiPort Memory Controller.
0030 If you have an embedded system with an AMBA bus and a PL172
0031 controller, say Y or M here.
0032
0033 config ATMEL_SDRAMC
0034 bool "Atmel (Multi-port DDR-)SDRAM Controller"
0035 default y if ARCH_AT91
0036 depends on ARCH_AT91 || COMPILE_TEST
0037 depends on OF
0038 help
0039 This driver is for Atmel SDRAM Controller or Atmel Multi-port
0040 DDR-SDRAM Controller available on Atmel AT91SAM9 and SAMA5 SoCs.
0041 Starting with the at91sam9g45, this controller supports SDR, DDR and
0042 LP-DDR memories.
0043
0044 config ATMEL_EBI
0045 bool "Atmel EBI driver"
0046 default y if ARCH_AT91
0047 depends on ARCH_AT91 || COMPILE_TEST
0048 depends on OF
0049 select MFD_SYSCON
0050 select MFD_ATMEL_SMC
0051 help
0052 Driver for Atmel EBI controller.
0053 Used to configure the EBI (external bus interface) when the device-
0054 tree is used. This bus supports NANDs, external ethernet controller,
0055 SRAMs, ATA devices, etc.
0056
0057 config BRCMSTB_DPFE
0058 tristate "Broadcom STB DPFE driver"
0059 default ARCH_BRCMSTB
0060 depends on ARCH_BRCMSTB || COMPILE_TEST
0061 help
0062 This driver provides access to the DPFE interface of Broadcom
0063 STB SoCs. The firmware running on the DCPU inside the DDR PHY can
0064 provide current information about the system's RAM, for instance
0065 the DRAM refresh rate. This can be used as an indirect indicator
0066 for the DRAM's temperature. Slower refresh rate means cooler RAM,
0067 higher refresh rate means hotter RAM.
0068
0069 config BT1_L2_CTL
0070 bool "Baikal-T1 CM2 L2-RAM Cache Control Block"
0071 depends on MIPS_BAIKAL_T1 || COMPILE_TEST
0072 select MFD_SYSCON
0073 help
0074 Baikal-T1 CPU is based on the MIPS P5600 Warrior IP-core. The CPU
0075 resides Coherency Manager v2 with embedded 1MB L2-cache. It's
0076 possible to tune the L2 cache performance up by setting the data,
0077 tags and way-select latencies of RAM access. This driver provides a
0078 dt properties-based and sysfs interface for it.
0079
0080 config TI_AEMIF
0081 tristate "Texas Instruments AEMIF driver"
0082 depends on ARCH_DAVINCI || ARCH_KEYSTONE || COMPILE_TEST
0083 depends on OF
0084 help
0085 This driver is for the AEMIF module available in Texas Instruments
0086 SoCs. AEMIF stands for Asynchronous External Memory Interface and
0087 is intended to provide a glue-less interface to a variety of
0088 asynchronuous memory devices like ASRAM, NOR and NAND memory. A total
0089 of 256M bytes of any of these memories can be accessed at a given
0090 time via four chip selects with 64M byte access per chip select.
0091
0092 config TI_EMIF
0093 tristate "Texas Instruments EMIF driver"
0094 depends on ARCH_OMAP2PLUS || COMPILE_TEST
0095 select DDR
0096 help
0097 This driver is for the EMIF module available in Texas Instruments
0098 SoCs. EMIF is an SDRAM controller that, based on its revision,
0099 supports one or more of DDR2, DDR3, and LPDDR2 SDRAM protocols.
0100 This driver takes care of only LPDDR2 memories presently. The
0101 functions of the driver includes re-configuring AC timing
0102 parameters and other settings during frequency, voltage and
0103 temperature changes
0104
0105 config OMAP_GPMC
0106 tristate "Texas Instruments OMAP SoC GPMC driver"
0107 depends on OF_ADDRESS
0108 depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
0109 select GPIOLIB
0110 help
0111 This driver is for the General Purpose Memory Controller (GPMC)
0112 present on Texas Instruments SoCs (e.g. OMAP2+). GPMC allows
0113 interfacing to a variety of asynchronous as well as synchronous
0114 memory drives like NOR, NAND, OneNAND, SRAM.
0115
0116 config OMAP_GPMC_DEBUG
0117 bool "Enable GPMC debug output and skip reset of GPMC during init"
0118 depends on OMAP_GPMC
0119 help
0120 Enables verbose debugging mostly to decode the bootloader provided
0121 timings. To preserve the bootloader provided timings, the reset
0122 of GPMC is skipped during init. Enable this during development to
0123 configure devices connected to the GPMC bus.
0124
0125 NOTE: In addition to matching the register setup with the bootloader
0126 you also need to match the GPMC FCLK frequency used by the
0127 bootloader or else the GPMC timings won't be identical with the
0128 bootloader timings.
0129
0130 config TI_EMIF_SRAM
0131 tristate "Texas Instruments EMIF SRAM driver"
0132 depends on SOC_AM33XX || SOC_AM43XX || (ARM && CPU_V7 && COMPILE_TEST)
0133 depends on SRAM
0134 help
0135 This driver is for the EMIF module available on Texas Instruments
0136 AM33XX and AM43XX SoCs and is required for PM. Certain parts of
0137 the EMIF PM code must run from on-chip SRAM late in the suspend
0138 sequence so this driver provides several relocatable PM functions
0139 for the SoC PM code to use.
0140
0141 config FPGA_DFL_EMIF
0142 tristate "FPGA DFL EMIF Driver"
0143 depends on FPGA_DFL && HAS_IOMEM
0144 help
0145 This driver is for the EMIF private feature implemented under
0146 FPGA Device Feature List (DFL) framework. It is used to expose
0147 memory interface status information as well as memory clearing
0148 control.
0149
0150 config MVEBU_DEVBUS
0151 bool "Marvell EBU Device Bus Controller"
0152 default y if PLAT_ORION
0153 depends on PLAT_ORION || COMPILE_TEST
0154 depends on OF
0155 help
0156 This driver is for the Device Bus controller available in some
0157 Marvell EBU SoCs such as Discovery (mv78xx0), Orion (88f5xxx) and
0158 Armada 370 and Armada XP. This controller allows to handle flash
0159 devices such as NOR, NAND, SRAM, and FPGA.
0160
0161 config FSL_CORENET_CF
0162 tristate "Freescale CoreNet Error Reporting"
0163 depends on FSL_SOC_BOOKE || COMPILE_TEST
0164 help
0165 Say Y for reporting of errors from the Freescale CoreNet
0166 Coherency Fabric. Errors reported include accesses to
0167 physical addresses that mapped by no local access window
0168 (LAW) or an invalid LAW, as well as bad cache state that
0169 represents a coherency violation.
0170
0171 config FSL_IFC
0172 bool "Freescale IFC driver" if COMPILE_TEST
0173 depends on FSL_SOC || ARCH_LAYERSCAPE || SOC_LS1021A || COMPILE_TEST
0174 depends on HAS_IOMEM
0175
0176 config JZ4780_NEMC
0177 bool "Ingenic JZ4780 SoC NEMC driver"
0178 depends on MIPS || COMPILE_TEST
0179 depends on HAS_IOMEM && OF
0180 help
0181 This driver is for the NAND/External Memory Controller (NEMC) in
0182 the Ingenic JZ4780. This controller is used to handle external
0183 memory devices such as NAND and SRAM.
0184
0185 config MTK_SMI
0186 tristate "MediaTek SoC Memory Controller driver" if COMPILE_TEST
0187 depends on ARCH_MEDIATEK || COMPILE_TEST
0188 help
0189 This driver is for the Memory Controller module in MediaTek SoCs,
0190 mainly help enable/disable iommu and control the power domain and
0191 clocks for each local arbiter.
0192
0193 config DA8XX_DDRCTL
0194 bool "Texas Instruments da8xx DDR2/mDDR driver"
0195 depends on ARCH_DAVINCI_DA8XX || COMPILE_TEST
0196 help
0197 This driver is for the DDR2/mDDR Memory Controller present on
0198 Texas Instruments da8xx SoCs. It's used to tweak various memory
0199 controller configuration options.
0200
0201 config PL353_SMC
0202 tristate "ARM PL35X Static Memory Controller(SMC) driver"
0203 default y if ARM
0204 depends on ARM || COMPILE_TEST
0205 depends on ARM_AMBA
0206 help
0207 This driver is for the ARM PL351/PL353 Static Memory
0208 Controller(SMC) module.
0209
0210 config RENESAS_RPCIF
0211 tristate "Renesas RPC-IF driver"
0212 depends on ARCH_RENESAS || COMPILE_TEST
0213 select REGMAP_MMIO
0214 select RESET_CONTROLLER
0215 help
0216 This supports Renesas R-Car Gen3 or RZ/G2 RPC-IF which provides
0217 either SPI host or HyperFlash. You'll have to select individual
0218 components under the corresponding menu.
0219
0220 config STM32_FMC2_EBI
0221 tristate "Support for FMC2 External Bus Interface on STM32MP SoCs"
0222 depends on MACH_STM32MP157 || COMPILE_TEST
0223 select MFD_SYSCON
0224 help
0225 Select this option to enable the STM32 FMC2 External Bus Interface
0226 controller. This driver configures the transactions with external
0227 devices (like SRAM, ethernet adapters, FPGAs, LCD displays, ...) on
0228 SOCs containing the FMC2 External Bus Interface.
0229
0230 source "drivers/memory/samsung/Kconfig"
0231 source "drivers/memory/tegra/Kconfig"
0232
0233 endif