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
82 bool "Support semihosting"
83 depends on ARM || RISCV
85 Semihosting is a method for a target to communicate with a host
86 debugger. It uses special instructions which the debugger will trap
87 on and interpret. This allows U-Boot to read/write files, print to
88 the console, and execute arbitrary commands on the host system.
90 Enabling this option will add support for reading and writing files
91 on the host system. If you don't have a debugger attached then trying
92 to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
94 config SEMIHOSTING_FALLBACK
95 bool "Recover gracefully when semihosting fails"
96 depends on SEMIHOSTING && (ARM64 || RISCV)
99 Normally, if U-Boot makes a semihosting call and no debugger is
100 attached, then it will panic due to a synchronous abort
101 exception. This config adds an exception handler which will allow
102 U-Boot to recover. Say 'y' if unsure.
104 config SPL_SEMIHOSTING
105 bool "Support semihosting in SPL"
106 depends on SPL && (ARM || RISCV)
108 Semihosting is a method for a target to communicate with a host
109 debugger. It uses special instructions which the debugger will trap
110 on and interpret. This allows U-Boot to read/write files, print to
111 the console, and execute arbitrary commands on the host system.
113 Enabling this option will add support for reading and writing files
114 on the host system. If you don't have a debugger attached then trying
115 to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
117 config SPL_SEMIHOSTING_FALLBACK
118 bool "Recover gracefully when semihosting fails in SPL"
119 depends on SPL_SEMIHOSTING && (ARM64 || RISCV)
120 select ARMV8_SPL_EXCEPTION_VECTORS if ARM64
123 Normally, if U-Boot makes a semihosting call and no debugger is
124 attached, then it will panic due to a synchronous abort
125 exception. This config adds an exception handler which will allow
126 U-Boot to recover. Say 'y' if unsure.
135 select SPL_STRTO if !SPL_USE_TINY_PRINTF
140 select TPL_STRTO if !TPL_USE_TINY_PRINTF
145 select VPL_STRTO if !VPL_USE_TINY_PRINTF
179 config IMAGE_SPARSE_FILLBUF_SIZE
180 hex "Android sparse image CHUNK_TYPE_FILL buffer size"
182 depends on IMAGE_SPARSE
184 Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
187 config USE_PRIVATE_LIBGCC
188 bool "Use private libgcc"
189 depends on HAVE_PRIVATE_LIBGCC
190 default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
192 This option allows you to use the built-in libgcc implementation
193 of U-Boot instead of the one provided by the compiler.
200 The frequency of the timer returned by get_timer().
201 get_timer() must operate in milliseconds and this option must be
204 config SPL_USE_TINY_PRINTF
205 bool "Enable tiny printf() version in SPL"
209 This option enables a tiny, stripped down printf version.
210 This should only be used in space limited environments,
211 like SPL versions with hard memory limits. This version
212 reduces the code size by about 2.5KiB on armv7.
214 The supported format specifiers are %c, %s, %u/%d and %x.
216 config TPL_USE_TINY_PRINTF
217 bool "Enable tiny printf() version in TPL"
219 default y if SPL_USE_TINY_PRINTF
221 This option enables a tiny, stripped down printf version.
222 This should only be used in space limited environments,
223 like SPL versions with hard memory limits. This version
224 reduces the code size by about 2.5KiB on armv7.
226 The supported format specifiers are %c, %s, %u/%d and %x.
228 config VPL_USE_TINY_PRINTF
229 bool "Enable tiny printf() version for VPL"
232 This option enables a tiny, stripped down printf version.
233 This should only be used in space limited environments,
234 like SPL versions with hard memory limits. This version
235 reduces the code size by about 2.5KiB on armv7.
237 The supported format specifiers are %c, %s, %u/%d and %x.
240 bool "Do not reset the system on fatal error"
242 Define this option to stop the system in case of a fatal error,
243 so that you have to reset it manually. This is probably NOT a good
244 idea for an embedded system where you want the system to reboot
245 automatically as fast as possible, but it may be useful during
246 development since you can try to debug the conditions that lead to
250 bool "Enable regular expression support"
253 If this variable is defined, U-Boot is linked against the
254 SLRE (Super Light Regular Expression) library, which adds
255 regex support to some commands, for example "env grep" and
259 prompt "Pseudo-random library support type"
260 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
261 RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
264 Select the library to provide pseudo-random number generator
265 functions. LIB_HW_RAND supports certain hardware engines that
266 provide this functionality. If in doubt, select LIB_RAND.
269 bool "Pseudo-random library support"
272 bool "HW Engine for random library support"
279 Enable this if your arch or board can support generating ACPI
280 (Advanced Configuration and Power Interface) tables. In this case
281 U-Boot can generate these tables and pass them to the Operating
285 bool "Enable support for ACPI libraries"
286 depends on SUPPORT_ACPI
288 Provides library functions for dealing with ACPI tables. This does
289 not necessarily include generation of tables
290 (see GENERATE_ACPI_TABLE), but allows for tables to be located.
293 bool "Enable support for ACPI libraries in SPL"
294 depends on SPL && SUPPORT_ACPI
296 Provides library functions for dealing with ACPI tables in SPL. This
297 does not necessarily include generation of tables
298 (see GENERATE_ACPI_TABLE), but allows for tables to be located.
300 config GENERATE_ACPI_TABLE
301 bool "Generate an ACPI (Advanced Configuration and Power Interface) table"
305 The Advanced Configuration and Power Interface (ACPI) specification
306 provides an open standard for device configuration and management
307 by the operating system. It defines platform-independent interfaces
308 for configuration and power management monitoring.
310 config SPL_TINY_MEMSET
311 bool "Use a very small memset() in SPL"
314 The faster memset() is the arch-specific one (if available) enabled
315 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
316 better performance by writing a word at a time. But in very
317 size-constrained environments even this may be too big. Enable this
318 option to reduce code size slightly at the cost of some speed.
320 config TPL_TINY_MEMSET
321 bool "Use a very small memset() in TPL"
324 The faster memset() is the arch-specific one (if available) enabled
325 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
326 better performance by writing a word at a time. But in very
327 size-constrained environments even this may be too big. Enable this
328 option to reduce code size slightly at the cost of some speed.
334 bool "Bit reverse library from Linux"
337 bool "Support for tracing of function calls and timing"
341 Enables function tracing within U-Boot. This allows recording of call
342 traces including timing information. The command can write data to
343 memory for exporting for analysis (e.g. using bootchart).
344 See doc/README.trace for full details.
346 config TRACE_BUFFER_SIZE
347 hex "Size of trace buffer in U-Boot"
351 Sets the size of the trace buffer in U-Boot. This is allocated from
352 memory during relocation. If this buffer is too small, the trace
353 history will be truncated, with later records omitted.
355 If early trace is enabled (i.e. before relocation), this buffer must
356 be large enough to include all the data from the early trace buffer as
357 well, since this is copied over to the main buffer during relocation.
359 A trace record is emitted for each function call and each record is
360 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
361 the size is too small then 'trace stats' will show a message saying
362 how many records were dropped due to buffer overflow.
364 config TRACE_CALL_DEPTH_LIMIT
365 int "Trace call depth limit"
369 Sets the maximum call depth up to which function calls are recorded.
372 bool "Enable tracing before relocation"
375 Sometimes it is helpful to trace execution of U-Boot before
376 relocation. This is possible by using a arch-specific, fixed buffer
377 position in memory. Enable this option to start tracing as early as
378 possible after U-Boot starts.
380 config TRACE_EARLY_SIZE
381 hex "Size of early trace buffer in U-Boot"
382 depends on TRACE_EARLY
385 Sets the size of the early trace buffer in bytes. This is used to hold
386 tracing information before relocation.
388 config TRACE_EARLY_CALL_DEPTH_LIMIT
389 int "Early trace call depth limit"
390 depends on TRACE_EARLY
393 Sets the maximum call depth up to which function calls are recorded
394 during early tracing.
396 config TRACE_EARLY_ADDR
397 hex "Address of early trace buffer in U-Boot"
398 depends on TRACE_EARLY
401 Sets the address of the early trace buffer in U-Boot. This memory
402 must be accessible before relocation.
404 A trace record is emitted for each function call and each record is
405 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
406 the size is too small then the message which says the amount of early
407 data being coped will the the same as the
410 bool "Enable circular buffer support"
412 source lib/dhry/Kconfig
414 menu "Security support"
417 bool "Support the AES algorithm"
419 This provides a means to encrypt and decrypt data using the AES
420 (Advanced Encryption Standard). This algorithm uses a symetric key
421 and is widely used as a streaming cipher. Different key lengths are
422 supported by the algorithm but only a 128-bit key is supported at
425 source lib/ecdsa/Kconfig
426 source lib/rsa/Kconfig
427 source lib/crypto/Kconfig
428 source lib/crypt/Kconfig
431 bool "Trusted Platform Module (TPM) Support"
435 This enables support for TPMs which can be used to provide security
436 features for your board. The TPM can be connected via LPC or I2C
437 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
438 command to interactive the TPM. Driver model support is provided
439 for the low-level TPM interface, but only one TPM is supported at
440 a time by the TPM library.
443 bool "Trusted Platform Module (TPM) Support in SPL"
447 This enables support for TPMs which can be used to provide security
448 features for your board. The TPM can be connected via LPC or I2C
449 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
450 command to interactive the TPM. Driver model support is provided
451 for the low-level TPM interface, but only one TPM is supported at
452 a time by the TPM library.
455 bool "Trusted Platform Module (TPM) Support in TPL"
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 VPL"
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.
478 menu "Android Verified Boot"
481 bool "Android Verified Boot 2.0 support"
482 depends on ANDROID_BOOT_IMAGE
484 This enables support of Android Verified Boot 2.0 which can be used
485 to assure the end user of the integrity of the software running on a
486 device. Introduces such features as boot chain of trust, rollback
491 menu "Hashing Support"
494 bool "Enable BLAKE2 support"
496 This option enables support of hashing using BLAKE2B algorithm.
497 The hash is calculated in software.
498 The BLAKE2 algorithm produces a hash value (digest) between 1 and
502 bool "Enable SHA1 support"
504 This option enables support of hashing using SHA1 algorithm.
505 The hash is calculated in software.
506 The SHA1 algorithm produces a 160-bit (20-byte) hash value
510 bool "Enable SHA256 support"
512 This option enables support of hashing using SHA256 algorithm.
513 The hash is calculated in software.
514 The SHA256 algorithm produces a 256-bit (32-byte) hash value
518 bool "Enable SHA512 support"
519 default y if TI_SECURE_DEVICE && FIT_SIGNATURE
521 This option enables support of hashing using SHA512 algorithm.
522 The hash is calculated in software.
523 The SHA512 algorithm produces a 512-bit (64-byte) hash value
527 bool "Enable SHA384 support"
530 This option enables support of hashing using SHA384 algorithm.
531 The hash is calculated in software. This is also selects SHA512,
532 because these implementations share the bulk of the code..
533 The SHA384 algorithm produces a 384-bit (48-byte) hash value
537 bool "Enable hardware acceleration for SHA hash functions"
539 This option enables hardware acceleration for the SHA1 and SHA256
540 hashing algorithms. This affects the 'hash' command and also the
541 hash_lookup_algo() function.
546 bool "Enable CRC32 support in SPL"
547 default y if SPL_LEGACY_IMAGE_SUPPORT || SPL_EFI_PARTITION
548 default y if SPL_ENV_SUPPORT || TPL_BLOBLIST
550 This option enables support of hashing using CRC32 algorithm.
551 The CRC32 algorithm produces 32-bit checksum value. For FIT
552 images, this is the least secure type of checksum, suitable for
553 detected accidental image corruption. For secure applications you
554 should consider SHA256 or SHA384.
557 bool "Enable SHA1 support in SPL"
560 This option enables support of hashing using SHA1 algorithm.
561 The hash is calculated in software.
562 The SHA1 algorithm produces a 160-bit (20-byte) hash value
566 bool "Enable SHA256 support in SPL"
569 This option enables support of hashing using SHA256 algorithm.
570 The hash is calculated in software.
571 The SHA256 algorithm produces a 256-bit (32-byte) hash value
575 bool "Enable SHA512 support in SPL"
578 This option enables support of hashing using SHA512 algorithm.
579 The hash is calculated in software.
580 The SHA512 algorithm produces a 512-bit (64-byte) hash value
584 bool "Enable SHA384 support in SPL"
588 This option enables support of hashing using SHA384 algorithm.
589 The hash is calculated in software. This is also selects SHA512,
590 because these implementations share the bulk of the code..
591 The SHA384 algorithm produces a 384-bit (48-byte) hash value
594 config SPL_SHA_HW_ACCEL
595 bool "Enable hardware acceleration for SHA hash functions"
596 default y if SHA_HW_ACCEL
598 This option enables hardware acceleration for the SHA1 and SHA256
599 hashing algorithms. This affects the 'hash' command and also the
600 hash_lookup_algo() function.
602 config SPL_SHA_PROG_HW_ACCEL
603 bool "Enable Progressive hashing support using hardware in SPL"
604 depends on SHA_PROG_HW_ACCEL
607 This option enables hardware-acceleration for SHA progressive
609 Data can be streamed in a block at a time and the hashing is
610 performed in hardware.
615 bool "Enable SHA1 support in VPL"
619 This option enables support of hashing using SHA1 algorithm.
620 The hash is calculated in software.
621 The SHA1 algorithm produces a 160-bit (20-byte) hash value
625 bool "Enable SHA256 support in VPL"
629 This option enables support of hashing using SHA256 algorithm.
630 The hash is calculated in software.
631 The SHA256 algorithm produces a 256-bit (32-byte) hash value
636 config SHA512_HW_ACCEL
637 bool "Enable hardware acceleration for SHA512"
640 This option enables hardware acceleration for the SHA384 and SHA512
641 hashing algorithms. This affects the 'hash' command and also the
642 hash_lookup_algo() function.
644 config SHA_PROG_HW_ACCEL
645 bool "Enable Progressive hashing support using hardware"
647 This option enables hardware-acceleration for SHA progressive
649 Data can be streamed in a block at a time and the hashing is
650 performed in hardware.
655 bool "Support MD5 algorithm"
657 This option enables MD5 support. MD5 is an algorithm designed
658 in 1991 that produces a 16-byte digest (or checksum) from its input
659 data. It has a number of vulnerabilities which preclude its use in
660 security applications, but it can be useful for providing a quick
661 checksum of a block of data.
664 bool "Support MD5 algorithm in SPL"
667 This option enables MD5 support in SPL. MD5 is an algorithm designed
668 in 1991 that produces a 16-byte digest (or checksum) from its input
669 data. It has a number of vulnerabilities which preclude its use in
670 security applications, but it can be useful for providing a quick
671 checksum of a block of data.
676 Enables CRC8 support in U-Boot. This is normally required. CRC8 is
677 a simple and fast checksumming algorithm which does a bytewise
678 checksum with feedback to produce an 8-bit result. The code is small
679 and it does not require a lookup table (unlike CRC32).
682 bool "Support CRC8 in SPL"
685 Enables CRC8 support in SPL. This is not normally required. CRC8 is
686 a simple and fast checksumming algorithm which does a bytewise
687 checksum with feedback to produce an 8-bit result. The code is small
688 and it does not require a lookup table (unlike CRC32).
691 bool "Support CRC16 in SPL"
694 Enables CRC16 support in SPL. This is not normally required.
699 Enables CRC32 support in U-Boot. This is normally required.
709 menu "Compression Support"
712 bool "Enable LZ4 decompression support"
714 If this option is set, support for LZ4 compressed images
715 is included. The LZ4 algorithm can run in-place as long as the
716 compressed image is loaded to the end of the output buffer, and
717 trades lower compression ratios for much faster decompression.
719 NOTE: This implements the release version of the LZ4 frame
720 format as generated by default by the 'lz4' command line tool.
721 This is not the same as the outdated, less efficient legacy
722 frame format currently (2015) implemented in the Linux kernel
723 (generated by 'lz4 -l'). The two formats are incompatible.
726 bool "Enable LZMA decompression support"
728 This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
729 a dictionary compression algorithm that provides a high compression
730 ratio and fairly fast decompression speed. See also
731 CONFIG_CMD_LZMADEC which provides a decode command.
734 bool "Enable LZO decompression support"
736 This enables support for the LZO compression algorithm.
739 bool "Enable gzip decompression support"
743 This enables support for GZIP compression algorithm.
745 config ZLIB_UNCOMPRESS
746 bool "Enables zlib's uncompress() functionality"
748 This enables an extra zlib functionality: the uncompress() function,
749 which decompresses data from a buffer into another, knowing their
750 sizes. Unlike gunzip(), there is no header parsing.
752 config GZIP_COMPRESSED
757 bool "Enable bzip2 decompression support"
759 This enables support for BZIP2 compression algorithm.
765 This enables ZLIB compression lib.
768 bool "Enable Zstandard decompression support"
771 This enables Zstandard decompression library.
775 config ZSTD_LIB_MINIFY
776 bool "Minify Zstandard code"
779 This disables various optional components and changes the
780 compilation flags to prioritize space-saving.
782 For detailed info, see zstd's lib/README.md
784 https://github.com/facebook/zstd/blob/dev/lib/README.md
789 bool "Enable bzip2 decompression support for SPL build"
792 This enables support for bzip2 compression algorithm for SPL boot.
795 bool "Enable LZ4 decompression support in SPL"
798 This enables support for the LZ4 decompression algorithm in SPL. LZ4
799 is a lossless data compression algorithm that is focused on
800 fast compression and decompression speed. It belongs to the LZ77
801 family of byte-oriented compression schemes.
804 bool "Enable LZMA decompression support for SPL build"
807 This enables support for LZMA compression algorithm for SPL boot.
810 bool "Enable LZMA decompression support for VPL build"
813 This enables support for LZMA compression algorithm for VPL boot.
816 bool "Enable LZO decompression support in SPL"
819 This enables support for LZO compression algorithm in the SPL.
822 bool "Enable gzip decompression support for SPL build"
825 This enables support for the GZIP compression algorithm for SPL boot.
830 This enables compression lib for SPL boot.
833 bool "Enable Zstandard decompression support in SPL"
837 This enables Zstandard decompression library in the SPL.
842 bool "Enable function for getting errno-related string message"
844 The function errno_str(int errno), returns a pointer to the errno
845 corresponding text message:
846 - if errno is null or positive number - a pointer to "Success" message
847 - if errno is negative - a pointer to errno related message
850 bool "Enable hexdump"
852 This enables functions for printing dumps of binary data.
855 bool "Enable hexdump in SPL"
856 depends on SPL && HEXDUMP
858 This enables functions for printing dumps of binary data in
864 This enables functions for parsing command-line options.
867 bool "Enable the FDT library"
868 default y if OF_CONTROL
870 This enables the FDT library (libfdt). It provides functions for
871 accessing binary device tree images in memory, such as adding and
872 removing nodes and properties, scanning through the tree and finding
873 particular compatible nodes. The library operates on a flattened
874 version of the device tree.
876 config OF_LIBFDT_ASSUME_MASK
877 hex "Mask of conditions to assume for libfdt"
878 depends on OF_LIBFDT || FIT
881 Use this to change the assumptions made by libfdt about the
882 device tree it is working with. A value of 0 means that no assumptions
883 are made, and libfdt is able to deal with malicious data. A value of
884 0xff means all assumptions are made and any invalid data may cause
885 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
887 config OF_LIBFDT_OVERLAY
888 bool "Enable the FDT library overlay support"
890 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
892 This enables the FDT library (libfdt) overlay support.
895 hex "Maximum size of the FDT memory area passeed to the OS"
897 default 0x13000 if FMAN_ENET || QE || U_QE
900 During OS boot, we allocate a region of memory within the bootmap
901 for the FDT. This is the size that we will expand the FDT that we
902 are using will be extended to be, in bytes.
905 bool "Enable the FDT library for SPL"
906 depends on SPL_LIBGENERIC_SUPPORT
907 default y if SPL_OF_CONTROL
909 This enables the FDT library (libfdt). It provides functions for
910 accessing binary device tree images in memory, such as adding and
911 removing nodes and properties, scanning through the tree and finding
912 particular compatible nodes. The library operates on a flattened
913 version of the device tree.
915 config SPL_OF_LIBFDT_ASSUME_MASK
916 hex "Mask of conditions to assume for libfdt"
917 depends on SPL_OF_LIBFDT || (FIT && SPL)
920 Use this to change the assumptions made by libfdt in SPL about the
921 device tree it is working with. A value of 0 means that no assumptions
922 are made, and libfdt is able to deal with malicious data. A value of
923 0xff means all assumptions are made and any invalid data may cause
924 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
927 bool "Enable the FDT library for TPL"
928 depends on TPL_LIBGENERIC_SUPPORT
929 default y if TPL_OF_CONTROL
931 This enables the FDT library (libfdt). It provides functions for
932 accessing binary device tree images in memory, such as adding and
933 removing nodes and properties, scanning through the tree and finding
934 particular compatible nodes. The library operates on a flattened
935 version of the device tree.
937 config TPL_OF_LIBFDT_ASSUME_MASK
938 hex "Mask of conditions to assume for libfdt"
939 depends on TPL_OF_LIBFDT || (FIT && TPL)
942 Use this to change the assumptions made by libfdt in TPL about the
943 device tree it is working with. A value of 0 means that no assumptions
944 are made, and libfdt is able to deal with malicious data. A value of
945 0xff means all assumptions are made and any invalid data may cause
946 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
949 bool "Enable the FDT library for VPL"
951 default y if VPL_OF_CONTROL && !VPL_OF_PLATDATA
953 This enables the FDT library (libfdt). It provides functions for
954 accessing binary device tree images in memory, such as adding and
955 removing nodes and properties, scanning through the tree and finding
956 particular compatible nodes. The library operates on a flattened
957 version of the device tree.
959 config VPL_OF_LIBFDT_ASSUME_MASK
960 hex "Mask of conditions to assume for libfdt"
961 depends on VPL_OF_LIBFDT || (FIT && VPL)
964 Use this to change the assumptions made by libfdt in SPL about the
965 device tree it is working with. A value of 0 means that no assumptions
966 are made, and libfdt is able to deal with malicious data. A value of
967 0xff means all assumptions are made and any invalid data may cause
968 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
971 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
973 config BLOBLIST_TABLES
974 bool "Put tables in a bloblist"
975 depends on X86 && BLOBLIST
977 Normally tables are placed at address 0xf0000 and can be up to 64KB
978 long. With this option, tables are instead placed in the bloblist
979 with a pointer from 0xf0000. The size can then be larger and the
980 tables can be placed high in memory.
982 config GENERATE_SMBIOS_TABLE
983 bool "Generate an SMBIOS (System Management BIOS) table"
987 The System Management BIOS (SMBIOS) specification addresses how
988 motherboard and system vendors present management information about
989 their products in a standard format by extending the BIOS interface
990 on Intel architecture systems.
992 Check http://www.dmtf.org/standards/smbios for details.
994 See also SMBIOS_SYSINFO which allows SMBIOS values to be provided in
1000 bool "enable continued fraction calculation routines"
1002 config SPL_LIB_RATIONAL
1003 bool "enable continued fraction calculation routines for SPL"
1006 config ASN1_COMPILER
1009 ASN.1 (Abstract Syntax Notation One) is a standard interface
1010 description language for defining data structures that can be
1011 serialized and deserialized in a cross-platform way. It is
1012 broadly used in telecommunications and computer networking,
1013 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1014 This option enables the support of the asn1 compiler.
1019 ASN.1 (Abstract Syntax Notation One) is a standard interface
1020 description language for defining data structures that can be
1021 serialized and deserialized in a cross-platform way. It is
1022 broadly used in telecommunications and computer networking,
1023 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1024 This option enables the support of the asn1 decoder.
1026 config SPL_ASN1_DECODER
1029 ASN.1 (Abstract Syntax Notation One) is a standard interface
1030 description language for defining data structures that can be
1031 serialized and deserialized in a cross-platform way. It is
1032 broadly used in telecommunications and computer networking,
1033 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1034 This option enables the support of the asn1 decoder in the SPL.
1039 In computing, object identifiers or OIDs are an identifier mechanism
1040 standardized by the International Telecommunication Union (ITU) and
1041 ISO/IEC for naming any object, concept, or "thing" with a globally
1042 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
1043 Enable fast lookup object identifier registry.
1045 config SPL_OID_REGISTRY
1048 In computing, object identifiers or OIDs are an identifier mechanism
1049 standardized by the International Telecommunication Union (ITU) and
1050 ISO/IEC for naming any object, concept, or "thing" with a globally
1051 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
1052 Enable fast lookup object identifier registry in the SPL.
1055 bool "SMBIOS support"
1056 depends on X86 || EFI_LOADER
1058 select LAST_STAGE_INIT
1060 Indicates that this platform can support System Management BIOS
1061 (SMBIOS) tables. These provide various pieces of information about
1062 the board, such as the manufacturer and the model name.
1064 See GENERATE_SMBIOS_TABLE which controls whether U-Boot actually
1065 creates these tables, rather than them coming from a previous firmware
1068 config SMBIOS_PARSER
1069 bool "SMBIOS parser"
1071 A simple parser for SMBIOS data.
1073 source lib/efi/Kconfig
1074 source lib/efi_loader/Kconfig
1075 source lib/optee/Kconfig
1078 bool "enable fdtdec test"
1079 depends on OF_LIBFDT
1087 Support basic elf loading/validating functions.
1088 This supports for 32 bit and 64 bit versions.
1091 bool "Enable the logical memory blocks library (lmb)"
1092 default y if ARC || ARM || M68K || MICROBLAZE || MIPS || \
1093 NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
1095 Support the library logical memory blocks.
1097 config LMB_USE_MAX_REGIONS
1098 bool "Use a common number of memory and reserved regions in lmb lib"
1101 Define the number of supported memory regions in the library logical
1103 This feature allow to reduce the lmb library size by using compiler
1104 optimization when LMB_MEMORY_REGIONS == LMB_RESERVED_REGIONS.
1106 config LMB_MAX_REGIONS
1107 int "Number of memory and reserved regions in lmb lib"
1108 depends on LMB_USE_MAX_REGIONS
1111 Define the number of supported regions, memory and reserved, in the
1112 library logical memory blocks.
1114 config LMB_MEMORY_REGIONS
1115 int "Number of memory regions in lmb lib"
1116 depends on !LMB_USE_MAX_REGIONS
1119 Define the number of supported memory regions in the library logical
1121 The minimal value is CONFIG_NR_DRAM_BANKS.
1123 config LMB_RESERVED_REGIONS
1124 int "Number of reserved regions in lmb lib"
1125 depends on !LMB_USE_MAX_REGIONS
1128 Define the number of supported reserved regions in the library logical
1131 config PHANDLE_CHECK_SEQ
1132 bool "Enable phandle check while getting sequence number"
1134 When there are multiple device tree nodes with same name,
1135 enable this config option to distinguish them using
1136 phandles in fdtdec_get_alias_seq() function.
1140 source lib/fwu_updates/Kconfig