board: cssi: Add CPU board CMPCPRO
[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 BOARD_EARLY_INIT_F
9         select CPU_V7A
10         select SPL_DM if SPL
11         select SPL_DM_SEQ_ALIAS if SPL
12         select SPL_OF_CONTROL if SPL
13         select SPL_SKIP_LOWLEVEL_INIT if SPL
14         select SPL_SIMPLE_BUS if SPL
15         select SUPPORT_SPL
16         select SYS_L2_PL310 if !SYS_L2CACHE_OFF
17         select TRANSLATION_OFFSET
18         select SPL_SYS_NO_VECTOR_TABLE if SPL
19         select ARCH_VERY_EARLY_INIT
20
21 # ARMv7 SoCs...
22 config ARMADA_375
23         bool
24         select ARMADA_32BIT
25
26 config ARMADA_38X
27         bool
28         select ARMADA_32BIT
29         select HAVE_MVEBU_EFUSE
30
31 config ARMADA_38X_HS_IMPEDANCE_THRESH
32         hex  "Armada 38x USB 2.0 High-Speed Impedance Threshold (0x0 - 0x7)"
33         depends on ARMADA_38X
34         default 0x6
35         range 0x0 0x7
36
37 config ARMADA_XP
38         bool
39         select ARMADA_32BIT
40
41 # ARMv8 SoCs...
42 config ARMADA_3700
43         bool
44         select ARM64
45         select HAVE_MVEBU_EFUSE
46
47 # Armada 7K and 8K are very similar - use only one Kconfig symbol for both
48 config ARMADA_8K
49         bool
50         select ARM64
51
52 config ALLEYCAT_5
53         bool
54         select ARM64
55
56 # Armada PLL frequency (used for NAND clock generation)
57 config SYS_MVEBU_PLL_CLOCK
58         int
59         default "2000000000" if ARMADA_XP || ARMADA_3700 || ARMADA_8K || ARMADA_MSYS
60         default "1000000000" if ARMADA_38X || ARMADA_375
61
62 # Armada XP/38x SoC types...
63 config MV78230
64         bool
65         select ARMADA_XP
66
67 config MV78260
68         bool
69         select ARMADA_XP
70         imply CMD_SATA
71
72 config MV78460
73         bool
74         select ARMADA_XP
75
76 config ARMADA_MSYS
77         bool
78         select ARMADA_32BIT
79
80 config 98DX4251
81         bool
82         select ARMADA_MSYS
83
84 config 98DX3336
85         bool
86         select ARMADA_MSYS
87
88 config 98DX3236
89         bool
90         select ARMADA_MSYS
91
92 config 88F6820
93         bool
94         select ARMADA_38X
95
96 config CUSTOMER_BOARD_SUPPORT
97         bool
98
99 config DDR4
100         bool "Support Marvell DDR4 Training driver"
101
102 choice
103         prompt "Armada XP/375/38x/3700/7K/8K/Alleycat-5 board select"
104         optional
105
106 config TARGET_CLEARFOG
107         bool "Support ClearFog"
108         select 88F6820
109         select BOARD_LATE_INIT
110         select OF_BOARD_SETUP
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 "NOR flash (SPI or parallel)"
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_NAND
343         bool "NAND flash (SPI or parallel)"
344         select MTD_RAW_NAND
345         select SPL_BOOTROM_SUPPORT
346
347 config MVEBU_SPL_BOOT_DEVICE_MMC
348         bool "eMMC or SD card"
349         imply ENV_IS_IN_MMC
350         # GPIO needed for eMMC/SD card presence detection
351         imply SPL_DM_GPIO
352         imply SPL_DM_MMC
353         imply SPL_GPIO
354         imply SPL_LIBDISK_SUPPORT
355         imply SPL_MMC
356         select SUPPORT_EMMC_BOOT if SPL_MMC
357         select SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR if SPL_MMC
358         select SPL_BOOTROM_SUPPORT
359
360 config MVEBU_SPL_BOOT_DEVICE_SATA
361         bool "SATA"
362         imply SPL_SATA
363         imply SPL_LIBDISK_SUPPORT
364         select SPL_BOOTROM_SUPPORT
365
366 config MVEBU_SPL_BOOT_DEVICE_PEX
367         bool "PCI Express"
368         select SPL_BOOTROM_SUPPORT
369
370 config MVEBU_SPL_BOOT_DEVICE_UART
371         bool "UART"
372         select SPL_BOOTROM_SUPPORT
373
374 endchoice
375
376 config MVEBU_SPL_NAND_BADBLK_LOCATION
377         hex "NAND Bad block indicator location"
378         depends on MVEBU_SPL_BOOT_DEVICE_NAND
379         range 0x0 0x1
380         help
381           Value 0x0 = SLC flash = BBI at page 0 or page 1
382           Value 0x1 = MLC flash = BBI at last page in the block
383
384 config MVEBU_EFUSE
385         bool "Enable eFuse support"
386         depends on HAVE_MVEBU_EFUSE
387         help
388           Enable support for reading and writing eFuses on mvebu SoCs.
389
390 config MVEBU_EFUSE_FAKE
391         bool "Fake eFuse access (dry run)"
392         depends on MVEBU_EFUSE
393         help
394           This enables a "dry run" mode where eFuses are not really programmed.
395           Instead the eFuse accesses are emulated by writing to and reading
396           from a memory block.
397           This is can be used for testing prog scripts.
398
399 config MVEBU_EFUSE_VHV_GPIO
400         string "VHV_Enable GPIO name for eFuse programming"
401         depends on MVEBU_EFUSE && !ARMADA_3700
402         help
403           The eFuse programing (burning) phase requires supplying 1.8V to the
404           device on the VHV power pin, while for normal operation the VHV power
405           rail must be left unconnected. See Marvell AN-389: ARMADA VHV Power
406           document (Doc. No. MV-S302545-00 Rev. C, August 2, 2016) for details.
407           .
408           This specify VHV_Enable GPIO name used in U-Boot for enabling VHV power.
409
410 config MVEBU_EFUSE_VHV_GPIO_ACTIVE_LOW
411         bool "VHV_Enable GPIO is Active Low"
412         depends on MVEBU_EFUSE_VHV_GPIO != ""
413
414 config SECURED_MODE_IMAGE
415         bool "Build image for trusted boot"
416         default false
417         depends on 88F6820
418         help
419           Build an image that employs the ARMADA SoC's trusted boot framework
420           for securely booting images.
421
422 config SECURED_MODE_CSK_INDEX
423         int "Index of active CSK"
424         default 0
425         depends on SECURED_MODE_IMAGE
426
427 config SF_DEFAULT_SPEED
428         int "Default speed for SPI flash in Hz"
429         default 10000000
430         depends on MVEBU_SPL_BOOT_DEVICE_SPI
431
432 config SF_DEFAULT_MODE
433         hex "Default mode for SPI flash"
434         default 0x0
435         depends on MVEBU_SPL_BOOT_DEVICE_SPI
436
437 source "board/solidrun/clearfog/Kconfig"
438 source "board/kobol/helios4/Kconfig"
439
440 endif