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
78 bool "GPT Random UUID generation"
81 Enable the generation of partitions with random UUIDs if none
89 bool "Support semihosting"
90 depends on ARM || RISCV
92 Semihosting is a method for a target to communicate with a host
93 debugger. It uses special instructions which the debugger will trap
94 on and interpret. This allows U-Boot to read/write files, print to
95 the console, and execute arbitrary commands on the host system.
97 Enabling this option will add support for reading and writing files
98 on the host system. If you don't have a debugger attached then trying
99 to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
101 config SEMIHOSTING_FALLBACK
102 bool "Recover gracefully when semihosting fails"
103 depends on SEMIHOSTING
106 Normally, if U-Boot makes a semihosting call and no debugger is
107 attached, then it will panic due to a synchronous abort
108 exception. This config adds an exception handler which will allow
109 U-Boot to recover. Say 'y' if unsure.
111 config SPL_SEMIHOSTING
112 bool "Support semihosting in SPL"
113 depends on SPL && (ARM || RISCV)
115 Semihosting is a method for a target to communicate with a host
116 debugger. It uses special instructions which the debugger will trap
117 on and interpret. This allows U-Boot to read/write files, print to
118 the console, and execute arbitrary commands on the host system.
120 Enabling this option will add support for reading and writing files
121 on the host system. If you don't have a debugger attached then trying
122 to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
124 config SPL_SEMIHOSTING_FALLBACK
125 bool "Recover gracefully when semihosting fails in SPL"
126 depends on SPL_SEMIHOSTING
127 select ARMV8_SPL_EXCEPTION_VECTORS if ARM64
130 Normally, if U-Boot makes a semihosting call and no debugger is
131 attached, then it will panic due to a synchronous abort
132 exception. This config adds an exception handler which will allow
133 U-Boot to recover. Say 'y' if unsure.
142 select SPL_STRTO if !SPL_USE_TINY_PRINTF
147 select TPL_STRTO if !TPL_USE_TINY_PRINTF
152 select VPL_STRTO if !VPL_USE_TINY_PRINTF
186 config IMAGE_SPARSE_FILLBUF_SIZE
187 hex "Android sparse image CHUNK_TYPE_FILL buffer size"
189 depends on IMAGE_SPARSE
191 Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
194 config USE_PRIVATE_LIBGCC
195 bool "Use private libgcc"
196 depends on HAVE_PRIVATE_LIBGCC
197 default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
199 This option allows you to use the built-in libgcc implementation
200 of U-Boot instead of the one provided by the compiler.
207 The frequency of the timer returned by get_timer().
208 get_timer() must operate in milliseconds and this option must be
211 config SPL_USE_TINY_PRINTF
212 bool "Enable tiny printf() version in SPL"
216 This option enables a tiny, stripped down printf version.
217 This should only be used in space limited environments,
218 like SPL versions with hard memory limits. This version
219 reduces the code size by about 2.5KiB on armv7.
221 The supported format specifiers are %c, %s, %u/%d and %x.
223 config TPL_USE_TINY_PRINTF
224 bool "Enable tiny printf() version in TPL"
226 default y if SPL_USE_TINY_PRINTF
228 This option enables a tiny, stripped down printf version.
229 This should only be used in space limited environments,
230 like SPL versions with hard memory limits. This version
231 reduces the code size by about 2.5KiB on armv7.
233 The supported format specifiers are %c, %s, %u/%d and %x.
235 config VPL_USE_TINY_PRINTF
236 bool "Enable tiny printf() version for VPL"
239 This option enables a tiny, stripped down printf version.
240 This should only be used in space limited environments,
241 like SPL versions with hard memory limits. This version
242 reduces the code size by about 2.5KiB on armv7.
244 The supported format specifiers are %c, %s, %u/%d and %x.
247 bool "Do not reset the system on fatal error"
249 Define this option to stop the system in case of a fatal error,
250 so that you have to reset it manually. This is probably NOT a good
251 idea for an embedded system where you want the system to reboot
252 automatically as fast as possible, but it may be useful during
253 development since you can try to debug the conditions that lead to
257 bool "Enable regular expression support"
260 If this variable is defined, U-Boot is linked against the
261 SLRE (Super Light Regular Expression) library, which adds
262 regex support to some commands, for example "env grep" and
266 prompt "Pseudo-random library support type"
267 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
268 RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
271 Select the library to provide pseudo-random number generator
272 functions. LIB_HW_RAND supports certain hardware engines that
273 provide this functionality. If in doubt, select LIB_RAND.
276 bool "Pseudo-random library support"
279 bool "HW Engine for random library support"
286 Enable this if your arch or board can support generating ACPI
287 (Advanced Configuration and Power Interface) tables. In this case
288 U-Boot can generate these tables and pass them to the Operating
292 bool "Enable support for ACPI libraries"
293 depends on SUPPORT_ACPI
295 Provides library functions for dealing with ACPI tables. This does
296 not necessarily include generation of tables
297 (see GENERATE_ACPI_TABLE), but allows for tables to be located.
300 bool "Enable support for ACPI libraries in SPL"
301 depends on SPL && SUPPORT_ACPI
303 Provides library functions for dealing with ACPI tables in SPL. This
304 does not necessarily include generation of tables
305 (see GENERATE_ACPI_TABLE), but allows for tables to be located.
307 config GENERATE_ACPI_TABLE
308 bool "Generate an ACPI (Advanced Configuration and Power Interface) table"
312 The Advanced Configuration and Power Interface (ACPI) specification
313 provides an open standard for device configuration and management
314 by the operating system. It defines platform-independent interfaces
315 for configuration and power management monitoring.
317 config SPL_TINY_MEMSET
318 bool "Use a very small memset() in SPL"
321 The faster memset() is the arch-specific one (if available) enabled
322 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
323 better performance by writing a word at a time. But in very
324 size-constrained environments even this may be too big. Enable this
325 option to reduce code size slightly at the cost of some speed.
327 config TPL_TINY_MEMSET
328 bool "Use a very small memset() in TPL"
331 The faster memset() is the arch-specific one (if available) enabled
332 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
333 better performance by writing a word at a time. But in very
334 size-constrained environments even this may be too big. Enable this
335 option to reduce code size slightly at the cost of some speed.
341 bool "Bit reverse library from Linux"
344 bool "Support for tracing of function calls and timing"
348 Enables function tracing within U-Boot. This allows recording of call
349 traces including timing information. The command can write data to
350 memory for exporting for analysis (e.g. using bootchart).
351 See doc/develop/trace.rst for full details.
353 config TRACE_BUFFER_SIZE
354 hex "Size of trace buffer in U-Boot"
358 Sets the size of the trace buffer in U-Boot. This is allocated from
359 memory during relocation. If this buffer is too small, the trace
360 history will be truncated, with later records omitted.
362 If early trace is enabled (i.e. before relocation), this buffer must
363 be large enough to include all the data from the early trace buffer as
364 well, since this is copied over to the main buffer during relocation.
366 A trace record is emitted for each function call and each record is
367 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
368 the size is too small then 'trace stats' will show a message saying
369 how many records were dropped due to buffer overflow.
371 config TRACE_CALL_DEPTH_LIMIT
372 int "Trace call depth limit"
376 Sets the maximum call depth up to which function calls are recorded.
379 bool "Enable tracing before relocation"
382 Sometimes it is helpful to trace execution of U-Boot before
383 relocation. This is possible by using a arch-specific, fixed buffer
384 position in memory. Enable this option to start tracing as early as
385 possible after U-Boot starts.
387 config TRACE_EARLY_SIZE
388 hex "Size of early trace buffer in U-Boot"
389 depends on TRACE_EARLY
392 Sets the size of the early trace buffer in bytes. This is used to hold
393 tracing information before relocation.
395 config TRACE_EARLY_CALL_DEPTH_LIMIT
396 int "Early trace call depth limit"
397 depends on TRACE_EARLY
400 Sets the maximum call depth up to which function calls are recorded
401 during early tracing.
403 config TRACE_EARLY_ADDR
404 hex "Address of early trace buffer in U-Boot"
405 depends on TRACE_EARLY
408 Sets the address of the early trace buffer in U-Boot. This memory
409 must be accessible before relocation.
411 A trace record is emitted for each function call and each record is
412 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
413 the size is too small then the message which says the amount of early
414 data being coped will the the same as the
417 bool "Enable circular buffer support"
419 source "lib/dhry/Kconfig"
421 menu "Security support"
424 bool "Support the AES algorithm"
426 This provides a means to encrypt and decrypt data using the AES
427 (Advanced Encryption Standard). This algorithm uses a symetric key
428 and is widely used as a streaming cipher. Different key lengths are
429 supported by the algorithm but only a 128-bit key is supported at
432 source "lib/ecdsa/Kconfig"
433 source "lib/rsa/Kconfig"
434 source "lib/crypto/Kconfig"
435 source "lib/crypt/Kconfig"
438 bool "Trusted Platform Module (TPM) Support"
443 This enables support for TPMs which can be used to provide security
444 features for your board. The TPM can be connected via LPC or I2C
445 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
446 command to interactive the TPM. Driver model support is provided
447 for the low-level TPM interface, but only one TPM is supported at
448 a time by the TPM library.
449 For size reasons only SHA1 is selected which is supported on TPM1.2.
450 If you want a fully functional TPM enable all hashing algorithms.
451 If you enabled measured boot all hashing algorithms are selected.
454 bool "Trusted Platform Module (TPM) Support in SPL"
458 This enables support for TPMs which can be used to provide security
459 features for your board. The TPM can be connected via LPC or I2C
460 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
461 command to interactive the TPM. Driver model support is provided
462 for the low-level TPM interface, but only one TPM is supported at
463 a time by the TPM library.
466 bool "Trusted Platform Module (TPM) Support in TPL"
469 This enables support for TPMs which can be used to provide security
470 features for your board. The TPM can be connected via LPC or I2C
471 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
472 command to interactive the TPM. Driver model support is provided
473 for the low-level TPM interface, but only one TPM is supported at
474 a time by the TPM library.
477 bool "Trusted Platform Module (TPM) Support in VPL"
480 This enables support for TPMs which can be used to provide security
481 features for your board. The TPM can be connected via LPC or I2C
482 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
483 command to interactive the TPM. Driver model support is provided
484 for the low-level TPM interface, but only one TPM is supported at
485 a time by the TPM library.
489 menu "Android Verified Boot"
492 bool "Android Verified Boot 2.0 support"
493 depends on ANDROID_BOOT_IMAGE
495 This enables support of Android Verified Boot 2.0 which can be used
496 to assure the end user of the integrity of the software running on a
497 device. Introduces such features as boot chain of trust, rollback
502 menu "Hashing Support"
505 bool "Enable BLAKE2 support"
507 This option enables support of hashing using BLAKE2B algorithm.
508 The hash is calculated in software.
509 The BLAKE2 algorithm produces a hash value (digest) between 1 and
513 bool "Enable SHA1 support"
515 This option enables support of hashing using SHA1 algorithm.
516 The hash is calculated in software.
517 The SHA1 algorithm produces a 160-bit (20-byte) hash value
521 bool "Enable SHA256 support"
523 This option enables support of hashing using SHA256 algorithm.
524 The hash is calculated in software.
525 The SHA256 algorithm produces a 256-bit (32-byte) hash value
529 bool "Enable SHA512 support"
530 default y if TI_SECURE_DEVICE && FIT_SIGNATURE
532 This option enables support of hashing using SHA512 algorithm.
533 The hash is calculated in software.
534 The SHA512 algorithm produces a 512-bit (64-byte) hash value
538 bool "Enable SHA384 support"
541 This option enables support of hashing using SHA384 algorithm.
542 The hash is calculated in software. This is also selects SHA512,
543 because these implementations share the bulk of the code..
544 The SHA384 algorithm produces a 384-bit (48-byte) hash value
548 bool "Enable hardware acceleration for SHA hash functions"
550 This option enables hardware acceleration for the SHA1 and SHA256
551 hashing algorithms. This affects the 'hash' command and also the
552 hash_lookup_algo() function.
557 bool "Enable CRC32 support in SPL"
558 default y if SPL_LEGACY_IMAGE_SUPPORT || SPL_EFI_PARTITION
559 default y if SPL_ENV_SUPPORT || TPL_BLOBLIST
561 This option enables support of hashing using CRC32 algorithm.
562 The CRC32 algorithm produces 32-bit checksum value. For FIT
563 images, this is the least secure type of checksum, suitable for
564 detected accidental image corruption. For secure applications you
565 should consider SHA256 or SHA384.
568 bool "Enable SHA1 support in SPL"
571 This option enables support of hashing using SHA1 algorithm.
572 The hash is calculated in software.
573 The SHA1 algorithm produces a 160-bit (20-byte) hash value
577 bool "Enable SHA256 support in SPL"
580 This option enables support of hashing using SHA256 algorithm.
581 The hash is calculated in software.
582 The SHA256 algorithm produces a 256-bit (32-byte) hash value
586 bool "Enable SHA512 support in SPL"
589 This option enables support of hashing using SHA512 algorithm.
590 The hash is calculated in software.
591 The SHA512 algorithm produces a 512-bit (64-byte) hash value
595 bool "Enable SHA384 support in SPL"
599 This option enables support of hashing using SHA384 algorithm.
600 The hash is calculated in software. This is also selects SHA512,
601 because these implementations share the bulk of the code..
602 The SHA384 algorithm produces a 384-bit (48-byte) hash value
605 config SPL_SHA_HW_ACCEL
606 bool "Enable hardware acceleration for SHA hash functions"
607 default y if SHA_HW_ACCEL
609 This option enables hardware acceleration for the SHA1 and SHA256
610 hashing algorithms. This affects the 'hash' command and also the
611 hash_lookup_algo() function.
613 config SPL_SHA_PROG_HW_ACCEL
614 bool "Enable Progressive hashing support using hardware in SPL"
615 depends on SHA_PROG_HW_ACCEL
618 This option enables hardware-acceleration for SHA progressive
620 Data can be streamed in a block at a time and the hashing is
621 performed in hardware.
626 bool "Enable SHA1 support in VPL"
630 This option enables support of hashing using SHA1 algorithm.
631 The hash is calculated in software.
632 The SHA1 algorithm produces a 160-bit (20-byte) hash value
636 bool "Enable SHA256 support in VPL"
640 This option enables support of hashing using SHA256 algorithm.
641 The hash is calculated in software.
642 The SHA256 algorithm produces a 256-bit (32-byte) hash value
647 config SHA512_HW_ACCEL
648 bool "Enable hardware acceleration for SHA512"
651 This option enables hardware acceleration for the SHA384 and SHA512
652 hashing algorithms. This affects the 'hash' command and also the
653 hash_lookup_algo() function.
655 config SHA_PROG_HW_ACCEL
656 bool "Enable Progressive hashing support using hardware"
658 This option enables hardware-acceleration for SHA progressive
660 Data can be streamed in a block at a time and the hashing is
661 performed in hardware.
666 bool "Support MD5 algorithm"
668 This option enables MD5 support. MD5 is an algorithm designed
669 in 1991 that produces a 16-byte digest (or checksum) from its input
670 data. It has a number of vulnerabilities which preclude its use in
671 security applications, but it can be useful for providing a quick
672 checksum of a block of data.
675 bool "Support MD5 algorithm in SPL"
678 This option enables MD5 support in SPL. MD5 is an algorithm designed
679 in 1991 that produces a 16-byte digest (or checksum) from its input
680 data. It has a number of vulnerabilities which preclude its use in
681 security applications, but it can be useful for providing a quick
682 checksum of a block of data.
687 Enables CRC8 support in U-Boot. This is normally required. CRC8 is
688 a simple and fast checksumming algorithm which does a bytewise
689 checksum with feedback to produce an 8-bit result. The code is small
690 and it does not require a lookup table (unlike CRC32).
693 bool "Support CRC8 in SPL"
696 Enables CRC8 support in SPL. This is not normally required. CRC8 is
697 a simple and fast checksumming algorithm which does a bytewise
698 checksum with feedback to produce an 8-bit result. The code is small
699 and it does not require a lookup table (unlike CRC32).
702 bool "Support CRC16 in SPL"
705 Enables CRC16 support in SPL. This is not normally required.
710 Enables CRC32 support in U-Boot. This is normally required.
720 menu "Compression Support"
723 bool "Enable LZ4 decompression support"
725 If this option is set, support for LZ4 compressed images
726 is included. The LZ4 algorithm can run in-place as long as the
727 compressed image is loaded to the end of the output buffer, and
728 trades lower compression ratios for much faster decompression.
730 NOTE: This implements the release version of the LZ4 frame
731 format as generated by default by the 'lz4' command line tool.
732 This is not the same as the outdated, less efficient legacy
733 frame format currently (2015) implemented in the Linux kernel
734 (generated by 'lz4 -l'). The two formats are incompatible.
737 bool "Enable LZMA decompression support"
739 This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
740 a dictionary compression algorithm that provides a high compression
741 ratio and fairly fast decompression speed. See also
742 CONFIG_CMD_LZMADEC which provides a decode command.
745 bool "Enable LZO decompression support"
747 This enables support for the LZO compression algorithm.
750 bool "Enable gzip decompression support"
754 This enables support for GZIP compression algorithm.
756 config ZLIB_UNCOMPRESS
757 bool "Enables zlib's uncompress() functionality"
759 This enables an extra zlib functionality: the uncompress() function,
760 which decompresses data from a buffer into another, knowing their
761 sizes. Unlike gunzip(), there is no header parsing.
763 config GZIP_COMPRESSED
768 bool "Enable bzip2 decompression support"
770 This enables support for BZIP2 compression algorithm.
776 This enables ZLIB compression lib.
779 bool "Enable Zstandard decompression support"
782 This enables Zstandard decompression library.
786 config ZSTD_LIB_MINIFY
787 bool "Minify Zstandard code"
790 This disables various optional components and changes the
791 compilation flags to prioritize space-saving.
793 For detailed info, see zstd's lib/README.md
795 https://github.com/facebook/zstd/blob/dev/lib/README.md
800 bool "Enable bzip2 decompression support for SPL build"
803 This enables support for bzip2 compression algorithm for SPL boot.
806 bool "Enable LZ4 decompression support in SPL"
809 This enables support for the LZ4 decompression algorithm in SPL. LZ4
810 is a lossless data compression algorithm that is focused on
811 fast compression and decompression speed. It belongs to the LZ77
812 family of byte-oriented compression schemes.
815 bool "Enable LZMA decompression support for SPL build"
818 This enables support for LZMA compression algorithm for SPL boot.
821 bool "Enable LZMA decompression support for VPL build"
824 This enables support for LZMA compression algorithm for VPL boot.
827 bool "Enable LZO decompression support in SPL"
830 This enables support for LZO compression algorithm in the SPL.
833 bool "Enable gzip decompression support for SPL build"
836 This enables support for the GZIP compression algorithm for SPL boot.
841 This enables compression lib for SPL boot.
844 bool "Enable Zstandard decompression support in SPL"
848 This enables Zstandard decompression library in the SPL.
853 bool "Enable function for getting errno-related string message"
855 The function errno_str(int errno), returns a pointer to the errno
856 corresponding text message:
857 - if errno is null or positive number - a pointer to "Success" message
858 - if errno is negative - a pointer to errno related message
861 bool "Enable hexdump"
863 This enables functions for printing dumps of binary data.
866 bool "Enable hexdump in SPL"
867 depends on SPL && HEXDUMP
869 This enables functions for printing dumps of binary data in
875 This enables functions for parsing command-line options.
878 bool "Enable the FDT library"
879 default y if OF_CONTROL
881 This enables the FDT library (libfdt). It provides functions for
882 accessing binary device tree images in memory, such as adding and
883 removing nodes and properties, scanning through the tree and finding
884 particular compatible nodes. The library operates on a flattened
885 version of the device tree.
887 config OF_LIBFDT_ASSUME_MASK
888 hex "Mask of conditions to assume for libfdt"
889 depends on OF_LIBFDT || FIT
892 Use this to change the assumptions made by libfdt about the
893 device tree it is working with. A value of 0 means that no assumptions
894 are made, and libfdt is able to deal with malicious data. A value of
895 0xff means all assumptions are made and any invalid data may cause
896 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
898 config OF_LIBFDT_OVERLAY
899 bool "Enable the FDT library overlay support"
901 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
903 This enables the FDT library (libfdt) overlay support.
906 hex "Maximum size of the FDT memory area passeed to the OS"
908 default 0x13000 if FMAN_ENET || QE || U_QE
911 During OS boot, we allocate a region of memory within the bootmap
912 for the FDT. This is the size that we will expand the FDT that we
913 are using will be extended to be, in bytes.
916 bool "Enable the FDT library for SPL"
917 depends on SPL_LIBGENERIC_SUPPORT
918 default y if SPL_OF_CONTROL
920 This enables the FDT library (libfdt). It provides functions for
921 accessing binary device tree images in memory, such as adding and
922 removing nodes and properties, scanning through the tree and finding
923 particular compatible nodes. The library operates on a flattened
924 version of the device tree.
926 config SPL_OF_LIBFDT_ASSUME_MASK
927 hex "Mask of conditions to assume for libfdt"
928 depends on SPL_OF_LIBFDT || (FIT && SPL)
931 Use this to change the assumptions made by libfdt in SPL about the
932 device tree it is working with. A value of 0 means that no assumptions
933 are made, and libfdt is able to deal with malicious data. A value of
934 0xff means all assumptions are made and any invalid data may cause
935 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
938 bool "Enable the FDT library for TPL"
939 depends on TPL_LIBGENERIC_SUPPORT
940 default y if TPL_OF_CONTROL
942 This enables the FDT library (libfdt). It provides functions for
943 accessing binary device tree images in memory, such as adding and
944 removing nodes and properties, scanning through the tree and finding
945 particular compatible nodes. The library operates on a flattened
946 version of the device tree.
948 config TPL_OF_LIBFDT_ASSUME_MASK
949 hex "Mask of conditions to assume for libfdt"
950 depends on TPL_OF_LIBFDT || (FIT && TPL)
953 Use this to change the assumptions made by libfdt in TPL about the
954 device tree it is working with. A value of 0 means that no assumptions
955 are made, and libfdt is able to deal with malicious data. A value of
956 0xff means all assumptions are made and any invalid data may cause
957 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
960 bool "Enable the FDT library for VPL"
962 default y if VPL_OF_CONTROL && !VPL_OF_PLATDATA
964 This enables the FDT library (libfdt). It provides functions for
965 accessing binary device tree images in memory, such as adding and
966 removing nodes and properties, scanning through the tree and finding
967 particular compatible nodes. The library operates on a flattened
968 version of the device tree.
970 config VPL_OF_LIBFDT_ASSUME_MASK
971 hex "Mask of conditions to assume for libfdt"
972 depends on VPL_OF_LIBFDT || (FIT && VPL)
975 Use this to change the assumptions made by libfdt in SPL about the
976 device tree it is working with. A value of 0 means that no assumptions
977 are made, and libfdt is able to deal with malicious data. A value of
978 0xff means all assumptions are made and any invalid data may cause
979 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
982 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
984 config BLOBLIST_TABLES
985 bool "Put tables in a bloblist"
986 depends on X86 && BLOBLIST
988 Normally tables are placed at address 0xf0000 and can be up to 64KB
989 long. With this option, tables are instead placed in the bloblist
990 with a pointer from 0xf0000. The size can then be larger and the
991 tables can be placed high in memory.
993 config GENERATE_SMBIOS_TABLE
994 bool "Generate an SMBIOS (System Management BIOS) table"
998 The System Management BIOS (SMBIOS) specification addresses how
999 motherboard and system vendors present management information about
1000 their products in a standard format by extending the BIOS interface
1001 on Intel architecture systems.
1003 Check http://www.dmtf.org/standards/smbios for details.
1005 See also SYSINFO_SMBIOS which allows SMBIOS values to be provided in
1011 bool "enable continued fraction calculation routines"
1013 config SPL_LIB_RATIONAL
1014 bool "enable continued fraction calculation routines for SPL"
1017 config ASN1_COMPILER
1020 ASN.1 (Abstract Syntax Notation One) is a standard interface
1021 description language for defining data structures that can be
1022 serialized and deserialized in a cross-platform way. It is
1023 broadly used in telecommunications and computer networking,
1024 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1025 This option enables the support of the asn1 compiler.
1030 ASN.1 (Abstract Syntax Notation One) is a standard interface
1031 description language for defining data structures that can be
1032 serialized and deserialized in a cross-platform way. It is
1033 broadly used in telecommunications and computer networking,
1034 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1035 This option enables the support of the asn1 decoder.
1037 config SPL_ASN1_DECODER
1040 ASN.1 (Abstract Syntax Notation One) is a standard interface
1041 description language for defining data structures that can be
1042 serialized and deserialized in a cross-platform way. It is
1043 broadly used in telecommunications and computer networking,
1044 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1045 This option enables the support of the asn1 decoder in the SPL.
1050 In computing, object identifiers or OIDs are an identifier mechanism
1051 standardized by the International Telecommunication Union (ITU) and
1052 ISO/IEC for naming any object, concept, or "thing" with a globally
1053 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
1054 Enable fast lookup object identifier registry.
1056 config SPL_OID_REGISTRY
1059 In computing, object identifiers or OIDs are an identifier mechanism
1060 standardized by the International Telecommunication Union (ITU) and
1061 ISO/IEC for naming any object, concept, or "thing" with a globally
1062 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
1063 Enable fast lookup object identifier registry in the SPL.
1066 bool "SMBIOS support"
1067 depends on X86 || EFI_LOADER
1069 select LAST_STAGE_INIT
1071 Indicates that this platform can support System Management BIOS
1072 (SMBIOS) tables. These provide various pieces of information about
1073 the board, such as the manufacturer and the model name.
1075 See GENERATE_SMBIOS_TABLE which controls whether U-Boot actually
1076 creates these tables, rather than them coming from a previous firmware
1079 config SMBIOS_PARSER
1080 bool "SMBIOS parser"
1082 A simple parser for SMBIOS data.
1084 source "lib/efi/Kconfig"
1085 source "lib/efi_loader/Kconfig"
1086 source "lib/optee/Kconfig"
1089 bool "enable fdtdec test"
1090 depends on OF_LIBFDT
1098 Support basic elf loading/validating functions.
1099 This supports for 32 bit and 64 bit versions.
1102 bool "Enable the logical memory blocks library (lmb)"
1103 default y if ARC || ARM || M68K || MICROBLAZE || MIPS || \
1104 NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
1106 Support the library logical memory blocks.
1108 config LMB_USE_MAX_REGIONS
1109 bool "Use a common number of memory and reserved regions in lmb lib"
1112 Define the number of supported memory regions in the library logical
1114 This feature allow to reduce the lmb library size by using compiler
1115 optimization when LMB_MEMORY_REGIONS == LMB_RESERVED_REGIONS.
1117 config LMB_MAX_REGIONS
1118 int "Number of memory and reserved regions in lmb lib"
1119 depends on LMB_USE_MAX_REGIONS
1122 Define the number of supported regions, memory and reserved, in the
1123 library logical memory blocks.
1125 config LMB_MEMORY_REGIONS
1126 int "Number of memory regions in lmb lib"
1127 depends on !LMB_USE_MAX_REGIONS
1130 Define the number of supported memory regions in the library logical
1132 The minimal value is CONFIG_NR_DRAM_BANKS.
1134 config LMB_RESERVED_REGIONS
1135 int "Number of reserved regions in lmb lib"
1136 depends on !LMB_USE_MAX_REGIONS
1139 Define the number of supported reserved regions in the library logical
1142 config PHANDLE_CHECK_SEQ
1143 bool "Enable phandle check while getting sequence number"
1145 When there are multiple device tree nodes with same name,
1146 enable this config option to distinguish them using
1147 phandles in fdtdec_get_alias_seq() function.
1151 source "lib/fwu_updates/Kconfig"