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_SYSCON
	imply SPL_DISPLAY_PRINT
	imply SPL_LIBDISK_SUPPORT

config SYS_SOC
	default "stm32mp"

config SYS_MALLOC_LEN
	default 0x2000000

config ENV_SIZE
	default 0x1000

config TARGET_STM32MP1
	bool "Support stm32mp1xx"
	select ARCH_SUPPORT_PSCI if !STM32MP1_TRUSTED
	select CPU_V7A
	select CPU_V7_HAS_NONSEC if !STM32MP1_TRUSTED
	select CPU_V7_HAS_VIRT
	select PINCTRL_STM32
	select STM32_RCC
	select STM32_RESET
	select SYS_ARCH_TIMER
	imply SYSRESET_PSCI if STM32MP1_TRUSTED
	imply SYSRESET_SYSCON if !STM32MP1_TRUSTED
	help
		target STMicroelectronics SOC STM32MP1 family
		STM32MP157, STM32MP153 or STM32MP151
		STMicroelectronics MPU with core ARMv7
		dual core A7 for STM32MP157/3, monocore for STM32MP151

config STM32MP1_TRUSTED
	bool "Support trusted boot with TF-A"
	default y if !SPL
	select ARM_SMCCC
	help
		Say Y here to enable boot with TF-A
		Trusted boot chain is :
		BootRom => TF-A.stm32 (clock & DDR) => U-Boot.stm32
		TF-A monitor provides proprietary smc to manage secure devices

config SYS_TEXT_BASE
	prompt "U-Boot base address"
	default 0xC0100000
	help
		configure the U-Boot base address
		when DDR driver is used:
		  DDR + 1MB (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

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"

endif
