1if ARCH_MVEBU
2
3config HAVE_MVEBU_EFUSE
4 bool
5
6config 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
22config ARMADA_375
23 bool
24 select ARMADA_32BIT
25
26config ARMADA_38X
27 bool
28 select ARMADA_32BIT
29 select HAVE_MVEBU_EFUSE
30
31config 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
37config ARMADA_XP
38 bool
39 select ARMADA_32BIT
40
41
42config ARMADA_3700
43 bool
44 select ARM64
45 select HAVE_MVEBU_EFUSE
46
47
48config ARMADA_8K
49 bool
50 select ARM64
51
52config ALLEYCAT_5
53 bool
54 select ARM64
55
56
57config 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
63config MV78230
64 bool
65 select ARMADA_XP
66
67config MV78260
68 bool
69 select ARMADA_XP
70 imply CMD_SATA
71
72config MV78460
73 bool
74 select ARMADA_XP
75
76config ARMADA_MSYS
77 bool
78 select ARMADA_32BIT
79
80config 98DX4251
81 bool
82 select ARMADA_MSYS
83
84config 98DX3336
85 bool
86 select ARMADA_MSYS
87
88config 98DX3236
89 bool
90 select ARMADA_MSYS
91
92config 88F6820
93 bool
94 select ARMADA_38X
95
96config CUSTOMER_BOARD_SUPPORT
97 bool
98
99config DDR4
100 bool "Support Marvell DDR4 Training driver"
101
102choice
103 prompt "Armada XP/375/38x/3700/7K/8K/Alleycat-5 board select"
104 optional
105
106config TARGET_CLEARFOG
107 bool "Support ClearFog"
108 select 88F6820
109 select BOARD_LATE_INIT
110 select OF_BOARD_SETUP
111
112config TARGET_HELIOS4
113 bool "Support Helios4"
114 select 88F6820
115
116config TARGET_MVEBU_ARMADA_37XX
117 bool "Support Armada 37xx platforms"
118 select ARMADA_3700
119 imply SCSI
120
121config TARGET_DB_88F6720
122 bool "Support DB-88F6720 Armada 375"
123 select ARMADA_375
124
125config TARGET_DB_88F6820_GP
126 bool "Support DB-88F6820-GP"
127 select 88F6820
128
129config TARGET_DB_88F6820_AMC
130 bool "Support DB-88F6820-AMC"
131 select 88F6820
132
133config 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
146config TARGET_TURRIS_MOX
147 bool "Support Turris Mox"
148 select ARMADA_3700
149
150config TARGET_MVEBU_ARMADA_8K
151 bool "Support Armada 7k/8k platforms"
152 select ARMADA_8K
153 select BOARD_LATE_INIT
154 imply SCSI
155
156config TARGET_MVEBU_ALLEYCAT5
157 bool "Support AlleyCat 5 platforms"
158 select ALLEYCAT_5
159
160config 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
167config TARGET_DB_MV784MP_GP
168 bool "Support db-mv784mp-gp"
169 select BOARD_ECC_SUPPORT
170 select MV78460
171
172config TARGET_DS116
173 bool "Support Synology DS116"
174 select 88F6820
175
176config TARGET_DS414
177 bool "Support Synology DS414"
178 select MV78230
179
180config TARGET_MAXBCM
181 bool "Support maxbcm"
182 select BOARD_ECC_SUPPORT
183 select MV78460
184
185config TARGET_N2350
186 bool "Support Thecus N2350"
187 select 88F6820
188 select DDR4
189
190config TARGET_THEADORABLE
191 bool "Support theadorable Armada XP"
192 select BOARD_LATE_INIT if USB
193 select MV78260
194 imply CMD_SATA
195
196config TARGET_CONTROLCENTERDC
197 bool "Support CONTROLCENTERDC"
198 select 88F6820
199 select CUSTOMER_BOARD_SUPPORT
200
201config TARGET_X530
202 bool "Support Allied Telesis x530"
203 select 88F6820
204
205config TARGET_DB_XC3_24G4XG
206 bool "Support DB-XC3-24G4XG"
207 select 98DX3336
208
209config TARGET_CRS3XX_98DX3236
210 bool "Support CRS3XX-98DX3236"
211 select 98DX3236
212
213endchoice
214
215choice
216 prompt "DDR bus width"
217 default DDR_64BIT
218 depends on ARMADA_XP
219
220config DDR_64BIT
221 bool "64bit bus width"
222
223config DDR_32BIT
224 bool "32bit bus width"
225
226endchoice
227
228config 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
242config 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
255config BOARD_ECC_SUPPORT
256 bool
257
258config 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
281config 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
304config 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
326config SYS_SOC
327 default "mvebu"
328
329choice
330 prompt "Boot method"
331 depends on SPL
332
333config 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
342config MVEBU_SPL_BOOT_DEVICE_NAND
343 bool "NAND flash (SPI or parallel)"
344 select MTD_RAW_NAND
345 select SPL_BOOTROM_SUPPORT
346
347config MVEBU_SPL_BOOT_DEVICE_MMC
348 bool "eMMC or SD card"
349 imply ENV_IS_IN_MMC
350
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
360config MVEBU_SPL_BOOT_DEVICE_SATA
361 bool "SATA"
362 imply SPL_SATA
363 imply SPL_LIBDISK_SUPPORT
364 select SPL_BOOTROM_SUPPORT
365
366config MVEBU_SPL_BOOT_DEVICE_PEX
367 bool "PCI Express"
368 select SPL_BOOTROM_SUPPORT
369
370config MVEBU_SPL_BOOT_DEVICE_UART
371 bool "UART"
372 select SPL_BOOTROM_SUPPORT
373
374endchoice
375
376config 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
384config MVEBU_SPL_SATA_BLKSZ
385 int "SATA block size"
386 depends on MVEBU_SPL_BOOT_DEVICE_SATA
387 range 512 32768
388 default 512
389 help
390 Block size of the SATA disk in bytes.
391 Typically 512 bytes for majority of disks
392 and 4096 bytes for 4K Native disks.
393
394config MVEBU_EFUSE
395 bool "Enable eFuse support"
396 depends on HAVE_MVEBU_EFUSE
397 help
398 Enable support for reading and writing eFuses on mvebu SoCs.
399
400config MVEBU_EFUSE_FAKE
401 bool "Fake eFuse access (dry run)"
402 depends on MVEBU_EFUSE
403 help
404 This enables a "dry run" mode where eFuses are not really programmed.
405 Instead the eFuse accesses are emulated by writing to and reading
406 from a memory block.
407 This is can be used for testing prog scripts.
408
409config MVEBU_EFUSE_VHV_GPIO
410 string "VHV_Enable GPIO name for eFuse programming"
411 depends on MVEBU_EFUSE && !ARMADA_3700
412 help
413 The eFuse programing (burning) phase requires supplying 1.8V to the
414 device on the VHV power pin, while for normal operation the VHV power
415 rail must be left unconnected. See Marvell AN-389: ARMADA VHV Power
416 document (Doc. No. MV-S302545-00 Rev. C, August 2, 2016) for details.
417 .
418 This specify VHV_Enable GPIO name used in U-Boot for enabling VHV power.
419
420config MVEBU_EFUSE_VHV_GPIO_ACTIVE_LOW
421 bool "VHV_Enable GPIO is Active Low"
422 depends on MVEBU_EFUSE_VHV_GPIO != ""
423
424config SECURED_MODE_IMAGE
425 bool "Build image for trusted boot"
426 default false
427 depends on 88F6820
428 help
429 Build an image that employs the ARMADA SoC's trusted boot framework
430 for securely booting images.
431
432config SECURED_MODE_CSK_INDEX
433 int "Index of active CSK"
434 default 0
435 depends on SECURED_MODE_IMAGE
436
437config SF_DEFAULT_SPEED
438 int "Default speed for SPI flash in Hz"
439 default 10000000
440 depends on MVEBU_SPL_BOOT_DEVICE_SPI
441
442config SF_DEFAULT_MODE
443 hex "Default mode for SPI flash"
444 default 0x0
445 depends on MVEBU_SPL_BOOT_DEVICE_SPI
446
447source "board/solidrun/clearfog/Kconfig"
448source "board/kobol/helios4/Kconfig"
449
450endif
451