1menu "Library routines" 2 3config BCH 4 bool "Enable Software based BCH ECC" 5 help 6 Enables software based BCH ECC algorithm present in lib/bch.c 7 This is used by SoC platforms which do not have built-in ELM 8 hardware engine required for BCH ECC correction. 9 10config BINMAN_FDT 11 bool "Allow access to binman information in the device tree" 12 depends on BINMAN && OF_CONTROL 13 default y 14 help 15 This enables U-Boot to access information about binman entries, 16 stored in the device tree in a binman node. Typical uses are to 17 locate entries in the firmware image. See binman.h for the available 18 functionality. 19 20config CC_OPTIMIZE_LIBS_FOR_SPEED 21 bool "Optimize libraries for speed" 22 help 23 Enabling this option will pass "-O2" to gcc when compiling 24 under "lib" directory. 25 26 If unsure, say N. 27 28config DYNAMIC_CRC_TABLE 29 bool "Enable Dynamic tables for CRC" 30 help 31 Enable this option to calculate entries for CRC tables at runtime. 32 This can be helpful when reducing the size of the build image 33 34config HAVE_ARCH_IOMAP 35 bool 36 help 37 Enable this option if architecture provides io{read,write}{8,16,32} 38 I/O accessor functions. 39 40config HAVE_PRIVATE_LIBGCC 41 bool 42 43config LIB_UUID 44 bool 45 46config PRINTF 47 bool 48 default y 49 50config SPL_PRINTF 51 bool 52 select SPL_SPRINTF 53 select SPL_STRTO if !SPL_USE_TINY_PRINTF 54 55config TPL_PRINTF 56 bool 57 select TPL_SPRINTF 58 select TPL_STRTO if !TPL_USE_TINY_PRINTF 59 60config SPRINTF 61 bool 62 default y 63 64config SPL_SPRINTF 65 bool 66 67config TPL_SPRINTF 68 bool 69 70config STRTO 71 bool 72 default y 73 74config SPL_STRTO 75 bool 76 77config TPL_STRTO 78 bool 79 80config IMAGE_SPARSE 81 bool 82 83config IMAGE_SPARSE_FILLBUF_SIZE 84 hex "Android sparse image CHUNK_TYPE_FILL buffer size" 85 default 0x80000 86 depends on IMAGE_SPARSE 87 help 88 Set the size of the fill buffer used when processing CHUNK_TYPE_FILL 89 chunks. 90 91config USE_PRIVATE_LIBGCC 92 bool "Use private libgcc" 93 depends on HAVE_PRIVATE_LIBGCC 94 default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS) 95 help 96 This option allows you to use the built-in libgcc implementation 97 of U-Boot instead of the one provided by the compiler. 98 If unsure, say N. 99 100config SYS_HZ 101 int 102 default 1000 103 help 104 The frequency of the timer returned by get_timer(). 105 get_timer() must operate in milliseconds and this option must be 106 set to 1000. 107 108config SPL_USE_TINY_PRINTF 109 bool "Enable tiny printf() version in SPL" 110 depends on SPL 111 default y 112 help 113 This option enables a tiny, stripped down printf version. 114 This should only be used in space limited environments, 115 like SPL versions with hard memory limits. This version 116 reduces the code size by about 2.5KiB on armv7. 117 118 The supported format specifiers are %c, %s, %u/%d and %x. 119 120config TPL_USE_TINY_PRINTF 121 bool "Enable tiny printf() version in TPL" 122 depends on TPL 123 default y if SPL_USE_TINY_PRINTF 124 help 125 This option enables a tiny, stripped down printf version. 126 This should only be used in space limited environments, 127 like SPL versions with hard memory limits. This version 128 reduces the code size by about 2.5KiB on armv7. 129 130 The supported format specifiers are %c, %s, %u/%d and %x. 131 132config PANIC_HANG 133 bool "Do not reset the system on fatal error" 134 help 135 Define this option to stop the system in case of a fatal error, 136 so that you have to reset it manually. This is probably NOT a good 137 idea for an embedded system where you want the system to reboot 138 automatically as fast as possible, but it may be useful during 139 development since you can try to debug the conditions that lead to 140 the situation. 141 142config REGEX 143 bool "Enable regular expression support" 144 default y if NET 145 help 146 If this variable is defined, U-Boot is linked against the 147 SLRE (Super Light Regular Expression) library, which adds 148 regex support to some commands, for example "env grep" and 149 "setexpr". 150 151choice 152 prompt "Pseudo-random library support type" 153 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID 154 default LIB_RAND 155 help 156 Select the library to provide pseudo-random number generator 157 functions. LIB_HW_RAND supports certain hardware engines that 158 provide this functionality. If in doubt, select LIB_RAND. 159 160config LIB_RAND 161 bool "Pseudo-random library support" 162 163config LIB_HW_RAND 164 bool "HW Engine for random libray support" 165 166endchoice 167 168config SPL_TINY_MEMSET 169 bool "Use a very small memset() in SPL" 170 help 171 The faster memset() is the arch-specific one (if available) enabled 172 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get 173 better performance by writing a word at a time. But in very 174 size-constrained environments even this may be too big. Enable this 175 option to reduce code size slightly at the cost of some speed. 176 177config TPL_TINY_MEMSET 178 bool "Use a very small memset() in TPL" 179 help 180 The faster memset() is the arch-specific one (if available) enabled 181 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get 182 better performance by writing a word at a time. But in very 183 size-constrained environments even this may be too big. Enable this 184 option to reduce code size slightly at the cost of some speed. 185 186config RBTREE 187 bool 188 189config BITREVERSE 190 bool "Bit reverse library from Linux" 191 192config TRACE 193 bool "Support for tracing of function calls and timing" 194 imply CMD_TRACE 195 help 196 Enables function tracing within U-Boot. This allows recording of call 197 traces including timing information. The command can write data to 198 memory for exporting for analysis (e.g. using bootchart). 199 See doc/README.trace for full details. 200 201config TRACE_BUFFER_SIZE 202 hex "Size of trace buffer in U-Boot" 203 depends on TRACE 204 default 0x01000000 205 help 206 Sets the size of the trace buffer in U-Boot. This is allocated from 207 memory during relocation. If this buffer is too small, the trace 208 history will be truncated, with later records omitted. 209 210 If early trace is enabled (i.e. before relocation), this buffer must 211 be large enough to include all the data from the early trace buffer as 212 well, since this is copied over to the main buffer during relocation. 213 214 A trace record is emitted for each function call and each record is 215 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If 216 the size is too small then 'trace stats' will show a message saying 217 how many records were dropped due to buffer overflow. 218 219config TRACE_CALL_DEPTH_LIMIT 220 int "Trace call depth limit" 221 depends on TRACE 222 default 15 223 help 224 Sets the maximum call depth up to which function calls are recorded. 225 226config TRACE_EARLY 227 bool "Enable tracing before relocation" 228 depends on TRACE 229 help 230 Sometimes it is helpful to trace execution of U-Boot before 231 relocation. This is possible by using a arch-specific, fixed buffer 232 position in memory. Enable this option to start tracing as early as 233 possible after U-Boot starts. 234 235config TRACE_EARLY_SIZE 236 hex "Size of early trace buffer in U-Boot" 237 depends on TRACE_EARLY 238 default 0x00100000 239 help 240 Sets the size of the early trace buffer in bytes. This is used to hold 241 tracing information before relocation. 242 243config TRACE_EARLY_CALL_DEPTH_LIMIT 244 int "Early trace call depth limit" 245 depends on TRACE_EARLY 246 default 200 247 help 248 Sets the maximum call depth up to which function calls are recorded 249 during early tracing. 250 251config TRACE_EARLY_ADDR 252 hex "Address of early trace buffer in U-Boot" 253 depends on TRACE_EARLY 254 default 0x00100000 255 help 256 Sets the address of the early trace buffer in U-Boot. This memory 257 must be accessible before relocation. 258 259 A trace record is emitted for each function call and each record is 260 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If 261 the size is too small then the message which says the amount of early 262 data being coped will the the same as the 263 264source lib/dhry/Kconfig 265 266menu "Security support" 267 268config AES 269 bool "Support the AES algorithm" 270 help 271 This provides a means to encrypt and decrypt data using the AES 272 (Advanced Encryption Standard). This algorithm uses a symetric key 273 and is widely used as a streaming cipher. Different key lengths are 274 supported by the algorithm but only a 128-bit key is supported at 275 present. 276 277source lib/rsa/Kconfig 278source lib/crypto/Kconfig 279 280config TPM 281 bool "Trusted Platform Module (TPM) Support" 282 depends on DM 283 help 284 This enables support for TPMs which can be used to provide security 285 features for your board. The TPM can be connected via LPC or I2C 286 and a sandbox TPM is provided for testing purposes. Use the 'tpm' 287 command to interactive the TPM. Driver model support is provided 288 for the low-level TPM interface, but only one TPM is supported at 289 a time by the TPM library. 290 291config SPL_TPM 292 bool "Trusted Platform Module (TPM) Support in SPL" 293 depends on SPL_DM 294 help 295 This enables support for TPMs which can be used to provide security 296 features for your board. The TPM can be connected via LPC or I2C 297 and a sandbox TPM is provided for testing purposes. Use the 'tpm' 298 command to interactive the TPM. Driver model support is provided 299 for the low-level TPM interface, but only one TPM is supported at 300 a time by the TPM library. 301 302config TPL_TPM 303 bool "Trusted Platform Module (TPM) Support in TPL" 304 depends on TPL_DM 305 help 306 This enables support for TPMs which can be used to provide security 307 features for your board. The TPM can be connected via LPC or I2C 308 and a sandbox TPM is provided for testing purposes. Use the 'tpm' 309 command to interactive the TPM. Driver model support is provided 310 for the low-level TPM interface, but only one TPM is supported at 311 a time by the TPM library. 312 313endmenu 314 315menu "Android Verified Boot" 316 317config LIBAVB 318 bool "Android Verified Boot 2.0 support" 319 depends on ANDROID_BOOT_IMAGE 320 default n 321 help 322 This enables support of Android Verified Boot 2.0 which can be used 323 to assure the end user of the integrity of the software running on a 324 device. Introduces such features as boot chain of trust, rollback 325 protection etc. 326 327endmenu 328 329menu "Hashing Support" 330 331config SHA1 332 bool "Enable SHA1 support" 333 help 334 This option enables support of hashing using SHA1 algorithm. 335 The hash is calculated in software. 336 The SHA1 algorithm produces a 160-bit (20-byte) hash value 337 (digest). 338 339config SHA256 340 bool "Enable SHA256 support" 341 help 342 This option enables support of hashing using SHA256 algorithm. 343 The hash is calculated in software. 344 The SHA256 algorithm produces a 256-bit (32-byte) hash value 345 (digest). 346 347config SHA_HW_ACCEL 348 bool "Enable hashing using hardware" 349 help 350 This option enables hardware acceleration 351 for SHA1/SHA256 hashing. 352 This affects the 'hash' command and also the 353 hash_lookup_algo() function. 354 355config SHA_PROG_HW_ACCEL 356 bool "Enable Progressive hashing support using hardware" 357 depends on SHA_HW_ACCEL 358 help 359 This option enables hardware-acceleration for 360 SHA1/SHA256 progressive hashing. 361 Data can be streamed in a block at a time and the hashing 362 is performed in hardware. 363 364config MD5 365 bool 366 367config CRC32C 368 bool 369 370config XXHASH 371 bool 372 373endmenu 374 375menu "Compression Support" 376 377config LZ4 378 bool "Enable LZ4 decompression support" 379 help 380 If this option is set, support for LZ4 compressed images 381 is included. The LZ4 algorithm can run in-place as long as the 382 compressed image is loaded to the end of the output buffer, and 383 trades lower compression ratios for much faster decompression. 384 385 NOTE: This implements the release version of the LZ4 frame 386 format as generated by default by the 'lz4' command line tool. 387 This is not the same as the outdated, less efficient legacy 388 frame format currently (2015) implemented in the Linux kernel 389 (generated by 'lz4 -l'). The two formats are incompatible. 390 391config LZMA 392 bool "Enable LZMA decompression support" 393 help 394 This enables support for LZMA (Lempel-Ziv-Markov chain algorithm), 395 a dictionary compression algorithm that provides a high compression 396 ratio and fairly fast decompression speed. See also 397 CONFIG_CMD_LZMADEC which provides a decode command. 398 399config LZO 400 bool "Enable LZO decompression support" 401 help 402 This enables support for LZO compression algorithm.r 403 404config GZIP 405 bool "Enable gzip decompression support" 406 select ZLIB 407 default y 408 help 409 This enables support for GZIP compression algorithm. 410 411config ZLIB 412 bool 413 default y 414 help 415 This enables ZLIB compression lib. 416 417config ZSTD 418 bool "Enable Zstandard decompression support" 419 select XXHASH 420 help 421 This enables Zstandard decompression library. 422 423config SPL_LZ4 424 bool "Enable LZ4 decompression support in SPL" 425 help 426 This enables support for tge LZ4 decompression algorithm in SPL. LZ4 427 is a lossless data compression algorithm that is focused on 428 fast compression and decompression speed. It belongs to the LZ77 429 family of byte-oriented compression schemes. 430 431config SPL_LZO 432 bool "Enable LZO decompression support in SPL" 433 help 434 This enables support for LZO compression algorithm in the SPL. 435 436config SPL_GZIP 437 bool "Enable gzip decompression support for SPL build" 438 select SPL_ZLIB 439 help 440 This enables support for GZIP compression altorithm for SPL boot. 441 442config SPL_ZLIB 443 bool 444 help 445 This enables compression lib for SPL boot. 446 447config SPL_ZSTD 448 bool "Enable Zstandard decompression support in SPL" 449 select XXHASH 450 help 451 This enables Zstandard decompression library in the SPL. 452 453endmenu 454 455config ERRNO_STR 456 bool "Enable function for getting errno-related string message" 457 help 458 The function errno_str(int errno), returns a pointer to the errno 459 corresponding text message: 460 - if errno is null or positive number - a pointer to "Success" message 461 - if errno is negative - a pointer to errno related message 462 463config HEXDUMP 464 bool "Enable hexdump" 465 help 466 This enables functions for printing dumps of binary data. 467 468config OF_LIBFDT 469 bool "Enable the FDT library" 470 default y if OF_CONTROL 471 help 472 This enables the FDT library (libfdt). It provides functions for 473 accessing binary device tree images in memory, such as adding and 474 removing nodes and properties, scanning through the tree and finding 475 particular compatible nodes. The library operates on a flattened 476 version of the device tree. 477 478config OF_LIBFDT_ASSUME_MASK 479 hex "Mask of conditions to assume for libfdt" 480 depends on OF_LIBFDT || FIT 481 default 0 482 help 483 Use this to change the assumptions made by libfdt about the 484 device tree it is working with. A value of 0 means that no assumptions 485 are made, and libfdt is able to deal with malicious data. A value of 486 0xff means all assumptions are made and any invalid data may cause 487 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h 488 489config OF_LIBFDT_OVERLAY 490 bool "Enable the FDT library overlay support" 491 depends on OF_LIBFDT 492 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE 493 help 494 This enables the FDT library (libfdt) overlay support. 495 496config SPL_OF_LIBFDT 497 bool "Enable the FDT library for SPL" 498 default y if SPL_OF_CONTROL 499 help 500 This enables the FDT library (libfdt). It provides functions for 501 accessing binary device tree images in memory, such as adding and 502 removing nodes and properties, scanning through the tree and finding 503 particular compatible nodes. The library operates on a flattened 504 version of the device tree. 505 506config SPL_OF_LIBFDT_ASSUME_MASK 507 hex "Mask of conditions to assume for libfdt" 508 depends on SPL_OF_LIBFDT || FIT 509 default 0xff 510 help 511 Use this to change the assumptions made by libfdt in SPL about the 512 device tree it is working with. A value of 0 means that no assumptions 513 are made, and libfdt is able to deal with malicious data. A value of 514 0xff means all assumptions are made and any invalid data may cause 515 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h 516 517config TPL_OF_LIBFDT 518 bool "Enable the FDT library for TPL" 519 default y if TPL_OF_CONTROL 520 help 521 This enables the FDT library (libfdt). It provides functions for 522 accessing binary device tree images in memory, such as adding and 523 removing nodes and properties, scanning through the tree and finding 524 particular compatible nodes. The library operates on a flattened 525 version of the device tree. 526 527config TPL_OF_LIBFDT_ASSUME_MASK 528 hex "Mask of conditions to assume for libfdt" 529 depends on TPL_OF_LIBFDT || FIT 530 default 0xff 531 help 532 Use this to change the assumptions made by libfdt in TPL about the 533 device tree it is working with. A value of 0 means that no assumptions 534 are made, and libfdt is able to deal with malicious data. A value of 535 0xff means all assumptions are made and any invalid data may cause 536 unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h 537 538config FDT_FIXUP_PARTITIONS 539 bool "overwrite MTD partitions in DTS through defined in 'mtdparts'" 540 depends on OF_LIBFDT 541 depends on CMD_MTDPARTS 542 help 543 Allow overwriting defined partitions in the device tree blob 544 using partition info defined in the 'mtdparts' environment 545 variable. 546 547menu "System tables" 548 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER) 549 550config GENERATE_SMBIOS_TABLE 551 bool "Generate an SMBIOS (System Management BIOS) table" 552 default y 553 depends on X86 || EFI_LOADER 554 help 555 The System Management BIOS (SMBIOS) specification addresses how 556 motherboard and system vendors present management information about 557 their products in a standard format by extending the BIOS interface 558 on Intel architecture systems. 559 560 Check http://www.dmtf.org/standards/smbios for details. 561 562config SMBIOS_MANUFACTURER 563 string "SMBIOS Manufacturer" 564 depends on GENERATE_SMBIOS_TABLE 565 default SYS_VENDOR 566 help 567 The board manufacturer to store in SMBIOS structures. 568 Change this to override the default one (CONFIG_SYS_VENDOR). 569 570config SMBIOS_PRODUCT_NAME 571 string "SMBIOS Product Name" 572 depends on GENERATE_SMBIOS_TABLE 573 default SYS_BOARD 574 help 575 The product name to store in SMBIOS structures. 576 Change this to override the default one (CONFIG_SYS_BOARD). 577 578endmenu 579 580config ASN1_COMPILER 581 bool 582 583config ASN1_DECODER 584 bool 585 help 586 Enable asn1 decoder library. 587 588config OID_REGISTRY 589 bool 590 help 591 Enable fast lookup object identifier registry. 592 593config HWDEC 594 bool "hw decompress" 595 default y 596 depends on TARGET_HI3559AV100 || TARGET_HI3519AV100 || TARGET_HI3556AV100 || \ 597 TARGET_HI3556V200 || TARGET_HI3559V200 || TARGET_HI3516DV300 || \ 598 TARGET_HI3516AV300 || TARGET_HI3516CV500 || TARGET_HI3516EV200 || \ 599 TARGET_HI3516EV300 || TARGET_HI3518EV300 || TARGET_HI3516DV200 || \ 600 TARGET_HI3562V100 || TARGET_HI3566V100 || TARGET_HI3569V100 601 help 602 hw decompress. 603 604source lib/efi/Kconfig 605source lib/efi_loader/Kconfig 606source lib/optee/Kconfig 607 608config TEST_FDTDEC 609 bool "enable fdtdec test" 610 depends on OF_LIBFDT 611 612config LIB_DATE 613 bool 614 615endmenu 616