arm: mvebu: Add support for Synology DS116 (Armada 385)
[platform/kernel/u-boot.git] / arch / arm / mach-mvebu / Kconfig
1 if ARCH_MVEBU
2
3 config HAVE_MVEBU_EFUSE
4         bool
5
6 config ARMADA_32BIT
7         bool
8         select ARCH_MISC_INIT
9         select BOARD_EARLY_INIT_F
10         select CPU_V7A
11         select SPL_DM if SPL
12         select SPL_DM_SEQ_ALIAS if SPL
13         select SPL_OF_CONTROL if SPL
14         select SPL_SKIP_LOWLEVEL_INIT if SPL
15         select SPL_SIMPLE_BUS if SPL
16         select SUPPORT_SPL
17         select SYS_L2_PL310 if !SYS_L2CACHE_OFF
18         select TRANSLATION_OFFSET
19         select SPL_SYS_NO_VECTOR_TABLE if SPL
20         select ARCH_VERY_EARLY_INIT
21
22 # ARMv7 SoCs...
23 config ARMADA_375
24         bool
25         select ARMADA_32BIT
26
27 config ARMADA_38X
28         bool
29         select ARMADA_32BIT
30         select HAVE_MVEBU_EFUSE
31
32 config ARMADA_38X_HS_IMPEDANCE_THRESH
33         hex  "Armada 38x USB 2.0 High-Speed Impedance Threshold (0x0 - 0x7)"
34         depends on ARMADA_38X
35         default 0x6
36         range 0x0 0x7
37
38 config ARMADA_XP
39         bool
40         select ARMADA_32BIT
41
42 # ARMv8 SoCs...
43 config ARMADA_3700
44         bool
45         select ARM64
46         select HAVE_MVEBU_EFUSE
47
48 # Armada 7K and 8K are very similar - use only one Kconfig symbol for both
49 config ARMADA_8K
50         bool
51         select ARM64
52
53 config ALLEYCAT_5
54         bool
55         select ARM64
56
57 # Armada PLL frequency (used for NAND clock generation)
58 config SYS_MVEBU_PLL_CLOCK
59         int
60         default "2000000000" if ARMADA_XP || ARMADA_3700 || ARMADA_8K || ARMADA_MSYS
61         default "1000000000" if ARMADA_38X || ARMADA_375
62
63 # Armada XP/38x SoC types...
64 config MV78230
65         bool
66         select ARMADA_XP
67
68 config MV78260
69         bool
70         select ARMADA_XP
71         imply CMD_SATA
72
73 config MV78460
74         bool
75         select ARMADA_XP
76
77 config ARMADA_MSYS
78         bool
79         select ARMADA_32BIT
80
81 config 98DX4251
82         bool
83         select ARMADA_MSYS
84
85 config 98DX3336
86         bool
87         select ARMADA_MSYS
88
89 config 98DX3236
90         bool
91         select ARMADA_MSYS
92
93 config 88F6820
94         bool
95         select ARMADA_38X
96
97 config CUSTOMER_BOARD_SUPPORT
98         bool
99
100 config DDR4
101         bool "Support Marvell DDR4 Training driver"
102
103 choice
104         prompt "Armada XP/375/38x/3700/7K/8K/Alleycat-5 board select"
105         optional
106
107 config TARGET_CLEARFOG
108         bool "Support ClearFog"
109         select 88F6820
110         select BOARD_LATE_INIT
111
112 config TARGET_HELIOS4
113         bool "Support Helios4"
114         select 88F6820
115
116 config TARGET_MVEBU_ARMADA_37XX
117         bool "Support Armada 37xx platforms"
118         select ARMADA_3700
119         imply SCSI
120
121 config TARGET_DB_88F6720
122         bool "Support DB-88F6720 Armada 375"
123         select ARMADA_375
124
125 config TARGET_DB_88F6820_GP
126         bool "Support DB-88F6820-GP"
127         select 88F6820
128
129 config TARGET_DB_88F6820_AMC
130         bool "Support DB-88F6820-AMC"
131         select 88F6820
132
133 config TARGET_TURRIS_OMNIA
134         bool "Support Turris Omnia"
135         select 88F6820
136         select BOARD_LATE_INIT
137         select DM_I2C
138         select I2C_MUX
139         select I2C_MUX_PCA954x
140         select SPL_DRIVERS_MISC
141         select SPL_I2C_MUX
142         select SPL_SYS_MALLOC_SIMPLE
143         select SYS_I2C_MVTWSI
144         select ATSHA204A
145
146 config TARGET_TURRIS_MOX
147         bool "Support Turris Mox"
148         select ARMADA_3700
149
150 config TARGET_MVEBU_ARMADA_8K
151         bool "Support Armada 7k/8k platforms"
152         select ARMADA_8K
153         select BOARD_LATE_INIT
154         imply SCSI
155
156 config TARGET_MVEBU_ALLEYCAT5
157         bool "Support AlleyCat 5 platforms"
158         select ALLEYCAT_5
159
160 config TARGET_OCTEONTX2_CN913x
161         bool "Support CN913x platforms"
162         select ARMADA_8K
163         imply BOARD_EARLY_INIT_R
164         select BOARD_LATE_INIT
165         imply SCSI
166
167 config TARGET_DB_MV784MP_GP
168         bool "Support db-mv784mp-gp"
169         select BOARD_ECC_SUPPORT
170         select MV78460
171
172 config TARGET_DS116
173         bool "Support Synology DS116"
174         select 88F6820
175
176 config TARGET_DS414
177         bool "Support Synology DS414"
178         select MV78230
179
180 config TARGET_MAXBCM
181         bool "Support maxbcm"
182         select BOARD_ECC_SUPPORT
183         select MV78460
184
185 config TARGET_N2350
186         bool "Support Thecus N2350"
187         select 88F6820
188         select DDR4
189
190 config TARGET_THEADORABLE
191         bool "Support theadorable Armada XP"
192         select BOARD_LATE_INIT if USB
193         select MV78260
194         imply CMD_SATA
195
196 config TARGET_CONTROLCENTERDC
197         bool "Support CONTROLCENTERDC"
198         select 88F6820
199         select CUSTOMER_BOARD_SUPPORT
200
201 config TARGET_X530
202         bool "Support Allied Telesis x530"
203         select 88F6820
204
205 config TARGET_DB_XC3_24G4XG
206         bool "Support DB-XC3-24G4XG"
207         select 98DX3336
208
209 config TARGET_CRS3XX_98DX3236
210         bool "Support CRS3XX-98DX3236"
211         select 98DX3236
212
213 endchoice
214
215 choice
216         prompt "DDR bus width"
217         default DDR_64BIT
218         depends on ARMADA_XP
219
220 config DDR_64BIT
221         bool "64bit bus width"
222
223 config DDR_32BIT
224         bool "32bit bus width"
225
226 endchoice
227
228 config DDR_LOG_LEVEL
229         int "DDR training code log level"
230         depends on ARMADA_XP
231         default 0
232         range 0 3
233         help
234           Amount of information provided on error while running the DDR
235           training code.  At level 0, provides an error code in a case of
236           failure, RL, WL errors and other algorithm failure.  At level 1,
237           provides the D-Unit setup (SPD/Static configuration).  At level 2,
238           provides the windows margin as a results of DQS centeralization.
239           At level 3, rovides the windows margin of each DQ as a results of
240           DQS centeralization.
241
242 config DDR_RESET_ON_TRAINING_FAILURE
243         bool "Reset the board on DDR training failure instead of hanging"
244         depends on ARMADA_38X || ARMADA_XP
245         help
246           If DDR training fails in SPL, reset the board instead of hanging.
247           Some boards are known to fail DDR training occasionally and an
248           immediate reset may be preferable to waiting until the board is
249           reset by watchdog (if there even is one).
250
251           Note that if booting via UART and the DDR training fails, the
252           device will still hang - it doesn't make sense to reset the board
253           in such a case.
254
255 config BOARD_ECC_SUPPORT
256         bool
257
258 config SYS_BOARD
259         default "clearfog" if TARGET_CLEARFOG
260         default "helios4" if TARGET_HELIOS4
261         default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
262         default "db-88f6720" if TARGET_DB_88F6720
263         default "db-88f6820-gp" if TARGET_DB_88F6820_GP
264         default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
265         default "turris_omnia" if TARGET_TURRIS_OMNIA
266         default "turris_mox" if TARGET_TURRIS_MOX
267         default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
268         default "octeontx2_cn913x" if TARGET_OCTEONTX2_CN913x
269         default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
270         default "ds116" if TARGET_DS116
271         default "ds414" if TARGET_DS414
272         default "maxbcm" if TARGET_MAXBCM
273         default "n2350" if TARGET_N2350
274         default "theadorable" if TARGET_THEADORABLE
275         default "a38x" if TARGET_CONTROLCENTERDC
276         default "x530" if TARGET_X530
277         default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
278         default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236
279         default "mvebu_alleycat-5" if TARGET_MVEBU_ALLEYCAT5
280
281 config SYS_CONFIG_NAME
282         default "clearfog" if TARGET_CLEARFOG
283         default "helios4" if TARGET_HELIOS4
284         default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
285         default "db-88f6720" if TARGET_DB_88F6720
286         default "db-88f6820-gp" if TARGET_DB_88F6820_GP
287         default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
288         default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
289         default "mvebu_armada-8k" if TARGET_OCTEONTX2_CN913x
290         default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
291         default "ds116" if TARGET_DS116
292         default "ds414" if TARGET_DS414
293         default "maxbcm" if TARGET_MAXBCM
294         default "n2350" if TARGET_N2350
295         default "theadorable" if TARGET_THEADORABLE
296         default "turris_omnia" if TARGET_TURRIS_OMNIA
297         default "turris_mox" if TARGET_TURRIS_MOX
298         default "controlcenterdc" if TARGET_CONTROLCENTERDC
299         default "x530" if TARGET_X530
300         default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
301         default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236
302         default "mvebu_alleycat-5" if TARGET_MVEBU_ALLEYCAT5
303
304 config SYS_VENDOR
305         default "Marvell" if TARGET_DB_MV784MP_GP
306         default "Marvell" if TARGET_MVEBU_ARMADA_37XX
307         default "Marvell" if TARGET_DB_88F6720
308         default "Marvell" if TARGET_DB_88F6820_GP
309         default "Marvell" if TARGET_DB_88F6820_AMC
310         default "Marvell" if TARGET_MVEBU_ARMADA_8K
311         default "Marvell" if TARGET_OCTEONTX2_CN913x
312         default "Marvell" if TARGET_DB_XC3_24G4XG
313         default "Marvell" if TARGET_MVEBU_DB_88F7040
314         default "solidrun" if TARGET_CLEARFOG
315         default "kobol" if TARGET_HELIOS4
316         default "Synology" if TARGET_DS116
317         default "Synology" if TARGET_DS414
318         default "thecus" if TARGET_N2350
319         default "CZ.NIC" if TARGET_TURRIS_OMNIA
320         default "CZ.NIC" if TARGET_TURRIS_MOX
321         default "gdsys" if TARGET_CONTROLCENTERDC
322         default "alliedtelesis" if TARGET_X530
323         default "mikrotik" if TARGET_CRS3XX_98DX3236
324         default "Marvell" if TARGET_MVEBU_ALLEYCAT5
325
326 config SYS_SOC
327         default "mvebu"
328
329 choice
330         prompt "Boot method"
331         depends on SPL
332
333 config MVEBU_SPL_BOOT_DEVICE_SPI
334         bool "SPI NOR flash"
335         imply ENV_IS_IN_SPI_FLASH
336         imply SPL_DM_SPI
337         imply SPL_SPI_FLASH_SUPPORT
338         imply SPL_SPI_LOAD
339         imply SPL_SPI
340         select SPL_BOOTROM_SUPPORT
341
342 config MVEBU_SPL_BOOT_DEVICE_MMC
343         bool "SDIO/MMC card"
344         imply ENV_IS_IN_MMC
345         # GPIO needed for eMMC/SD card presence detection
346         imply SPL_DM_GPIO
347         imply SPL_DM_MMC
348         imply SPL_GPIO
349         imply SPL_LIBDISK_SUPPORT
350         imply SPL_MMC
351         select SPL_BOOTROM_SUPPORT
352
353 config MVEBU_SPL_BOOT_DEVICE_SATA
354         bool "SATA"
355         imply SPL_SATA
356         imply SPL_LIBDISK_SUPPORT
357         select SPL_BOOTROM_SUPPORT
358
359 config MVEBU_SPL_BOOT_DEVICE_UART
360         bool "UART"
361         select SPL_BOOTROM_SUPPORT
362
363 endchoice
364
365 config MVEBU_EFUSE
366         bool "Enable eFuse support"
367         depends on HAVE_MVEBU_EFUSE
368         help
369           Enable support for reading and writing eFuses on mvebu SoCs.
370
371 config MVEBU_EFUSE_FAKE
372         bool "Fake eFuse access (dry run)"
373         depends on MVEBU_EFUSE
374         help
375           This enables a "dry run" mode where eFuses are not really programmed.
376           Instead the eFuse accesses are emulated by writing to and reading
377           from a memory block.
378           This is can be used for testing prog scripts.
379
380 config MVEBU_EFUSE_VHV_GPIO
381         string "VHV_Enable GPIO name for eFuse programming"
382         depends on MVEBU_EFUSE && !ARMADA_3700
383         help
384           The eFuse programing (burning) phase requires supplying 1.8V to the
385           device on the VHV power pin, while for normal operation the VHV power
386           rail must be left unconnected. See Marvell AN-389: ARMADA VHV Power
387           document (Doc. No. MV-S302545-00 Rev. C, August 2, 2016) for details.
388           .
389           This specify VHV_Enable GPIO name used in U-Boot for enabling VHV power.
390
391 config MVEBU_EFUSE_VHV_GPIO_ACTIVE_LOW
392         bool "VHV_Enable GPIO is Active Low"
393         depends on MVEBU_EFUSE_VHV_GPIO != ""
394
395 config SECURED_MODE_IMAGE
396         bool "Build image for trusted boot"
397         default false
398         depends on 88F6820
399         help
400           Build an image that employs the ARMADA SoC's trusted boot framework
401           for securely booting images.
402
403 config SECURED_MODE_CSK_INDEX
404         int "Index of active CSK"
405         default 0
406         depends on SECURED_MODE_IMAGE
407
408 source "board/solidrun/clearfog/Kconfig"
409 source "board/kobol/helios4/Kconfig"
410
411 endif