1 menu "Library routines"
4 bool "Enable support for non-identity virtual-physical mappings"
6 Enables helper code for implementing non-identity virtual-physical
7 memory mappings for 32bit CPUs.
9 This library only works in the post-relocation phase.
11 config SYS_NUM_ADDR_MAP
12 int "Size of the address-map table"
16 Sets the number of entries in the virtual-physical mapping table.
18 config SYS_TIMER_COUNTS_DOWN
19 bool "System timer counts down rather than up"
22 bool "Access to physical memory region (> 4G)"
24 Some basic support is provided for operations on memory not
25 normally accessible to 32-bit U-Boot - e.g. some architectures
26 support access to more than 4G of memory on 32-bit
27 machines using physical address extension or similar.
28 Enable this to access this basic support, which only supports clearing
32 bool "Enable Software based BCH ECC"
34 Enables software based BCH ECC algorithm present in lib/bch.c
35 This is used by SoC platforms which do not have built-in ELM
36 hardware engine required for BCH ECC correction.
39 bool "Allow access to binman information in the device tree"
40 depends on BINMAN && DM && OF_CONTROL
41 default y if OF_SEPARATE || OF_EMBED
43 This enables U-Boot to access information about binman entries,
44 stored in the device tree in a binman node. Typical uses are to
45 locate entries in the firmware image. See binman.h for the available
48 config CC_OPTIMIZE_LIBS_FOR_SPEED
49 bool "Optimize libraries for speed"
51 Enabling this option will pass "-O2" to gcc when compiling
52 under "lib" directory.
59 config DYNAMIC_CRC_TABLE
60 bool "Enable Dynamic tables for CRC"
62 Enable this option to calculate entries for CRC tables at runtime.
63 This can be helpful when reducing the size of the build image
65 config HAVE_ARCH_IOMAP
68 Enable this option if architecture provides io{read,write}{8,16,32}
69 I/O accessor functions.
71 config HAVE_PRIVATE_LIBGCC
79 bool "GPT Random UUID generation"
82 Enable the generation of partitions with random UUIDs if none
90 bool "Support semihosting"
91 depends on ARM || RISCV
93 Semihosting is a method for a target to communicate with a host
94 debugger. It uses special instructions which the debugger will trap
95 on and interpret. This allows U-Boot to read/write files, print to
96 the console, and execute arbitrary commands on the host system.
98 Enabling this option will add support for reading and writing files
99 on the host system. If you don't have a debugger attached then trying
100 to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
102 config SEMIHOSTING_FALLBACK
103 bool "Recover gracefully when semihosting fails"
104 depends on SEMIHOSTING
107 Normally, if U-Boot makes a semihosting call and no debugger is
108 attached, then it will panic due to a synchronous abort
109 exception. This config adds an exception handler which will allow
110 U-Boot to recover. Say 'y' if unsure.
112 config SPL_SEMIHOSTING
113 bool "Support semihosting in SPL"
114 depends on SPL && (ARM || RISCV)
116 Semihosting is a method for a target to communicate with a host
117 debugger. It uses special instructions which the debugger will trap
118 on and interpret. This allows U-Boot to read/write files, print to
119 the console, and execute arbitrary commands on the host system.
121 Enabling this option will add support for reading and writing files
122 on the host system. If you don't have a debugger attached then trying
123 to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
125 config SPL_SEMIHOSTING_FALLBACK
126 bool "Recover gracefully when semihosting fails in SPL"
127 depends on SPL_SEMIHOSTING
128 select ARMV8_SPL_EXCEPTION_VECTORS if ARM64
131 Normally, if U-Boot makes a semihosting call and no debugger is
132 attached, then it will panic due to a synchronous abort
133 exception. This config adds an exception handler which will allow
134 U-Boot to recover. Say 'y' if unsure.
143 select SPL_STRTO if !SPL_USE_TINY_PRINTF
148 select TPL_STRTO if !TPL_USE_TINY_PRINTF
153 select VPL_STRTO if !VPL_USE_TINY_PRINTF
187 config IMAGE_SPARSE_FILLBUF_SIZE
188 hex "Android sparse image CHUNK_TYPE_FILL buffer size"
190 depends on IMAGE_SPARSE
192 Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
195 config USE_PRIVATE_LIBGCC
196 bool "Use private libgcc"
197 depends on HAVE_PRIVATE_LIBGCC
198 default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
200 This option allows you to use the built-in libgcc implementation
201 of U-Boot instead of the one provided by the compiler.
208 The frequency of the timer returned by get_timer().
209 get_timer() must operate in milliseconds and this option must be
212 config SPL_USE_TINY_PRINTF
213 bool "Enable tiny printf() version in SPL"
217 This option enables a tiny, stripped down printf version.
218 This should only be used in space limited environments,
219 like SPL versions with hard memory limits. This version
220 reduces the code size by about 2.5KiB on armv7.
222 The supported format specifiers are %c, %s, %u/%d and %x.
224 config TPL_USE_TINY_PRINTF
225 bool "Enable tiny printf() version in TPL"
227 default y if SPL_USE_TINY_PRINTF
229 This option enables a tiny, stripped down printf version.
230 This should only be used in space limited environments,
231 like SPL versions with hard memory limits. This version
232 reduces the code size by about 2.5KiB on armv7.
234 The supported format specifiers are %c, %s, %u/%d and %x.
236 config VPL_USE_TINY_PRINTF
237 bool "Enable tiny printf() version for VPL"
240 This option enables a tiny, stripped down printf version.
241 This should only be used in space limited environments,
242 like SPL versions with hard memory limits. This version
243 reduces the code size by about 2.5KiB on armv7.
245 The supported format specifiers are %c, %s, %u/%d and %x.
248 bool "Do not reset the system on fatal error"
250 Define this option to stop the system in case of a fatal error,
251 so that you have to reset it manually. This is probably NOT a good
252 idea for an embedded system where you want the system to reboot
253 automatically as fast as possible, but it may be useful during
254 development since you can try to debug the conditions that lead to
258 bool "Enable regular expression support"
261 If this variable is defined, U-Boot is linked against the
262 SLRE (Super Light Regular Expression) library, which adds
263 regex support to some commands, for example "env grep" and
267 prompt "Pseudo-random library support type"
268 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
269 RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
272 Select the library to provide pseudo-random number generator
273 functions. LIB_HW_RAND supports certain hardware engines that
274 provide this functionality. If in doubt, select LIB_RAND.
277 bool "Pseudo-random library support"
280 bool "HW Engine for random library support"
287 Enable this if your arch or board can support generating ACPI
288 (Advanced Configuration and Power Interface) tables. In this case
289 U-Boot can generate these tables and pass them to the Operating
293 bool "Enable support for ACPI libraries"
294 depends on SUPPORT_ACPI
296 Provides library functions for dealing with ACPI tables. This does
297 not necessarily include generation of tables
298 (see GENERATE_ACPI_TABLE), but allows for tables to be located.
301 bool "Enable support for ACPI libraries in SPL"
302 depends on SPL && SUPPORT_ACPI
304 Provides library functions for dealing with ACPI tables in SPL. This
305 does not necessarily include generation of tables
306 (see GENERATE_ACPI_TABLE), but allows for tables to be located.
308 config GENERATE_ACPI_TABLE
309 bool "Generate an ACPI (Advanced Configuration and Power Interface) table"
313 The Advanced Configuration and Power Interface (ACPI) specification
314 provides an open standard for device configuration and management
315 by the operating system. It defines platform-independent interfaces
316 for configuration and power management monitoring.
318 config SPL_TINY_MEMSET
319 bool "Use a very small memset() in SPL"
322 The faster memset() is the arch-specific one (if available) enabled
323 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
324 better performance by writing a word at a time. But in very
325 size-constrained environments even this may be too big. Enable this
326 option to reduce code size slightly at the cost of some speed.
328 config TPL_TINY_MEMSET
329 bool "Use a very small memset() in TPL"
332 The faster memset() is the arch-specific one (if available) enabled
333 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
334 better performance by writing a word at a time. But in very
335 size-constrained environments even this may be too big. Enable this
336 option to reduce code size slightly at the cost of some speed.
342 bool "Bit reverse library from Linux"
345 bool "Support for tracing of function calls and timing"
349 Enables function tracing within U-Boot. This allows recording of call
350 traces including timing information. The command can write data to
351 memory for exporting for analysis (e.g. using bootchart).
352 See doc/develop/trace.rst for full details.
354 config TRACE_BUFFER_SIZE
355 hex "Size of trace buffer in U-Boot"
359 Sets the size of the trace buffer in U-Boot. This is allocated from
360 memory during relocation. If this buffer is too small, the trace
361 history will be truncated, with later records omitted.
363 If early trace is enabled (i.e. before relocation), this buffer must
364 be large enough to include all the data from the early trace buffer as
365 well, since this is copied over to the main buffer during relocation.
367 A trace record is emitted for each function call and each record is
368 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
369 the size is too small then 'trace stats' will show a message saying
370 how many records were dropped due to buffer overflow.
372 config TRACE_CALL_DEPTH_LIMIT
373 int "Trace call depth limit"
377 Sets the maximum call depth up to which function calls are recorded.
380 bool "Enable tracing before relocation"
383 Sometimes it is helpful to trace execution of U-Boot before
384 relocation. This is possible by using a arch-specific, fixed buffer
385 position in memory. Enable this option to start tracing as early as
386 possible after U-Boot starts.
388 config TRACE_EARLY_SIZE
389 hex "Size of early trace buffer in U-Boot"
390 depends on TRACE_EARLY
393 Sets the size of the early trace buffer in bytes. This is used to hold
394 tracing information before relocation.
396 config TRACE_EARLY_CALL_DEPTH_LIMIT
397 int "Early trace call depth limit"
398 depends on TRACE_EARLY
401 Sets the maximum call depth up to which function calls are recorded
402 during early tracing.
404 config TRACE_EARLY_ADDR
405 hex "Address of early trace buffer in U-Boot"
406 depends on TRACE_EARLY
409 Sets the address of the early trace buffer in U-Boot. This memory
410 must be accessible before relocation.
412 A trace record is emitted for each function call and each record is
413 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
414 the size is too small then the message which says the amount of early
415 data being coped will the the same as the
418 bool "Enable circular buffer support"
420 source "lib/dhry/Kconfig"
422 menu "Alternative crypto libraries"
423 source lib/mbedtls/Kconfig
426 menu "Security support"
429 bool "Support the AES algorithm"
431 This provides a means to encrypt and decrypt data using the AES
432 (Advanced Encryption Standard). This algorithm uses a symetric key
433 and is widely used as a streaming cipher. Different key lengths are
434 supported by the algorithm but only a 128-bit key is supported at
437 source "lib/ecdsa/Kconfig"
438 source "lib/rsa/Kconfig"
439 source "lib/crypto/Kconfig"
440 source "lib/crypt/Kconfig"
443 bool "Trusted Platform Module (TPM) Support"
448 This enables support for TPMs which can be used to provide security
449 features for your board. The TPM can be connected via LPC or I2C
450 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
451 command to interactive the TPM. Driver model support is provided
452 for the low-level TPM interface, but only one TPM is supported at
453 a time by the TPM library.
454 For size reasons only SHA1 is selected which is supported on TPM1.2.
455 If you want a fully functional TPM enable all hashing algorithms.
456 If you enabled measured boot all hashing algorithms are selected.
459 bool "Trusted Platform Module (TPM) Support in SPL"
463 This enables support for TPMs which can be used to provide security
464 features for your board. The TPM can be connected via LPC or I2C
465 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
466 command to interactive the TPM. Driver model support is provided
467 for the low-level TPM interface, but only one TPM is supported at
468 a time by the TPM library.
471 bool "Trusted Platform Module (TPM) Support in TPL"
474 This enables support for TPMs which can be used to provide security
475 features for your board. The TPM can be connected via LPC or I2C
476 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
477 command to interactive the TPM. Driver model support is provided
478 for the low-level TPM interface, but only one TPM is supported at
479 a time by the TPM library.
482 bool "Trusted Platform Module (TPM) Support in VPL"
485 This enables support for TPMs which can be used to provide security
486 features for your board. The TPM can be connected via LPC or I2C
487 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
488 command to interactive the TPM. Driver model support is provided
489 for the low-level TPM interface, but only one TPM is supported at
490 a time by the TPM library.
494 menu "Android Verified Boot"
497 bool "Android Verified Boot 2.0 support"
498 depends on ANDROID_BOOT_IMAGE
500 This enables support of Android Verified Boot 2.0 which can be used
501 to assure the end user of the integrity of the software running on a
502 device. Introduces such features as boot chain of trust, rollback
507 menu "Hashing Support"
510 bool "Enable BLAKE2 support"
512 This option enables support of hashing using BLAKE2B algorithm.
513 The hash is calculated in software.
514 The BLAKE2 algorithm produces a hash value (digest) between 1 and
518 bool "Enable SHA1 support"
520 This option enables support of hashing using SHA1 algorithm.
521 The hash is calculated in software.
522 The SHA1 algorithm produces a 160-bit (20-byte) hash value
526 bool "Enable SHA256 support"
528 This option enables support of hashing using SHA256 algorithm.
529 The hash is calculated in software.
530 The SHA256 algorithm produces a 256-bit (32-byte) hash value
534 bool "Enable SHA512 support"
535 default y if TI_SECURE_DEVICE && FIT_SIGNATURE
537 This option enables support of hashing using SHA512 algorithm.
538 The hash is calculated in software.
539 The SHA512 algorithm produces a 512-bit (64-byte) hash value
543 bool "Enable SHA384 support"
546 This option enables support of hashing using SHA384 algorithm.
547 The hash is calculated in software. This is also selects SHA512,
548 because these implementations share the bulk of the code..
549 The SHA384 algorithm produces a 384-bit (48-byte) hash value
553 bool "Enable hardware acceleration for SHA hash functions"
555 This option enables hardware acceleration for the SHA1 and SHA256
556 hashing algorithms. This affects the 'hash' command and also the
557 hash_lookup_algo() function.
562 bool "Enable CRC32 support in SPL"
563 default y if SPL_LEGACY_IMAGE_SUPPORT || SPL_EFI_PARTITION
564 default y if SPL_ENV_SUPPORT || TPL_BLOBLIST
566 This option enables support of hashing using CRC32 algorithm.
567 The CRC32 algorithm produces 32-bit checksum value. For FIT
568 images, this is the least secure type of checksum, suitable for
569 detected accidental image corruption. For secure applications you
570 should consider SHA256 or SHA384.
573 bool "Enable SHA1 support in SPL"
576 This option enables support of hashing using SHA1 algorithm.
577 The hash is calculated in software.
578 The SHA1 algorithm produces a 160-bit (20-byte) hash value
582 bool "Enable SHA256 support in SPL"
585 This option enables support of hashing using SHA256 algorithm.
586 The hash is calculated in software.
587 The SHA256 algorithm produces a 256-bit (32-byte) hash value
591 bool "Enable SHA512 support in SPL"
594 This option enables support of hashing using SHA512 algorithm.
595 The hash is calculated in software.
596 The SHA512 algorithm produces a 512-bit (64-byte) hash value
600 bool "Enable SHA384 support in SPL"
604 This option enables support of hashing using SHA384 algorithm.
605 The hash is calculated in software. This is also selects SHA512,
606 because these implementations share the bulk of the code..
607 The SHA384 algorithm produces a 384-bit (48-byte) hash value
610 config SPL_SHA_HW_ACCEL
611 bool "Enable hardware acceleration for SHA hash functions"
612 default y if SHA_HW_ACCEL
614 This option enables hardware acceleration for the SHA1 and SHA256
615 hashing algorithms. This affects the 'hash' command and also the
616 hash_lookup_algo() function.
618 config SPL_SHA_PROG_HW_ACCEL
619 bool "Enable Progressive hashing support using hardware in SPL"
620 depends on SHA_PROG_HW_ACCEL
623 This option enables hardware-acceleration for SHA progressive
625 Data can be streamed in a block at a time and the hashing is
626 performed in hardware.
631 bool "Enable SHA1 support in VPL"
635 This option enables support of hashing using SHA1 algorithm.
636 The hash is calculated in software.
637 The SHA1 algorithm produces a 160-bit (20-byte) hash value
641 bool "Enable SHA256 support in VPL"
645 This option enables support of hashing using SHA256 algorithm.
646 The hash is calculated in software.
647 The SHA256 algorithm produces a 256-bit (32-byte) hash value
652 config SHA512_HW_ACCEL
653 bool "Enable hardware acceleration for SHA512"
656 This option enables hardware acceleration for the SHA384 and SHA512
657 hashing algorithms. This affects the 'hash' command and also the
658 hash_lookup_algo() function.
660 config SHA_PROG_HW_ACCEL
661 bool "Enable Progressive hashing support using hardware"
663 This option enables hardware-acceleration for SHA progressive
665 Data can be streamed in a block at a time and the hashing is
666 performed in hardware.
671 bool "Support MD5 algorithm"
673 This option enables MD5 support. MD5 is an algorithm designed
674 in 1991 that produces a 16-byte digest (or checksum) from its input
675 data. It has a number of vulnerabilities which preclude its use in
676 security applications, but it can be useful for providing a quick
677 checksum of a block of data.
680 bool "Support MD5 algorithm in SPL"
683 This option enables MD5 support in SPL. MD5 is an algorithm designed
684 in 1991 that produces a 16-byte digest (or checksum) from its input
685 data. It has a number of vulnerabilities which preclude its use in
686 security applications, but it can be useful for providing a quick
687 checksum of a block of data.
692 Enables CRC8 support in U-Boot. This is normally required. CRC8 is
693 a simple and fast checksumming algorithm which does a bytewise
694 checksum with feedback to produce an 8-bit result. The code is small
695 and it does not require a lookup table (unlike CRC32).
698 bool "Support CRC8 in SPL"
701 Enables CRC8 support in SPL. This is not normally required. CRC8 is
702 a simple and fast checksumming algorithm which does a bytewise
703 checksum with feedback to produce an 8-bit result. The code is small
704 and it does not require a lookup table (unlike CRC32).
707 bool "Support CRC16 in SPL"
710 Enables CRC16 support in SPL. This is not normally required.
715 Enables CRC32 support in U-Boot. This is normally required.
725 menu "Compression Support"
728 bool "Enable LZ4 decompression support"
730 If this option is set, support for LZ4 compressed images
731 is included. The LZ4 algorithm can run in-place as long as the
732 compressed image is loaded to the end of the output buffer, and
733 trades lower compression ratios for much faster decompression.
735 NOTE: This implements the release version of the LZ4 frame
736 format as generated by default by the 'lz4' command line tool.
737 This is not the same as the outdated, less efficient legacy
738 frame format currently (2015) implemented in the Linux kernel
739 (generated by 'lz4 -l'). The two formats are incompatible.
742 bool "Enable LZMA decompression support"
744 This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
745 a dictionary compression algorithm that provides a high compression
746 ratio and fairly fast decompression speed. See also
747 CONFIG_CMD_LZMADEC which provides a decode command.
750 bool "Enable LZO decompression support"
752 This enables support for the LZO compression algorithm.
755 bool "Enable gzip decompression support"
759 This enables support for GZIP compression algorithm.
761 config ZLIB_UNCOMPRESS
762 bool "Enables zlib's uncompress() functionality"
764 This enables an extra zlib functionality: the uncompress() function,
765 which decompresses data from a buffer into another, knowing their
766 sizes. Unlike gunzip(), there is no header parsing.
768 config GZIP_COMPRESSED
773 bool "Enable bzip2 decompression support"
775 This enables support for BZIP2 compression algorithm.
781 This enables ZLIB compression lib.
784 bool "Enable Zstandard decompression support"
787 This enables Zstandard decompression library.
791 config ZSTD_LIB_MINIFY
792 bool "Minify Zstandard code"
795 This disables various optional components and changes the
796 compilation flags to prioritize space-saving.
798 For detailed info, see zstd's lib/README.md
800 https://github.com/facebook/zstd/blob/dev/lib/README.md
805 bool "Enable bzip2 decompression support for SPL build"
808 This enables support for bzip2 compression algorithm for SPL boot.
811 bool "Enable LZ4 decompression support in SPL"
814 This enables support for the LZ4 decompression algorithm in SPL. LZ4
815 is a lossless data compression algorithm that is focused on
816 fast compression and decompression speed. It belongs to the LZ77
817 family of byte-oriented compression schemes.
820 bool "Enable LZMA decompression support for SPL build"
823 This enables support for LZMA compression algorithm for SPL boot.
826 bool "Enable LZMA decompression support for VPL build"
829 This enables support for LZMA compression algorithm for VPL boot.
832 bool "Enable LZO decompression support in SPL"
835 This enables support for LZO compression algorithm in the SPL.
838 bool "Enable gzip decompression support for SPL build"
841 This enables support for the GZIP compression algorithm for SPL boot.
846 This enables compression lib for SPL boot.
849 bool "Enable Zstandard decompression support in SPL"
853 This enables Zstandard decompression library in the SPL.
858 bool "Enable function for getting errno-related string message"
860 The function errno_str(int errno), returns a pointer to the errno
861 corresponding text message:
862 - if errno is null or positive number - a pointer to "Success" message
863 - if errno is negative - a pointer to errno related message
866 bool "Enable hexdump"
868 This enables functions for printing dumps of binary data.
871 bool "Enable hexdump in SPL"
872 depends on SPL && HEXDUMP
874 This enables functions for printing dumps of binary data in
880 This enables functions for parsing command-line options.
883 bool "Enable the FDT library"
884 default y if OF_CONTROL
886 This enables the FDT library (libfdt). It provides functions for
887 accessing binary device tree images in memory, such as adding and
888 removing nodes and properties, scanning through the tree and finding
889 particular compatible nodes. The library operates on a flattened
890 version of the device tree.
892 config OF_LIBFDT_ASSUME_MASK
893 hex "Mask of conditions to assume for libfdt"
894 depends on OF_LIBFDT || FIT
897 Use this to change the assumptions made by libfdt about the
898 device tree it is working with. A value of 0 means that no assumptions
899 are made, and libfdt is able to deal with malicious data. A value of
900 0xff means all assumptions are made and any invalid data may cause
901 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
903 config OF_LIBFDT_OVERLAY
904 bool "Enable the FDT library overlay support"
906 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
908 This enables the FDT library (libfdt) overlay support.
911 hex "Maximum size of the FDT memory area passeed to the OS"
913 default 0x13000 if FMAN_ENET || QE || U_QE
916 During OS boot, we allocate a region of memory within the bootmap
917 for the FDT. This is the size that we will expand the FDT that we
918 are using will be extended to be, in bytes.
921 bool "Enable the FDT library for SPL"
922 depends on SPL_LIBGENERIC_SUPPORT
923 default y if SPL_OF_CONTROL
925 This enables the FDT library (libfdt). It provides functions for
926 accessing binary device tree images in memory, such as adding and
927 removing nodes and properties, scanning through the tree and finding
928 particular compatible nodes. The library operates on a flattened
929 version of the device tree.
931 config SPL_OF_LIBFDT_ASSUME_MASK
932 hex "Mask of conditions to assume for libfdt"
933 depends on SPL_OF_LIBFDT || (FIT && SPL)
936 Use this to change the assumptions made by libfdt in SPL about the
937 device tree it is working with. A value of 0 means that no assumptions
938 are made, and libfdt is able to deal with malicious data. A value of
939 0xff means all assumptions are made and any invalid data may cause
940 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
943 bool "Enable the FDT library for TPL"
944 depends on TPL_LIBGENERIC_SUPPORT
945 default y if TPL_OF_CONTROL
947 This enables the FDT library (libfdt). It provides functions for
948 accessing binary device tree images in memory, such as adding and
949 removing nodes and properties, scanning through the tree and finding
950 particular compatible nodes. The library operates on a flattened
951 version of the device tree.
953 config TPL_OF_LIBFDT_ASSUME_MASK
954 hex "Mask of conditions to assume for libfdt"
955 depends on TPL_OF_LIBFDT || (FIT && TPL)
958 Use this to change the assumptions made by libfdt in TPL about the
959 device tree it is working with. A value of 0 means that no assumptions
960 are made, and libfdt is able to deal with malicious data. A value of
961 0xff means all assumptions are made and any invalid data may cause
962 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
965 bool "Enable the FDT library for VPL"
967 default y if VPL_OF_CONTROL && !VPL_OF_PLATDATA
969 This enables the FDT library (libfdt). It provides functions for
970 accessing binary device tree images in memory, such as adding and
971 removing nodes and properties, scanning through the tree and finding
972 particular compatible nodes. The library operates on a flattened
973 version of the device tree.
975 config VPL_OF_LIBFDT_ASSUME_MASK
976 hex "Mask of conditions to assume for libfdt"
977 depends on VPL_OF_LIBFDT || (FIT && VPL)
980 Use this to change the assumptions made by libfdt in SPL about the
981 device tree it is working with. A value of 0 means that no assumptions
982 are made, and libfdt is able to deal with malicious data. A value of
983 0xff means all assumptions are made and any invalid data may cause
984 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
987 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
989 config BLOBLIST_TABLES
990 bool "Put tables in a bloblist"
991 depends on X86 && BLOBLIST
993 Normally tables are placed at address 0xf0000 and can be up to 64KB
994 long. With this option, tables are instead placed in the bloblist
995 with a pointer from 0xf0000. The size can then be larger and the
996 tables can be placed high in memory.
998 config GENERATE_SMBIOS_TABLE
999 bool "Generate an SMBIOS (System Management BIOS) table"
1003 The System Management BIOS (SMBIOS) specification addresses how
1004 motherboard and system vendors present management information about
1005 their products in a standard format by extending the BIOS interface
1006 on Intel architecture systems.
1008 Check http://www.dmtf.org/standards/smbios for details.
1010 See also SYSINFO_SMBIOS which allows SMBIOS values to be provided in
1016 bool "enable continued fraction calculation routines"
1018 config SPL_LIB_RATIONAL
1019 bool "enable continued fraction calculation routines for SPL"
1022 config ASN1_COMPILER
1025 ASN.1 (Abstract Syntax Notation One) is a standard interface
1026 description language for defining data structures that can be
1027 serialized and deserialized in a cross-platform way. It is
1028 broadly used in telecommunications and computer networking,
1029 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1030 This option enables the support of the asn1 compiler.
1035 ASN.1 (Abstract Syntax Notation One) is a standard interface
1036 description language for defining data structures that can be
1037 serialized and deserialized in a cross-platform way. It is
1038 broadly used in telecommunications and computer networking,
1039 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1040 This option enables the support of the asn1 decoder.
1042 config SPL_ASN1_DECODER
1045 ASN.1 (Abstract Syntax Notation One) is a standard interface
1046 description language for defining data structures that can be
1047 serialized and deserialized in a cross-platform way. It is
1048 broadly used in telecommunications and computer networking,
1049 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1050 This option enables the support of the asn1 decoder in the SPL.
1055 In computing, object identifiers or OIDs are an identifier mechanism
1056 standardized by the International Telecommunication Union (ITU) and
1057 ISO/IEC for naming any object, concept, or "thing" with a globally
1058 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
1059 Enable fast lookup object identifier registry.
1061 config SPL_OID_REGISTRY
1064 In computing, object identifiers or OIDs are an identifier mechanism
1065 standardized by the International Telecommunication Union (ITU) and
1066 ISO/IEC for naming any object, concept, or "thing" with a globally
1067 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
1068 Enable fast lookup object identifier registry in the SPL.
1071 bool "SMBIOS support"
1072 depends on X86 || EFI_LOADER
1074 select LAST_STAGE_INIT
1076 Indicates that this platform can support System Management BIOS
1077 (SMBIOS) tables. These provide various pieces of information about
1078 the board, such as the manufacturer and the model name.
1080 See GENERATE_SMBIOS_TABLE which controls whether U-Boot actually
1081 creates these tables, rather than them coming from a previous firmware
1084 config SMBIOS_PARSER
1085 bool "SMBIOS parser"
1087 A simple parser for SMBIOS data.
1089 source "lib/optee/Kconfig"
1092 bool "enable fdtdec test"
1093 depends on OF_LIBFDT
1101 Support basic elf loading/validating functions.
1102 This supports for 32 bit and 64 bit versions.
1105 bool "Enable the logical memory blocks library (lmb)"
1106 default y if ARC || ARM || M68K || MICROBLAZE || MIPS || \
1107 NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
1108 select ARCH_MISC_INIT if PPC
1110 Support the library logical memory blocks. This will require
1111 a malloc() implementation for defining the data structures
1112 needed for maintaining the LMB memory map.
1115 bool "Enable LMB module for SPL"
1116 depends on SPL && SPL_FRAMEWORK && SPL_SYS_MALLOC
1118 Enable support for Logical Memory Block library routines in
1119 SPL. This will require a malloc() implementation for defining
1120 the data structures needed for maintaining the LMB memory map.
1122 config LMB_ARCH_MEM_MAP
1123 bool "Add an architecture specific memory map"
1125 default y if FSL_LAYERSCAPE || X86
1127 Some architectures have special or unique aspects which need
1128 consideration when adding memory ranges to the list of available
1129 memory map. Enable this config in such scenarios which allow
1130 architectures and boards to define their own memory map.
1132 config SPL_LMB_ARCH_MEM_MAP
1133 bool "Add an architecture specific memory map"
1136 Some architectures have special or unique scenarios which need
1137 consideration when adding memory ranges to the list of available
1138 memory map. Enable this config in such scenarios which allow
1139 architectures and boards to define their own memory map.
1141 config PHANDLE_CHECK_SEQ
1142 bool "Enable phandle check while getting sequence number"
1144 When there are multiple device tree nodes with same name,
1145 enable this config option to distinguish them using
1146 phandles in fdtdec_get_alias_seq() function.
1150 source "lib/fwu_updates/Kconfig"