config EFI
	bool "Support running U-Boot from EFI"
	depends on X86
	imply X86_TSC_READ_BASE
	help
	  U-Boot can be started from EFI on certain platforms. This allows
	  EFI to perform most of the system init and then jump to U-Boot for
	  final system boot. Another option is to run U-Boot as an EFI
	  application, with U-Boot using EFI's drivers instead of its own.

choice
	prompt "Select EFI mode to use"
	depends on X86 && EFI

config EFI_APP
	bool "Support running as an EFI application"
	help
	  Build U-Boot as an application which can be started from EFI. This
	  is useful for examining a platform in the early stages of porting
	  U-Boot to it. It allows only very basic functionality, such as a
	  command prompt and memory and I/O functions. Use 'reset' to return
	  to EFI.

config EFI_STUB
	bool "Support running as an EFI payload"

endchoice

config EFI_RAM_SIZE
	hex "Amount of EFI RAM for U-Boot"
	depends on EFI_APP
	default 0x2000000
	help
	  Set the amount of EFI RAM which is claimed by U-Boot for its own
	  use. U-Boot allocates this from EFI on start-up (along with a few
	  other smaller amounts) and it can never be increased after that.
	  It is used as the RAM size in with U-Boot.

choice
	prompt "EFI 32/64-bit selection"
	depends on EFI_STUB
	help
	  EFI does not support mixing 32-bit and 64-bit modes. This is a
	  significant problem because it means that you must build a stub with
	  the correct type for EFI to load it correctly. If you are using
	  32-bit EFI, select 32-bit here, else select 64-bit. Failure to do
	  this may produce no error message - it just won't start!

config EFI_STUB_32BIT
	bool "Produce a stub for running with 32-bit EFI"

config EFI_STUB_64BIT
	bool "Produce a stub for running with 64-bit EFI"

endchoice
