uboot/lib/Kconfig
<<
>>
Prefs
   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