arm64: mvebu: Add basic support for the Turris Mox board
[oweals/u-boot.git] / arch / arm / mach-mvebu / Kconfig
index 0fd71a717a28a3732e254bc1747fc699691575bd..f431cff9509796055606584f8a209eaa7ac35de9 100644 (file)
@@ -1,14 +1,55 @@
 if ARCH_MVEBU
 
+config HAVE_MVEBU_EFUSE
+       bool
+       default n
+
+config ARMADA_32BIT
+       bool
+       select CPU_V7A
+       select SUPPORT_SPL
+       select SPL_DM
+       select SPL_DM_SEQ_ALIAS
+       select SPL_OF_CONTROL
+       select SPL_SIMPLE_BUS
+       select BOARD_EARLY_INIT_F
+       select ARCH_MISC_INIT
+
+config ARMADA_64BIT
+       bool
+       select ARM64
+
+# ARMv7 SoCs...
 config ARMADA_375
        bool
+       select ARMADA_32BIT
 
 config ARMADA_38X
        bool
+       select ARMADA_32BIT
+       select HAVE_MVEBU_EFUSE
 
 config ARMADA_XP
        bool
+       select ARMADA_32BIT
+
+# ARMv8 SoCs...
+config ARMADA_3700
+       bool
+       select ARM64
 
+# Armada 7K and 8K are very similar - use only one Kconfig symbol for both
+config ARMADA_8K
+       bool
+       select ARM64
+
+# Armada PLL frequency (used for NAND clock generation)
+config SYS_MVEBU_PLL_CLOCK
+       int
+       default "2000000000" if ARMADA_XP || ARMADA_3700 || ARMADA_8K
+       default "1000000000" if ARMADA_38X || ARMADA_375
+
+# Armada XP/38x SoC types...
 config MV78230
        bool
        select ARMADA_XP
@@ -16,6 +57,7 @@ config MV78230
 config MV78260
        bool
        select ARMADA_XP
+       imply CMD_SATA
 
 config MV78460
        bool
@@ -26,13 +68,18 @@ config 88F6820
        select ARMADA_38X
 
 choice
-       prompt "Marvell MVEBU (Armada XP/375/38x) board select"
+       prompt "Armada XP/375/38x/3700/7K/8K board select"
        optional
 
 config TARGET_CLEARFOG
        bool "Support ClearFog"
        select 88F6820
 
+config TARGET_MVEBU_ARMADA_37XX
+       bool "Support Armada 37xx platforms"
+       select ARMADA_3700
+       imply SCSI
+
 config TARGET_DB_88F6720
        bool "Support DB-88F6720 Armada 375"
        select ARMADA_375
@@ -45,6 +92,20 @@ config TARGET_DB_88F6820_AMC
        bool "Support DB-88F6820-AMC"
        select 88F6820
 
+config TARGET_TURRIS_OMNIA
+       bool "Support Turris Omnia"
+       select 88F6820
+
+config TARGET_TURRIS_MOX
+       bool "Support Turris Mox"
+       select ARMADA_3700
+
+config TARGET_MVEBU_ARMADA_8K
+       bool "Support Armada 7k/8k platforms"
+       select ARMADA_8K
+       select BOARD_LATE_INIT
+       imply SCSI
+
 config TARGET_DB_MV784MP_GP
        bool "Support db-mv784mp-gp"
        select MV78460
@@ -59,15 +120,25 @@ config TARGET_MAXBCM
 
 config TARGET_THEADORABLE
        bool "Support theadorable Armada XP"
+       select BOARD_LATE_INIT if USB
        select MV78260
+       imply CMD_SATA
+
+config TARGET_CONTROLCENTERDC
+       bool "Support CONTROLCENTERDC"
+       select 88F6820
 
 endchoice
 
 config SYS_BOARD
        default "clearfog" if TARGET_CLEARFOG
+       default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
        default "db-88f6720" if TARGET_DB_88F6720
        default "db-88f6820-gp" if TARGET_DB_88F6820_GP
        default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
+       default "turris_omnia" if TARGET_TURRIS_OMNIA
+       default "turris_mox" if TARGET_TURRIS_MOX
+       default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
        default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
        default "ds414" if TARGET_DS414
        default "maxbcm" if TARGET_MAXBCM
@@ -75,23 +146,76 @@ config SYS_BOARD
 
 config SYS_CONFIG_NAME
        default "clearfog" if TARGET_CLEARFOG
+       default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
        default "db-88f6720" if TARGET_DB_88F6720
        default "db-88f6820-gp" if TARGET_DB_88F6820_GP
        default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
+       default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
        default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
        default "ds414" if TARGET_DS414
        default "maxbcm" if TARGET_MAXBCM
        default "theadorable" if TARGET_THEADORABLE
+       default "turris_omnia" if TARGET_TURRIS_OMNIA
+       default "turris_mox" if TARGET_TURRIS_MOX
 
 config SYS_VENDOR
        default "Marvell" if TARGET_DB_MV784MP_GP
+       default "Marvell" if TARGET_MVEBU_ARMADA_37XX
        default "Marvell" if TARGET_DB_88F6720
        default "Marvell" if TARGET_DB_88F6820_GP
        default "Marvell" if TARGET_DB_88F6820_AMC
+       default "Marvell" if TARGET_MVEBU_ARMADA_8K
        default "solidrun" if TARGET_CLEARFOG
        default "Synology" if TARGET_DS414
+       default "CZ.NIC" if TARGET_TURRIS_OMNIA
+       default "CZ.NIC" if TARGET_TURRIS_MOX
 
 config SYS_SOC
        default "mvebu"
 
+if TARGET_TURRIS_OMNIA
+
+choice
+       prompt "Turris Omnia boot method"
+
+config TURRIS_OMNIA_SPL_BOOT_DEVICE_SPI
+       bool "SPI NOR flash"
+
+config TURRIS_OMNIA_SPL_BOOT_DEVICE_MMC
+       bool "SDIO/MMC card"
+
+endchoice
+
+endif
+
+config MVEBU_EFUSE
+       bool "Enable eFuse support"
+       default n
+       depends on HAVE_MVEBU_EFUSE
+       help
+         Enable support for reading and writing eFuses on mvebu SoCs.
+
+config MVEBU_EFUSE_FAKE
+       bool "Fake eFuse access (dry run)"
+       default n
+       depends on MVEBU_EFUSE
+       help
+         This enables a "dry run" mode where eFuses are not really programmed.
+         Instead the eFuse accesses are emulated by writing to and reading
+         from a memory block.
+         This is can be used for testing prog scripts.
+
+config SECURED_MODE_IMAGE
+       bool "Build image for trusted boot"
+       default false
+       depends on 88F6820
+       help
+         Build an image that employs the ARMADA SoC's trusted boot framework
+         for securely booting images.
+
+config SECURED_MODE_CSK_INDEX
+       int "Index of active CSK"
+       default 0
+       depends on SECURED_MODE_IMAGE
+
 endif