mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-08-09 00:36:59 +02:00
Kconfig: clean up the efi configuration status
The EFI_LOADER and EFI config options are randomly scattered under lib/ making it cumbersome to navigate and enable options, unless you really know what you are doing. On top of that the existing options are in random order instead of a logical one. So let's move things around a bit and move them under boot/. Present a generic UEFI entry where people can select Capsules, Protocols, Services, and an option to compile U-Boot as an EFI for X86 Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
063b4ed07d
commit
775f7657ba
@ -1,5 +1,7 @@
|
|||||||
menu "Boot options"
|
menu "Boot options"
|
||||||
|
|
||||||
|
source "lib/efi_loader/Kconfig"
|
||||||
|
|
||||||
menu "Boot images"
|
menu "Boot images"
|
||||||
|
|
||||||
config ANDROID_BOOT_IMAGE
|
config ANDROID_BOOT_IMAGE
|
||||||
|
@ -1081,8 +1081,6 @@ config SMBIOS_PARSER
|
|||||||
help
|
help
|
||||||
A simple parser for SMBIOS data.
|
A simple parser for SMBIOS data.
|
||||||
|
|
||||||
source "lib/efi/Kconfig"
|
|
||||||
source "lib/efi_loader/Kconfig"
|
|
||||||
source "lib/optee/Kconfig"
|
source "lib/optee/Kconfig"
|
||||||
|
|
||||||
config TEST_FDTDEC
|
config TEST_FDTDEC
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
menu "U-Boot as UEFI application"
|
||||||
|
depends on X86
|
||||||
|
|
||||||
config EFI
|
config EFI
|
||||||
bool "Support running U-Boot from EFI"
|
bool "Support running U-Boot from EFI"
|
||||||
depends on X86
|
depends on X86
|
||||||
@ -72,3 +75,5 @@ config EFI_RAM_SIZE
|
|||||||
use. U-Boot allocates this from EFI on start-up (along with a few
|
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.
|
other smaller amounts) and it can never be increased after that.
|
||||||
It is used as the RAM size in with U-Boot.
|
It is used as the RAM size in with U-Boot.
|
||||||
|
|
||||||
|
endmenu
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
menu "UEFI Support"
|
||||||
|
|
||||||
config EFI_LOADER
|
config EFI_LOADER
|
||||||
bool "Support running UEFI applications"
|
bool "Support running UEFI applications"
|
||||||
depends on OF_LIBFDT && ( \
|
depends on OF_LIBFDT && ( \
|
||||||
@ -41,13 +43,58 @@ config EFI_BINARY_EXEC
|
|||||||
You may enable CMD_BOOTEFI_BINARY so that you can use bootefi
|
You may enable CMD_BOOTEFI_BINARY so that you can use bootefi
|
||||||
command to do that.
|
command to do that.
|
||||||
|
|
||||||
config EFI_BOOTMGR
|
config EFI_SECURE_BOOT
|
||||||
bool "UEFI Boot Manager"
|
bool "Enable EFI secure boot support"
|
||||||
|
depends on EFI_LOADER && FIT_SIGNATURE
|
||||||
|
select HASH
|
||||||
|
select SHA256
|
||||||
|
select RSA
|
||||||
|
select RSA_VERIFY_WITH_PKEY
|
||||||
|
select IMAGE_SIGN_INFO
|
||||||
|
select ASYMMETRIC_KEY_TYPE
|
||||||
|
select ASYMMETRIC_PUBLIC_KEY_SUBTYPE
|
||||||
|
select X509_CERTIFICATE_PARSER
|
||||||
|
select PKCS7_MESSAGE_PARSER
|
||||||
|
select PKCS7_VERIFY
|
||||||
|
select MSCODE_PARSER
|
||||||
|
select EFI_SIGNATURE_SUPPORT
|
||||||
|
help
|
||||||
|
Select this option to enable EFI secure boot support.
|
||||||
|
Once SecureBoot mode is enforced, any EFI binary can run only if
|
||||||
|
it is signed with a trusted key. To do that, you need to install,
|
||||||
|
at least, PK, KEK and db.
|
||||||
|
|
||||||
|
config EFI_SIGNATURE_SUPPORT
|
||||||
|
bool
|
||||||
|
|
||||||
|
menu "UEFI services"
|
||||||
|
|
||||||
|
config EFI_GET_TIME
|
||||||
|
bool "GetTime() runtime service"
|
||||||
|
depends on DM_RTC
|
||||||
default y
|
default y
|
||||||
help
|
help
|
||||||
Select this option if you want to select the UEFI binary to be booted
|
Provide the GetTime() runtime service at boottime. This service
|
||||||
via UEFI variables Boot####, BootOrder, and BootNext. You should also
|
can be used by an EFI application to read the real time clock.
|
||||||
normally enable CMD_BOOTEFI_BOOTMGR so that the command is available.
|
|
||||||
|
config EFI_SET_TIME
|
||||||
|
bool "SetTime() runtime service"
|
||||||
|
depends on EFI_GET_TIME
|
||||||
|
default y if ARCH_QEMU || SANDBOX
|
||||||
|
help
|
||||||
|
Provide the SetTime() runtime service at boottime. This service
|
||||||
|
can be used by an EFI application to adjust the real time clock.
|
||||||
|
|
||||||
|
config EFI_HAVE_RUNTIME_RESET
|
||||||
|
# bool "Reset runtime service is available"
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
depends on ARCH_BCM283X || FSL_LAYERSCAPE || PSCI_RESET || \
|
||||||
|
SANDBOX || SYSRESET_SBI || SYSRESET_X86
|
||||||
|
|
||||||
|
endmenu
|
||||||
|
|
||||||
|
menu "UEFI Variables"
|
||||||
|
|
||||||
choice
|
choice
|
||||||
prompt "Store for non-volatile UEFI variables"
|
prompt "Store for non-volatile UEFI variables"
|
||||||
@ -172,30 +219,18 @@ config EFI_VAR_BUF_SIZE
|
|||||||
|
|
||||||
Minimum 4096, default 131072
|
Minimum 4096, default 131072
|
||||||
|
|
||||||
config EFI_GET_TIME
|
config EFI_PLATFORM_LANG_CODES
|
||||||
bool "GetTime() runtime service"
|
string "Language codes supported by firmware"
|
||||||
depends on DM_RTC
|
default "en-US"
|
||||||
default y
|
|
||||||
help
|
help
|
||||||
Provide the GetTime() runtime service at boottime. This service
|
This value is used to initialize the PlatformLangCodes variable. Its
|
||||||
can be used by an EFI application to read the real time clock.
|
value is a semicolon (;) separated list of language codes in native
|
||||||
|
RFC 4646 format, e.g. "en-US;de-DE". The first language code is used
|
||||||
|
to initialize the PlatformLang variable.
|
||||||
|
|
||||||
config EFI_SET_TIME
|
endmenu
|
||||||
bool "SetTime() runtime service"
|
|
||||||
depends on EFI_GET_TIME
|
|
||||||
default y if ARCH_QEMU || SANDBOX
|
|
||||||
help
|
|
||||||
Provide the SetTime() runtime service at boottime. This service
|
|
||||||
can be used by an EFI application to adjust the real time clock.
|
|
||||||
|
|
||||||
config EFI_SCROLL_ON_CLEAR_SCREEN
|
menu "Capsule support"
|
||||||
bool "Avoid overwriting previous output on clear screen"
|
|
||||||
help
|
|
||||||
Instead of erasing the screen content when the console screen should
|
|
||||||
be cleared, emit blank new lines so that previous output is scrolled
|
|
||||||
out of sight rather than overwritten. On serial consoles this allows
|
|
||||||
to capture complete boot logs (except for interactive menus etc.)
|
|
||||||
and can ease debugging related issues.
|
|
||||||
|
|
||||||
config EFI_HAVE_CAPSULE_SUPPORT
|
config EFI_HAVE_CAPSULE_SUPPORT
|
||||||
bool
|
bool
|
||||||
@ -309,6 +344,10 @@ config EFI_CAPSULE_CRT_FILE
|
|||||||
embedded in the platform's device tree and used for capsule
|
embedded in the platform's device tree and used for capsule
|
||||||
authentication at the time of capsule update.
|
authentication at the time of capsule update.
|
||||||
|
|
||||||
|
endmenu
|
||||||
|
|
||||||
|
menu "UEFI protocol support"
|
||||||
|
|
||||||
config EFI_DEVICE_PATH_TO_TEXT
|
config EFI_DEVICE_PATH_TO_TEXT
|
||||||
bool "Device path to text protocol"
|
bool "Device path to text protocol"
|
||||||
default y
|
default y
|
||||||
@ -362,39 +401,6 @@ config EFI_UNICODE_CAPITALIZATION
|
|||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
config EFI_LOADER_BOUNCE_BUFFER
|
|
||||||
bool "EFI Applications use bounce buffers for DMA operations"
|
|
||||||
help
|
|
||||||
Some hardware does not support DMA to full 64bit addresses. For this
|
|
||||||
hardware we can create a bounce buffer so that payloads don't have to
|
|
||||||
worry about platform details.
|
|
||||||
|
|
||||||
config EFI_PLATFORM_LANG_CODES
|
|
||||||
string "Language codes supported by firmware"
|
|
||||||
default "en-US"
|
|
||||||
help
|
|
||||||
This value is used to initialize the PlatformLangCodes variable. Its
|
|
||||||
value is a semicolon (;) separated list of language codes in native
|
|
||||||
RFC 4646 format, e.g. "en-US;de-DE". The first language code is used
|
|
||||||
to initialize the PlatformLang variable.
|
|
||||||
|
|
||||||
config EFI_HAVE_RUNTIME_RESET
|
|
||||||
# bool "Reset runtime service is available"
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
depends on ARCH_BCM283X || FSL_LAYERSCAPE || PSCI_RESET || \
|
|
||||||
SANDBOX || SYSRESET_SBI || SYSRESET_X86
|
|
||||||
|
|
||||||
config EFI_GRUB_ARM32_WORKAROUND
|
|
||||||
bool "Workaround for GRUB on 32bit ARM"
|
|
||||||
default n if ARCH_BCM283X || ARCH_SUNXI || ARCH_QEMU
|
|
||||||
default y
|
|
||||||
depends on ARM && !ARM64
|
|
||||||
help
|
|
||||||
GRUB prior to version 2.04 requires U-Boot to disable caches. This
|
|
||||||
workaround currently is also needed on systems with caches that
|
|
||||||
cannot be managed via CP15.
|
|
||||||
|
|
||||||
config EFI_RNG_PROTOCOL
|
config EFI_RNG_PROTOCOL
|
||||||
bool "EFI_RNG_PROTOCOL support"
|
bool "EFI_RNG_PROTOCOL support"
|
||||||
depends on DM_RNG
|
depends on DM_RNG
|
||||||
@ -447,29 +453,36 @@ config EFI_LOAD_FILE2_INITRD
|
|||||||
installed and Linux 5.7+ will ignore any initrd=<ramdisk> command line
|
installed and Linux 5.7+ will ignore any initrd=<ramdisk> command line
|
||||||
argument.
|
argument.
|
||||||
|
|
||||||
config EFI_SECURE_BOOT
|
config EFI_RISCV_BOOT_PROTOCOL
|
||||||
bool "Enable EFI secure boot support"
|
bool "RISCV_EFI_BOOT_PROTOCOL support"
|
||||||
depends on EFI_LOADER && FIT_SIGNATURE
|
default y
|
||||||
select HASH
|
depends on RISCV
|
||||||
select SHA256
|
|
||||||
select RSA
|
|
||||||
select RSA_VERIFY_WITH_PKEY
|
|
||||||
select IMAGE_SIGN_INFO
|
|
||||||
select ASYMMETRIC_KEY_TYPE
|
|
||||||
select ASYMMETRIC_PUBLIC_KEY_SUBTYPE
|
|
||||||
select X509_CERTIFICATE_PARSER
|
|
||||||
select PKCS7_MESSAGE_PARSER
|
|
||||||
select PKCS7_VERIFY
|
|
||||||
select MSCODE_PARSER
|
|
||||||
select EFI_SIGNATURE_SUPPORT
|
|
||||||
help
|
help
|
||||||
Select this option to enable EFI secure boot support.
|
The EFI_RISCV_BOOT_PROTOCOL is used to transfer the boot hart ID
|
||||||
Once SecureBoot mode is enforced, any EFI binary can run only if
|
to the next boot stage. It should be enabled as it is meant to
|
||||||
it is signed with a trusted key. To do that, you need to install,
|
replace the transfer via the device-tree. The latter is not
|
||||||
at least, PK, KEK and db.
|
possible on systems using ACPI.
|
||||||
|
|
||||||
config EFI_SIGNATURE_SUPPORT
|
endmenu
|
||||||
bool
|
|
||||||
|
menu "Misc options"
|
||||||
|
config EFI_LOADER_BOUNCE_BUFFER
|
||||||
|
bool "EFI Applications use bounce buffers for DMA operations"
|
||||||
|
depends on ARM64
|
||||||
|
help
|
||||||
|
Some hardware does not support DMA to full 64bit addresses. For this
|
||||||
|
hardware we can create a bounce buffer so that payloads don't have to
|
||||||
|
worry about platform details.
|
||||||
|
|
||||||
|
config EFI_GRUB_ARM32_WORKAROUND
|
||||||
|
bool "Workaround for GRUB on 32bit ARM"
|
||||||
|
default n if ARCH_BCM283X || ARCH_SUNXI || ARCH_QEMU
|
||||||
|
default y
|
||||||
|
depends on ARM && !ARM64
|
||||||
|
help
|
||||||
|
GRUB prior to version 2.04 requires U-Boot to disable caches. This
|
||||||
|
workaround currently is also needed on systems with caches that
|
||||||
|
cannot be managed via CP15.
|
||||||
|
|
||||||
config EFI_ESRT
|
config EFI_ESRT
|
||||||
bool "Enable the UEFI ESRT generation"
|
bool "Enable the UEFI ESRT generation"
|
||||||
@ -496,15 +509,26 @@ config EFI_EBBR_2_1_CONFORMANCE
|
|||||||
help
|
help
|
||||||
Enabling this option adds the EBBRv2.1 conformance entry to the ECPT UEFI table.
|
Enabling this option adds the EBBRv2.1 conformance entry to the ECPT UEFI table.
|
||||||
|
|
||||||
config EFI_RISCV_BOOT_PROTOCOL
|
config EFI_SCROLL_ON_CLEAR_SCREEN
|
||||||
bool "RISCV_EFI_BOOT_PROTOCOL support"
|
bool "Avoid overwriting previous output on clear screen"
|
||||||
default y
|
|
||||||
depends on RISCV
|
|
||||||
help
|
help
|
||||||
The EFI_RISCV_BOOT_PROTOCOL is used to transfer the boot hart ID
|
Instead of erasing the screen content when the console screen should
|
||||||
to the next boot stage. It should be enabled as it is meant to
|
be cleared, emit blank new lines so that previous output is scrolled
|
||||||
replace the transfer via the device-tree. The latter is not
|
out of sight rather than overwritten. On serial consoles this allows
|
||||||
possible on systems using ACPI.
|
to capture complete boot logs (except for interactive menus etc.)
|
||||||
|
and can ease debugging related issues.
|
||||||
|
|
||||||
|
endmenu
|
||||||
|
|
||||||
|
menu "EFI bootmanager"
|
||||||
|
|
||||||
|
config EFI_BOOTMGR
|
||||||
|
bool "UEFI Boot Manager"
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Select this option if you want to select the UEFI binary to be booted
|
||||||
|
via UEFI variables Boot####, BootOrder, and BootNext. You should also
|
||||||
|
normally enable CMD_BOOTEFI_BOOTMGR so that the command is available.
|
||||||
|
|
||||||
config EFI_HTTP_BOOT
|
config EFI_HTTP_BOOT
|
||||||
bool "EFI HTTP Boot support"
|
bool "EFI HTTP Boot support"
|
||||||
@ -514,5 +538,10 @@ config EFI_HTTP_BOOT
|
|||||||
help
|
help
|
||||||
Enabling this option adds EFI HTTP Boot support. It allows to
|
Enabling this option adds EFI HTTP Boot support. It allows to
|
||||||
directly boot from network.
|
directly boot from network.
|
||||||
|
endmenu
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
source "lib/efi/Kconfig"
|
||||||
|
|
||||||
|
endmenu
|
||||||
|
Loading…
Reference in New Issue
Block a user