mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
3b510807f5
This is selected by PARTITION_UUIDS which has a separate option for SPL. Add an SPL option for LIB_UUID also, so that we can keep them consistent. Also add one for PARTITION_TYPE_GUID to avoid a build error in part_efi.c which wants to call a uuid function in SPL. Signed-off-by: Simon Glass <sjg@chromium.org>
1106 lines
34 KiB
Text
1106 lines
34 KiB
Text
menu "Library routines"
|
|
|
|
config ADDR_MAP
|
|
bool "Enable support for non-identity virtual-physical mappings"
|
|
help
|
|
Enables helper code for implementing non-identity virtual-physical
|
|
memory mappings for 32bit CPUs.
|
|
|
|
This library only works in the post-relocation phase.
|
|
|
|
config SYS_NUM_ADDR_MAP
|
|
int "Size of the address-map table"
|
|
depends on ADDR_MAP
|
|
default 16
|
|
help
|
|
Sets the number of entries in the virtual-physical mapping table.
|
|
|
|
config SYS_TIMER_COUNTS_DOWN
|
|
bool "System timer counts down rathe than up"
|
|
|
|
config PHYSMEM
|
|
bool "Access to physical memory region (> 4G)"
|
|
help
|
|
Some basic support is provided for operations on memory not
|
|
normally accessible to 32-bit U-Boot - e.g. some architectures
|
|
support access to more than 4G of memory on 32-bit
|
|
machines using physical address extension or similar.
|
|
Enable this to access this basic support, which only supports clearing
|
|
the memory.
|
|
|
|
config BCH
|
|
bool "Enable Software based BCH ECC"
|
|
help
|
|
Enables software based BCH ECC algorithm present in lib/bch.c
|
|
This is used by SoC platforms which do not have built-in ELM
|
|
hardware engine required for BCH ECC correction.
|
|
|
|
config BINMAN_FDT
|
|
bool "Allow access to binman information in the device tree"
|
|
depends on BINMAN && DM && OF_CONTROL
|
|
default y if OF_SEPARATE || OF_EMBED
|
|
help
|
|
This enables U-Boot to access information about binman entries,
|
|
stored in the device tree in a binman node. Typical uses are to
|
|
locate entries in the firmware image. See binman.h for the available
|
|
functionality.
|
|
|
|
config CC_OPTIMIZE_LIBS_FOR_SPEED
|
|
bool "Optimize libraries for speed"
|
|
help
|
|
Enabling this option will pass "-O2" to gcc when compiling
|
|
under "lib" directory.
|
|
|
|
If unsure, say N.
|
|
|
|
config CHARSET
|
|
bool
|
|
|
|
config DYNAMIC_CRC_TABLE
|
|
bool "Enable Dynamic tables for CRC"
|
|
help
|
|
Enable this option to calculate entries for CRC tables at runtime.
|
|
This can be helpful when reducing the size of the build image
|
|
|
|
config HAVE_ARCH_IOMAP
|
|
bool
|
|
help
|
|
Enable this option if architecture provides io{read,write}{8,16,32}
|
|
I/O accessor functions.
|
|
|
|
config HAVE_PRIVATE_LIBGCC
|
|
bool
|
|
|
|
config LIB_UUID
|
|
bool
|
|
|
|
config SPL_LIB_UUID
|
|
depends on SPL
|
|
bool
|
|
|
|
config SEMIHOSTING
|
|
bool "Support semihosting"
|
|
depends on ARM || RISCV
|
|
help
|
|
Semihosting is a method for a target to communicate with a host
|
|
debugger. It uses special instructions which the debugger will trap
|
|
on and interpret. This allows U-Boot to read/write files, print to
|
|
the console, and execute arbitrary commands on the host system.
|
|
|
|
Enabling this option will add support for reading and writing files
|
|
on the host system. If you don't have a debugger attached then trying
|
|
to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
|
|
|
|
config SEMIHOSTING_FALLBACK
|
|
bool "Recover gracefully when semihosting fails"
|
|
depends on SEMIHOSTING && (ARM64 || RISCV)
|
|
default y
|
|
help
|
|
Normally, if U-Boot makes a semihosting call and no debugger is
|
|
attached, then it will panic due to a synchronous abort
|
|
exception. This config adds an exception handler which will allow
|
|
U-Boot to recover. Say 'y' if unsure.
|
|
|
|
config SPL_SEMIHOSTING
|
|
bool "Support semihosting in SPL"
|
|
depends on SPL && (ARM || RISCV)
|
|
help
|
|
Semihosting is a method for a target to communicate with a host
|
|
debugger. It uses special instructions which the debugger will trap
|
|
on and interpret. This allows U-Boot to read/write files, print to
|
|
the console, and execute arbitrary commands on the host system.
|
|
|
|
Enabling this option will add support for reading and writing files
|
|
on the host system. If you don't have a debugger attached then trying
|
|
to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
|
|
|
|
config SPL_SEMIHOSTING_FALLBACK
|
|
bool "Recover gracefully when semihosting fails in SPL"
|
|
depends on SPL_SEMIHOSTING && (ARM64 || RISCV)
|
|
select ARMV8_SPL_EXCEPTION_VECTORS if ARM64
|
|
default y
|
|
help
|
|
Normally, if U-Boot makes a semihosting call and no debugger is
|
|
attached, then it will panic due to a synchronous abort
|
|
exception. This config adds an exception handler which will allow
|
|
U-Boot to recover. Say 'y' if unsure.
|
|
|
|
config PRINTF
|
|
bool
|
|
default y
|
|
|
|
config SPL_PRINTF
|
|
bool
|
|
select SPL_SPRINTF
|
|
select SPL_STRTO if !SPL_USE_TINY_PRINTF
|
|
|
|
config TPL_PRINTF
|
|
bool
|
|
select TPL_SPRINTF
|
|
select TPL_STRTO if !TPL_USE_TINY_PRINTF
|
|
|
|
config VPL_PRINTF
|
|
bool
|
|
select VPL_SPRINTF
|
|
select VPL_STRTO if !VPL_USE_TINY_PRINTF
|
|
|
|
config SPRINTF
|
|
bool
|
|
default y
|
|
|
|
config SPL_SPRINTF
|
|
bool
|
|
|
|
config TPL_SPRINTF
|
|
bool
|
|
|
|
config VPL_SPRINTF
|
|
bool
|
|
|
|
config SSCANF
|
|
bool
|
|
|
|
config STRTO
|
|
bool
|
|
default y
|
|
|
|
config SPL_STRTO
|
|
bool
|
|
|
|
config TPL_STRTO
|
|
bool
|
|
|
|
config VPL_STRTO
|
|
bool
|
|
|
|
config IMAGE_SPARSE
|
|
bool
|
|
|
|
config IMAGE_SPARSE_FILLBUF_SIZE
|
|
hex "Android sparse image CHUNK_TYPE_FILL buffer size"
|
|
default 0x80000
|
|
depends on IMAGE_SPARSE
|
|
help
|
|
Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
|
|
chunks.
|
|
|
|
config USE_PRIVATE_LIBGCC
|
|
bool "Use private libgcc"
|
|
depends on HAVE_PRIVATE_LIBGCC
|
|
default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
|
|
help
|
|
This option allows you to use the built-in libgcc implementation
|
|
of U-Boot instead of the one provided by the compiler.
|
|
If unsure, say N.
|
|
|
|
config SYS_HZ
|
|
int
|
|
default 1000
|
|
help
|
|
The frequency of the timer returned by get_timer().
|
|
get_timer() must operate in milliseconds and this option must be
|
|
set to 1000.
|
|
|
|
config SPL_USE_TINY_PRINTF
|
|
bool "Enable tiny printf() version in SPL"
|
|
depends on SPL
|
|
default y
|
|
help
|
|
This option enables a tiny, stripped down printf version.
|
|
This should only be used in space limited environments,
|
|
like SPL versions with hard memory limits. This version
|
|
reduces the code size by about 2.5KiB on armv7.
|
|
|
|
The supported format specifiers are %c, %s, %u/%d and %x.
|
|
|
|
config TPL_USE_TINY_PRINTF
|
|
bool "Enable tiny printf() version in TPL"
|
|
depends on TPL
|
|
default y if SPL_USE_TINY_PRINTF
|
|
help
|
|
This option enables a tiny, stripped down printf version.
|
|
This should only be used in space limited environments,
|
|
like SPL versions with hard memory limits. This version
|
|
reduces the code size by about 2.5KiB on armv7.
|
|
|
|
The supported format specifiers are %c, %s, %u/%d and %x.
|
|
|
|
config VPL_USE_TINY_PRINTF
|
|
bool "Enable tiny printf() version for VPL"
|
|
depends on VPL
|
|
help
|
|
This option enables a tiny, stripped down printf version.
|
|
This should only be used in space limited environments,
|
|
like SPL versions with hard memory limits. This version
|
|
reduces the code size by about 2.5KiB on armv7.
|
|
|
|
The supported format specifiers are %c, %s, %u/%d and %x.
|
|
|
|
config PANIC_HANG
|
|
bool "Do not reset the system on fatal error"
|
|
help
|
|
Define this option to stop the system in case of a fatal error,
|
|
so that you have to reset it manually. This is probably NOT a good
|
|
idea for an embedded system where you want the system to reboot
|
|
automatically as fast as possible, but it may be useful during
|
|
development since you can try to debug the conditions that lead to
|
|
the situation.
|
|
|
|
config REGEX
|
|
bool "Enable regular expression support"
|
|
default y if NET
|
|
help
|
|
If this variable is defined, U-Boot is linked against the
|
|
SLRE (Super Light Regular Expression) library, which adds
|
|
regex support to some commands, for example "env grep" and
|
|
"setexpr".
|
|
|
|
choice
|
|
prompt "Pseudo-random library support type"
|
|
depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
|
|
RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
|
|
default LIB_RAND
|
|
help
|
|
Select the library to provide pseudo-random number generator
|
|
functions. LIB_HW_RAND supports certain hardware engines that
|
|
provide this functionality. If in doubt, select LIB_RAND.
|
|
|
|
config LIB_RAND
|
|
bool "Pseudo-random library support"
|
|
|
|
config LIB_HW_RAND
|
|
bool "HW Engine for random library support"
|
|
|
|
endchoice
|
|
|
|
config SUPPORT_ACPI
|
|
bool
|
|
help
|
|
Enable this if your arch or board can support generating ACPI
|
|
(Advanced Configuration and Power Interface) tables. In this case
|
|
U-Boot can generate these tables and pass them to the Operating
|
|
System.
|
|
|
|
config GENERATE_ACPI_TABLE
|
|
bool "Generate an ACPI (Advanced Configuration and Power Interface) table"
|
|
depends on SUPPORT_ACPI
|
|
select QFW if QEMU
|
|
help
|
|
The Advanced Configuration and Power Interface (ACPI) specification
|
|
provides an open standard for device configuration and management
|
|
by the operating system. It defines platform-independent interfaces
|
|
for configuration and power management monitoring.
|
|
|
|
config SPL_TINY_MEMSET
|
|
bool "Use a very small memset() in SPL"
|
|
depends on SPL
|
|
help
|
|
The faster memset() is the arch-specific one (if available) enabled
|
|
by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
|
|
better performance by writing a word at a time. But in very
|
|
size-constrained environments even this may be too big. Enable this
|
|
option to reduce code size slightly at the cost of some speed.
|
|
|
|
config TPL_TINY_MEMSET
|
|
bool "Use a very small memset() in TPL"
|
|
depends on TPL
|
|
help
|
|
The faster memset() is the arch-specific one (if available) enabled
|
|
by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
|
|
better performance by writing a word at a time. But in very
|
|
size-constrained environments even this may be too big. Enable this
|
|
option to reduce code size slightly at the cost of some speed.
|
|
|
|
config RBTREE
|
|
bool
|
|
|
|
config BITREVERSE
|
|
bool "Bit reverse library from Linux"
|
|
|
|
config TRACE
|
|
bool "Support for tracing of function calls and timing"
|
|
imply CMD_TRACE
|
|
imply TIMER_EARLY
|
|
help
|
|
Enables function tracing within U-Boot. This allows recording of call
|
|
traces including timing information. The command can write data to
|
|
memory for exporting for analysis (e.g. using bootchart).
|
|
See doc/README.trace for full details.
|
|
|
|
config TRACE_BUFFER_SIZE
|
|
hex "Size of trace buffer in U-Boot"
|
|
depends on TRACE
|
|
default 0x01000000
|
|
help
|
|
Sets the size of the trace buffer in U-Boot. This is allocated from
|
|
memory during relocation. If this buffer is too small, the trace
|
|
history will be truncated, with later records omitted.
|
|
|
|
If early trace is enabled (i.e. before relocation), this buffer must
|
|
be large enough to include all the data from the early trace buffer as
|
|
well, since this is copied over to the main buffer during relocation.
|
|
|
|
A trace record is emitted for each function call and each record is
|
|
12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
|
|
the size is too small then 'trace stats' will show a message saying
|
|
how many records were dropped due to buffer overflow.
|
|
|
|
config TRACE_CALL_DEPTH_LIMIT
|
|
int "Trace call depth limit"
|
|
depends on TRACE
|
|
default 15
|
|
help
|
|
Sets the maximum call depth up to which function calls are recorded.
|
|
|
|
config TRACE_EARLY
|
|
bool "Enable tracing before relocation"
|
|
depends on TRACE
|
|
help
|
|
Sometimes it is helpful to trace execution of U-Boot before
|
|
relocation. This is possible by using a arch-specific, fixed buffer
|
|
position in memory. Enable this option to start tracing as early as
|
|
possible after U-Boot starts.
|
|
|
|
config TRACE_EARLY_SIZE
|
|
hex "Size of early trace buffer in U-Boot"
|
|
depends on TRACE_EARLY
|
|
default 0x00100000
|
|
help
|
|
Sets the size of the early trace buffer in bytes. This is used to hold
|
|
tracing information before relocation.
|
|
|
|
config TRACE_EARLY_CALL_DEPTH_LIMIT
|
|
int "Early trace call depth limit"
|
|
depends on TRACE_EARLY
|
|
default 15
|
|
help
|
|
Sets the maximum call depth up to which function calls are recorded
|
|
during early tracing.
|
|
|
|
config TRACE_EARLY_ADDR
|
|
hex "Address of early trace buffer in U-Boot"
|
|
depends on TRACE_EARLY
|
|
default 0x00100000
|
|
help
|
|
Sets the address of the early trace buffer in U-Boot. This memory
|
|
must be accessible before relocation.
|
|
|
|
A trace record is emitted for each function call and each record is
|
|
12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
|
|
the size is too small then the message which says the amount of early
|
|
data being coped will the the same as the
|
|
|
|
config CIRCBUF
|
|
bool "Enable circular buffer support"
|
|
|
|
source lib/dhry/Kconfig
|
|
|
|
menu "Security support"
|
|
|
|
config AES
|
|
bool "Support the AES algorithm"
|
|
help
|
|
This provides a means to encrypt and decrypt data using the AES
|
|
(Advanced Encryption Standard). This algorithm uses a symetric key
|
|
and is widely used as a streaming cipher. Different key lengths are
|
|
supported by the algorithm but only a 128-bit key is supported at
|
|
present.
|
|
|
|
source lib/ecdsa/Kconfig
|
|
source lib/rsa/Kconfig
|
|
source lib/crypto/Kconfig
|
|
source lib/crypt/Kconfig
|
|
|
|
config TPM
|
|
bool "Trusted Platform Module (TPM) Support"
|
|
depends on DM
|
|
imply DM_RNG
|
|
help
|
|
This enables support for TPMs which can be used to provide security
|
|
features for your board. The TPM can be connected via LPC or I2C
|
|
and a sandbox TPM is provided for testing purposes. Use the 'tpm'
|
|
command to interactive the TPM. Driver model support is provided
|
|
for the low-level TPM interface, but only one TPM is supported at
|
|
a time by the TPM library.
|
|
|
|
config SPL_TPM
|
|
bool "Trusted Platform Module (TPM) Support in SPL"
|
|
depends on SPL_DM
|
|
imply SPL_CRC8
|
|
help
|
|
This enables support for TPMs which can be used to provide security
|
|
features for your board. The TPM can be connected via LPC or I2C
|
|
and a sandbox TPM is provided for testing purposes. Use the 'tpm'
|
|
command to interactive the TPM. Driver model support is provided
|
|
for the low-level TPM interface, but only one TPM is supported at
|
|
a time by the TPM library.
|
|
|
|
config TPL_TPM
|
|
bool "Trusted Platform Module (TPM) Support in TPL"
|
|
depends on TPL_DM
|
|
help
|
|
This enables support for TPMs which can be used to provide security
|
|
features for your board. The TPM can be connected via LPC or I2C
|
|
and a sandbox TPM is provided for testing purposes. Use the 'tpm'
|
|
command to interactive the TPM. Driver model support is provided
|
|
for the low-level TPM interface, but only one TPM is supported at
|
|
a time by the TPM library.
|
|
|
|
config VPL_TPM
|
|
bool "Trusted Platform Module (TPM) Support in VPL"
|
|
depends on VPL_DM
|
|
help
|
|
This enables support for TPMs which can be used to provide security
|
|
features for your board. The TPM can be connected via LPC or I2C
|
|
and a sandbox TPM is provided for testing purposes. Use the 'tpm'
|
|
command to interactive the TPM. Driver model support is provided
|
|
for the low-level TPM interface, but only one TPM is supported at
|
|
a time by the TPM library.
|
|
|
|
endmenu
|
|
|
|
menu "Android Verified Boot"
|
|
|
|
config LIBAVB
|
|
bool "Android Verified Boot 2.0 support"
|
|
depends on ANDROID_BOOT_IMAGE
|
|
help
|
|
This enables support of Android Verified Boot 2.0 which can be used
|
|
to assure the end user of the integrity of the software running on a
|
|
device. Introduces such features as boot chain of trust, rollback
|
|
protection etc.
|
|
|
|
endmenu
|
|
|
|
menu "Hashing Support"
|
|
|
|
config BLAKE2
|
|
bool "Enable BLAKE2 support"
|
|
help
|
|
This option enables support of hashing using BLAKE2B algorithm.
|
|
The hash is calculated in software.
|
|
The BLAKE2 algorithm produces a hash value (digest) between 1 and
|
|
64 bytes.
|
|
|
|
config SHA1
|
|
bool "Enable SHA1 support"
|
|
help
|
|
This option enables support of hashing using SHA1 algorithm.
|
|
The hash is calculated in software.
|
|
The SHA1 algorithm produces a 160-bit (20-byte) hash value
|
|
(digest).
|
|
|
|
config SHA256
|
|
bool "Enable SHA256 support"
|
|
help
|
|
This option enables support of hashing using SHA256 algorithm.
|
|
The hash is calculated in software.
|
|
The SHA256 algorithm produces a 256-bit (32-byte) hash value
|
|
(digest).
|
|
|
|
config SHA512
|
|
bool "Enable SHA512 support"
|
|
help
|
|
This option enables support of hashing using SHA512 algorithm.
|
|
The hash is calculated in software.
|
|
The SHA512 algorithm produces a 512-bit (64-byte) hash value
|
|
(digest).
|
|
|
|
config SHA384
|
|
bool "Enable SHA384 support"
|
|
select SHA512
|
|
help
|
|
This option enables support of hashing using SHA384 algorithm.
|
|
The hash is calculated in software. This is also selects SHA512,
|
|
because these implementations share the bulk of the code..
|
|
The SHA384 algorithm produces a 384-bit (48-byte) hash value
|
|
(digest).
|
|
|
|
config SHA_HW_ACCEL
|
|
bool "Enable hardware acceleration for SHA hash functions"
|
|
help
|
|
This option enables hardware acceleration for the SHA1 and SHA256
|
|
hashing algorithms. This affects the 'hash' command and also the
|
|
hash_lookup_algo() function.
|
|
|
|
if SPL
|
|
|
|
config SPL_SHA1
|
|
bool "Enable SHA1 support in SPL"
|
|
default y if SHA1
|
|
help
|
|
This option enables support of hashing using SHA1 algorithm.
|
|
The hash is calculated in software.
|
|
The SHA1 algorithm produces a 160-bit (20-byte) hash value
|
|
(digest).
|
|
|
|
config SPL_SHA256
|
|
bool "Enable SHA256 support in SPL"
|
|
default y if SHA256
|
|
help
|
|
This option enables support of hashing using SHA256 algorithm.
|
|
The hash is calculated in software.
|
|
The SHA256 algorithm produces a 256-bit (32-byte) hash value
|
|
(digest).
|
|
|
|
config SPL_SHA512
|
|
bool "Enable SHA512 support in SPL"
|
|
default y if SHA512
|
|
help
|
|
This option enables support of hashing using SHA512 algorithm.
|
|
The hash is calculated in software.
|
|
The SHA512 algorithm produces a 512-bit (64-byte) hash value
|
|
(digest).
|
|
|
|
config SPL_SHA384
|
|
bool "Enable SHA384 support in SPL"
|
|
default y if SHA384
|
|
select SPL_SHA512
|
|
help
|
|
This option enables support of hashing using SHA384 algorithm.
|
|
The hash is calculated in software. This is also selects SHA512,
|
|
because these implementations share the bulk of the code..
|
|
The SHA384 algorithm produces a 384-bit (48-byte) hash value
|
|
(digest).
|
|
|
|
config SPL_SHA_HW_ACCEL
|
|
bool "Enable hardware acceleration for SHA hash functions"
|
|
default y if SHA_HW_ACCEL
|
|
help
|
|
This option enables hardware acceleration for the SHA1 and SHA256
|
|
hashing algorithms. This affects the 'hash' command and also the
|
|
hash_lookup_algo() function.
|
|
|
|
config SPL_SHA_PROG_HW_ACCEL
|
|
bool "Enable Progressive hashing support using hardware in SPL"
|
|
depends on SHA_PROG_HW_ACCEL
|
|
default y
|
|
help
|
|
This option enables hardware-acceleration for SHA progressive
|
|
hashing.
|
|
Data can be streamed in a block at a time and the hashing is
|
|
performed in hardware.
|
|
|
|
endif
|
|
|
|
config VPL_SHA1
|
|
bool "Enable SHA1 support in VPL"
|
|
depends on VPL
|
|
default y if SHA1
|
|
help
|
|
This option enables support of hashing using SHA1 algorithm.
|
|
The hash is calculated in software.
|
|
The SHA1 algorithm produces a 160-bit (20-byte) hash value
|
|
(digest).
|
|
|
|
config VPL_SHA256
|
|
bool "Enable SHA256 support in VPL"
|
|
depends on VPL
|
|
default y if SHA256
|
|
help
|
|
This option enables support of hashing using SHA256 algorithm.
|
|
The hash is calculated in software.
|
|
The SHA256 algorithm produces a 256-bit (32-byte) hash value
|
|
(digest).
|
|
|
|
if SHA_HW_ACCEL
|
|
|
|
config SHA512_HW_ACCEL
|
|
bool "Enable hardware acceleration for SHA512"
|
|
depends on SHA512
|
|
help
|
|
This option enables hardware acceleration for the SHA384 and SHA512
|
|
hashing algorithms. This affects the 'hash' command and also the
|
|
hash_lookup_algo() function.
|
|
|
|
config SHA_PROG_HW_ACCEL
|
|
bool "Enable Progressive hashing support using hardware"
|
|
help
|
|
This option enables hardware-acceleration for SHA progressive
|
|
hashing.
|
|
Data can be streamed in a block at a time and the hashing is
|
|
performed in hardware.
|
|
|
|
endif
|
|
|
|
config MD5
|
|
bool "Support MD5 algorithm"
|
|
help
|
|
This option enables MD5 support. MD5 is an algorithm designed
|
|
in 1991 that produces a 16-byte digest (or checksum) from its input
|
|
data. It has a number of vulnerabilities which preclude its use in
|
|
security applications, but it can be useful for providing a quick
|
|
checksum of a block of data.
|
|
|
|
config SPL_MD5
|
|
bool "Support MD5 algorithm in SPL"
|
|
depends on SPL
|
|
help
|
|
This option enables MD5 support in SPL. MD5 is an algorithm designed
|
|
in 1991 that produces a 16-byte digest (or checksum) from its input
|
|
data. It has a number of vulnerabilities which preclude its use in
|
|
security applications, but it can be useful for providing a quick
|
|
checksum of a block of data.
|
|
|
|
config CRC8
|
|
def_bool y
|
|
help
|
|
Enables CRC8 support in U-Boot. This is normally required. CRC8 is
|
|
a simple and fast checksumming algorithm which does a bytewise
|
|
checksum with feedback to produce an 8-bit result. The code is small
|
|
and it does not require a lookup table (unlike CRC32).
|
|
|
|
config SPL_CRC8
|
|
bool "Support CRC8 in SPL"
|
|
depends on SPL
|
|
help
|
|
Enables CRC8 support in SPL. This is not normally required. CRC8 is
|
|
a simple and fast checksumming algorithm which does a bytewise
|
|
checksum with feedback to produce an 8-bit result. The code is small
|
|
and it does not require a lookup table (unlike CRC32).
|
|
|
|
config CRC32
|
|
def_bool y
|
|
help
|
|
Enables CRC32 support in U-Boot. This is normally required.
|
|
|
|
config CRC32C
|
|
bool
|
|
|
|
config XXHASH
|
|
bool
|
|
|
|
endmenu
|
|
|
|
menu "Compression Support"
|
|
|
|
config LZ4
|
|
bool "Enable LZ4 decompression support"
|
|
help
|
|
If this option is set, support for LZ4 compressed images
|
|
is included. The LZ4 algorithm can run in-place as long as the
|
|
compressed image is loaded to the end of the output buffer, and
|
|
trades lower compression ratios for much faster decompression.
|
|
|
|
NOTE: This implements the release version of the LZ4 frame
|
|
format as generated by default by the 'lz4' command line tool.
|
|
This is not the same as the outdated, less efficient legacy
|
|
frame format currently (2015) implemented in the Linux kernel
|
|
(generated by 'lz4 -l'). The two formats are incompatible.
|
|
|
|
config LZMA
|
|
bool "Enable LZMA decompression support"
|
|
help
|
|
This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
|
|
a dictionary compression algorithm that provides a high compression
|
|
ratio and fairly fast decompression speed. See also
|
|
CONFIG_CMD_LZMADEC which provides a decode command.
|
|
|
|
config LZO
|
|
bool "Enable LZO decompression support"
|
|
help
|
|
This enables support for the LZO compression algorithm.
|
|
|
|
config GZIP
|
|
bool "Enable gzip decompression support"
|
|
select ZLIB
|
|
default y
|
|
help
|
|
This enables support for GZIP compression algorithm.
|
|
|
|
config ZLIB_UNCOMPRESS
|
|
bool "Enables zlib's uncompress() functionality"
|
|
help
|
|
This enables an extra zlib functionality: the uncompress() function,
|
|
which decompresses data from a buffer into another, knowing their
|
|
sizes. Unlike gunzip(), there is no header parsing.
|
|
|
|
config GZIP_COMPRESSED
|
|
bool
|
|
select ZLIB
|
|
|
|
config BZIP2
|
|
bool "Enable bzip2 decompression support"
|
|
help
|
|
This enables support for BZIP2 compression algorithm.
|
|
|
|
config ZLIB
|
|
bool
|
|
default y
|
|
help
|
|
This enables ZLIB compression lib.
|
|
|
|
config ZSTD
|
|
bool "Enable Zstandard decompression support"
|
|
select XXHASH
|
|
help
|
|
This enables Zstandard decompression library.
|
|
|
|
if ZSTD
|
|
|
|
config ZSTD_LIB_MINIFY
|
|
bool "Minify Zstandard code"
|
|
default y
|
|
help
|
|
This disables various optional components and changes the
|
|
compilation flags to prioritize space-saving.
|
|
|
|
For detailed info, see zstd's lib/README.md
|
|
|
|
https://github.com/facebook/zstd/blob/dev/lib/README.md
|
|
|
|
endif
|
|
|
|
config SPL_BZIP2
|
|
bool "Enable bzip2 decompression support for SPL build"
|
|
depends on SPL
|
|
help
|
|
This enables support for bzip2 compression algorithm for SPL boot.
|
|
|
|
config SPL_LZ4
|
|
bool "Enable LZ4 decompression support in SPL"
|
|
depends on SPL
|
|
help
|
|
This enables support for the LZ4 decompression algorithm in SPL. LZ4
|
|
is a lossless data compression algorithm that is focused on
|
|
fast compression and decompression speed. It belongs to the LZ77
|
|
family of byte-oriented compression schemes.
|
|
|
|
config SPL_LZMA
|
|
bool "Enable LZMA decompression support for SPL build"
|
|
depends on SPL
|
|
help
|
|
This enables support for LZMA compression algorithm for SPL boot.
|
|
|
|
config VPL_LZMA
|
|
bool "Enable LZMA decompression support for VPL build"
|
|
default y if LZMA
|
|
help
|
|
This enables support for LZMA compression algorithm for VPL boot.
|
|
|
|
config SPL_LZO
|
|
bool "Enable LZO decompression support in SPL"
|
|
depends on SPL
|
|
help
|
|
This enables support for LZO compression algorithm in the SPL.
|
|
|
|
config SPL_GZIP
|
|
bool "Enable gzip decompression support for SPL build"
|
|
select SPL_ZLIB
|
|
help
|
|
This enables support for the GZIP compression algorithm for SPL boot.
|
|
|
|
config SPL_ZLIB
|
|
bool
|
|
help
|
|
This enables compression lib for SPL boot.
|
|
|
|
config SPL_ZSTD
|
|
bool "Enable Zstandard decompression support in SPL"
|
|
depends on SPL
|
|
select XXHASH
|
|
help
|
|
This enables Zstandard decompression library in the SPL.
|
|
|
|
endmenu
|
|
|
|
config ERRNO_STR
|
|
bool "Enable function for getting errno-related string message"
|
|
help
|
|
The function errno_str(int errno), returns a pointer to the errno
|
|
corresponding text message:
|
|
- if errno is null or positive number - a pointer to "Success" message
|
|
- if errno is negative - a pointer to errno related message
|
|
|
|
config HEXDUMP
|
|
bool "Enable hexdump"
|
|
help
|
|
This enables functions for printing dumps of binary data.
|
|
|
|
config SPL_HEXDUMP
|
|
bool "Enable hexdump in SPL"
|
|
depends on SPL && HEXDUMP
|
|
help
|
|
This enables functions for printing dumps of binary data in
|
|
SPL.
|
|
|
|
config GETOPT
|
|
bool "Enable getopt"
|
|
help
|
|
This enables functions for parsing command-line options.
|
|
|
|
config OF_LIBFDT
|
|
bool "Enable the FDT library"
|
|
default y if OF_CONTROL
|
|
help
|
|
This enables the FDT library (libfdt). It provides functions for
|
|
accessing binary device tree images in memory, such as adding and
|
|
removing nodes and properties, scanning through the tree and finding
|
|
particular compatible nodes. The library operates on a flattened
|
|
version of the device tree.
|
|
|
|
config OF_LIBFDT_ASSUME_MASK
|
|
hex "Mask of conditions to assume for libfdt"
|
|
depends on OF_LIBFDT || FIT
|
|
default 0
|
|
help
|
|
Use this to change the assumptions made by libfdt about the
|
|
device tree it is working with. A value of 0 means that no assumptions
|
|
are made, and libfdt is able to deal with malicious data. A value of
|
|
0xff means all assumptions are made and any invalid data may cause
|
|
unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
|
|
|
|
config OF_LIBFDT_OVERLAY
|
|
bool "Enable the FDT library overlay support"
|
|
depends on OF_LIBFDT
|
|
default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
|
|
help
|
|
This enables the FDT library (libfdt) overlay support.
|
|
|
|
config SYS_FDT_PAD
|
|
hex "Maximum size of the FDT memory area passeed to the OS"
|
|
depends on OF_LIBFDT
|
|
default 0x13000 if FMAN_ENET || QE || U_QE
|
|
default 0x3000
|
|
help
|
|
During OS boot, we allocate a region of memory within the bootmap
|
|
for the FDT. This is the size that we will expand the FDT that we
|
|
are using will be extended to be, in bytes.
|
|
|
|
config SPL_OF_LIBFDT
|
|
bool "Enable the FDT library for SPL"
|
|
depends on SPL_LIBGENERIC_SUPPORT
|
|
default y if SPL_OF_CONTROL
|
|
help
|
|
This enables the FDT library (libfdt). It provides functions for
|
|
accessing binary device tree images in memory, such as adding and
|
|
removing nodes and properties, scanning through the tree and finding
|
|
particular compatible nodes. The library operates on a flattened
|
|
version of the device tree.
|
|
|
|
config SPL_OF_LIBFDT_ASSUME_MASK
|
|
hex "Mask of conditions to assume for libfdt"
|
|
depends on SPL_OF_LIBFDT || (FIT && SPL)
|
|
default 0xff
|
|
help
|
|
Use this to change the assumptions made by libfdt in SPL about the
|
|
device tree it is working with. A value of 0 means that no assumptions
|
|
are made, and libfdt is able to deal with malicious data. A value of
|
|
0xff means all assumptions are made and any invalid data may cause
|
|
unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
|
|
|
|
config TPL_OF_LIBFDT
|
|
bool "Enable the FDT library for TPL"
|
|
depends on TPL_LIBGENERIC_SUPPORT
|
|
default y if TPL_OF_CONTROL
|
|
help
|
|
This enables the FDT library (libfdt). It provides functions for
|
|
accessing binary device tree images in memory, such as adding and
|
|
removing nodes and properties, scanning through the tree and finding
|
|
particular compatible nodes. The library operates on a flattened
|
|
version of the device tree.
|
|
|
|
config TPL_OF_LIBFDT_ASSUME_MASK
|
|
hex "Mask of conditions to assume for libfdt"
|
|
depends on TPL_OF_LIBFDT || (FIT && TPL)
|
|
default 0xff
|
|
help
|
|
Use this to change the assumptions made by libfdt in TPL about the
|
|
device tree it is working with. A value of 0 means that no assumptions
|
|
are made, and libfdt is able to deal with malicious data. A value of
|
|
0xff means all assumptions are made and any invalid data may cause
|
|
unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
|
|
|
|
config VPL_OF_LIBFDT
|
|
bool "Enable the FDT library for VPL"
|
|
depends on VPL
|
|
default y if VPL_OF_CONTROL && !VPL_OF_PLATDATA
|
|
help
|
|
This enables the FDT library (libfdt). It provides functions for
|
|
accessing binary device tree images in memory, such as adding and
|
|
removing nodes and properties, scanning through the tree and finding
|
|
particular compatible nodes. The library operates on a flattened
|
|
version of the device tree.
|
|
|
|
config VPL_OF_LIBFDT_ASSUME_MASK
|
|
hex "Mask of conditions to assume for libfdt"
|
|
depends on VPL_OF_LIBFDT || (FIT && VPL)
|
|
default 0xff
|
|
help
|
|
Use this to change the assumptions made by libfdt in SPL about the
|
|
device tree it is working with. A value of 0 means that no assumptions
|
|
are made, and libfdt is able to deal with malicious data. A value of
|
|
0xff means all assumptions are made and any invalid data may cause
|
|
unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
|
|
|
|
config FDT_FIXUP_PARTITIONS
|
|
bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
|
|
depends on OF_LIBFDT
|
|
depends on CMD_MTDPARTS
|
|
help
|
|
Allow overwriting defined partitions in the device tree blob
|
|
using partition info defined in the 'mtdparts' environment
|
|
variable.
|
|
|
|
menu "System tables"
|
|
depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
|
|
|
|
config BLOBLIST_TABLES
|
|
bool "Put tables in a bloblist"
|
|
depends on X86 && BLOBLIST
|
|
help
|
|
Normally tables are placed at address 0xf0000 and can be up to 64KB
|
|
long. With this option, tables are instead placed in the bloblist
|
|
with a pointer from 0xf0000. The size can then be larger and the
|
|
tables can be placed high in memory.
|
|
|
|
config GENERATE_SMBIOS_TABLE
|
|
bool "Generate an SMBIOS (System Management BIOS) table"
|
|
default y
|
|
depends on X86 || EFI_LOADER
|
|
help
|
|
The System Management BIOS (SMBIOS) specification addresses how
|
|
motherboard and system vendors present management information about
|
|
their products in a standard format by extending the BIOS interface
|
|
on Intel architecture systems.
|
|
|
|
Check http://www.dmtf.org/standards/smbios for details.
|
|
|
|
See also SMBIOS_SYSINFO which allows SMBIOS values to be provided in
|
|
the devicetree.
|
|
|
|
config LIB_RATIONAL
|
|
bool "enable continued fraction calculation routines"
|
|
|
|
config SPL_LIB_RATIONAL
|
|
bool "enable continued fraction calculation routines for SPL"
|
|
depends on SPL
|
|
|
|
endmenu
|
|
|
|
config ASN1_COMPILER
|
|
bool
|
|
help
|
|
ASN.1 (Abstract Syntax Notation One) is a standard interface
|
|
description language for defining data structures that can be
|
|
serialized and deserialized in a cross-platform way. It is
|
|
broadly used in telecommunications and computer networking,
|
|
and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
|
|
This option enables the support of the asn1 compiler.
|
|
|
|
config ASN1_DECODER
|
|
bool
|
|
help
|
|
ASN.1 (Abstract Syntax Notation One) is a standard interface
|
|
description language for defining data structures that can be
|
|
serialized and deserialized in a cross-platform way. It is
|
|
broadly used in telecommunications and computer networking,
|
|
and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
|
|
This option enables the support of the asn1 decoder.
|
|
|
|
config SPL_ASN1_DECODER
|
|
bool
|
|
help
|
|
ASN.1 (Abstract Syntax Notation One) is a standard interface
|
|
description language for defining data structures that can be
|
|
serialized and deserialized in a cross-platform way. It is
|
|
broadly used in telecommunications and computer networking,
|
|
and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
|
|
This option enables the support of the asn1 decoder in the SPL.
|
|
|
|
config OID_REGISTRY
|
|
bool
|
|
help
|
|
In computing, object identifiers or OIDs are an identifier mechanism
|
|
standardized by the International Telecommunication Union (ITU) and
|
|
ISO/IEC for naming any object, concept, or "thing" with a globally
|
|
unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
|
|
Enable fast lookup object identifier registry.
|
|
|
|
config SPL_OID_REGISTRY
|
|
bool
|
|
help
|
|
In computing, object identifiers or OIDs are an identifier mechanism
|
|
standardized by the International Telecommunication Union (ITU) and
|
|
ISO/IEC for naming any object, concept, or "thing" with a globally
|
|
unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
|
|
Enable fast lookup object identifier registry in the SPL.
|
|
|
|
config SMBIOS_PARSER
|
|
bool "SMBIOS parser"
|
|
help
|
|
A simple parser for SMBIOS data.
|
|
|
|
source lib/efi/Kconfig
|
|
source lib/efi_loader/Kconfig
|
|
source lib/optee/Kconfig
|
|
|
|
config TEST_FDTDEC
|
|
bool "enable fdtdec test"
|
|
depends on OF_LIBFDT
|
|
|
|
config LIB_DATE
|
|
bool
|
|
|
|
config LIB_ELF
|
|
bool
|
|
help
|
|
Support basic elf loading/validating functions.
|
|
This supports for 32 bit and 64 bit versions.
|
|
|
|
config LMB
|
|
bool "Enable the logical memory blocks library (lmb)"
|
|
default y if ARC || ARM || M68K || MICROBLAZE || MIPS || \
|
|
NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
|
|
help
|
|
Support the library logical memory blocks.
|
|
|
|
config LMB_USE_MAX_REGIONS
|
|
bool "Use a common number of memory and reserved regions in lmb lib"
|
|
depends on LMB
|
|
default y
|
|
help
|
|
Define the number of supported memory regions in the library logical
|
|
memory blocks.
|
|
This feature allow to reduce the lmb library size by using compiler
|
|
optimization when LMB_MEMORY_REGIONS == LMB_RESERVED_REGIONS.
|
|
|
|
config LMB_MAX_REGIONS
|
|
int "Number of memory and reserved regions in lmb lib"
|
|
depends on LMB && LMB_USE_MAX_REGIONS
|
|
default 16
|
|
help
|
|
Define the number of supported regions, memory and reserved, in the
|
|
library logical memory blocks.
|
|
|
|
config LMB_MEMORY_REGIONS
|
|
int "Number of memory regions in lmb lib"
|
|
depends on LMB && !LMB_USE_MAX_REGIONS
|
|
default 8
|
|
help
|
|
Define the number of supported memory regions in the library logical
|
|
memory blocks.
|
|
The minimal value is CONFIG_NR_DRAM_BANKS.
|
|
|
|
config LMB_RESERVED_REGIONS
|
|
int "Number of reserved regions in lmb lib"
|
|
depends on LMB && !LMB_USE_MAX_REGIONS
|
|
default 8
|
|
help
|
|
Define the number of supported reserved regions in the library logical
|
|
memory blocks.
|
|
|
|
config PHANDLE_CHECK_SEQ
|
|
bool "Enable phandle check while getting sequence number"
|
|
help
|
|
When there are multiple device tree nodes with same name,
|
|
enable this config option to distinguish them using
|
|
phandles in fdtdec_get_alias_seq() function.
|
|
|
|
endmenu
|
|
|
|
menu "FWU Multi Bank Updates"
|
|
|
|
source lib/fwu_updates/Kconfig
|
|
|
|
endmenu
|