3 config HAVE_MVEBU_EFUSE
8 select BOARD_EARLY_INIT_F
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
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
29 select HAVE_MVEBU_EFUSE
31 config ARMADA_38X_HS_IMPEDANCE_THRESH
32 hex "Armada 38x USB 2.0 High-Speed Impedance Threshold (0x0 - 0x7)"
45 select HAVE_MVEBU_EFUSE
47 # Armada 7K and 8K are very similar - use only one Kconfig symbol for both
56 # Armada PLL frequency (used for NAND clock generation)
57 config SYS_MVEBU_PLL_CLOCK
59 default "2000000000" if ARMADA_XP || ARMADA_3700 || ARMADA_8K || ARMADA_MSYS
60 default "1000000000" if ARMADA_38X || ARMADA_375
62 # Armada XP/38x SoC types...
96 config CUSTOMER_BOARD_SUPPORT
100 bool "Support Marvell DDR4 Training driver"
103 prompt "Armada XP/375/38x/3700/7K/8K/Alleycat-5 board select"
106 config TARGET_CLEARFOG
107 bool "Support ClearFog"
109 select BOARD_LATE_INIT
110 select OF_BOARD_SETUP
112 config TARGET_HELIOS4
113 bool "Support Helios4"
116 config TARGET_MVEBU_ARMADA_37XX
117 bool "Support Armada 37xx platforms"
121 config TARGET_DB_88F6720
122 bool "Support DB-88F6720 Armada 375"
125 config TARGET_DB_88F6820_GP
126 bool "Support DB-88F6820-GP"
129 config TARGET_DB_88F6820_AMC
130 bool "Support DB-88F6820-AMC"
133 config TARGET_TURRIS_OMNIA
134 bool "Support Turris Omnia"
136 select BOARD_LATE_INIT
139 select I2C_MUX_PCA954x
140 select SPL_DRIVERS_MISC
142 select SPL_SYS_MALLOC_SIMPLE
143 select SYS_I2C_MVTWSI
146 config TARGET_TURRIS_MOX
147 bool "Support Turris Mox"
150 config TARGET_MVEBU_ARMADA_8K
151 bool "Support Armada 7k/8k platforms"
153 select BOARD_LATE_INIT
156 config TARGET_MVEBU_ALLEYCAT5
157 bool "Support AlleyCat 5 platforms"
160 config TARGET_OCTEONTX2_CN913x
161 bool "Support CN913x platforms"
163 imply BOARD_EARLY_INIT_R
164 select BOARD_LATE_INIT
167 config TARGET_DB_MV784MP_GP
168 bool "Support db-mv784mp-gp"
169 select BOARD_ECC_SUPPORT
173 bool "Support Synology DS116"
177 bool "Support Synology DS414"
181 bool "Support maxbcm"
182 select BOARD_ECC_SUPPORT
186 bool "Support Thecus N2350"
190 config TARGET_THEADORABLE
191 bool "Support theadorable Armada XP"
192 select BOARD_LATE_INIT if USB
196 config TARGET_CONTROLCENTERDC
197 bool "Support CONTROLCENTERDC"
199 select CUSTOMER_BOARD_SUPPORT
202 bool "Support Allied Telesis x530"
206 bool "Support Allied Telesis x240"
209 config TARGET_DB_XC3_24G4XG
210 bool "Support DB-XC3-24G4XG"
213 config TARGET_CRS3XX_98DX3236
214 bool "Support CRS3XX-98DX3236"
220 prompt "DDR bus width"
225 bool "64bit bus width"
228 bool "32bit bus width"
233 int "DDR training code log level"
238 Amount of information provided on error while running the DDR
239 training code. At level 0, provides an error code in a case of
240 failure, RL, WL errors and other algorithm failure. At level 1,
241 provides the D-Unit setup (SPD/Static configuration). At level 2,
242 provides the windows margin as a results of DQS centeralization.
243 At level 3, rovides the windows margin of each DQ as a results of
246 config DDR_RESET_ON_TRAINING_FAILURE
247 bool "Reset the board on DDR training failure instead of hanging"
248 depends on ARMADA_38X || ARMADA_XP
250 If DDR training fails in SPL, reset the board instead of hanging.
251 Some boards are known to fail DDR training occasionally and an
252 immediate reset may be preferable to waiting until the board is
253 reset by watchdog (if there even is one).
255 Note that if booting via UART and the DDR training fails, the
256 device will still hang - it doesn't make sense to reset the board
259 config BOARD_ECC_SUPPORT
263 default "clearfog" if TARGET_CLEARFOG
264 default "helios4" if TARGET_HELIOS4
265 default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
266 default "db-88f6720" if TARGET_DB_88F6720
267 default "db-88f6820-gp" if TARGET_DB_88F6820_GP
268 default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
269 default "turris_omnia" if TARGET_TURRIS_OMNIA
270 default "turris_mox" if TARGET_TURRIS_MOX
271 default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
272 default "octeontx2_cn913x" if TARGET_OCTEONTX2_CN913x
273 default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
274 default "ds116" if TARGET_DS116
275 default "ds414" if TARGET_DS414
276 default "maxbcm" if TARGET_MAXBCM
277 default "n2350" if TARGET_N2350
278 default "theadorable" if TARGET_THEADORABLE
279 default "a38x" if TARGET_CONTROLCENTERDC
280 default "x530" if TARGET_X530
281 default "x240" if TARGET_X240
282 default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
283 default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236
284 default "mvebu_alleycat-5" if TARGET_MVEBU_ALLEYCAT5
286 config SYS_CONFIG_NAME
287 default "clearfog" if TARGET_CLEARFOG
288 default "helios4" if TARGET_HELIOS4
289 default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
290 default "db-88f6720" if TARGET_DB_88F6720
291 default "db-88f6820-gp" if TARGET_DB_88F6820_GP
292 default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
293 default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
294 default "mvebu_armada-8k" if TARGET_OCTEONTX2_CN913x
295 default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
296 default "ds116" if TARGET_DS116
297 default "ds414" if TARGET_DS414
298 default "maxbcm" if TARGET_MAXBCM
299 default "n2350" if TARGET_N2350
300 default "theadorable" if TARGET_THEADORABLE
301 default "turris_omnia" if TARGET_TURRIS_OMNIA
302 default "turris_mox" if TARGET_TURRIS_MOX
303 default "controlcenterdc" if TARGET_CONTROLCENTERDC
304 default "x530" if TARGET_X530
305 default "x240" if TARGET_X240
306 default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
307 default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236
308 default "mvebu_alleycat-5" if TARGET_MVEBU_ALLEYCAT5
311 default "Marvell" if TARGET_DB_MV784MP_GP
312 default "Marvell" if TARGET_MVEBU_ARMADA_37XX
313 default "Marvell" if TARGET_DB_88F6720
314 default "Marvell" if TARGET_DB_88F6820_GP
315 default "Marvell" if TARGET_DB_88F6820_AMC
316 default "Marvell" if TARGET_MVEBU_ARMADA_8K
317 default "Marvell" if TARGET_OCTEONTX2_CN913x
318 default "Marvell" if TARGET_DB_XC3_24G4XG
319 default "Marvell" if TARGET_MVEBU_DB_88F7040
320 default "solidrun" if TARGET_CLEARFOG
321 default "kobol" if TARGET_HELIOS4
322 default "Synology" if TARGET_DS116
323 default "Synology" if TARGET_DS414
324 default "thecus" if TARGET_N2350
325 default "CZ.NIC" if TARGET_TURRIS_OMNIA
326 default "CZ.NIC" if TARGET_TURRIS_MOX
327 default "gdsys" if TARGET_CONTROLCENTERDC
328 default "alliedtelesis" if TARGET_X530
329 default "alliedtelesis" if TARGET_X240
330 default "mikrotik" if TARGET_CRS3XX_98DX3236
331 default "Marvell" if TARGET_MVEBU_ALLEYCAT5
340 config MVEBU_SPL_BOOT_DEVICE_SPI
341 bool "NOR flash (SPI or parallel)"
342 imply ENV_IS_IN_SPI_FLASH
344 imply SPL_SPI_FLASH_SUPPORT
347 select SPL_BOOTROM_SUPPORT
349 config MVEBU_SPL_BOOT_DEVICE_NAND
350 bool "NAND flash (SPI or parallel)"
352 select SPL_BOOTROM_SUPPORT
354 config MVEBU_SPL_BOOT_DEVICE_MMC
355 bool "eMMC or SD card"
357 # GPIO needed for eMMC/SD card presence detection
361 imply SPL_LIBDISK_SUPPORT
363 select SUPPORT_EMMC_BOOT if SPL_MMC
364 select SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR if SPL_MMC
365 select SPL_BOOTROM_SUPPORT
367 config MVEBU_SPL_BOOT_DEVICE_SATA
370 imply SPL_LIBDISK_SUPPORT
371 select SPL_BOOTROM_SUPPORT
373 config MVEBU_SPL_BOOT_DEVICE_PEX
375 select SPL_BOOTROM_SUPPORT
377 config MVEBU_SPL_BOOT_DEVICE_UART
379 select SPL_BOOTROM_SUPPORT
383 config MVEBU_SPL_NAND_BADBLK_LOCATION
384 hex "NAND Bad block indicator location"
385 depends on MVEBU_SPL_BOOT_DEVICE_NAND
388 Value 0x0 = SLC flash = BBI at page 0 or page 1
389 Value 0x1 = MLC flash = BBI at last page in the block
391 config MVEBU_SPL_SATA_BLKSZ
392 int "SATA block size"
393 depends on MVEBU_SPL_BOOT_DEVICE_SATA
397 Block size of the SATA disk in bytes.
398 Typically 512 bytes for majority of disks
399 and 4096 bytes for 4K Native disks.
402 bool "Enable eFuse support"
403 depends on HAVE_MVEBU_EFUSE
405 Enable support for reading and writing eFuses on mvebu SoCs.
407 config MVEBU_EFUSE_FAKE
408 bool "Fake eFuse access (dry run)"
409 depends on MVEBU_EFUSE
411 This enables a "dry run" mode where eFuses are not really programmed.
412 Instead the eFuse accesses are emulated by writing to and reading
414 This is can be used for testing prog scripts.
416 config MVEBU_EFUSE_VHV_GPIO
417 string "VHV_Enable GPIO name for eFuse programming"
418 depends on MVEBU_EFUSE && !ARMADA_3700
420 The eFuse programing (burning) phase requires supplying 1.8V to the
421 device on the VHV power pin, while for normal operation the VHV power
422 rail must be left unconnected. See Marvell AN-389: ARMADA VHV Power
423 document (Doc. No. MV-S302545-00 Rev. C, August 2, 2016) for details.
425 This specify VHV_Enable GPIO name used in U-Boot for enabling VHV power.
427 config MVEBU_EFUSE_VHV_GPIO_ACTIVE_LOW
428 bool "VHV_Enable GPIO is Active Low"
429 depends on MVEBU_EFUSE_VHV_GPIO != ""
431 config SECURED_MODE_IMAGE
432 bool "Build image for trusted boot"
436 Build an image that employs the ARMADA SoC's trusted boot framework
437 for securely booting images.
439 config SECURED_MODE_CSK_INDEX
440 int "Index of active CSK"
442 depends on SECURED_MODE_IMAGE
444 config SF_DEFAULT_SPEED
445 int "Default speed for SPI flash in Hz"
447 depends on MVEBU_SPL_BOOT_DEVICE_SPI
449 config SF_DEFAULT_MODE
450 hex "Default mode for SPI flash"
452 depends on MVEBU_SPL_BOOT_DEVICE_SPI
454 source "board/solidrun/clearfog/Kconfig"
455 source "board/kobol/helios4/Kconfig"