menu "Architecture (arm)"


config ARM_ARCH_OPTIONS
	bool
	default y
	select HAVE_ARCH_MEMSET
	select HAVE_ARCH_MEMCPY
	select HAVE_ARCH_MEMMOVE

source src/arch/arm/armv4/Kconfig
source src/arch/arm/armv7/Kconfig

# Maximum reboot count
# TODO: Improve description.
config MAX_REBOOT_CNT
	int
	default 3

# If a custom bootblock is necessary, this option should be "select"-ed by
# the thing that needs it, probably the CPU.
config ARM_BOOTBLOCK_CUSTOM
	bool
	default n

choice
	prompt "Bootblock behaviour"
	default ARM_BOOTBLOCK_SIMPLE
	depends on !ARM_BOOTBLOCK_CUSTOM

config ARM_BOOTBLOCK_SIMPLE
	bool "Always load fallback"

config ARM_BOOTBLOCK_NORMAL
	bool "Switch to normal if non-volatile memory says so"

endchoice

config CPU_HAS_BOOTBLOCK_INIT
	bool
	default n

config MAINBOARD_HAS_BOOTBLOCK_INIT
	bool
	default n

config UPDATE_IMAGE
	bool "Update existing coreboot.rom image"
	default n
	help
	  If this option is enabled, no new coreboot.rom file
	  is created. Instead it is expected that there already
	  is a suitable file for further processing.
	  The bootblock will not be modified.

endmenu
