Loading...
menu "U-Boot as UEFI application"
	depends on X86 || ARM || RISCV

config EFI_CLIENT
	bool "Support running U-Boot from EFI"
	depends on X86 || ARM || RISCV
	imply DISPLAY_BOARDINFO
	imply X86_TSC_READ_BASE
	select EFI
	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 EFI_CLIENT

config EFI_APP
	bool "Support running as an EFI application"
	depends on X86 || ARM || RISCV
	select CHARSET
	select EVENT
	imply CONSOLE_MUX
	imply CONSOLE_PAGER
	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
	select POSITION_INDEPENDENT if ARM
	bool "Support running as an EFI payload"

endchoice

choice
	prompt "EFI app 32/64-bit selection"
	depends on EFI_APP
	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_APP_32BIT
	bool "Produce an app for running with 32-bit EFI"

config EFI_APP_64BIT
	bool "Produce an app for running with 64-bit EFI"

endchoice

choice
	prompt "EFI stub 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
	depends on !ARM
	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

if EFI_APP

config EFI_RAM_SIZE
	hex "Amount of EFI RAM for U-Boot"
	default 0x10000000
	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.

config EFI_APP_DEBUG
	bool "Enable GDB debugging"
	help
	  Enable this to allow GDB to stop the app at an early stage, so it is
	  possible to set the symbol offset. Since the app is relocated to an
	  unknown address, breakpoints will only work if this is done.

config EFI_APP_ENTRY
	bool "Provide efi_main() entry point"
	default y
	help
	  Enable this to have libu-boot provide the efi_main() entry point
	  function. This is the standard entry point called by EFI when loading
	  the application. Disable this if you want to provide your own
	  efi_main() implementation.

endif  # EFI_APP

endmenu