mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-02 09:46:37 +03:00
Quentin Schulz <foss+uboot@0leil.net> says:
This migrates the net options away from the main Kconfig to net/Kconfig,
rename the current NET option to NET_LEGACY to really highlight what it
is and hopefully encourage more people to use lwIP, add a new NET
menuconfig (but keep NO_NET as an alias to NET=n for now) which then
allows us to replace all the "if legacy_stack || lwip_stack" checks with
"if net_support" which is easier to read and maintain.
The only doubt I have is wrt SYS_RX_ETH_BUFFER which seems to be needed
for now even when no network is configured? Likely due to
include/net-common.h with PKTBUFSRX?
No change in behavior is intended. Only change in defconfig including
other defconfigs where NO_NET=y or NET is not set, in which case NO_NET
is not set or NET=y should be set in the top defconfig. Similar change
required for config fragments. See commit log in patch adding NET
menuconfig for details.
This was tested based on 70fd0c3bb7 ("x86: there is no
CONFIG_UBOOT_ROMSIZE_KB_12288"), from within the GitLab CI container
trini/u-boot-gitlab-ci-runner:noble-20251013-23Jan2026 and set up
similarly as in "build all platforms in a single job" GitLab CI job.
#!/usr/bin/env bash
set -o pipefail
set -eux
ARGS="-BvelPEWM --reproducible-builds --step 0"
./tools/buildman/buildman -o ${O} --force-build $ARGS -CE $*
./tools/buildman/buildman -o ${O} $ARGS -Ssd $*
O=../build/u-boot/ ../u-boot.sh -b master^..b4/net-kconfig |& tee ../log.txt
I can't really decipher the log.txt, but there's no line starting with
+ which would be an error according to tools/buildman/builder.py help
text. Additionally, because I started the script with set -e set and
because buildman has an exit code != 0 when it fails to build a board,
and I have the summary printed (which is the second buildman call), I
believe it means all builds passed.
The summary is the following:
aarch64: (for 537/537 boards) all +0.0 rodata +0.0
uniphier_v8 : all +1 rodata +1
u-boot: add: 0/0, grow: 1/0 bytes: 1/0 (1)
function old new delta
data_gz 10640 10641 +1
arm: (for 733/733 boards) all -0.0 rodata -0.0
uniphier_v7 : all -1 rodata -1
u-boot: add: 0/0, grow: 0/-1 bytes: 0/-1 (-1)
function old new delta
data_gz 11919 11918 -1
opos6uldev : all -3 rodata -3
u-boot: add: 0/0, grow: 0/-1 bytes: 0/-3 (-3)
function old new delta
data_gz 18778 18775 -3
uniphier_ld4_sld8: all -3 rodata -3
u-boot: add: 0/0, grow: 0/-1 bytes: 0/-3 (-3)
function old new delta
data_gz 11276 11273 -3
stemmy : all -20 rodata -20
u-boot: add: 0/0, grow: 0/-1 bytes: 0/-20 (-20)
function old new delta
data_gz 15783 15763 -20
As far as I could tell this data_gz is an automatically generated array
when CONFIG_CMD_CONFIG is enabled. It is the compressed .config stored
in binary form. Because I'm changing the name of symbols, replacing a
menu with a menuconfig, additional text makes it to .config and the
"# Networking" section in .config disappears.
Here is the diff for the 5 defconfigs listed above, generated with:
for f in build/*-m; do
diff --unified=0 $f/.config $(dirname $f)/$(basename -a -s '-m' $f)/.config
done
(-m is the build directory for master, and without the suffix, it's the
top commit of this series)
"""
--- build/opos6uldev-m/.config 2026-04-20 10:53:49.804528526 +0200
+++ build/opos6uldev/.config 2026-04-20 11:03:37.430242767 +0200
@@ -970,4 +969,0 @@
-
-#
-# Networking
-#
@@ -975,0 +972 @@
+CONFIG_NET_LEGACY=y
--- build/stemmy-m/.config 2026-04-20 11:01:33.653698123 +0200
+++ build/stemmy/.config 2026-04-20 11:04:53.452577311 +0200
@@ -733,4 +732,0 @@
-
-#
-# Networking
-#
@@ -738,2 +733,0 @@
-# CONFIG_NET is not set
-# CONFIG_NET_LWIP is not set
--- build/uniphier_ld4_sld8-m/.config 2026-04-20 11:00:41.605469071 +0200
+++ build/uniphier_ld4_sld8/.config 2026-04-20 11:04:22.226439899 +0200
@@ -997,4 +996,0 @@
-
-#
-# Networking
-#
@@ -1002,0 +999 @@
+CONFIG_NET_LEGACY=y
--- build/uniphier_v7-m/.config 2026-04-20 10:53:04.019307319 +0200
+++ build/uniphier_v7/.config 2026-04-20 11:03:01.688085486 +0200
@@ -1004,4 +1003,0 @@
-
-#
-# Networking
-#
@@ -1009,0 +1006 @@
+CONFIG_NET_LEGACY=y
--- build/uniphier_v8-m/.config 2026-04-20 10:43:05.614441175 +0200
+++ build/uniphier_v8/.config 2026-04-20 10:41:03.214852130 +0200
@@ -875,4 +874,0 @@
-
-#
-# Networking
-#
@@ -880,0 +877 @@
+CONFIG_NET_LEGACY=y
"""
This is fine:
- Networking menu doesn't exist anymore so "#\n# Networking\n#\n" won't
be in .config anymore.
- opos6uldev, uniphier_ld4_sld8, uniphier_v7 and uniphier_v8 all have
(old) CONFIG_NET enabled, (new) CONFIG_NET will still be set but
CONFIG_NET_LEGACY also needs to be defined now to reflect the stack
choice (even if default),
- stemmy has CONFIG_NO_NET set, which means CONFIG_NET and
CONFIG_NET_LWIP are not reachable anymore hence why they don't need to
be part of .config,
GitLab CI was run on this series (well, not exactly, but it's only
changes to the git logs that were made):
https://source.denx.de/u-boot/contributors/qschulz/u-boot/-/pipelines/29849
It passes.
Link: https://lore.kernel.org/r/20260420-net-kconfig-v1-0-9900002d8e72@cherry.de
652 lines
21 KiB
Plaintext
652 lines
21 KiB
Plaintext
menu "UEFI Support"
|
|
|
|
config EFI_LOADER
|
|
bool "Support running UEFI applications"
|
|
depends on ( \
|
|
ARM && (SYS_CPU = arm1136 || \
|
|
SYS_CPU = arm1176 || \
|
|
SYS_CPU = armv7 || \
|
|
SYS_CPU = armv8) || \
|
|
X86 || RISCV || SANDBOX)
|
|
# We have not fully removed the requirement for some block device
|
|
depends on BLK
|
|
# We need EFI_STUB_64BIT to be set on x86_64 with EFI_STUB
|
|
depends on !EFI_STUB || !X86_64 || EFI_STUB_64BIT
|
|
# We need EFI_STUB_32BIT to be set on x86_32 with EFI_STUB
|
|
depends on !EFI_STUB || !X86 || X86_64 || EFI_STUB_32BIT
|
|
depends on !EFI_APP
|
|
# The EFI specification requires 128 KiB or more of stack space
|
|
depends on STACK_SIZE >= 0x20000
|
|
default y if !ARM || SYS_CPU = armv7 || SYS_CPU = armv8
|
|
select EFI
|
|
select CHARSET
|
|
# We need to send DM events, dynamically, in the EFI block driver
|
|
select DM_EVENT
|
|
select EVENT_DYNAMIC
|
|
select LIB_UUID
|
|
select LMB
|
|
select OF_LIBFDT
|
|
imply PARTITION_UUIDS
|
|
select REGEX
|
|
imply FAT
|
|
imply FAT_WRITE
|
|
imply FAT_RENAME
|
|
imply USB_KEYBOARD_FN_KEYS
|
|
imply VIDEO_ANSI
|
|
help
|
|
Select this option if you want to run UEFI applications (like GNU
|
|
GRUB or iPXE) on top of U-Boot. If this option is enabled, U-Boot
|
|
will expose the UEFI API to a loaded application, enabling it to
|
|
reuse U-Boot's device drivers.
|
|
|
|
if EFI_LOADER
|
|
|
|
config EFI_BINARY_EXEC
|
|
bool "Execute UEFI binary"
|
|
default y
|
|
help
|
|
Select this option if you want to execute the UEFI binary after
|
|
loading it with U-Boot load commands or other methods.
|
|
You may enable CMD_BOOTEFI_BINARY so that you can use bootefi
|
|
command to do that.
|
|
|
|
config EFI_SECURE_BOOT
|
|
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
|
|
|
|
config EFI_DEBUG_SUPPORT
|
|
bool "EFI Debug Support"
|
|
default y if !HAS_BOARD_SIZE_LIMIT
|
|
help
|
|
Select this option if you want to setup the EFI Debug Support
|
|
Table and the EFI_SYSTEM_TABLE_POINTER which is used by the debug
|
|
agent or an external debugger to determine loaded image information
|
|
in a quiescent manner.
|
|
|
|
menu "UEFI services"
|
|
|
|
config EFI_GET_TIME
|
|
bool "GetTime() runtime service"
|
|
depends on DM_RTC
|
|
default y
|
|
help
|
|
Provide the GetTime() runtime service at boottime. This service
|
|
can be used by an EFI application to read the real time clock.
|
|
|
|
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"
|
|
default y
|
|
depends on ARCH_BCM283X || FSL_LAYERSCAPE || PSCI_RESET || \
|
|
SANDBOX || SYSRESET_SBI || SYSRESET_X86
|
|
|
|
endmenu
|
|
|
|
menu "UEFI Variables"
|
|
|
|
choice
|
|
prompt "Store for non-volatile UEFI variables"
|
|
default EFI_VARIABLE_FILE_STORE if FAT_WRITE
|
|
default EFI_VARIABLE_NO_STORE
|
|
help
|
|
Select where non-volatile UEFI variables shall be stored.
|
|
|
|
config EFI_VARIABLE_FILE_STORE
|
|
bool "Store non-volatile UEFI variables as file"
|
|
depends on FAT_WRITE
|
|
help
|
|
Select this option if you want non-volatile UEFI variables to be
|
|
stored as file /ubootefi.var on the EFI system partition.
|
|
|
|
config EFI_VARIABLE_SF_STORE
|
|
bool "Store non-volatile UEFI variables in SPI Flash"
|
|
depends on SPI_FLASH
|
|
help
|
|
Select this option if you want non-volatile UEFI variables to be
|
|
stored in SPI Flash.
|
|
|
|
Define CONFIG_EFI_VARIABLE_SF_OFFSET as offset in SPI Flash to use as
|
|
the storage for variables. CONFIG_EFI_VAR_BUF_SIZE defines the space
|
|
needed.
|
|
|
|
Note that SPI Flash devices have a limited number of program/erase
|
|
cycles. Frequent updates to UEFI variables may cause excessive wear
|
|
and can permanently damage the flash device, particularly on SPI NAND
|
|
or low-end SPI NOR parts without wear leveling. This option should be
|
|
used with care on such systems, and is not recommended for platforms
|
|
where UEFI variables are updated frequently.
|
|
|
|
config EFI_MM_COMM_TEE
|
|
bool "UEFI variables storage service via the trusted world"
|
|
depends on OPTEE
|
|
help
|
|
Allowing access to the MM SP services (SPs such as StandAlonneMM, smm-gateway).
|
|
When using the u-boot OP-TEE driver, StandAlonneMM is supported.
|
|
When using the u-boot FF-A driver any MM SP is supported.
|
|
|
|
If OP-TEE is present and running StandAloneMM, dispatch all UEFI
|
|
variable related operations to that. The application will verify,
|
|
authenticate and store the variables on an RPMB.
|
|
|
|
When ARM_FFA_TRANSPORT is used, dispatch all UEFI variable related
|
|
operations to the MM SP running in the secure world.
|
|
A door bell mechanism is used to notify the SP when there is data in the shared
|
|
MM buffer. The data is copied by u-boot to the shared buffer before issuing
|
|
the door bell event.
|
|
|
|
config EFI_VARIABLE_NO_STORE
|
|
bool "Don't persist non-volatile UEFI variables"
|
|
help
|
|
If you choose this option, non-volatile variables cannot be persisted.
|
|
You could still provide non-volatile variables via
|
|
EFI_VARIABLES_PRESEED.
|
|
|
|
endchoice
|
|
|
|
config EFI_RT_VOLATILE_STORE
|
|
bool "Allow variable runtime services in volatile storage (e.g RAM)"
|
|
depends on EFI_VARIABLE_FILE_STORE
|
|
help
|
|
When EFI variables are stored on file we don't allow SetVariableRT,
|
|
since the OS doesn't know how to write that file. At the same time
|
|
we copy runtime variables in DRAM and support GetVariableRT
|
|
|
|
Enable this option to allow SetVariableRT on the RAM backend of
|
|
the EFI variable storage. The OS will be responsible for syncing
|
|
the RAM contents to the file, otherwise any changes made during
|
|
runtime won't persist reboots.
|
|
Authenticated variables are not supported. Note that this will
|
|
violate the EFI spec since writing auth variables will return
|
|
EFI_INVALID_PARAMETER
|
|
|
|
config FFA_SHARED_MM_BUF_SIZE
|
|
int "Memory size of the shared MM communication buffer"
|
|
depends on EFI_MM_COMM_TEE && ARM_FFA_TRANSPORT
|
|
help
|
|
This defines the size in bytes of the memory area reserved for the shared
|
|
buffer used for communication between the MM feature in U-Boot and
|
|
the MM SP in secure world.
|
|
The size of the memory region must be a multiple of the size of the maximum
|
|
translation granule size that is specified in the ID_AA64MMFR0_EL1 System register.
|
|
It is assumed that the MM SP knows the size of the shared MM communication buffer.
|
|
|
|
config FFA_SHARED_MM_BUF_OFFSET
|
|
int "Data offset in the shared MM communication buffer"
|
|
depends on EFI_MM_COMM_TEE && ARM_FFA_TRANSPORT
|
|
help
|
|
This defines the offset in bytes of the data read or written to in the shared
|
|
buffer by the MM SP.
|
|
|
|
config FFA_SHARED_MM_BUF_ADDR
|
|
hex "Define the address of the shared MM communication buffer"
|
|
depends on EFI_MM_COMM_TEE && ARM_FFA_TRANSPORT
|
|
help
|
|
This defines the address of the shared MM communication buffer
|
|
used for communication between the MM feature in U-Boot and
|
|
the MM SP in secure world.
|
|
It is assumed that the MM SP knows the address of the shared MM communication buffer.
|
|
|
|
config EFI_VARIABLE_SF_OFFSET
|
|
hex "EFI variables in SPI flash offset"
|
|
depends on EFI_VARIABLE_SF_STORE
|
|
help
|
|
Offset from the start of the SPI Flash where EFI variables will be stored.
|
|
This should be aligned to the sector size of SPI Flash.
|
|
|
|
config EFI_VARIABLE_SF_DEVICE_INDEX
|
|
int "Device Index for target SPI Flash"
|
|
depends on EFI_VARIABLE_SF_STORE
|
|
default 0
|
|
help
|
|
The index of SPI Flash device used for storing EFI variables. This would be
|
|
needed if there are more than 1 SPI Flash devices available to use.
|
|
|
|
config EFI_VARIABLES_PRESEED
|
|
bool "Initial values for UEFI variables"
|
|
depends on !COMPILE_TEST
|
|
depends on !EFI_MM_COMM_TEE
|
|
help
|
|
Include a file with the initial values for non-volatile UEFI variables
|
|
into the U-Boot binary. If this configuration option is set, changes
|
|
to authentication related variables (PK, KEK, db, dbx) are not
|
|
allowed.
|
|
|
|
if EFI_VARIABLES_PRESEED
|
|
|
|
config EFI_VAR_SEED_FILE
|
|
string "File with initial values of non-volatile UEFI variables"
|
|
default "ubootefi.var"
|
|
help
|
|
File with initial values of non-volatile UEFI variables. The file must
|
|
be in the same format as the storage in the EFI system partition. The
|
|
easiest way to create it is by setting the non-volatile variables in
|
|
U-Boot. If a relative file path is used, it is relative to the source
|
|
directory.
|
|
|
|
endif
|
|
|
|
config EFI_VAR_BUF_SIZE
|
|
int "Memory size of the UEFI variable store"
|
|
default 131072
|
|
range 4096 2147483647
|
|
help
|
|
This defines the size in bytes of the memory area reserved for keeping
|
|
UEFI variables.
|
|
|
|
When using StandAloneMM (CONFIG_EFI_MM_COMM_TEE=y) is used the
|
|
available size for storing variables is defined in
|
|
PcdFlashNvStorageVariableSize.
|
|
That value is probed at runtime from U-Boot. In that case,
|
|
EFI_VAR_BUF_SIZE represents the memory U-Boot reserves to present
|
|
runtime variables to the OS.
|
|
|
|
Minimum 4096, default 131072
|
|
|
|
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.
|
|
|
|
endmenu
|
|
|
|
menu "Capsule support"
|
|
|
|
config EFI_HAVE_CAPSULE_SUPPORT
|
|
bool
|
|
|
|
config EFI_RUNTIME_UPDATE_CAPSULE
|
|
bool "UpdateCapsule() runtime service"
|
|
select EFI_HAVE_CAPSULE_SUPPORT
|
|
help
|
|
Select this option if you want to use UpdateCapsule and
|
|
QueryCapsuleCapabilities API's.
|
|
|
|
config EFI_CAPSULE_ON_DISK
|
|
bool "Enable capsule-on-disk support"
|
|
depends on SYSRESET
|
|
select EFI_HAVE_CAPSULE_SUPPORT
|
|
help
|
|
Select this option if you want to use capsule-on-disk feature,
|
|
that is, capsules can be fetched and executed from files
|
|
under a specific directory on UEFI system partition instead of
|
|
via UpdateCapsule API.
|
|
|
|
config EFI_IGNORE_OSINDICATIONS
|
|
bool "Ignore OsIndications for CapsuleUpdate on-disk"
|
|
depends on EFI_CAPSULE_ON_DISK
|
|
default y if !EFI_RT_VOLATILE_STORE
|
|
help
|
|
There are boards where U-Boot does not support SetVariable at runtime.
|
|
Select this option if you want to use the capsule-on-disk feature
|
|
without setting the EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED
|
|
flag in variable OsIndications.
|
|
|
|
config EFI_CAPSULE_ON_DISK_EARLY
|
|
bool "Initiate capsule-on-disk at U-Boot boottime"
|
|
depends on EFI_CAPSULE_ON_DISK
|
|
help
|
|
Normally, without this option enabled, capsules will be
|
|
executed only at the first time of invoking one of efi command.
|
|
If this option is enabled, capsules will be enforced to be
|
|
executed as part of U-Boot initialisation so that they will
|
|
surely take place whatever is set to distro_bootcmd.
|
|
|
|
config EFI_CAPSULE_NAMESPACE_GUID
|
|
string "Namespace for dynamic capsule GUIDs"
|
|
# v4 UUID as a default for upstream U-Boot boards
|
|
default "8c9f137e-91dc-427b-b2d6-b420faebaf2a"
|
|
depends on EFI_HAVE_CAPSULE_SUPPORT
|
|
help
|
|
Define the namespace or "salt" GUID used to generate the per-image
|
|
GUIDs. This should be a GUID in the standard 8-4-4-4-12 format.
|
|
|
|
Device vendors are expected to generate their own namespace GUID
|
|
to avoid conflicts with upstream/community images.
|
|
|
|
config EFI_CAPSULE_FIRMWARE
|
|
bool
|
|
|
|
config EFI_CAPSULE_FIRMWARE_MANAGEMENT
|
|
bool "Capsule: Firmware Management Protocol"
|
|
depends on EFI_HAVE_CAPSULE_SUPPORT
|
|
default y
|
|
help
|
|
Select this option if you want to enable capsule-based
|
|
firmware update using Firmware Management Protocol.
|
|
|
|
config EFI_CAPSULE_FIRMWARE_FIT
|
|
bool "FMP driver for FIT images"
|
|
depends on FIT
|
|
depends on EFI_CAPSULE_FIRMWARE_MANAGEMENT
|
|
select UPDATE_FIT
|
|
select DFU
|
|
select EFI_CAPSULE_FIRMWARE
|
|
help
|
|
Select this option if you want to enable firmware management protocol
|
|
driver for FIT image
|
|
|
|
config EFI_CAPSULE_FIRMWARE_RAW
|
|
bool "FMP driver for raw images"
|
|
depends on EFI_CAPSULE_FIRMWARE_MANAGEMENT
|
|
depends on SANDBOX || (!SANDBOX && !EFI_CAPSULE_FIRMWARE_FIT)
|
|
select DFU_WRITE_ALT
|
|
select DFU
|
|
select EFI_CAPSULE_FIRMWARE
|
|
help
|
|
Select this option if you want to enable firmware management protocol
|
|
driver for raw image
|
|
|
|
config EFI_CAPSULE_AUTHENTICATE
|
|
bool "Update Capsule authentication"
|
|
depends on EFI_CAPSULE_FIRMWARE
|
|
depends on EFI_CAPSULE_ON_DISK
|
|
depends on EFI_CAPSULE_FIRMWARE_MANAGEMENT
|
|
select HASH
|
|
select SHA256
|
|
select RSA
|
|
select RSA_VERIFY
|
|
select RSA_VERIFY_WITH_PKEY
|
|
select X509_CERTIFICATE_PARSER
|
|
select PKCS7_MESSAGE_PARSER
|
|
select PKCS7_VERIFY
|
|
select IMAGE_SIGN_INFO
|
|
select EFI_SIGNATURE_SUPPORT
|
|
help
|
|
Select this option if you want to enable capsule
|
|
authentication
|
|
|
|
config EFI_CAPSULE_MAX
|
|
int "Max value for capsule index"
|
|
default 15
|
|
range 0 65535
|
|
help
|
|
Select the max capsule index value used for capsule report
|
|
variables. This value is used to create CapsuleMax variable.
|
|
|
|
config EFI_CAPSULE_CRT_FILE
|
|
string "Path to the EFI capsule public key certificate"
|
|
depends on EFI_CAPSULE_AUTHENTICATE
|
|
help
|
|
Provides the path to the EFI capsule public key certificate that
|
|
corresponds to the capsule signing key. This certificate will be used
|
|
to generate the EFI capsule ESL (signature list file) that gets
|
|
embedded in the platform's device tree and used for capsule
|
|
authentication at the time of capsule update.
|
|
|
|
endmenu
|
|
|
|
menu "UEFI protocol support"
|
|
|
|
config EFI_DEVICE_PATH_TO_TEXT
|
|
bool "Device path to text protocol"
|
|
default y
|
|
help
|
|
The device path to text protocol converts device nodes and paths to
|
|
human readable strings.
|
|
|
|
config EFI_DEVICE_PATH_UTIL
|
|
bool "Device path utilities protocol"
|
|
default y
|
|
help
|
|
The device path utilities protocol creates and manipulates device
|
|
paths and device nodes. It is required to run the EFI Shell.
|
|
|
|
config EFI_DT_FIXUP
|
|
bool "Device tree fixup protocol"
|
|
depends on !GENERATE_ACPI_TABLE
|
|
default y
|
|
help
|
|
The EFI device-tree fix-up protocol provides a function to let the
|
|
firmware apply fix-ups. This may be used by boot loaders.
|
|
|
|
config EFI_LOADER_HII
|
|
bool "HII protocols"
|
|
default y if !HAS_BOARD_SIZE_LIMIT
|
|
help
|
|
The Human Interface Infrastructure is a complicated framework that
|
|
allows UEFI applications to draw fancy menus and hook strings using
|
|
a translation framework.
|
|
|
|
U-Boot implements enough of its features to be able to run the UEFI
|
|
Shell, but not more than that.
|
|
|
|
config EFI_UNICODE_COLLATION_PROTOCOL2
|
|
bool "Unicode collation protocol"
|
|
default y
|
|
help
|
|
The Unicode collation protocol is used for lexical comparisons. It is
|
|
required to run the UEFI shell.
|
|
|
|
if EFI_UNICODE_COLLATION_PROTOCOL2
|
|
|
|
config EFI_UNICODE_CAPITALIZATION
|
|
bool "Support Unicode capitalization"
|
|
default y if !HAS_BOARD_SIZE_LIMIT
|
|
help
|
|
Select this option to enable correct handling of the capitalization of
|
|
Unicode codepoints in the range 0x0000-0xffff. If this option is not
|
|
set, only the the correct handling of the letters of the codepage
|
|
used by the FAT file system is ensured.
|
|
|
|
endif
|
|
|
|
config EFI_RNG_PROTOCOL
|
|
bool "EFI_RNG_PROTOCOL support"
|
|
depends on DM_RNG
|
|
default y
|
|
help
|
|
Provide a EFI_RNG_PROTOCOL implementation using the hardware random
|
|
number generator of the platform.
|
|
|
|
config EFI_TCG2_PROTOCOL
|
|
bool "EFI_TCG2_PROTOCOL support"
|
|
default y
|
|
depends on TPM_V2
|
|
select SHA1
|
|
select SHA256
|
|
select SHA384
|
|
select SHA512
|
|
select HASH
|
|
select SMBIOS_PARSER
|
|
help
|
|
Provide a EFI_TCG2_PROTOCOL implementation using the TPM hardware
|
|
of the platform.
|
|
|
|
config EFI_TCG2_PROTOCOL_MEASURE_DTB
|
|
bool "Measure DTB with EFI_TCG2_PROTOCOL"
|
|
depends on EFI_TCG2_PROTOCOL
|
|
help
|
|
When enabled, the DTB image passed to the booted EFI image is
|
|
measured using the EFI TCG2 protocol. Do not enable this feature if
|
|
the passed DTB contains data that changes across platform reboots
|
|
and cannot be used for a predictable measurement. Otherwise, this
|
|
feature allows for better measurement of the system boot sequence.
|
|
|
|
config EFI_LOAD_FILE2_INITRD
|
|
bool "EFI_FILE_LOAD2_PROTOCOL for Linux initial ramdisk"
|
|
default y
|
|
help
|
|
Linux v5.7 and later can make use of this option. If the boot option
|
|
selected by the UEFI boot manager specifies an existing file to be used
|
|
as initial RAM disk, a Linux specific Load File2 protocol will be
|
|
installed and Linux 5.7+ will ignore any initrd=<ramdisk> command line
|
|
argument.
|
|
|
|
config EFI_RISCV_BOOT_PROTOCOL
|
|
bool "RISCV_EFI_BOOT_PROTOCOL support"
|
|
default y
|
|
depends on RISCV
|
|
help
|
|
The EFI_RISCV_BOOT_PROTOCOL is used to transfer the boot hart ID
|
|
to the next boot stage. It should be enabled as it is meant to
|
|
replace the transfer via the device-tree. The latter is not
|
|
possible on systems using ACPI.
|
|
|
|
config EFI_IP4_CONFIG2_PROTOCOL
|
|
bool "EFI_IP4_CONFIG2_PROTOCOL support"
|
|
default y if ARCH_QEMU || SANDBOX
|
|
depends on NET
|
|
help
|
|
Provides an implementation of the EFI_IP4_CONFIG2_PROTOCOL, this
|
|
protocol can be used to set and get the current ip address and
|
|
other network information.
|
|
|
|
config EFI_HTTP_PROTOCOL
|
|
bool "EFI_HTTP_PROTOCOL support"
|
|
default y if ARCH_QEMU || SANDBOX
|
|
depends on WGET
|
|
help
|
|
Provides an EFI HTTP driver implementing the EFI_HTTP_PROTOCOL. and
|
|
EFI_HTTP_SERVICE_BINDING_PROTOCOL.
|
|
|
|
endmenu
|
|
|
|
menu "Misc options"
|
|
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_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
|
|
bool "Enable the UEFI ESRT generation"
|
|
depends on EFI_CAPSULE_FIRMWARE_MANAGEMENT
|
|
default y
|
|
help
|
|
Enabling this option creates the ESRT UEFI system table.
|
|
|
|
config EFI_ECPT
|
|
bool "Enable the UEFI ECPT generation"
|
|
default y
|
|
help
|
|
Enabling this option created the ECPT UEFI table.
|
|
|
|
config EFI_EBBR_2_1_CONFORMANCE
|
|
bool "Add the EBBRv2.1 conformance entry to the ECPT table"
|
|
depends on BOOTMETH_EFI_BOOTMGR
|
|
depends on EFI_ECPT
|
|
depends on EFI_LOADER_HII
|
|
depends on EFI_RISCV_BOOT_PROTOCOL || !RISCV
|
|
depends on EFI_RNG_PROTOCOL || !DM_RNG
|
|
depends on EFI_UNICODE_COLLATION_PROTOCOL2
|
|
default y
|
|
help
|
|
Enabling this option adds the EBBRv2.1 conformance entry to the ECPT UEFI table.
|
|
|
|
config EFI_CONSOLE_DISABLE_ANSI
|
|
bool "Disable ANSI escape sequence queries for console size"
|
|
help
|
|
Select this option to disable ANSI escape sequence queries for
|
|
detecting serial console size. When enabled,
|
|
efi_setup_console_size() will not send ANSI escape sequences to
|
|
the terminal and will use default 25x80 dimensions instead.
|
|
This is useful for platforms where the serial console cannot
|
|
properly handle ANSI queries, causing boot delays or garbled
|
|
output.
|
|
|
|
config EFI_SCROLL_ON_CLEAR_SCREEN
|
|
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.
|
|
|
|
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
|
|
bool "EFI HTTP Boot support"
|
|
depends on NET
|
|
select CMD_NET
|
|
select CMD_DHCP
|
|
select CMD_DNS
|
|
select CMD_WGET
|
|
select BLKMAP
|
|
help
|
|
Enabling this option adds EFI HTTP Boot support. It allows to
|
|
directly boot from network.
|
|
endmenu
|
|
|
|
config BOOTEFI_HELLO_COMPILE
|
|
bool "Compile a standard EFI hello world binary for testing"
|
|
default y
|
|
help
|
|
This compiles a standard EFI hello world application with U-Boot so
|
|
that it can be used with the test/py testing framework. This is useful
|
|
for testing that EFI is working at a basic level, and for bringing
|
|
up EFI support on a new architecture.
|
|
|
|
No additional space will be required in the resulting U-Boot binary
|
|
when this option is enabled.
|
|
|
|
config BOOTEFI_TESTAPP_COMPILE
|
|
bool "Compile an EFI test app for testing"
|
|
default y
|
|
help
|
|
This compiles an app designed for testing. It is packed into an image
|
|
by the test.py testing frame in the setup_efi_image() function.
|
|
|
|
No additional space will be required in the resulting U-Boot binary
|
|
when this option is enabled.
|
|
|
|
endif
|
|
|
|
source "lib/efi_client/Kconfig"
|
|
|
|
source "lib/efi/Kconfig"
|
|
|
|
endmenu
|