if ARCH_STM32MP

config SPL
	select SPL_BOARD_INIT
	select SPL_CLK
	select SPL_DM
	select SPL_DM_SEQ_ALIAS
	select SPL_DRIVERS_MISC_SUPPORT
	select SPL_FRAMEWORK
	select SPL_GPIO_SUPPORT
	select SPL_LIBCOMMON_SUPPORT
	select SPL_LIBGENERIC_SUPPORT
	select SPL_OF_CONTROL
	select SPL_OF_TRANSLATE
	select SPL_PINCTRL
	select SPL_REGMAP
	select SPL_DM_RESET
	select SPL_SERIAL_SUPPORT
	select SPL_SPI_LOAD
	select SPL_SYSCON
	select SPL_WATCHDOG_SUPPORT if WATCHDOG
	imply BOOTSTAGE_STASH if SPL_BOOTSTAGE
	imply SPL_BOOTSTAGE if BOOTSTAGE
	imply SPL_DISPLAY_PRINT
	imply SPL_LIBDISK_SUPPORT

config SYS_SOC
	default "stm32mp"

config SYS_MALLOC_LEN
	default 0x2000000

config ENV_SIZE
	default 0x2000

config STM32MP15x
	bool "Support STMicroelectronics STM32MP15x Soc"
	select ARCH_SUPPORT_PSCI if !TFABOOT
	select ARM_SMCCC if TFABOOT
	select CPU_V7A
	select CPU_V7_HAS_NONSEC if !TFABOOT
	select CPU_V7_HAS_VIRT
	select OF_BOARD_SETUP
	select PINCTRL_STM32
	select STM32_RCC
	select STM32_RESET
	select STM32_SERIAL
	select SYS_ARCH_TIMER
	imply SYSRESET_PSCI if TFABOOT
	imply SYSRESET_SYSCON if !TFABOOT
	help
		support of STMicroelectronics SOC STM32MP15x family
		STM32MP157, STM32MP153 or STM32MP151
		STMicroelectronics MPU with core ARMv7
		dual core A7 for STM32MP157/3, monocore for STM32MP151
		target all the STMicroelectronics board with SOC STM32MP1 family

choice
	prompt "STM32MP15x board select"
	optional

config TARGET_ST_STM32MP15x
	bool "STMicroelectronics STM32MP15x boards"
	select STM32MP15x
	imply BOOTCOUNT_LIMIT
	imply BOOTSTAGE
	imply CMD_BOOTCOUNT
	imply CMD_BOOTSTAGE
	imply CMD_CLS if CMD_BMP
	imply DISABLE_CONSOLE
	imply PRE_CONSOLE_BUFFER
	imply SILENT_CONSOLE
	help
		target the STMicroelectronics board with SOC STM32MP15x
		managed by board/st/stm32mp1:
		Evalulation board (EV1) or Discovery board (DK1 and DK2).
		The difference between board are managed with devicetree

config TARGET_DH_STM32MP1_PDK2
	bool "DH STM32MP1 PDK2"
	select STM32MP15x
	imply BOOTCOUNT_LIMIT
	imply CMD_BOOTCOUNT
	help
		Target the DH PDK2 development kit with STM32MP15x SoM.

endchoice

config STM32MP1_OPTEE
	bool "Support trusted boot with TF-A and OP-TEE"
	depends on TFABOOT
	default n
	help
		Say Y here to enable boot with TF-A and OP-TEE
		Trusted boot chain is :
		BootRom => TF-A.stm32 (clock & DDR) => OP-TEE => U-Boot.stm32
		OP-TEE monitor provides ST SMC to access to secure resources

config SYS_TEXT_BASE
	default 0xC0100000

config NR_DRAM_BANKS
	default 1

config SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION_MMC2
	hex "Partition on MMC2 to use to load U-Boot from"
	depends on SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
	default 1
	help
	  Partition on the second MMC to load U-Boot from when the MMC is being
	  used in raw mode

config STM32_ETZPC
	bool "STM32 Extended TrustZone Protection"
	depends on STM32MP15x
	default y
	help
	  Say y to enable STM32 Extended TrustZone Protection

config CMD_STM32KEY
	bool "command stm32key to fuse public key hash"
	default y
	depends on CMD_FUSE
	help
		fuse public key hash in corresponding fuse used to authenticate
		binary.


config PRE_CON_BUF_ADDR
	default 0xC02FF000

config PRE_CON_BUF_SZ
	default 4096

config BOOTSTAGE_STASH_ADDR
	default 0xC3000000

if BOOTCOUNT_LIMIT
config SYS_BOOTCOUNT_SINGLEWORD
	default y

# TAMP_BOOTCOUNT = TAMP_BACKUP_REGISTER(21)
config SYS_BOOTCOUNT_ADDR
	default 0x5C00A154
endif

if DEBUG_UART

config DEBUG_UART_BOARD_INIT
	default y

# debug on UART4 by default
config DEBUG_UART_BASE
	default 0x40010000

# clock source is HSI on reset
config DEBUG_UART_CLOCK
	default 64000000
endif

source "board/st/stm32mp1/Kconfig"
source "board/dhelectronics/dh_stm32mp1/Kconfig"

endif