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 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_LZ4 305 bool "Enable LZ4 decompression support in SPL" 306 help 307 This enables support for tge LZ4 decompression algorithm in SPL. LZ4 308 is a lossless data compression algorithm that is focused on 309 fast compression and decompression speed. It belongs to the LZ77 310 family of byte-oriented compression schemes. 311 312config SPL_LZO 313 bool "Enable LZO decompression support in SPL" 314 help 315 This enables support for LZO compression algorithm in the SPL. 316 317config SPL_GZIP 318 bool "Enable gzip decompression support for SPL build" 319 select SPL_ZLIB 320 help 321 This enables support for GZIP compression altorithm for SPL boot. 322 323config SPL_ZLIB 324 bool 325 help 326 This enables compression lib for SPL boot. 327 328endmenu 329 330config ERRNO_STR 331 bool "Enable function for getting errno-related string message" 332 help 333 The function errno_str(int errno), returns a pointer to the errno 334 corresponding text message: 335 - if errno is null or positive number - a pointer to "Success" message 336 - if errno is negative - a pointer to errno related message 337 338config HEXDUMP 339 bool "Enable hexdump" 340 help 341 This enables functions for printing dumps of binary data. 342 343config OF_LIBFDT 344 bool "Enable the FDT library" 345 default y if OF_CONTROL 346 help 347 This enables the FDT library (libfdt). It provides functions for 348 accessing binary device tree images in memory, such as adding and 349 removing nodes and properties, scanning through the tree and finding 350 particular compatible nodes. The library operates on a flattened 351 version of the device tree. 352 353config OF_LIBFDT_OVERLAY 354 bool "Enable the FDT library overlay support" 355 depends on OF_LIBFDT 356 default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE 357 help 358 This enables the FDT library (libfdt) overlay support. 359 360config SPL_OF_LIBFDT 361 bool "Enable the FDT library for SPL" 362 default y if SPL_OF_CONTROL 363 help 364 This enables the FDT library (libfdt). It provides functions for 365 accessing binary device tree images in memory, such as adding and 366 removing nodes and properties, scanning through the tree and finding 367 particular compatible nodes. The library operates on a flattened 368 version of the device tree. 369 370config TPL_OF_LIBFDT 371 bool "Enable the FDT library for TPL" 372 default y if TPL_OF_CONTROL 373 help 374 This enables the FDT library (libfdt). It provides functions for 375 accessing binary device tree images in memory, such as adding and 376 removing nodes and properties, scanning through the tree and finding 377 particular compatible nodes. The library operates on a flattened 378 version of the device tree. 379 380config FDT_FIXUP_PARTITIONS 381 bool "overwrite MTD partitions in DTS through defined in 'mtdparts'" 382 depends on OF_LIBFDT 383 depends on CMD_MTDPARTS 384 help 385 Allow overwriting defined partitions in the device tree blob 386 using partition info defined in the 'mtdparts' environment 387 variable. 388 389menu "System tables" 390 depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER) 391 392config GENERATE_SMBIOS_TABLE 393 bool "Generate an SMBIOS (System Management BIOS) table" 394 default y 395 depends on X86 || EFI_LOADER 396 help 397 The System Management BIOS (SMBIOS) specification addresses how 398 motherboard and system vendors present management information about 399 their products in a standard format by extending the BIOS interface 400 on Intel architecture systems. 401 402 Check http://www.dmtf.org/standards/smbios for details. 403 404config SMBIOS_MANUFACTURER 405 string "SMBIOS Manufacturer" 406 depends on GENERATE_SMBIOS_TABLE 407 default SYS_VENDOR 408 help 409 The board manufacturer to store in SMBIOS structures. 410 Change this to override the default one (CONFIG_SYS_VENDOR). 411 412config SMBIOS_PRODUCT_NAME 413 string "SMBIOS Product Name" 414 depends on GENERATE_SMBIOS_TABLE 415 default SYS_BOARD 416 help 417 The product name to store in SMBIOS structures. 418 Change this to override the default one (CONFIG_SYS_BOARD). 419 420endmenu 421 422source lib/efi/Kconfig 423source lib/efi_loader/Kconfig 424source lib/optee/Kconfig 425 426endmenu 427