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