f829e40945daafcde6133725e579e02df42ec55b
[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_DS414
173         bool "Support Synology DS414"
174         select MV78230
175
176 config TARGET_MAXBCM
177         bool "Support maxbcm"
178         select BOARD_ECC_SUPPORT
179         select MV78460
180
181 config TARGET_N2350
182         bool "Support Thecus N2350"
183         select 88F6820
184         select DDR4
185
186 config TARGET_THEADORABLE
187         bool "Support theadorable Armada XP"
188         select BOARD_LATE_INIT if USB
189         select MV78260
190         imply CMD_SATA
191
192 config TARGET_CONTROLCENTERDC
193         bool "Support CONTROLCENTERDC"
194         select 88F6820
195         select CUSTOMER_BOARD_SUPPORT
196
197 config TARGET_X530
198         bool "Support Allied Telesis x530"
199         select 88F6820
200
201 config TARGET_DB_XC3_24G4XG
202         bool "Support DB-XC3-24G4XG"
203         select 98DX3336
204
205 config TARGET_CRS3XX_98DX3236
206         bool "Support CRS3XX-98DX3236"
207         select 98DX3236
208
209 endchoice
210
211 choice
212         prompt "DDR bus width"
213         default DDR_64BIT
214         depends on ARMADA_XP
215
216 config DDR_64BIT
217         bool "64bit bus width"
218
219 config DDR_32BIT
220         bool "32bit bus width"
221
222 endchoice
223
224 config DDR_LOG_LEVEL
225         int "DDR training code log level"
226         depends on ARMADA_XP
227         default 0
228         range 0 3
229         help
230           Amount of information provided on error while running the DDR
231           training code.  At level 0, provides an error code in a case of
232           failure, RL, WL errors and other algorithm failure.  At level 1,
233           provides the D-Unit setup (SPD/Static configuration).  At level 2,
234           provides the windows margin as a results of DQS centeralization.
235           At level 3, rovides the windows margin of each DQ as a results of
236           DQS centeralization.
237
238 config DDR_RESET_ON_TRAINING_FAILURE
239         bool "Reset the board on DDR training failure instead of hanging"
240         depends on ARMADA_38X || ARMADA_XP
241         help
242           If DDR training fails in SPL, reset the board instead of hanging.
243           Some boards are known to fail DDR training occasionally and an
244           immediate reset may be preferable to waiting until the board is
245           reset by watchdog (if there even is one).
246
247           Note that if booting via UART and the DDR training fails, the
248           device will still hang - it doesn't make sense to reset the board
249           in such a case.
250
251 config BOARD_ECC_SUPPORT
252         bool
253
254 config SYS_BOARD
255         default "clearfog" if TARGET_CLEARFOG
256         default "helios4" if TARGET_HELIOS4
257         default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
258         default "db-88f6720" if TARGET_DB_88F6720
259         default "db-88f6820-gp" if TARGET_DB_88F6820_GP
260         default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
261         default "turris_omnia" if TARGET_TURRIS_OMNIA
262         default "turris_mox" if TARGET_TURRIS_MOX
263         default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
264         default "octeontx2_cn913x" if TARGET_OCTEONTX2_CN913x
265         default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
266         default "ds414" if TARGET_DS414
267         default "maxbcm" if TARGET_MAXBCM
268         default "n2350" if TARGET_N2350
269         default "theadorable" if TARGET_THEADORABLE
270         default "a38x" if TARGET_CONTROLCENTERDC
271         default "x530" if TARGET_X530
272         default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
273         default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236
274         default "mvebu_alleycat-5" if TARGET_MVEBU_ALLEYCAT5
275
276 config SYS_CONFIG_NAME
277         default "clearfog" if TARGET_CLEARFOG
278         default "helios4" if TARGET_HELIOS4
279         default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
280         default "db-88f6720" if TARGET_DB_88F6720
281         default "db-88f6820-gp" if TARGET_DB_88F6820_GP
282         default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
283         default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
284         default "mvebu_armada-8k" if TARGET_OCTEONTX2_CN913x
285         default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
286         default "ds414" if TARGET_DS414
287         default "maxbcm" if TARGET_MAXBCM
288         default "n2350" if TARGET_N2350
289         default "theadorable" if TARGET_THEADORABLE
290         default "turris_omnia" if TARGET_TURRIS_OMNIA
291         default "turris_mox" if TARGET_TURRIS_MOX
292         default "controlcenterdc" if TARGET_CONTROLCENTERDC
293         default "x530" if TARGET_X530
294         default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
295         default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236
296         default "mvebu_alleycat-5" if TARGET_MVEBU_ALLEYCAT5
297
298 config SYS_VENDOR
299         default "Marvell" if TARGET_DB_MV784MP_GP
300         default "Marvell" if TARGET_MVEBU_ARMADA_37XX
301         default "Marvell" if TARGET_DB_88F6720
302         default "Marvell" if TARGET_DB_88F6820_GP
303         default "Marvell" if TARGET_DB_88F6820_AMC
304         default "Marvell" if TARGET_MVEBU_ARMADA_8K
305         default "Marvell" if TARGET_OCTEONTX2_CN913x
306         default "Marvell" if TARGET_DB_XC3_24G4XG
307         default "Marvell" if TARGET_MVEBU_DB_88F7040
308         default "solidrun" if TARGET_CLEARFOG
309         default "kobol" if TARGET_HELIOS4
310         default "Synology" if TARGET_DS414
311         default "thecus" if TARGET_N2350
312         default "CZ.NIC" if TARGET_TURRIS_OMNIA
313         default "CZ.NIC" if TARGET_TURRIS_MOX
314         default "gdsys" if TARGET_CONTROLCENTERDC
315         default "alliedtelesis" if TARGET_X530
316         default "mikrotik" if TARGET_CRS3XX_98DX3236
317         default "Marvell" if TARGET_MVEBU_ALLEYCAT5
318
319 config SYS_SOC
320         default "mvebu"
321
322 choice
323         prompt "Boot method"
324         depends on SPL
325
326 config MVEBU_SPL_BOOT_DEVICE_SPI
327         bool "SPI NOR flash"
328         imply ENV_IS_IN_SPI_FLASH
329         imply SPL_DM_SPI
330         imply SPL_SPI_FLASH_SUPPORT
331         imply SPL_SPI_LOAD
332         imply SPL_SPI
333         select SPL_BOOTROM_SUPPORT
334
335 config MVEBU_SPL_BOOT_DEVICE_MMC
336         bool "SDIO/MMC card"
337         imply ENV_IS_IN_MMC
338         # GPIO needed for eMMC/SD card presence detection
339         imply SPL_DM_GPIO
340         imply SPL_DM_MMC
341         imply SPL_GPIO
342         imply SPL_LIBDISK_SUPPORT
343         imply SPL_MMC
344         select SPL_BOOTROM_SUPPORT
345
346 config MVEBU_SPL_BOOT_DEVICE_SATA
347         bool "SATA"
348         imply SPL_SATA
349         imply SPL_LIBDISK_SUPPORT
350         select SPL_BOOTROM_SUPPORT
351
352 config MVEBU_SPL_BOOT_DEVICE_UART
353         bool "UART"
354         select SPL_BOOTROM_SUPPORT
355
356 endchoice
357
358 config MVEBU_EFUSE
359         bool "Enable eFuse support"
360         depends on HAVE_MVEBU_EFUSE
361         help
362           Enable support for reading and writing eFuses on mvebu SoCs.
363
364 config MVEBU_EFUSE_FAKE
365         bool "Fake eFuse access (dry run)"
366         depends on MVEBU_EFUSE
367         help
368           This enables a "dry run" mode where eFuses are not really programmed.
369           Instead the eFuse accesses are emulated by writing to and reading
370           from a memory block.
371           This is can be used for testing prog scripts.
372
373 config MVEBU_EFUSE_VHV_GPIO
374         string "VHV_Enable GPIO name for eFuse programming"
375         depends on MVEBU_EFUSE && !ARMADA_3700
376         help
377           The eFuse programing (burning) phase requires supplying 1.8V to the
378           device on the VHV power pin, while for normal operation the VHV power
379           rail must be left unconnected. See Marvell AN-389: ARMADA VHV Power
380           document (Doc. No. MV-S302545-00 Rev. C, August 2, 2016) for details.
381           .
382           This specify VHV_Enable GPIO name used in U-Boot for enabling VHV power.
383
384 config MVEBU_EFUSE_VHV_GPIO_ACTIVE_LOW
385         bool "VHV_Enable GPIO is Active Low"
386         depends on MVEBU_EFUSE_VHV_GPIO != ""
387
388 config SECURED_MODE_IMAGE
389         bool "Build image for trusted boot"
390         default false
391         depends on 88F6820
392         help
393           Build an image that employs the ARMADA SoC's trusted boot framework
394           for securely booting images.
395
396 config SECURED_MODE_CSK_INDEX
397         int "Index of active CSK"
398         default 0
399         depends on SECURED_MODE_IMAGE
400
401 source "board/solidrun/clearfog/Kconfig"
402 source "board/kobol/helios4/Kconfig"
403
404 endif