if ARCH_MVEBU

config HAVE_MVEBU_EFUSE
	bool
	default n

config ARMADA_32BIT
	bool
	select ARCH_MISC_INIT
	select BOARD_EARLY_INIT_F
	select CPU_V7A
	select SPL_DM if SPL
	select SPL_DM_SEQ_ALIAS if SPL
	select SPL_OF_CONTROL if SPL
	select SPL_SIMPLE_BUS if SPL
	select SUPPORT_SPL
	select TRANSLATION_OFFSET

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_38X_HS_IMPEDANCE_THRESH
	hex  "Armada 38x USB 2.0 High-Speed Impedance Threshold (0x0 - 0x7)"
	depends on ARMADA_38X
	default 0x6
	range 0x0 0x7

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 || ARMADA_MSYS
	default "1000000000" if ARMADA_38X || ARMADA_375

# Armada XP/38x SoC types...
config MV78230
	bool
	select ARMADA_XP

config MV78260
	bool
	select ARMADA_XP
	imply CMD_SATA

config MV78460
	bool
	select ARMADA_XP

config ARMADA_MSYS
	bool
	select ARMADA_32BIT

config 98DX4251
	bool
	select ARMADA_MSYS

config 98DX3336
	bool
	select ARMADA_MSYS

config 98DX3236
	bool
	select ARMADA_MSYS

config 88F6820
	bool
	select ARMADA_38X

choice
	prompt "Armada XP/375/38x/3700/7K/8K board select"
	optional

config TARGET_CLEARFOG
	bool "Support ClearFog"
	select 88F6820
	select BOARD_LATE_INIT

config TARGET_HELIOS4
	bool "Support Helios4"
	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

config TARGET_DB_88F6820_GP
	bool "Support DB-88F6820-GP"
	select 88F6820

config TARGET_DB_88F6820_AMC
	bool "Support DB-88F6820-AMC"
	select 88F6820

config TARGET_TURRIS_OMNIA
	bool "Support Turris Omnia"
	select 88F6820
	select BOARD_LATE_INIT
	select DM_I2C
	select I2C_MUX
	select I2C_MUX_PCA954x
	select SPL_I2C_MUX
	select SYS_I2C_MVTWSI
	select ATSHA204A

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

config TARGET_DS414
	bool "Support Synology DS414"
	select MV78230

config TARGET_MAXBCM
	bool "Support maxbcm"
	select MV78460

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

config TARGET_X530
	bool "Support Allied Telesis x530"
	select 88F6820

config TARGET_DB_XC3_24G4XG
	bool "Support DB-XC3-24G4XG"
	select 98DX3336

config TARGET_CRS3XX_98DX3236
	bool "Support CRS3XX-98DX3236"
	select 98DX3236

endchoice

config SYS_BOARD
	default "clearfog" if TARGET_CLEARFOG
	default "helios4" if TARGET_HELIOS4
	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
	default "theadorable" if TARGET_THEADORABLE
	default "a38x" if TARGET_CONTROLCENTERDC
	default "x530" if TARGET_X530
	default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
	default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236

config SYS_CONFIG_NAME
	default "clearfog" if TARGET_CLEARFOG
	default "helios4" if TARGET_HELIOS4
	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
	default "controlcenterdc" if TARGET_CONTROLCENTERDC
	default "x530" if TARGET_X530
	default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
	default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236

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 "Marvell" if TARGET_DB_XC3_24G4XG
	default "Marvell" if TARGET_MVEBU_DB_88F7040
	default "solidrun" if TARGET_CLEARFOG
	default "kobol" if TARGET_HELIOS4
	default "Synology" if TARGET_DS414
	default "CZ.NIC" if TARGET_TURRIS_OMNIA
	default "CZ.NIC" if TARGET_TURRIS_MOX
	default "gdsys" if TARGET_CONTROLCENTERDC
	default "alliedtelesis" if TARGET_X530
	default "mikrotik" if TARGET_CRS3XX_98DX3236

config SYS_SOC
	default "mvebu"

choice
	prompt "Boot method"
	depends on SPL

config MVEBU_SPL_BOOT_DEVICE_SPI
	bool "SPI NOR flash"
	imply ENV_IS_IN_SPI_FLASH
	select SPL_DM_SPI
	select SPL_SPI_FLASH_SUPPORT
	select SPL_SPI_LOAD
	select SPL_SPI_SUPPORT

config MVEBU_SPL_BOOT_DEVICE_MMC
	bool "SDIO/MMC card"
	imply ENV_IS_IN_MMC
	# GPIO needed for eMMC/SD card presence detection
	select SPL_DM_GPIO
	select SPL_DM_MMC
	select SPL_GPIO_SUPPORT
	select SPL_LIBDISK_SUPPORT
	select SPL_MMC_SUPPORT

config MVEBU_SPL_BOOT_DEVICE_SATA
	bool "SATA"
	select SPL_SATA_SUPPORT
	select SPL_LIBDISK_SUPPORT

config MVEBU_SPL_BOOT_DEVICE_UART
	bool "UART"

endchoice

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

source "board/solidrun/clearfog/Kconfig"

endif
