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
49 string "binman DTB description"
52 This enables option to point to different DTB file with binman node which
53 is outside of DTB used by the firmware. Use this option if information
54 about generated images shouldn't be the part of target binary. Or on system
57 config CC_OPTIMIZE_LIBS_FOR_SPEED
58 bool "Optimize libraries for speed"
60 Enabling this option will pass "-O2" to gcc when compiling
61 under "lib" directory.
68 config DYNAMIC_CRC_TABLE
69 bool "Enable Dynamic tables for CRC"
71 Enable this option to calculate entries for CRC tables at runtime.
72 This can be helpful when reducing the size of the build image
74 config HAVE_ARCH_IOMAP
77 Enable this option if architecture provides io{read,write}{8,16,32}
78 I/O accessor functions.
80 config HAVE_PRIVATE_LIBGCC
88 bool "GPT Random UUID generation"
91 Enable the generation of partitions with random UUIDs if none
99 bool "Support semihosting"
100 depends on ARM || RISCV
102 Semihosting is a method for a target to communicate with a host
103 debugger. It uses special instructions which the debugger will trap
104 on and interpret. This allows U-Boot to read/write files, print to
105 the console, and execute arbitrary commands on the host system.
107 Enabling this option will add support for reading and writing files
108 on the host system. If you don't have a debugger attached then trying
109 to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
111 config SEMIHOSTING_FALLBACK
112 bool "Recover gracefully when semihosting fails"
113 depends on SEMIHOSTING
116 Normally, if U-Boot makes a semihosting call and no debugger is
117 attached, then it will panic due to a synchronous abort
118 exception. This config adds an exception handler which will allow
119 U-Boot to recover. Say 'y' if unsure.
121 config SPL_SEMIHOSTING
122 bool "Support semihosting in SPL"
123 depends on SPL && (ARM || RISCV)
125 Semihosting is a method for a target to communicate with a host
126 debugger. It uses special instructions which the debugger will trap
127 on and interpret. This allows U-Boot to read/write files, print to
128 the console, and execute arbitrary commands on the host system.
130 Enabling this option will add support for reading and writing files
131 on the host system. If you don't have a debugger attached then trying
132 to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
134 config SPL_SEMIHOSTING_FALLBACK
135 bool "Recover gracefully when semihosting fails in SPL"
136 depends on SPL_SEMIHOSTING
137 select ARMV8_SPL_EXCEPTION_VECTORS if ARM64
140 Normally, if U-Boot makes a semihosting call and no debugger is
141 attached, then it will panic due to a synchronous abort
142 exception. This config adds an exception handler which will allow
143 U-Boot to recover. Say 'y' if unsure.
152 select SPL_STRTO if !SPL_USE_TINY_PRINTF
157 select TPL_STRTO if !TPL_USE_TINY_PRINTF
162 select VPL_STRTO if !VPL_USE_TINY_PRINTF
196 config IMAGE_SPARSE_FILLBUF_SIZE
197 hex "Android sparse image CHUNK_TYPE_FILL buffer size"
199 depends on IMAGE_SPARSE
201 Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
204 config USE_PRIVATE_LIBGCC
205 bool "Use private libgcc"
206 depends on HAVE_PRIVATE_LIBGCC
207 default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
209 This option allows you to use the built-in libgcc implementation
210 of U-Boot instead of the one provided by the compiler.
217 The frequency of the timer returned by get_timer().
218 get_timer() must operate in milliseconds and this option must be
221 config SPL_USE_TINY_PRINTF
222 bool "Enable tiny printf() version in SPL"
226 This option enables a tiny, stripped down printf version.
227 This should only be used in space limited environments,
228 like SPL versions with hard memory limits. This version
229 reduces the code size by about 2.5KiB on armv7.
231 The supported format specifiers are %c, %s, %u/%d and %x.
233 config TPL_USE_TINY_PRINTF
234 bool "Enable tiny printf() version in TPL"
236 default y if SPL_USE_TINY_PRINTF
238 This option enables a tiny, stripped down printf version.
239 This should only be used in space limited environments,
240 like SPL versions with hard memory limits. This version
241 reduces the code size by about 2.5KiB on armv7.
243 The supported format specifiers are %c, %s, %u/%d and %x.
245 config VPL_USE_TINY_PRINTF
246 bool "Enable tiny printf() version for VPL"
249 This option enables a tiny, stripped down printf version.
250 This should only be used in space limited environments,
251 like SPL versions with hard memory limits. This version
252 reduces the code size by about 2.5KiB on armv7.
254 The supported format specifiers are %c, %s, %u/%d and %x.
257 bool "Do not reset the system on fatal error"
259 Define this option to stop the system in case of a fatal error,
260 so that you have to reset it manually. This is probably NOT a good
261 idea for an embedded system where you want the system to reboot
262 automatically as fast as possible, but it may be useful during
263 development since you can try to debug the conditions that lead to
267 bool "Enable regular expression support"
270 If this variable is defined, U-Boot is linked against the
271 SLRE (Super Light Regular Expression) library, which adds
272 regex support to some commands, for example "env grep" and
276 prompt "Pseudo-random library support type"
277 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
278 RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
281 Select the library to provide pseudo-random number generator
282 functions. LIB_HW_RAND supports certain hardware engines that
283 provide this functionality. If in doubt, select LIB_RAND.
286 bool "Pseudo-random library support"
289 bool "HW Engine for random library support"
296 Enable this if your arch or board can support generating ACPI
297 (Advanced Configuration and Power Interface) tables. In this case
298 U-Boot can generate these tables and pass them to the Operating
302 bool "Enable support for ACPI libraries"
303 depends on SUPPORT_ACPI
305 Provides library functions for dealing with ACPI tables. This does
306 not necessarily include generation of tables
307 (see GENERATE_ACPI_TABLE), but allows for tables to be located.
310 bool "Enable support for ACPI libraries in SPL"
311 depends on SPL && SUPPORT_ACPI
313 Provides library functions for dealing with ACPI tables in SPL. This
314 does not necessarily include generation of tables
315 (see GENERATE_ACPI_TABLE), but allows for tables to be located.
317 config GENERATE_ACPI_TABLE
318 bool "Generate an ACPI (Advanced Configuration and Power Interface) table"
322 The Advanced Configuration and Power Interface (ACPI) specification
323 provides an open standard for device configuration and management
324 by the operating system. It defines platform-independent interfaces
325 for configuration and power management monitoring.
327 config ACPI_PARKING_PROTOCOL
328 bool "Support ACPI parking protocol method"
329 depends on GENERATE_ACPI_TABLE
330 depends on ARMV8_MULTIENTRY
331 depends on BLOBLIST_TABLES
332 default y if !SEC_FIRMWARE_ARMV8_PSCI && !ARMV8_PSCI
334 Say Y here to support "ACPI parking protocol" enable method
337 To use this feature, you must do:
338 - Bring secondary CPUs into U-Boot proper in a board-specific
339 manner. This must be done *after* relocation. Otherwise, the
340 secondary CPUs will spin in unprotected memory-area because the
341 master CPU protects the relocated spin code.
343 config SPL_TINY_MEMSET
344 bool "Use a very small memset() in SPL"
347 The faster memset() is the arch-specific one (if available) enabled
348 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
349 better performance by writing a word at a time. But in very
350 size-constrained environments even this may be too big. Enable this
351 option to reduce code size slightly at the cost of some speed.
353 config TPL_TINY_MEMSET
354 bool "Use a very small memset() in TPL"
357 The faster memset() is the arch-specific one (if available) enabled
358 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
359 better performance by writing a word at a time. But in very
360 size-constrained environments even this may be too big. Enable this
361 option to reduce code size slightly at the cost of some speed.
367 bool "Bit reverse library from Linux"
370 bool "Support for tracing of function calls and timing"
374 Enables function tracing within U-Boot. This allows recording of call
375 traces including timing information. The command can write data to
376 memory for exporting for analysis (e.g. using bootchart).
377 See doc/develop/trace.rst for full details.
379 config TRACE_BUFFER_SIZE
380 hex "Size of trace buffer in U-Boot"
384 Sets the size of the trace buffer in U-Boot. This is allocated from
385 memory during relocation. If this buffer is too small, the trace
386 history will be truncated, with later records omitted.
388 If early trace is enabled (i.e. before relocation), this buffer must
389 be large enough to include all the data from the early trace buffer as
390 well, since this is copied over to the main buffer during relocation.
392 A trace record is emitted for each function call and each record is
393 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
394 the size is too small then 'trace stats' will show a message saying
395 how many records were dropped due to buffer overflow.
397 config TRACE_CALL_DEPTH_LIMIT
398 int "Trace call depth limit"
402 Sets the maximum call depth up to which function calls are recorded.
405 bool "Enable tracing before relocation"
408 Sometimes it is helpful to trace execution of U-Boot before
409 relocation. This is possible by using a arch-specific, fixed buffer
410 position in memory. Enable this option to start tracing as early as
411 possible after U-Boot starts.
413 config TRACE_EARLY_SIZE
414 hex "Size of early trace buffer in U-Boot"
415 depends on TRACE_EARLY
418 Sets the size of the early trace buffer in bytes. This is used to hold
419 tracing information before relocation.
421 config TRACE_EARLY_CALL_DEPTH_LIMIT
422 int "Early trace call depth limit"
423 depends on TRACE_EARLY
426 Sets the maximum call depth up to which function calls are recorded
427 during early tracing.
429 config TRACE_EARLY_ADDR
430 hex "Address of early trace buffer in U-Boot"
431 depends on TRACE_EARLY
434 Sets the address of the early trace buffer in U-Boot. This memory
435 must be accessible before relocation.
437 A trace record is emitted for each function call and each record is
438 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
439 the size is too small then the message which says the amount of early
440 data being coped will the the same as the
443 bool "Enable circular buffer support"
445 source "lib/dhry/Kconfig"
447 menu "Alternative crypto libraries"
448 source lib/mbedtls/Kconfig
451 menu "Security support"
454 bool "Support the AES algorithm"
456 This provides a means to encrypt and decrypt data using the AES
457 (Advanced Encryption Standard). This algorithm uses a symetric key
458 and is widely used as a streaming cipher. Different key lengths are
459 supported by the algorithm but only a 128-bit key is supported at
462 source "lib/ecdsa/Kconfig"
463 source "lib/rsa/Kconfig"
464 source "lib/crypto/Kconfig"
465 source "lib/crypt/Kconfig"
468 bool "Trusted Platform Module (TPM) Support"
473 This enables support for TPMs which can be used to provide security
474 features for your board. The TPM can be connected via LPC or I2C
475 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
476 command to interactive the TPM. Driver model support is provided
477 for the low-level TPM interface, but only one TPM is supported at
478 a time by the TPM library.
479 For size reasons only SHA1 is selected which is supported on TPM1.2.
480 If you want a fully functional TPM enable all hashing algorithms.
481 If you enabled measured boot all hashing algorithms are selected.
484 bool "Trusted Platform Module (TPM) Support in SPL"
488 This enables support for TPMs which can be used to provide security
489 features for your board. The TPM can be connected via LPC or I2C
490 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
491 command to interactive the TPM. Driver model support is provided
492 for the low-level TPM interface, but only one TPM is supported at
493 a time by the TPM library.
496 bool "Trusted Platform Module (TPM) Support in TPL"
499 This enables support for TPMs which can be used to provide security
500 features for your board. The TPM can be connected via LPC or I2C
501 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
502 command to interactive the TPM. Driver model support is provided
503 for the low-level TPM interface, but only one TPM is supported at
504 a time by the TPM library.
507 bool "Trusted Platform Module (TPM) Support in VPL"
510 This enables support for TPMs which can be used to provide security
511 features for your board. The TPM can be connected via LPC or I2C
512 and a sandbox TPM is provided for testing purposes. Use the 'tpm'
513 command to interactive the TPM. Driver model support is provided
514 for the low-level TPM interface, but only one TPM is supported at
515 a time by the TPM library.
519 menu "Android Verified Boot"
522 bool "Android Verified Boot 2.0 support"
523 depends on ANDROID_BOOT_IMAGE
525 This enables support of Android Verified Boot 2.0 which can be used
526 to assure the end user of the integrity of the software running on a
527 device. Introduces such features as boot chain of trust, rollback
532 menu "Hashing Support"
535 bool "Enable BLAKE2 support"
537 This option enables support of hashing using BLAKE2B algorithm.
538 The hash is calculated in software.
539 The BLAKE2 algorithm produces a hash value (digest) between 1 and
543 bool "Enable SHA1 support"
545 This option enables support of hashing using SHA1 algorithm.
546 The hash is calculated in software.
547 The SHA1 algorithm produces a 160-bit (20-byte) hash value
551 bool "Enable SHA256 support"
553 This option enables support of hashing using SHA256 algorithm.
554 The hash is calculated in software.
555 The SHA256 algorithm produces a 256-bit (32-byte) hash value
559 bool "Enable SHA512 support"
560 default y if TI_SECURE_DEVICE && FIT_SIGNATURE
562 This option enables support of hashing using SHA512 algorithm.
563 The hash is calculated in software.
564 The SHA512 algorithm produces a 512-bit (64-byte) hash value
568 bool "Enable SHA384 support"
571 This option enables support of hashing using SHA384 algorithm.
572 The hash is calculated in software. This is also selects SHA512,
573 because these implementations share the bulk of the code..
574 The SHA384 algorithm produces a 384-bit (48-byte) hash value
578 bool "Enable hardware acceleration for SHA hash functions"
580 This option enables hardware acceleration for the SHA1 and SHA256
581 hashing algorithms. This affects the 'hash' command and also the
582 hash_lookup_algo() function.
587 bool "Enable CRC32 support in SPL"
588 default y if SPL_LEGACY_IMAGE_SUPPORT || SPL_EFI_PARTITION
589 default y if SPL_ENV_SUPPORT || TPL_BLOBLIST
591 This option enables support of hashing using CRC32 algorithm.
592 The CRC32 algorithm produces 32-bit checksum value. For FIT
593 images, this is the least secure type of checksum, suitable for
594 detected accidental image corruption. For secure applications you
595 should consider SHA256 or SHA384.
598 bool "Enable SHA1 support in SPL"
601 This option enables support of hashing using SHA1 algorithm.
602 The hash is calculated in software.
603 The SHA1 algorithm produces a 160-bit (20-byte) hash value
607 bool "Enable SHA256 support in SPL"
610 This option enables support of hashing using SHA256 algorithm.
611 The hash is calculated in software.
612 The SHA256 algorithm produces a 256-bit (32-byte) hash value
616 bool "Enable SHA512 support in SPL"
619 This option enables support of hashing using SHA512 algorithm.
620 The hash is calculated in software.
621 The SHA512 algorithm produces a 512-bit (64-byte) hash value
625 bool "Enable SHA384 support in SPL"
629 This option enables support of hashing using SHA384 algorithm.
630 The hash is calculated in software. This is also selects SHA512,
631 because these implementations share the bulk of the code..
632 The SHA384 algorithm produces a 384-bit (48-byte) hash value
635 config SPL_SHA_HW_ACCEL
636 bool "Enable hardware acceleration for SHA hash functions"
637 default y if SHA_HW_ACCEL
639 This option enables hardware acceleration for the SHA1 and SHA256
640 hashing algorithms. This affects the 'hash' command and also the
641 hash_lookup_algo() function.
643 config SPL_SHA_PROG_HW_ACCEL
644 bool "Enable Progressive hashing support using hardware in SPL"
645 depends on SHA_PROG_HW_ACCEL
648 This option enables hardware-acceleration for SHA progressive
650 Data can be streamed in a block at a time and the hashing is
651 performed in hardware.
656 bool "Enable SHA1 support in VPL"
660 This option enables support of hashing using SHA1 algorithm.
661 The hash is calculated in software.
662 The SHA1 algorithm produces a 160-bit (20-byte) hash value
666 bool "Enable SHA256 support in VPL"
670 This option enables support of hashing using SHA256 algorithm.
671 The hash is calculated in software.
672 The SHA256 algorithm produces a 256-bit (32-byte) hash value
677 config SHA512_HW_ACCEL
678 bool "Enable hardware acceleration for SHA512"
681 This option enables hardware acceleration for the SHA384 and SHA512
682 hashing algorithms. This affects the 'hash' command and also the
683 hash_lookup_algo() function.
685 config SHA_PROG_HW_ACCEL
686 bool "Enable Progressive hashing support using hardware"
688 This option enables hardware-acceleration for SHA progressive
690 Data can be streamed in a block at a time and the hashing is
691 performed in hardware.
696 bool "Support MD5 algorithm"
698 This option enables MD5 support. MD5 is an algorithm designed
699 in 1991 that produces a 16-byte digest (or checksum) from its input
700 data. It has a number of vulnerabilities which preclude its use in
701 security applications, but it can be useful for providing a quick
702 checksum of a block of data.
705 bool "Support MD5 algorithm in SPL"
708 This option enables MD5 support in SPL. MD5 is an algorithm designed
709 in 1991 that produces a 16-byte digest (or checksum) from its input
710 data. It has a number of vulnerabilities which preclude its use in
711 security applications, but it can be useful for providing a quick
712 checksum of a block of data.
717 Enables CRC8 support in U-Boot. This is normally required. CRC8 is
718 a simple and fast checksumming algorithm which does a bytewise
719 checksum with feedback to produce an 8-bit result. The code is small
720 and it does not require a lookup table (unlike CRC32).
723 bool "Support CRC8 in SPL"
726 Enables CRC8 support in SPL. This is not normally required. CRC8 is
727 a simple and fast checksumming algorithm which does a bytewise
728 checksum with feedback to produce an 8-bit result. The code is small
729 and it does not require a lookup table (unlike CRC32).
732 bool "Support CRC16 in SPL"
735 Enables CRC16 support in SPL. This is not normally required.
740 Enables CRC32 support in U-Boot. This is normally required.
750 menu "Compression Support"
753 bool "Enable LZ4 decompression support"
755 If this option is set, support for LZ4 compressed images
756 is included. The LZ4 algorithm can run in-place as long as the
757 compressed image is loaded to the end of the output buffer, and
758 trades lower compression ratios for much faster decompression.
760 NOTE: This implements the release version of the LZ4 frame
761 format as generated by default by the 'lz4' command line tool.
762 This is not the same as the outdated, less efficient legacy
763 frame format currently (2015) implemented in the Linux kernel
764 (generated by 'lz4 -l'). The two formats are incompatible.
767 bool "Enable LZMA decompression support"
769 This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
770 a dictionary compression algorithm that provides a high compression
771 ratio and fairly fast decompression speed. See also
772 CONFIG_CMD_LZMADEC which provides a decode command.
775 bool "Enable LZO decompression support"
777 This enables support for the LZO compression algorithm.
780 bool "Enable gzip decompression support"
784 This enables support for GZIP compression algorithm.
786 config ZLIB_UNCOMPRESS
787 bool "Enables zlib's uncompress() functionality"
789 This enables an extra zlib functionality: the uncompress() function,
790 which decompresses data from a buffer into another, knowing their
791 sizes. Unlike gunzip(), there is no header parsing.
793 config GZIP_COMPRESSED
798 bool "Enable bzip2 decompression support"
800 This enables support for BZIP2 compression algorithm.
806 This enables ZLIB compression lib.
809 bool "Enable Zstandard decompression support"
812 This enables Zstandard decompression library.
816 config ZSTD_LIB_MINIFY
817 bool "Minify Zstandard code"
820 This disables various optional components and changes the
821 compilation flags to prioritize space-saving.
823 For detailed info, see zstd's lib/README.md
825 https://github.com/facebook/zstd/blob/dev/lib/README.md
830 bool "Enable bzip2 decompression support for SPL build"
833 This enables support for bzip2 compression algorithm for SPL boot.
836 bool "Enable LZ4 decompression support in SPL"
839 This enables support for the LZ4 decompression algorithm in SPL. LZ4
840 is a lossless data compression algorithm that is focused on
841 fast compression and decompression speed. It belongs to the LZ77
842 family of byte-oriented compression schemes.
845 bool "Enable LZMA decompression support for SPL build"
848 This enables support for LZMA compression algorithm for SPL boot.
851 bool "Enable LZMA decompression support for VPL build"
854 This enables support for LZMA compression algorithm for VPL boot.
857 bool "Enable LZO decompression support in SPL"
860 This enables support for LZO compression algorithm in the SPL.
863 bool "Enable gzip decompression support for SPL build"
866 This enables support for the GZIP compression algorithm for SPL boot.
871 This enables compression lib for SPL boot.
874 bool "Enable Zstandard decompression support in SPL"
878 This enables Zstandard decompression library in the SPL.
883 bool "Enable function for getting errno-related string message"
885 The function errno_str(int errno), returns a pointer to the errno
886 corresponding text message:
887 - if errno is null or positive number - a pointer to "Success" message
888 - if errno is negative - a pointer to errno related message
891 bool "Enable hexdump"
893 This enables functions for printing dumps of binary data.
896 bool "Enable hexdump in SPL"
897 depends on SPL && HEXDUMP
899 This enables functions for printing dumps of binary data in
905 This enables functions for parsing command-line options.
908 bool "Enable the FDT library"
909 default y if OF_CONTROL
911 This enables the FDT library (libfdt). It provides functions for
912 accessing binary device tree images in memory, such as adding and
913 removing nodes and properties, scanning through the tree and finding
914 particular compatible nodes. The library operates on a flattened
915 version of the device tree.
917 config OF_LIBFDT_ASSUME_MASK
918 hex "Mask of conditions to assume for libfdt"
919 depends on OF_LIBFDT || FIT
922 Use this to change the assumptions made by libfdt about the
923 device tree it is working with. A value of 0 means that no assumptions
924 are made, and libfdt is able to deal with malicious data. A value of
925 0xff means all assumptions are made and any invalid data may cause
926 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
928 config OF_LIBFDT_OVERLAY
929 bool "Enable the FDT library overlay support"
931 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
933 This enables the FDT library (libfdt) overlay support.
936 hex "Maximum size of the FDT memory area passeed to the OS"
938 default 0x13000 if FMAN_ENET || QE || U_QE
941 During OS boot, we allocate a region of memory within the bootmap
942 for the FDT. This is the size that we will expand the FDT that we
943 are using will be extended to be, in bytes.
946 bool "Enable the FDT library for SPL"
947 depends on SPL_LIBGENERIC_SUPPORT
948 default y if SPL_OF_CONTROL
950 This enables the FDT library (libfdt). It provides functions for
951 accessing binary device tree images in memory, such as adding and
952 removing nodes and properties, scanning through the tree and finding
953 particular compatible nodes. The library operates on a flattened
954 version of the device tree.
956 config SPL_OF_LIBFDT_ASSUME_MASK
957 hex "Mask of conditions to assume for libfdt"
958 depends on SPL_OF_LIBFDT || (FIT && SPL)
961 Use this to change the assumptions made by libfdt in SPL about the
962 device tree it is working with. A value of 0 means that no assumptions
963 are made, and libfdt is able to deal with malicious data. A value of
964 0xff means all assumptions are made and any invalid data may cause
965 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
968 bool "Enable the FDT library for TPL"
969 depends on TPL_LIBGENERIC_SUPPORT
970 default y if TPL_OF_CONTROL
972 This enables the FDT library (libfdt). It provides functions for
973 accessing binary device tree images in memory, such as adding and
974 removing nodes and properties, scanning through the tree and finding
975 particular compatible nodes. The library operates on a flattened
976 version of the device tree.
978 config TPL_OF_LIBFDT_ASSUME_MASK
979 hex "Mask of conditions to assume for libfdt"
980 depends on TPL_OF_LIBFDT || (FIT && TPL)
983 Use this to change the assumptions made by libfdt in TPL about the
984 device tree it is working with. A value of 0 means that no assumptions
985 are made, and libfdt is able to deal with malicious data. A value of
986 0xff means all assumptions are made and any invalid data may cause
987 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
990 bool "Enable the FDT library for VPL"
992 default y if VPL_OF_CONTROL && !VPL_OF_PLATDATA
994 This enables the FDT library (libfdt). It provides functions for
995 accessing binary device tree images in memory, such as adding and
996 removing nodes and properties, scanning through the tree and finding
997 particular compatible nodes. The library operates on a flattened
998 version of the device tree.
1000 config VPL_OF_LIBFDT_ASSUME_MASK
1001 hex "Mask of conditions to assume for libfdt"
1002 depends on VPL_OF_LIBFDT || (FIT && VPL)
1005 Use this to change the assumptions made by libfdt in SPL about the
1006 device tree it is working with. A value of 0 means that no assumptions
1007 are made, and libfdt is able to deal with malicious data. A value of
1008 0xff means all assumptions are made and any invalid data may cause
1009 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
1011 menu "System tables"
1012 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
1014 config BLOBLIST_TABLES
1015 bool "Put tables in a bloblist"
1017 default y if (ARM && EFI_LOADER && GENERATE_ACPI_TABLE)
1020 On x86 normally tables are placed at address 0xf0000 and can be up
1021 to 64KB long. With this option, tables are instead placed in the
1022 bloblist with a pointer from 0xf0000. The size can then be larger
1023 and the tables can be placed high in memory.
1024 On other architectures the tables are always placed in high memory.
1026 config GENERATE_SMBIOS_TABLE
1027 bool "Generate an SMBIOS (System Management BIOS) table"
1031 The System Management BIOS (SMBIOS) specification addresses how
1032 motherboard and system vendors present management information about
1033 their products in a standard format by extending the BIOS interface
1034 on Intel architecture systems.
1036 Check http://www.dmtf.org/standards/smbios for details.
1038 See also SYSINFO_SMBIOS which allows SMBIOS values to be provided in
1044 bool "enable continued fraction calculation routines"
1046 config SPL_LIB_RATIONAL
1047 bool "enable continued fraction calculation routines for SPL"
1050 config ASN1_COMPILER
1053 ASN.1 (Abstract Syntax Notation One) is a standard interface
1054 description language for defining data structures that can be
1055 serialized and deserialized in a cross-platform way. It is
1056 broadly used in telecommunications and computer networking,
1057 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1058 This option enables the support of the asn1 compiler.
1063 ASN.1 (Abstract Syntax Notation One) is a standard interface
1064 description language for defining data structures that can be
1065 serialized and deserialized in a cross-platform way. It is
1066 broadly used in telecommunications and computer networking,
1067 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1068 This option enables the support of the asn1 decoder.
1070 config SPL_ASN1_DECODER
1073 ASN.1 (Abstract Syntax Notation One) is a standard interface
1074 description language for defining data structures that can be
1075 serialized and deserialized in a cross-platform way. It is
1076 broadly used in telecommunications and computer networking,
1077 and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
1078 This option enables the support of the asn1 decoder in the SPL.
1083 In computing, object identifiers or OIDs are an identifier mechanism
1084 standardized by the International Telecommunication Union (ITU) and
1085 ISO/IEC for naming any object, concept, or "thing" with a globally
1086 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
1087 Enable fast lookup object identifier registry.
1089 config SPL_OID_REGISTRY
1092 In computing, object identifiers or OIDs are an identifier mechanism
1093 standardized by the International Telecommunication Union (ITU) and
1094 ISO/IEC for naming any object, concept, or "thing" with a globally
1095 unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
1096 Enable fast lookup object identifier registry in the SPL.
1099 bool "SMBIOS support"
1100 depends on X86 || EFI_LOADER
1102 select LAST_STAGE_INIT
1104 Indicates that this platform can support System Management BIOS
1105 (SMBIOS) tables. These provide various pieces of information about
1106 the board, such as the manufacturer and the model name.
1108 See GENERATE_SMBIOS_TABLE which controls whether U-Boot actually
1109 creates these tables, rather than them coming from a previous firmware
1112 config SMBIOS_PARSER
1113 bool "SMBIOS parser"
1115 A simple parser for SMBIOS data.
1117 source "lib/optee/Kconfig"
1120 bool "enable fdtdec test"
1121 depends on OF_LIBFDT
1129 Support basic elf loading/validating functions.
1130 This supports for 32 bit and 64 bit versions.
1133 bool "Enable the logical memory blocks library (lmb)"
1134 default y if ARC || ARM || M68K || MICROBLAZE || MIPS || \
1135 NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
1136 select ARCH_MISC_INIT if PPC
1138 Support the library logical memory blocks. This will require
1139 a malloc() implementation for defining the data structures
1140 needed for maintaining the LMB memory map.
1143 bool "Enable LMB module for SPL"
1144 depends on SPL && SPL_FRAMEWORK && SPL_SYS_MALLOC
1146 Enable support for Logical Memory Block library routines in
1147 SPL. This will require a malloc() implementation for defining
1148 the data structures needed for maintaining the LMB memory map.
1150 config LMB_ARCH_MEM_MAP
1151 bool "Add an architecture specific memory map"
1153 default y if FSL_LAYERSCAPE || X86
1155 Some architectures have special or unique aspects which need
1156 consideration when adding memory ranges to the list of available
1157 memory map. Enable this config in such scenarios which allow
1158 architectures and boards to define their own memory map.
1160 config SPL_LMB_ARCH_MEM_MAP
1161 bool "Add an architecture specific memory map"
1164 Some architectures have special or unique scenarios which need
1165 consideration when adding memory ranges to the list of available
1166 memory map. Enable this config in such scenarios which allow
1167 architectures and boards to define their own memory map.
1169 config PHANDLE_CHECK_SEQ
1170 bool "Enable phandle check while getting sequence number"
1172 When there are multiple device tree nodes with same name,
1173 enable this config option to distinguish them using
1174 phandles in fdtdec_get_alias_seq() function.
1178 source "lib/fwu_updates/Kconfig"