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 !USE_TINY_PRINTF 44 45config TPL_PRINTF 46 bool 47 select TPL_SPRINTF 48 select TPL_STRTO if !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 USE_TINY_PRINTF 99 bool "Enable tiny printf() version" 100 depends on SPL || TPL 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 PANIC_HANG 111 bool "Do not reset the system on fatal error" 112 help 113 Define this option to stop the system in case of a fatal error, 114 so that you have to reset it manually. This is probably NOT a good 115 idea for an embedded system where you want the system to reboot 116 automatically as fast as possible, but it may be useful during 117 development since you can try to debug the conditions that lead to 118 the situation. 119 120config REGEX 121 bool "Enable regular expression support" 122 default y if NET 123 help 124 If this variable is defined, U-Boot is linked against the 125 SLRE (Super Light Regular Expression) library, which adds 126 regex support to some commands, for example "env grep" and 127 "setexpr". 128 129choice 130 prompt "Pseudo-random library support type" 131 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID 132 default LIB_RAND 133 help 134 Select the library to provide pseudo-random number generator 135 functions. LIB_HW_RAND supports certain hardware engines that 136 provide this functionality. If in doubt, select LIB_RAND. 137 138config LIB_RAND 139 bool "Pseudo-random library support" 140 141config LIB_HW_RAND 142 bool "HW Engine for random libray support" 143 144endchoice 145 146config SPL_TINY_MEMSET 147 bool "Use a very small memset() in SPL" 148 help 149 The faster memset() is the arch-specific one (if available) enabled 150 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get 151 better performance by writing a word at a time. But in very 152 size-constrained environments even this may be too big. Enable this 153 option to reduce code size slightly at the cost of some speed. 154 155config TPL_TINY_MEMSET 156 bool "Use a very small memset() in TPL" 157 help 158 The faster memset() is the arch-specific one (if available) enabled 159 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get 160 better performance by writing a word at a time. But in very 161 size-constrained environments even this may be too big. Enable this 162 option to reduce code size slightly at the cost of some speed. 163 164config RBTREE 165 bool 166 167config BITREVERSE 168 bool "Bit reverse library from Linux" 169 170config TRACE 171 bool "Support for tracing of function calls and timing" 172 imply CMD_TRACE 173 help 174 Enables function tracing within U-Boot. This allows recording of call 175 traces including timing information. The command can write data to 176 memory for exporting for analysis (e.g. using bootchart). 177 See doc/README.trace for full details. 178 179config TRACE_BUFFER_SIZE 180 hex "Size of trace buffer in U-Boot" 181 depends on TRACE 182 default 0x01000000 183 help 184 Sets the size of the trace buffer in U-Boot. This is allocated from 185 memory during relocation. If this buffer is too small, the trace 186 history will be truncated, with later records omitted. 187 188 If early trace is enabled (i.e. before relocation), this buffer must 189 be large enough to include all the data from the early trace buffer as 190 well, since this is copied over to the main buffer during relocation. 191 192 A trace record is emitted for each function call and each record is 193 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If 194 the size is too small then 'trace stats' will show a message saying 195 how many records were dropped due to buffer overflow. 196 197config TRACE_CALL_DEPTH_LIMIT 198 int "Trace call depth limit" 199 depends on TRACE 200 default 15 201 help 202 Sets the maximum call depth up to which function calls are recorded. 203 204config TRACE_EARLY 205 bool "Enable tracing before relocation" 206 depends on TRACE 207 help 208 Sometimes it is helpful to trace execution of U-Boot before 209 relocation. This is possible by using a arch-specific, fixed buffer 210 position in memory. Enable this option to start tracing as early as 211 possible after U-Boot starts. 212 213config TRACE_EARLY_SIZE 214 hex "Size of early trace buffer in U-Boot" 215 depends on TRACE_EARLY 216 default 0x00100000 217 help 218 Sets the size of the early trace buffer in bytes. This is used to hold 219 tracing information before relocation. 220 221config TRACE_EARLY_CALL_DEPTH_LIMIT 222 int "Early trace call depth limit" 223 depends on TRACE_EARLY 224 default 200 225 help 226 Sets the maximum call depth up to which function calls are recorded 227 during early tracing. 228 229config TRACE_EARLY_ADDR 230 hex "Address of early trace buffer in U-Boot" 231 depends on TRACE_EARLY 232 default 0x00100000 233 help 234 Sets the address of the early trace buffer in U-Boot. This memory 235 must be accessible before relocation. 236 237 A trace record is emitted for each function call and each record is 238 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If 239 the size is too small then the message which says the amount of early 240 data being coped will the the same as the 241 242source lib/dhry/Kconfig 243 244menu "Security support" 245 246config AES 247 bool "Support the AES algorithm" 248 help 249 This provides a means to encrypt and decrypt data using the AES 250 (Advanced Encryption Standard). This algorithm uses a symetric key 251 and is widely used as a streaming cipher. Different key lengths are 252 supported by the algorithm but only a 128-bit key is supported at 253 present. 254 255source lib/rsa/Kconfig 256 257config TPM 258 bool "Trusted Platform Module (TPM) Support" 259 depends on DM 260 help 261 This enables support for TPMs which can be used to provide security 262 features for your board. The TPM can be connected via LPC or I2C 263 and a sandbox TPM is provided for testing purposes. Use the 'tpm' 264 command to interactive the TPM. Driver model support is provided 265 for the low-level TPM interface, but only one TPM is supported at 266 a time by the TPM library. 267 268config SPL_TPM 269 bool "Trusted Platform Module (TPM) Support in SPL" 270 depends on SPL_DM 271 help 272 This enables support for TPMs which can be used to provide security 273 features for your board. The TPM can be connected via LPC or I2C 274 and a sandbox TPM is provided for testing purposes. Use the 'tpm' 275 command to interactive the TPM. Driver model support is provided 276 for the low-level TPM interface, but only one TPM is supported at 277 a time by the TPM library. 278 279config TPL_TPM 280 bool "Trusted Platform Module (TPM) Support in TPL" 281 depends on TPL_DM 282 help 283 This enables support for TPMs which can be used to provide security 284 features for your board. The TPM can be connected via LPC or I2C 285 and a sandbox TPM is provided for testing purposes. Use the 'tpm' 286 command to interactive the TPM. Driver model support is provided 287 for the low-level TPM interface, but only one TPM is supported at 288 a time by the TPM library. 289 290endmenu 291 292menu "Android Verified Boot" 293 294config LIBAVB 295 bool "Android Verified Boot 2.0 support" 296 depends on ANDROID_BOOT_IMAGE 297 default n 298 help 299 This enables support of Android Verified Boot 2.0 which can be used 300 to assure the end user of the integrity of the software running on a 301 device. Introduces such features as boot chain of trust, rollback 302 protection etc. 303 304endmenu 305 306menu "Hashing Support" 307 308config SHA1 309 bool "Enable SHA1 support" 310 help 311 This option enables support of hashing using SHA1 algorithm. 312 The hash is calculated in software. 313 The SHA1 algorithm produces a 160-bit (20-byte) hash value 314 (digest). 315 316config SHA256 317 bool "Enable SHA256 support" 318 help 319 This option enables support of hashing using SHA256 algorithm. 320 The hash is calculated in software. 321 The SHA256 algorithm produces a 256-bit (32-byte) hash value 322 (digest). 323 324config SHA_HW_ACCEL 325 bool "Enable hashing using hardware" 326 help 327 This option enables hardware acceleration 328 for SHA1/SHA256 hashing. 329 This affects the 'hash' command and also the 330 hash_lookup_algo() function. 331 332config SHA_PROG_HW_ACCEL 333 bool "Enable Progressive hashing support using hardware" 334 depends on SHA_HW_ACCEL 335 help 336 This option enables hardware-acceleration for 337 SHA1/SHA256 progressive hashing. 338 Data can be streamed in a block at a time and the hashing 339 is performed in hardware. 340 341config MD5 342 bool 343 344config CRC32C 345 bool 346 347config XXHASH 348 bool 349 350endmenu 351 352menu "Compression Support" 353 354config LZ4 355 bool "Enable LZ4 decompression support" 356 help 357 If this option is set, support for LZ4 compressed images 358 is included. The LZ4 algorithm can run in-place as long as the 359 compressed image is loaded to the end of the output buffer, and 360 trades lower compression ratios for much faster decompression. 361 362 NOTE: This implements the release version of the LZ4 frame 363 format as generated by default by the 'lz4' command line tool. 364 This is not the same as the outdated, less efficient legacy 365 frame format currently (2015) implemented in the Linux kernel 366 (generated by 'lz4 -l'). The two formats are incompatible. 367 368config LZMA 369 bool "Enable LZMA decompression support" 370 help 371 This enables support for LZMA (Lempel-Ziv-Markov chain algorithm), 372 a dictionary compression algorithm that provides a high compression 373 ratio and fairly fast decompression speed. See also 374 CONFIG_CMD_LZMADEC which provides a decode command. 375 376config LZO 377 bool "Enable LZO decompression support" 378 help 379 This enables support for LZO compression algorithm.r 380 381config GZIP 382 bool "Enable gzip decompression support" 383 select ZLIB 384 default y 385 help 386 This enables support for GZIP compression algorithm. 387 388config ZLIB 389 bool 390 default y 391 help 392 This enables ZLIB compression lib. 393 394config ZSTD 395 bool "Enable Zstandard decompression support" 396 select XXHASH 397 help 398 This enables Zstandard decompression library. 399 400config SPL_LZ4 401 bool "Enable LZ4 decompression support in SPL" 402 help 403 This enables support for tge LZ4 decompression algorithm in SPL. LZ4 404 is a lossless data compression algorithm that is focused on 405 fast compression and decompression speed. It belongs to the LZ77 406 family of byte-oriented compression schemes. 407 408config SPL_LZO 409 bool "Enable LZO decompression support in SPL" 410 help 411 This enables support for LZO compression algorithm in the SPL. 412 413config SPL_GZIP 414 bool "Enable gzip decompression support for SPL build" 415 select SPL_ZLIB 416 help 417 This enables support for GZIP compression altorithm for SPL boot. 418 419config SPL_ZLIB 420 bool 421 help 422 This enables compression lib for SPL boot. 423 424config SPL_ZSTD 425 bool "Enable Zstandard decompression support in SPL" 426 select XXHASH 427 help 428 This enables Zstandard decompression library in the SPL. 429 430endmenu 431 432config ERRNO_STR 433 bool "Enable function for getting errno-related string message" 434 help 435 The function errno_str(int errno), returns a pointer to the errno 436 corresponding text message: 437 - if errno is null or positive number - a pointer to "Success" message 438 - if errno is negative - a pointer to errno related message 439 440config HEXDUMP 441 bool "Enable hexdump" 442 help 443 This enables functions for printing dumps of binary data. 444 445config OF_LIBFDT 446 bool "Enable the FDT library" 447 default y if OF_CONTROL 448 help 449 This enables the FDT library (libfdt). It provides functions for 450 accessing binary device tree images in memory, such as adding and 451 removing nodes and properties, scanning through the tree and finding 452 particular compatible nodes. The library operates on a flattened 453 version of the device tree. 454 455config OF_LIBFDT_OVERLAY 456 bool "Enable the FDT library overlay support" 457 depends on OF_LIBFDT 458 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE 459 help 460 This enables the FDT library (libfdt) overlay support. 461 462config SPL_OF_LIBFDT 463 bool "Enable the FDT library for SPL" 464 default y if SPL_OF_CONTROL 465 help 466 This enables the FDT library (libfdt). It provides functions for 467 accessing binary device tree images in memory, such as adding and 468 removing nodes and properties, scanning through the tree and finding 469 particular compatible nodes. The library operates on a flattened 470 version of the device tree. 471 472config TPL_OF_LIBFDT 473 bool "Enable the FDT library for TPL" 474 default y if TPL_OF_CONTROL 475 help 476 This enables the FDT library (libfdt). It provides functions for 477 accessing binary device tree images in memory, such as adding and 478 removing nodes and properties, scanning through the tree and finding 479 particular compatible nodes. The library operates on a flattened 480 version of the device tree. 481 482config FDT_FIXUP_PARTITIONS 483 bool "overwrite MTD partitions in DTS through defined in 'mtdparts'" 484 depends on OF_LIBFDT 485 depends on CMD_MTDPARTS 486 help 487 Allow overwriting defined partitions in the device tree blob 488 using partition info defined in the 'mtdparts' environment 489 variable. 490 491menu "System tables" 492 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER) 493 494config GENERATE_SMBIOS_TABLE 495 bool "Generate an SMBIOS (System Management BIOS) table" 496 default y 497 depends on X86 || EFI_LOADER 498 help 499 The System Management BIOS (SMBIOS) specification addresses how 500 motherboard and system vendors present management information about 501 their products in a standard format by extending the BIOS interface 502 on Intel architecture systems. 503 504 Check http://www.dmtf.org/standards/smbios for details. 505 506config SMBIOS_MANUFACTURER 507 string "SMBIOS Manufacturer" 508 depends on GENERATE_SMBIOS_TABLE 509 default SYS_VENDOR 510 help 511 The board manufacturer to store in SMBIOS structures. 512 Change this to override the default one (CONFIG_SYS_VENDOR). 513 514config SMBIOS_PRODUCT_NAME 515 string "SMBIOS Product Name" 516 depends on GENERATE_SMBIOS_TABLE 517 default SYS_BOARD 518 help 519 The product name to store in SMBIOS structures. 520 Change this to override the default one (CONFIG_SYS_BOARD). 521 522endmenu 523 524source lib/efi/Kconfig 525source lib/efi_loader/Kconfig 526source lib/optee/Kconfig 527 528config TEST_FDTDEC 529 bool "enable fdtdec test" 530 depends on OF_LIBFDT 531 532endmenu 533