1 menu "Library routines"
4 bool "Enable Software based BCH ECC"
6 Enables software based BCH ECC algorithm present in lib/bch.c
7 This is used by SoC platforms which do not have built-in ELM
8 hardware engine required for BCH ECC correction.
10 config CC_OPTIMIZE_LIBS_FOR_SPEED
11 bool "Optimize libraries for speed"
13 Enabling this option will pass "-O2" to gcc when compiling
14 under "lib" directory.
18 config DYNAMIC_CRC_TABLE
19 bool "Enable Dynamic tables for CRC"
21 Enable this option to calculate entries for CRC tables at runtime.
22 This can be helpful when reducing the size of the build image
24 config HAVE_ARCH_IOMAP
27 Enable this option if architecture provides io{read,write}{8,16,32}
28 I/O accessor functions.
30 config HAVE_PRIVATE_LIBGCC
43 select SPL_STRTO if !SPL_USE_TINY_PRINTF
48 select TPL_STRTO if !TPL_USE_TINY_PRINTF
73 config IMAGE_SPARSE_FILLBUF_SIZE
74 hex "Android sparse image CHUNK_TYPE_FILL buffer size"
76 depends on IMAGE_SPARSE
78 Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
81 config USE_PRIVATE_LIBGCC
82 bool "Use private libgcc"
83 depends on HAVE_PRIVATE_LIBGCC
84 default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
86 This option allows you to use the built-in libgcc implementation
87 of U-Boot instead of the one provided by the compiler.
94 The frequency of the timer returned by get_timer().
95 get_timer() must operate in milliseconds and this option must be
98 config SPL_USE_TINY_PRINTF
99 bool "Enable tiny printf() version in SPL"
103 This option enables a tiny, stripped down printf version.
104 This should only be used in space limited environments,
105 like SPL versions with hard memory limits. This version
106 reduces the code size by about 2.5KiB on armv7.
108 The supported format specifiers are %c, %s, %u/%d and %x.
110 config TPL_USE_TINY_PRINTF
111 bool "Enable tiny printf() version in TPL"
113 default y if SPL_USE_TINY_PRINTF
115 This option enables a tiny, stripped down printf version.
116 This should only be used in space limited environments,
117 like SPL versions with hard memory limits. This version
118 reduces the code size by about 2.5KiB on armv7.
120 The supported format specifiers are %c, %s, %u/%d and %x.
123 bool "Do not reset the system on fatal error"
125 Define this option to stop the system in case of a fatal error,
126 so that you have to reset it manually. This is probably NOT a good
127 idea for an embedded system where you want the system to reboot
128 automatically as fast as possible, but it may be useful during
129 development since you can try to debug the conditions that lead to
133 bool "Enable regular expression support"
136 If this variable is defined, U-Boot is linked against the
137 SLRE (Super Light Regular Expression) library, which adds
138 regex support to some commands, for example "env grep" and
142 prompt "Pseudo-random library support type"
143 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID
146 Select the library to provide pseudo-random number generator
147 functions. LIB_HW_RAND supports certain hardware engines that
148 provide this functionality. If in doubt, select LIB_RAND.
151 bool "Pseudo-random library support"
154 bool "HW Engine for random libray support"
158 config SPL_TINY_MEMSET
159 bool "Use a very small memset() in SPL"
161 The faster memset() is the arch-specific one (if available) enabled
162 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
163 better performance by writing a word at a time. But in very
164 size-constrained environments even this may be too big. Enable this
165 option to reduce code size slightly at the cost of some speed.
167 config TPL_TINY_MEMSET
168 bool "Use a very small memset() in TPL"
170 The faster memset() is the arch-specific one (if available) enabled
171 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
172 better performance by writing a word at a time. But in very
173 size-constrained environments even this may be too big. Enable this
174 option to reduce code size slightly at the cost of some speed.
180 bool "Bit reverse library from Linux"
183 bool "Support for tracing of function calls and timing"
186 Enables function tracing within U-Boot. This allows recording of call
187 traces including timing information. The command can write data to
188 memory for exporting for analysis (e.g. using bootchart).
189 See doc/README.trace for full details.
191 config TRACE_BUFFER_SIZE
192 hex "Size of trace buffer in U-Boot"
196 Sets the size of the trace buffer in U-Boot. This is allocated from
197 memory during relocation. If this buffer is too small, the trace
198 history will be truncated, with later records omitted.
200 If early trace is enabled (i.e. before relocation), this buffer must
201 be large enough to include all the data from the early trace buffer as
202 well, since this is copied over to the main buffer during relocation.
204 A trace record is emitted for each function call and each record is
205 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
206 the size is too small then 'trace stats' will show a message saying
207 how many records were dropped due to buffer overflow.
209 config TRACE_CALL_DEPTH_LIMIT
210 int "Trace call depth limit"
214 Sets the maximum call depth up to which function calls are recorded.
217 bool "Enable tracing before relocation"
220 Sometimes it is helpful to trace execution of U-Boot before
221 relocation. This is possible by using a arch-specific, fixed buffer
222 position in memory. Enable this option to start tracing as early as
223 possible after U-Boot starts.
225 config TRACE_EARLY_SIZE
226 hex "Size of early trace buffer in U-Boot"
227 depends on TRACE_EARLY
230 Sets the size of the early trace buffer in bytes. This is used to hold
231 tracing information before relocation.
233 config TRACE_EARLY_CALL_DEPTH_LIMIT
234 int "Early trace call depth limit"
235 depends on TRACE_EARLY
238 Sets the maximum call depth up to which function calls are recorded
239 during early tracing.
241 config TRACE_EARLY_ADDR
242 hex "Address of early trace buffer in U-Boot"
243 depends on TRACE_EARLY
246 Sets the address of the early trace buffer in U-Boot. This memory
247 must be accessible before relocation.
249 A trace record is emitted for each function call and each record is
250 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
251 the size is too small then the message which says the amount of early
252 data being coped will the the same as the
254 source lib/dhry/Kconfig
256 menu "Security support"
259 bool "Support the AES algorithm"
261 This provides a means to encrypt and decrypt data using the AES
262 (Advanced Encryption Standard). This algorithm uses a symetric key
263 and is widely used as a streaming cipher. Different key lengths are
264 supported by the algorithm but only a 128-bit key is supported at
267 source lib/rsa/Kconfig
270 bool "Trusted Platform Module (TPM) Support"
273 This enables support for TPMs which can be used to provide security
274 features for your board. The TPM can be connected via LPC or I2C
275 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
276 command to interactive the TPM. Driver model support is provided
277 for the low-level TPM interface, but only one TPM is supported at
278 a time by the TPM library.
281 bool "Trusted Platform Module (TPM) Support in SPL"
284 This enables support for TPMs which can be used to provide security
285 features for your board. The TPM can be connected via LPC or I2C
286 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
287 command to interactive the TPM. Driver model support is provided
288 for the low-level TPM interface, but only one TPM is supported at
289 a time by the TPM library.
292 bool "Trusted Platform Module (TPM) Support in TPL"
295 This enables support for TPMs which can be used to provide security
296 features for your board. The TPM can be connected via LPC or I2C
297 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
298 command to interactive the TPM. Driver model support is provided
299 for the low-level TPM interface, but only one TPM is supported at
300 a time by the TPM library.
304 menu "Android Verified Boot"
307 bool "Android Verified Boot 2.0 support"
308 depends on ANDROID_BOOT_IMAGE
311 This enables support of Android Verified Boot 2.0 which can be used
312 to assure the end user of the integrity of the software running on a
313 device. Introduces such features as boot chain of trust, rollback
318 menu "Hashing Support"
321 bool "Enable SHA1 support"
323 This option enables support of hashing using SHA1 algorithm.
324 The hash is calculated in software.
325 The SHA1 algorithm produces a 160-bit (20-byte) hash value
329 bool "Enable SHA256 support"
331 This option enables support of hashing using SHA256 algorithm.
332 The hash is calculated in software.
333 The SHA256 algorithm produces a 256-bit (32-byte) hash value
337 bool "Enable hashing using hardware"
339 This option enables hardware acceleration
340 for SHA1/SHA256 hashing.
341 This affects the 'hash' command and also the
342 hash_lookup_algo() function.
344 config SHA_PROG_HW_ACCEL
345 bool "Enable Progressive hashing support using hardware"
346 depends on SHA_HW_ACCEL
348 This option enables hardware-acceleration for
349 SHA1/SHA256 progressive hashing.
350 Data can be streamed in a block at a time and the hashing
351 is performed in hardware.
364 menu "Compression Support"
367 bool "Enable LZ4 decompression support"
369 If this option is set, support for LZ4 compressed images
370 is included. The LZ4 algorithm can run in-place as long as the
371 compressed image is loaded to the end of the output buffer, and
372 trades lower compression ratios for much faster decompression.
374 NOTE: This implements the release version of the LZ4 frame
375 format as generated by default by the 'lz4' command line tool.
376 This is not the same as the outdated, less efficient legacy
377 frame format currently (2015) implemented in the Linux kernel
378 (generated by 'lz4 -l'). The two formats are incompatible.
381 bool "Enable LZMA decompression support"
383 This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
384 a dictionary compression algorithm that provides a high compression
385 ratio and fairly fast decompression speed. See also
386 CONFIG_CMD_LZMADEC which provides a decode command.
389 bool "Enable LZO decompression support"
391 This enables support for LZO compression algorithm.r
394 bool "Enable gzip decompression support"
398 This enables support for GZIP compression algorithm.
404 This enables ZLIB compression lib.
407 bool "Enable Zstandard decompression support"
410 This enables Zstandard decompression library.
413 bool "Enable LZ4 decompression support in SPL"
415 This enables support for tge LZ4 decompression algorithm in SPL. LZ4
416 is a lossless data compression algorithm that is focused on
417 fast compression and decompression speed. It belongs to the LZ77
418 family of byte-oriented compression schemes.
421 bool "Enable LZO decompression support in SPL"
423 This enables support for LZO compression algorithm in the SPL.
426 bool "Enable gzip decompression support for SPL build"
429 This enables support for GZIP compression altorithm for SPL boot.
434 This enables compression lib for SPL boot.
437 bool "Enable Zstandard decompression support in SPL"
440 This enables Zstandard decompression library in the SPL.
445 bool "Enable function for getting errno-related string message"
447 The function errno_str(int errno), returns a pointer to the errno
448 corresponding text message:
449 - if errno is null or positive number - a pointer to "Success" message
450 - if errno is negative - a pointer to errno related message
453 bool "Enable hexdump"
455 This enables functions for printing dumps of binary data.
458 bool "Enable the FDT library"
459 default y if OF_CONTROL
461 This enables the FDT library (libfdt). It provides functions for
462 accessing binary device tree images in memory, such as adding and
463 removing nodes and properties, scanning through the tree and finding
464 particular compatible nodes. The library operates on a flattened
465 version of the device tree.
467 config OF_LIBFDT_ASSUME_MASK
468 hex "Mask of conditions to assume for libfdt"
469 depends on OF_LIBFDT || FIT
472 Use this to change the assumptions made by libfdt about the
473 device tree it is working with. A value of 0 means that no assumptions
474 are made, and libfdt is able to deal with malicious data. A value of
475 0xff means all assumptions are made and any invalid data may cause
476 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
478 config OF_LIBFDT_OVERLAY
479 bool "Enable the FDT library overlay support"
481 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
483 This enables the FDT library (libfdt) overlay support.
486 bool "Enable the FDT library for SPL"
487 default y if SPL_OF_CONTROL
489 This enables the FDT library (libfdt). It provides functions for
490 accessing binary device tree images in memory, such as adding and
491 removing nodes and properties, scanning through the tree and finding
492 particular compatible nodes. The library operates on a flattened
493 version of the device tree.
495 config SPL_OF_LIBFDT_ASSUME_MASK
496 hex "Mask of conditions to assume for libfdt"
497 depends on SPL_OF_LIBFDT || FIT
500 Use this to change the assumptions made by libfdt in SPL about the
501 device tree it is working with. A value of 0 means that no assumptions
502 are made, and libfdt is able to deal with malicious data. A value of
503 0xff means all assumptions are made and any invalid data may cause
504 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
507 bool "Enable the FDT library for TPL"
508 default y if TPL_OF_CONTROL
510 This enables the FDT library (libfdt). It provides functions for
511 accessing binary device tree images in memory, such as adding and
512 removing nodes and properties, scanning through the tree and finding
513 particular compatible nodes. The library operates on a flattened
514 version of the device tree.
516 config TPL_OF_LIBFDT_ASSUME_MASK
517 hex "Mask of conditions to assume for libfdt"
518 depends on TPL_OF_LIBFDT || FIT
521 Use this to change the assumptions made by libfdt in TPL about the
522 device tree it is working with. A value of 0 means that no assumptions
523 are made, and libfdt is able to deal with malicious data. A value of
524 0xff means all assumptions are made and any invalid data may cause
525 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
527 config FDT_FIXUP_PARTITIONS
528 bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
530 depends on CMD_MTDPARTS
532 Allow overwriting defined partitions in the device tree blob
533 using partition info defined in the 'mtdparts' environment
537 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
539 config GENERATE_SMBIOS_TABLE
540 bool "Generate an SMBIOS (System Management BIOS) table"
542 depends on X86 || EFI_LOADER
544 The System Management BIOS (SMBIOS) specification addresses how
545 motherboard and system vendors present management information about
546 their products in a standard format by extending the BIOS interface
547 on Intel architecture systems.
549 Check http://www.dmtf.org/standards/smbios for details.
551 config SMBIOS_MANUFACTURER
552 string "SMBIOS Manufacturer"
553 depends on GENERATE_SMBIOS_TABLE
556 The board manufacturer to store in SMBIOS structures.
557 Change this to override the default one (CONFIG_SYS_VENDOR).
559 config SMBIOS_PRODUCT_NAME
560 string "SMBIOS Product Name"
561 depends on GENERATE_SMBIOS_TABLE
564 The product name to store in SMBIOS structures.
565 Change this to override the default one (CONFIG_SYS_BOARD).
575 Enable asn1 decoder library.
580 Enable fast lookup object identifier registry.
582 source lib/efi/Kconfig
583 source lib/efi_loader/Kconfig
584 source lib/optee/Kconfig
587 bool "enable fdtdec test"