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