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 help 101 This option enables a tiny, stripped down printf version. 102 This should only be used in space limited environments, 103 like SPL versions with hard memory limits. This version 104 reduces the code size by about 2.5KiB on armv7. 105 106 The supported format specifiers are %c, %s, %u/%d and %x. 107 108config PANIC_HANG 109 bool "Do not reset the system on fatal error" 110 help 111 Define this option to stop the system in case of a fatal error, 112 so that you have to reset it manually. This is probably NOT a good 113 idea for an embedded system where you want the system to reboot 114 automatically as fast as possible, but it may be useful during 115 development since you can try to debug the conditions that lead to 116 the situation. 117 118config REGEX 119 bool "Enable regular expression support" 120 default y if NET 121 help 122 If this variable is defined, U-Boot is linked against the 123 SLRE (Super Light Regular Expression) library, which adds 124 regex support to some commands, for example "env grep" and 125 "setexpr". 126 127choice 128 prompt "Pseudo-random library support type" 129 depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID 130 default LIB_RAND 131 help 132 Select the library to provide pseudo-random number generator 133 functions. LIB_HW_RAND supports certain hardware engines that 134 provide this functionality. If in doubt, select LIB_RAND. 135 136config LIB_RAND 137 bool "Pseudo-random library support" 138 139config LIB_HW_RAND 140 bool "HW Engine for random libray support" 141 142endchoice 143 144config SPL_TINY_MEMSET 145 bool "Use a very small memset() in SPL" 146 help 147 The faster memset() is the arch-specific one (if available) enabled 148 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get 149 better performance by writing a word at a time. But in very 150 size-constrained environments even this may be too big. Enable this 151 option to reduce code size slightly at the cost of some speed. 152 153config TPL_TINY_MEMSET 154 bool "Use a very small memset() in TPL" 155 help 156 The faster memset() is the arch-specific one (if available) enabled 157 by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get 158 better performance by writing a word at a time. But in very 159 size-constrained environments even this may be too big. Enable this 160 option to reduce code size slightly at the cost of some speed. 161 162config RBTREE 163 bool 164 165config BITREVERSE 166 bool "Bit reverse library from Linux" 167 168source lib/dhry/Kconfig 169 170menu "Security support" 171 172config AES 173 bool "Support the AES algorithm" 174 help 175 This provides a means to encrypt and decrypt data using the AES 176 (Advanced Encryption Standard). This algorithm uses a symetric key 177 and is widely used as a streaming cipher. Different key lengths are 178 supported by the algorithm but only a 128-bit key is supported at 179 present. 180 181source lib/rsa/Kconfig 182 183config TPM 184 bool "Trusted Platform Module (TPM) Support" 185 depends on DM 186 help 187 This enables support for TPMs which can be used to provide security 188 features for your board. The TPM can be connected via LPC or I2C 189 and a sandbox TPM is provided for testing purposes. Use the 'tpm' 190 command to interactive the TPM. Driver model support is provided 191 for the low-level TPM interface, but only one TPM is supported at 192 a time by the TPM library. 193 194config SPL_TPM 195 bool "Trusted Platform Module (TPM) Support in SPL" 196 depends on SPL_DM 197 help 198 This enables support for TPMs which can be used to provide security 199 features for your board. The TPM can be connected via LPC or I2C 200 and a sandbox TPM is provided for testing purposes. Use the 'tpm' 201 command to interactive the TPM. Driver model support is provided 202 for the low-level TPM interface, but only one TPM is supported at 203 a time by the TPM library. 204 205config TPL_TPM 206 bool "Trusted Platform Module (TPM) Support in TPL" 207 depends on TPL_DM 208 help 209 This enables support for TPMs which can be used to provide security 210 features for your board. The TPM can be connected via LPC or I2C 211 and a sandbox TPM is provided for testing purposes. Use the 'tpm' 212 command to interactive the TPM. Driver model support is provided 213 for the low-level TPM interface, but only one TPM is supported at 214 a time by the TPM library. 215 216endmenu 217 218menu "Android Verified Boot" 219 220config LIBAVB 221 bool "Android Verified Boot 2.0 support" 222 depends on ANDROID_BOOT_IMAGE 223 default n 224 help 225 This enables support of Android Verified Boot 2.0 which can be used 226 to assure the end user of the integrity of the software running on a 227 device. Introduces such features as boot chain of trust, rollback 228 protection etc. 229 230endmenu 231 232menu "Hashing Support" 233 234config SHA1 235 bool "Enable SHA1 support" 236 help 237 This option enables support of hashing using SHA1 algorithm. 238 The hash is calculated in software. 239 The SHA1 algorithm produces a 160-bit (20-byte) hash value 240 (digest). 241 242config SHA256 243 bool "Enable SHA256 support" 244 help 245 This option enables support of hashing using SHA256 algorithm. 246 The hash is calculated in software. 247 The SHA256 algorithm produces a 256-bit (32-byte) hash value 248 (digest). 249 250config SHA512_ALGO 251 bool "Enable SHA512 algorithm" 252 help 253 This option enables support of internal SHA512 algorithm. 254 255config SHA512 256 bool "Enable SHA512 support" 257 depends on SHA512_ALGO 258 help 259 This option enables support of hashing using SHA512 algorithm. 260 The hash is calculated in software. 261 The SHA512 algorithm produces a 512-bit (64-byte) hash value 262 (digest). 263 264config SHA384 265 bool "Enable SHA384 support" 266 depends on SHA512_ALGO 267 help 268 This option enables support of hashing using SHA384 algorithm. 269 The hash is calculated in software. 270 The SHA384 algorithm produces a 384-bit (48-byte) hash value 271 (digest). 272 273config SHA_HW_ACCEL 274 bool "Enable hashing using hardware" 275 help 276 This option enables hardware acceleration for SHA hashing. 277 This affects the 'hash' command and also the hash_lookup_algo() 278 function. 279 280config SHA_PROG_HW_ACCEL 281 bool "Enable Progressive hashing support using hardware" 282 depends on SHA_HW_ACCEL 283 help 284 This option enables hardware-acceleration for SHA progressive 285 hashing. 286 Data can be streamed in a block at a time and the hashing is 287 performed in hardware. 288 289config MD5 290 bool 291 292config CRC32C 293 bool 294 295endmenu 296 297menu "Compression Support" 298 299config LZ4 300 bool "Enable LZ4 decompression support" 301 help 302 If this option is set, support for LZ4 compressed images 303 is included. The LZ4 algorithm can run in-place as long as the 304 compressed image is loaded to the end of the output buffer, and 305 trades lower compression ratios for much faster decompression. 306 307 NOTE: This implements the release version of the LZ4 frame 308 format as generated by default by the 'lz4' command line tool. 309 This is not the same as the outdated, less efficient legacy 310 frame format currently (2015) implemented in the Linux kernel 311 (generated by 'lz4 -l'). The two formats are incompatible. 312 313config LZMA 314 bool "Enable LZMA decompression support" 315 help 316 This enables support for LZMA (Lempel-Ziv-Markov chain algorithm), 317 a dictionary compression algorithm that provides a high compression 318 ratio and fairly fast decompression speed. See also 319 CONFIG_CMD_LZMADEC which provides a decode command. 320 321config LZO 322 bool "Enable LZO decompression support" 323 help 324 This enables support for LZO compression algorithm.r 325 326config SPL_LZ4 327 bool "Enable LZ4 decompression support in SPL" 328 help 329 This enables support for tge LZ4 decompression algorithm in SPL. LZ4 330 is a lossless data compression algorithm that is focused on 331 fast compression and decompression speed. It belongs to the LZ77 332 family of byte-oriented compression schemes. 333 334config SPL_LZO 335 bool "Enable LZO decompression support in SPL" 336 help 337 This enables support for LZO compression algorithm in the SPL. 338 339config SPL_GZIP 340 bool "Enable gzip decompression support for SPL build" 341 select SPL_ZLIB 342 help 343 This enables support for GZIP compression altorithm for SPL boot. 344 345config SPL_ZLIB 346 bool 347 help 348 This enables compression lib for SPL boot. 349 350endmenu 351 352config ERRNO_STR 353 bool "Enable function for getting errno-related string message" 354 help 355 The function errno_str(int errno), returns a pointer to the errno 356 corresponding text message: 357 - if errno is null or positive number - a pointer to "Success" message 358 - if errno is negative - a pointer to errno related message 359 360config HEXDUMP 361 bool "Enable hexdump" 362 help 363 This enables functions for printing dumps of binary data. 364 365config OF_LIBFDT 366 bool "Enable the FDT library" 367 default y if OF_CONTROL 368 help 369 This enables the FDT library (libfdt). It provides functions for 370 accessing binary device tree images in memory, such as adding and 371 removing nodes and properties, scanning through the tree and finding 372 particular compatible nodes. The library operates on a flattened 373 version of the device tree. 374 375config OF_LIBFDT_OVERLAY 376 bool "Enable the FDT library overlay support" 377 depends on OF_LIBFDT 378 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE 379 help 380 This enables the FDT library (libfdt) overlay support. 381 382config SPL_OF_LIBFDT 383 bool "Enable the FDT library for SPL" 384 default y if SPL_OF_CONTROL 385 help 386 This enables the FDT library (libfdt). It provides functions for 387 accessing binary device tree images in memory, such as adding and 388 removing nodes and properties, scanning through the tree and finding 389 particular compatible nodes. The library operates on a flattened 390 version of the device tree. 391 392config TPL_OF_LIBFDT 393 bool "Enable the FDT library for TPL" 394 default y if TPL_OF_CONTROL 395 help 396 This enables the FDT library (libfdt). It provides functions for 397 accessing binary device tree images in memory, such as adding and 398 removing nodes and properties, scanning through the tree and finding 399 particular compatible nodes. The library operates on a flattened 400 version of the device tree. 401 402config FDT_FIXUP_PARTITIONS 403 bool "overwrite MTD partitions in DTS through defined in 'mtdparts'" 404 depends on OF_LIBFDT 405 depends on CMD_MTDPARTS 406 help 407 Allow overwriting defined partitions in the device tree blob 408 using partition info defined in the 'mtdparts' environment 409 variable. 410 411menu "System tables" 412 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER) 413 414config GENERATE_SMBIOS_TABLE 415 bool "Generate an SMBIOS (System Management BIOS) table" 416 default y 417 depends on X86 || EFI_LOADER 418 help 419 The System Management BIOS (SMBIOS) specification addresses how 420 motherboard and system vendors present management information about 421 their products in a standard format by extending the BIOS interface 422 on Intel architecture systems. 423 424 Check http://www.dmtf.org/standards/smbios for details. 425 426config SMBIOS_MANUFACTURER 427 string "SMBIOS Manufacturer" 428 depends on GENERATE_SMBIOS_TABLE 429 default SYS_VENDOR 430 help 431 The board manufacturer to store in SMBIOS structures. 432 Change this to override the default one (CONFIG_SYS_VENDOR). 433 434config SMBIOS_PRODUCT_NAME 435 string "SMBIOS Product Name" 436 depends on GENERATE_SMBIOS_TABLE 437 default SYS_BOARD 438 help 439 The product name to store in SMBIOS structures. 440 Change this to override the default one (CONFIG_SYS_BOARD). 441 442endmenu 443 444source lib/efi/Kconfig 445source lib/efi_loader/Kconfig 446source lib/optee/Kconfig 447 448endmenu 449