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# ARMv7 SoCs... 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# ARMv8 SoCs... 42config 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 48config ARMADA_8K 49 bool 50 select ARM64 51 52config ALLEYCAT_5 53 bool 54 select ARM64 55 56# Armada PLL frequency (used for NAND clock generation) 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# Armada XP/38x SoC types... 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 # 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 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