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 envrionments 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 envrionments 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 SHA_HW_ACCEL 251 bool "Enable hashing using hardware" 252 help 253 This option enables hardware acceleration 254 for SHA1/SHA256 hashing. 255 This affects the 'hash' command and also the 256 hash_lookup_algo() function. 257 258config SHA_PROG_HW_ACCEL 259 bool "Enable Progressive hashing support using hardware" 260 depends on SHA_HW_ACCEL 261 help 262 This option enables hardware-acceleration for 263 SHA1/SHA256 progressive hashing. 264 Data can be streamed in a block at a time and the hashing 265 is performed in hardware. 266 267config MD5 268 bool 269 270config CRC32C 271 bool 272 273endmenu 274 275menu "Compression Support" 276 277config LZ4 278 bool "Enable LZ4 decompression support" 279 help 280 If this option is set, support for LZ4 compressed images 281 is included. The LZ4 algorithm can run in-place as long as the 282 compressed image is loaded to the end of the output buffer, and 283 trades lower compression ratios for much faster decompression. 284 285 NOTE: This implements the release version of the LZ4 frame 286 format as generated by default by the 'lz4' command line tool. 287 This is not the same as the outdated, less efficient legacy 288 frame format currently (2015) implemented in the Linux kernel 289 (generated by 'lz4 -l'). The two formats are incompatible. 290 291config LZMA 292 bool "Enable LZMA decompression support" 293 help 294 This enables support for LZMA (Lempel-Ziv-Markov chain algorithm), 295 a dictionary compression algorithm that provides a high compression 296 ratio and fairly fast decompression speed. See also 297 CONFIG_CMD_LZMADEC which provides a decode command. 298 299config LZO 300 bool "Enable LZO decompression support" 301 help 302 This enables support for LZO compression algorithm.r 303 304config SPL_LZO 305 bool "Enable LZO decompression support in SPL" 306 help 307 This enables support for LZO compression algorithm in the SPL. 308 309config SPL_GZIP 310 bool "Enable gzip decompression support for SPL build" 311 select SPL_ZLIB 312 help 313 This enables support for GZIP compression altorithm for SPL boot. 314 315config SPL_ZLIB 316 bool 317 help 318 This enables compression lib for SPL boot. 319 320endmenu 321 322config ERRNO_STR 323 bool "Enable function for getting errno-related string message" 324 help 325 The function errno_str(int errno), returns a pointer to the errno 326 corresponding text message: 327 - if errno is null or positive number - a pointer to "Success" message 328 - if errno is negative - a pointer to errno related message 329 330config HEXDUMP 331 bool "Enable hexdump" 332 help 333 This enables functions for printing dumps of binary data. 334 335config OF_LIBFDT 336 bool "Enable the FDT library" 337 default y if OF_CONTROL 338 help 339 This enables the FDT library (libfdt). It provides functions for 340 accessing binary device tree images in memory, such as adding and 341 removing nodes and properties, scanning through the tree and finding 342 particular compatible nodes. The library operates on a flattened 343 version of the device tree. 344 345config OF_LIBFDT_OVERLAY 346 bool "Enable the FDT library overlay support" 347 depends on OF_LIBFDT 348 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE 349 help 350 This enables the FDT library (libfdt) overlay support. 351 352config SPL_OF_LIBFDT 353 bool "Enable the FDT library for SPL" 354 default y if SPL_OF_CONTROL 355 help 356 This enables the FDT library (libfdt). It provides functions for 357 accessing binary device tree images in memory, such as adding and 358 removing nodes and properties, scanning through the tree and finding 359 particular compatible nodes. The library operates on a flattened 360 version of the device tree. 361 362config TPL_OF_LIBFDT 363 bool "Enable the FDT library for TPL" 364 default y if TPL_OF_CONTROL 365 help 366 This enables the FDT library (libfdt). It provides functions for 367 accessing binary device tree images in memory, such as adding and 368 removing nodes and properties, scanning through the tree and finding 369 particular compatible nodes. The library operates on a flattened 370 version of the device tree. 371 372config FDT_FIXUP_PARTITIONS 373 bool "overwrite MTD partitions in DTS through defined in 'mtdparts'" 374 depends on OF_LIBFDT 375 depends on CMD_MTDPARTS 376 help 377 Allow overwriting defined partitions in the device tree blob 378 using partition info defined in the 'mtdparts' environment 379 variable. 380 381menu "System tables" 382 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER) 383 384config GENERATE_SMBIOS_TABLE 385 bool "Generate an SMBIOS (System Management BIOS) table" 386 default y 387 depends on X86 || EFI_LOADER 388 help 389 The System Management BIOS (SMBIOS) specification addresses how 390 motherboard and system vendors present management information about 391 their products in a standard format by extending the BIOS interface 392 on Intel architecture systems. 393 394 Check http://www.dmtf.org/standards/smbios for details. 395 396config SMBIOS_MANUFACTURER 397 string "SMBIOS Manufacturer" 398 depends on GENERATE_SMBIOS_TABLE 399 default SYS_VENDOR 400 help 401 The board manufacturer to store in SMBIOS structures. 402 Change this to override the default one (CONFIG_SYS_VENDOR). 403 404config SMBIOS_PRODUCT_NAME 405 string "SMBIOS Product Name" 406 depends on GENERATE_SMBIOS_TABLE 407 default SYS_BOARD 408 help 409 The product name to store in SMBIOS structures. 410 Change this to override the default one (CONFIG_SYS_BOARD). 411 412endmenu 413 414source lib/efi/Kconfig 415source lib/efi_loader/Kconfig 416source lib/optee/Kconfig 417 418endmenu 419