menu "Payload"

config NO_DEFAULT_PAYLOAD
	bool

choice
	prompt "Add a payload"
	default PAYLOAD_NONE if NO_DEFAULT_PAYLOAD || !ARCH_X86
	default PAYLOAD_SEABIOS if ARCH_X86

config PAYLOAD_NONE
	bool "None"
	help
	  Select this option if you want to create an "empty" coreboot
	  ROM image for a certain mainboard, i.e. a coreboot ROM image
	  which does not yet contain a payload.

	  For such an image to be useful, you have to use 'cbfstool'
	  to add a payload to the ROM image later.

config PAYLOAD_ELF
	bool "An ELF executable payload"
	help
	  Select this option if you have a payload image (an ELF file)
	  which coreboot should run as soon as the basic hardware
	  initialization is completed.

	  You will be able to specify the location and file name of the
	  payload image later.

config PAYLOAD_BAYOU
	bool "Bayou"
	help
	  Select this option if you want to set bayou as your primary
	  payload.

source "payloads/external/*/Kconfig.name"

endchoice

source "payloads/external/*/Kconfig"

source "payloads/bayou/Kconfig"

config PAYLOAD_FILE
	string "Payload path and filename"
	depends on PAYLOAD_ELF
	default "payload.elf"
	help
	  The path and filename of the ELF executable file to use as payload.

# TODO: Defined if no payload? Breaks build?
config COMPRESSED_PAYLOAD_LZMA
	bool "Use LZMA compression for payloads"
	default y
	depends on !PAYLOAD_NONE && !PAYLOAD_LINUX
	help
	  In order to reduce the size payloads take up in the ROM chip
	  coreboot can compress them using the LZMA algorithm.

config PAYLOAD_OPTIONS
	string
	default ""
	help
	  Additional cbfstool options for the payload

config PAYLOAD_IS_FLAT_BINARY
	def_bool n
	help
	  Add the payload to cbfs as a flat binary type instead of as an
	  elf payload

menu "Secondary Payloads"

config COREINFO_SECONDARY_PAYLOAD
	bool "Load coreinfo as a secondary payload"
	default n
	depends on ARCH_X86
	help
	  coreinfo can be loaded as a secondary payload under SeaBIOS, GRUB,
	  or any other payload that can load additional payloads.

config MEMTEST_SECONDARY_PAYLOAD
	bool "Load Memtest86+ as a secondary payload"
	default n
	depends on ARCH_X86
	help
	  Memtest86+ can be loaded as a secondary payload under SeaBIOS, GRUB,
	  or any other payload that can load additional payloads.

choice
	prompt "Memtest86+ version"
	default MEMTEST_STABLE
	depends on MEMTEST_SECONDARY_PAYLOAD

config MEMTEST_STABLE
	bool "Stable"
	help
	  Stable Memtest86+ version.

	  For reproducible builds, this option must be selected.
config MEMTEST_MASTER
	bool "Master"
	help
	  Newest Memtest86+ version.

	  This option will fetch the newest version of the Memtest86+ code,
	  updating as new changes are committed.  This makes the build
	  non-reproducible, as it can fetch different code each time.
endchoice

config NVRAMCUI_SECONDARY_PAYLOAD
	bool "Load nvramcui as a secondary payload"
	default n
	depends on ARCH_X86
	help
	  nvramcui can be loaded as a secondary payload under SeaBIOS, GRUB,
	  or any other payload that can load additional payloads.

config TINT_SECONDARY_PAYLOAD
	bool "Load tint as a secondary payload"
	default n
	depends on ARCH_X86
	help
	  tint can be loaded as a secondary payload under SeaBIOS, GRUB,
	  or any other payload that can load additional payloads.

endmenu # "Secondary Payloads"
endmenu
