1menu "RAM drivers using Driver Model"
2
3config RAM
4	bool "Enable RAM drivers using Driver Model"
5	depends on DM
6	help
7	  This allows drivers to be provided for SDRAM and other RAM
8	  controllers and their type to be specified in the board's device
9	  tree. Generally some parameters are required to set up the RAM and
10	  the RAM size can either be statically defined or dynamically
11	  detected.
12
13config SPL_RAM
14	bool "Enable RAM support in SPL"
15	depends on RAM && SPL_DM
16	help
17	  The RAM subsystem adds a small amount of overhead to the image.
18	  If this is acceptable and you have a need to use RAM drivers in
19	  SPL, enable this option. It might provide a cleaner interface to
20	  setting up RAM (e.g. SDRAM / DDR) within SPL.
21
22config TPL_RAM
23	bool "Enable RAM support in TPL"
24	depends on RAM && TPL
25	help
26	  The RAM subsystem adds a small amount of overhead to the image.
27	  If this is acceptable and you have a need to use RAM drivers in
28	  TPL, enable this option. It might provide a cleaner interface to
29	  setting up RAM (e.g. SDRAM / DDR) within TPL.
30
31config VPL_RAM
32	bool "Enable RAM support in VPL"
33	depends on RAM && VPL
34	help
35	  The RAM subsystem adds a small amount of overhead to the image.
36	  If this is acceptable and you have a need to use RAM drivers in
37	  VPL, enable this option. It might provide a cleaner interface to
38	  setting up RAM (e.g. SDRAM / DDR) within VPL.
39
40config STM32_SDRAM
41	bool "Enable STM32 SDRAM support"
42	depends on RAM
43	help
44	  STM32F7 family devices support flexible memory controller(FMC) to
45	  support external memories like sdram, psram & nand.
46	  This driver is for the sdram memory interface with the FMC.
47
48config MPC83XX_SDRAM
49	bool "Enable MPC83XX SDRAM support"
50	depends on RAM
51	help
52	  Enable support for the internal DDR Memory Controller of the MPC83xx
53	  family of SoCs. Both static configurations, as well as configuring
54	  the RAM through the use of SPD (Serial Presence Detect) is supported
55	  via device tree settings.
56
57config K3_AM654_DDRSS
58	bool "Enable AM654 DDRSS support"
59	depends on RAM && SOC_K3_AM654
60	help
61	  K3 based AM654 devices has DDR memory subsystem that comprises
62	  Synopys DDR controller, Synopsis DDR phy and wrapper logic to
63	  intergrate these blocks into the device. This DDR subsystem
64	  provides an interface to external SDRAM devices. Enabling this
65	  config add support for the initialization of the external
66	  SDRAM devices connected to DDR subsystem.
67
68config K3_DDRSS
69	bool "Enable K3 DDRSS support"
70	depends on RAM
71
72choice
73	depends on K3_DDRSS
74	prompt "K3 DDRSS Arch Support"
75
76	default K3_J721E_DDRSS if SOC_K3_J721E || SOC_K3_J7200 || SOC_K3_J721S2 || SOC_K3_J784S4
77	default K3_AM64_DDRSS if SOC_K3_AM642
78	default K3_AM64_DDRSS if SOC_K3_AM625
79	default K3_AM62A_DDRSS if SOC_K3_AM62A7 || SOC_K3_AM62P5 || SOC_K3_J722S
80
81config K3_J721E_DDRSS
82	bool "Enable J721E DDRSS support"
83	help
84	  The J721E DDR subsystem comprises DDR controller, DDR PHY and
85	  wrapper logic to integrate these blocks in the device. The DDR
86	  subsystem is used to provide an interface to external SDRAM
87	  devices which can be utilized for storing program or data.
88	  Enabling this config adds support for the DDR memory controller
89	  on J721E family of SoCs.
90
91config K3_AM64_DDRSS
92	bool "Enable AM64 DDRSS support"
93	help
94	  The AM64 DDR subsystem comprises DDR controller, DDR PHY and
95	  wrapper logic to integrate these blocks in the device. The DDR
96	  subsystem is used to provide an interface to external SDRAM
97	  devices which can be utilized for storing program or data.
98	  Enabling this config adds support for the DDR memory controller
99	  on AM642 family of SoCs.
100
101config K3_AM62A_DDRSS
102	bool "Enable AM62A DDRSS support"
103	help
104	  The AM62A DDR subsystem comprises of a DDR controller, DDR PHY and
105	  wrapper logic to integrate these blocks into once device. The DDR
106	  subsystem is used to provide an interface to external SDRAM devices
107	  which can be utilized for storing programs or any other data.
108	  Enabling this option adds support for the DDR memory controller for
109	  the AM62A family of SoCs.
110
111endchoice
112
113config IMXRT_SDRAM
114	bool "Enable i.MXRT SDRAM support"
115	depends on RAM
116	help
117	  i.MXRT family devices support smart external memory controller(SEMC)
118	  to support external memories like sdram, psram & nand.
119	  This driver is for the sdram memory interface with the SEMC.
120
121config K3_INLINE_ECC
122	bool "Enable TI Inline ECC support"
123	depends on K3_DDRSS
124	help
125	  Enable Inline ECC support on K3 platforms. 1/9th of the SDRAM space
126	  is used for ECC storage and the rest 8/9th is available for system
127	  use. Enabling ECC increases boot time as the ECC protected regions
128	  need to be primed with a predefined value prior to enabling ECC
129	  check.
130
131source "drivers/ram/aspeed/Kconfig"
132source "drivers/ram/cadence/Kconfig"
133source "drivers/ram/octeon/Kconfig"
134source "drivers/ram/renesas/Kconfig"
135source "drivers/ram/rockchip/Kconfig"
136source "drivers/ram/sifive/Kconfig"
137source "drivers/ram/stm32mp1/Kconfig"
138source "drivers/ram/starfive/Kconfig"
139source "drivers/ram/sunxi/Kconfig"
140source "drivers/ram/thead/Kconfig"
141
142endmenu
143