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 !SPL_USE_TINY_PRINTF
  44
  45config TPL_PRINTF
  46        bool
  47        select TPL_SPRINTF
  48        select TPL_STRTO if !TPL_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 SPL_USE_TINY_PRINTF
  99        bool "Enable tiny printf() version in SPL"
 100        depends on SPL
 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 TPL_USE_TINY_PRINTF
 111        bool "Enable tiny printf() version in TPL"
 112        depends on TPL
 113        default y if SPL_USE_TINY_PRINTF
 114        help
 115          This option enables a tiny, stripped down printf version.
 116          This should only be used in space limited environments,
 117          like SPL versions with hard memory limits. This version
 118          reduces the code size by about 2.5KiB on armv7.
 119
 120          The supported format specifiers are %c, %s, %u/%d and %x.
 121
 122config PANIC_HANG
 123        bool "Do not reset the system on fatal error"
 124        help
 125          Define this option to stop the system in case of a fatal error,
 126          so that you have to reset it manually. This is probably NOT a good
 127          idea for an embedded system where you want the system to reboot
 128          automatically as fast as possible, but it may be useful during
 129          development since you can try to debug the conditions that lead to
 130          the situation.
 131
 132config REGEX
 133        bool "Enable regular expression support"
 134        default y if NET
 135        help
 136          If this variable is defined, U-Boot is linked against the
 137          SLRE (Super Light Regular Expression) library, which adds
 138          regex support to some commands, for example "env grep" and
 139          "setexpr".
 140
 141choice
 142        prompt "Pseudo-random library support type"
 143        depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID
 144        default LIB_RAND
 145        help
 146          Select the library to provide pseudo-random number generator
 147          functions.  LIB_HW_RAND supports certain hardware engines that
 148          provide this functionality.  If in doubt, select LIB_RAND.
 149
 150config LIB_RAND
 151        bool "Pseudo-random library support"
 152
 153config LIB_HW_RAND
 154        bool "HW Engine for random libray support"
 155
 156endchoice
 157
 158config SPL_TINY_MEMSET
 159        bool "Use a very small memset() in SPL"
 160        help
 161          The faster memset() is the arch-specific one (if available) enabled
 162          by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
 163          better performance by writing a word at a time. But in very
 164          size-constrained environments even this may be too big. Enable this
 165          option to reduce code size slightly at the cost of some speed.
 166
 167config TPL_TINY_MEMSET
 168        bool "Use a very small memset() in TPL"
 169        help
 170          The faster memset() is the arch-specific one (if available) enabled
 171          by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
 172          better performance by writing a word at a time. But in very
 173          size-constrained environments even this may be too big. Enable this
 174          option to reduce code size slightly at the cost of some speed.
 175
 176config RBTREE
 177        bool
 178
 179config BITREVERSE
 180        bool "Bit reverse library from Linux"
 181
 182config TRACE
 183        bool "Support for tracing of function calls and timing"
 184        imply CMD_TRACE
 185        help
 186          Enables function tracing within U-Boot. This allows recording of call
 187          traces including timing information. The command can write data to
 188          memory for exporting for analysis (e.g. using bootchart).
 189          See doc/README.trace for full details.
 190
 191config TRACE_BUFFER_SIZE
 192        hex "Size of trace buffer in U-Boot"
 193        depends on TRACE
 194        default 0x01000000
 195        help
 196          Sets the size of the trace buffer in U-Boot. This is allocated from
 197          memory during relocation. If this buffer is too small, the trace
 198          history will be truncated, with later records omitted.
 199
 200          If early trace is enabled (i.e. before relocation), this buffer must
 201          be large enough to include all the data from the early trace buffer as
 202          well, since this is copied over to the main buffer during relocation.
 203
 204          A trace record is emitted for each function call and each record is
 205          12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
 206          the size is too small then 'trace stats' will show a message saying
 207          how many records were dropped due to buffer overflow.
 208
 209config TRACE_CALL_DEPTH_LIMIT
 210        int "Trace call depth limit"
 211        depends on TRACE
 212        default 15
 213        help
 214          Sets the maximum call depth up to which function calls are recorded.
 215
 216config TRACE_EARLY
 217        bool "Enable tracing before relocation"
 218        depends on TRACE
 219        help
 220          Sometimes it is helpful to trace execution of U-Boot before
 221          relocation. This is possible by using a arch-specific, fixed buffer
 222          position in memory. Enable this option to start tracing as early as
 223          possible after U-Boot starts.
 224
 225config TRACE_EARLY_SIZE
 226        hex "Size of early trace buffer in U-Boot"
 227        depends on TRACE_EARLY
 228        default 0x00100000
 229        help
 230          Sets the size of the early trace buffer in bytes. This is used to hold
 231          tracing information before relocation.
 232
 233config TRACE_EARLY_CALL_DEPTH_LIMIT
 234        int "Early trace call depth limit"
 235        depends on TRACE_EARLY
 236        default 200
 237        help
 238          Sets the maximum call depth up to which function calls are recorded
 239          during early tracing.
 240
 241config TRACE_EARLY_ADDR
 242        hex "Address of early trace buffer in U-Boot"
 243        depends on TRACE_EARLY
 244        default 0x00100000
 245        help
 246          Sets the address of the early trace buffer in U-Boot. This memory
 247          must be accessible before relocation.
 248
 249          A trace record is emitted for each function call and each record is
 250          12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
 251          the size is too small then the message which says the amount of early
 252          data being coped will the the same as the
 253
 254source lib/dhry/Kconfig
 255
 256menu "Security support"
 257
 258config AES
 259        bool "Support the AES algorithm"
 260        help
 261          This provides a means to encrypt and decrypt data using the AES
 262          (Advanced Encryption Standard). This algorithm uses a symetric key
 263          and is widely used as a streaming cipher. Different key lengths are
 264          supported by the algorithm but only a 128-bit key is supported at
 265          present.
 266
 267source lib/rsa/Kconfig
 268source lib/crypto/Kconfig
 269
 270config TPM
 271        bool "Trusted Platform Module (TPM) Support"
 272        depends on DM
 273        help
 274          This enables support for TPMs which can be used to provide security
 275          features for your board. The TPM can be connected via LPC or I2C
 276          and a sandbox TPM is provided for testing purposes. Use the 'tpm'
 277          command to interactive the TPM. Driver model support is provided
 278          for the low-level TPM interface, but only one TPM is supported at
 279          a time by the TPM library.
 280
 281config SPL_TPM
 282        bool "Trusted Platform Module (TPM) Support in SPL"
 283        depends on SPL_DM
 284        help
 285          This enables support for TPMs which can be used to provide security
 286          features for your board. The TPM can be connected via LPC or I2C
 287          and a sandbox TPM is provided for testing purposes. Use the 'tpm'
 288          command to interactive the TPM. Driver model support is provided
 289          for the low-level TPM interface, but only one TPM is supported at
 290          a time by the TPM library.
 291
 292config TPL_TPM
 293        bool "Trusted Platform Module (TPM) Support in TPL"
 294        depends on TPL_DM
 295        help
 296          This enables support for TPMs which can be used to provide security
 297          features for your board. The TPM can be connected via LPC or I2C
 298          and a sandbox TPM is provided for testing purposes. Use the 'tpm'
 299          command to interactive the TPM. Driver model support is provided
 300          for the low-level TPM interface, but only one TPM is supported at
 301          a time by the TPM library.
 302
 303endmenu
 304
 305menu "Android Verified Boot"
 306
 307config LIBAVB
 308        bool "Android Verified Boot 2.0 support"
 309        depends on ANDROID_BOOT_IMAGE
 310        default n
 311        help
 312          This enables support of Android Verified Boot 2.0 which can be used
 313          to assure the end user of the integrity of the software running on a
 314          device. Introduces such features as boot chain of trust, rollback
 315          protection etc.
 316
 317endmenu
 318
 319menu "Hashing Support"
 320
 321config SHA1
 322        bool "Enable SHA1 support"
 323        help
 324          This option enables support of hashing using SHA1 algorithm.
 325          The hash is calculated in software.
 326          The SHA1 algorithm produces a 160-bit (20-byte) hash value
 327          (digest).
 328
 329config SHA256
 330        bool "Enable SHA256 support"
 331        help
 332          This option enables support of hashing using SHA256 algorithm.
 333          The hash is calculated in software.
 334          The SHA256 algorithm produces a 256-bit (32-byte) hash value
 335          (digest).
 336
 337config SHA_HW_ACCEL
 338        bool "Enable hashing using hardware"
 339        help
 340          This option enables hardware acceleration
 341          for SHA1/SHA256 hashing.
 342          This affects the 'hash' command and also the
 343          hash_lookup_algo() function.
 344
 345config SHA_PROG_HW_ACCEL
 346        bool "Enable Progressive hashing support using hardware"
 347        depends on SHA_HW_ACCEL
 348        help
 349          This option enables hardware-acceleration for
 350          SHA1/SHA256 progressive hashing.
 351          Data can be streamed in a block at a time and the hashing
 352          is performed in hardware.
 353
 354config MD5
 355        bool
 356
 357config CRC32C
 358        bool
 359
 360config XXHASH
 361        bool
 362
 363endmenu
 364
 365menu "Compression Support"
 366
 367config LZ4
 368        bool "Enable LZ4 decompression support"
 369        help
 370          If this option is set, support for LZ4 compressed images
 371          is included. The LZ4 algorithm can run in-place as long as the
 372          compressed image is loaded to the end of the output buffer, and
 373          trades lower compression ratios for much faster decompression.
 374          
 375          NOTE: This implements the release version of the LZ4 frame
 376          format as generated by default by the 'lz4' command line tool.
 377          This is not the same as the outdated, less efficient legacy
 378          frame format currently (2015) implemented in the Linux kernel
 379          (generated by 'lz4 -l'). The two formats are incompatible.
 380
 381config LZMA
 382        bool "Enable LZMA decompression support"
 383        help
 384          This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
 385          a dictionary compression algorithm that provides a high compression
 386          ratio and fairly fast decompression speed. See also
 387          CONFIG_CMD_LZMADEC which provides a decode command.
 388
 389config LZO
 390        bool "Enable LZO decompression support"
 391        help
 392          This enables support for LZO compression algorithm.r
 393
 394config GZIP
 395        bool "Enable gzip decompression support"
 396        select ZLIB
 397        default y
 398        help
 399          This enables support for GZIP compression algorithm.
 400
 401config ZLIB
 402        bool
 403        default y
 404        help
 405          This enables ZLIB compression lib.
 406
 407config ZSTD
 408        bool "Enable Zstandard decompression support"
 409        select XXHASH
 410        help
 411          This enables Zstandard decompression library.
 412
 413config SPL_LZ4
 414        bool "Enable LZ4 decompression support in SPL"
 415        help
 416          This enables support for tge LZ4 decompression algorithm in SPL. LZ4
 417          is a lossless data compression algorithm that is focused on
 418          fast compression and decompression speed. It belongs to the LZ77
 419          family of byte-oriented compression schemes.
 420
 421config SPL_LZO
 422        bool "Enable LZO decompression support in SPL"
 423        help
 424          This enables support for LZO compression algorithm in the SPL.
 425
 426config SPL_GZIP
 427        bool "Enable gzip decompression support for SPL build"
 428        select SPL_ZLIB
 429        help
 430          This enables support for GZIP compression altorithm for SPL boot.
 431
 432config SPL_ZLIB
 433        bool
 434        help
 435          This enables compression lib for SPL boot.
 436
 437config SPL_ZSTD
 438        bool "Enable Zstandard decompression support in SPL"
 439        select XXHASH
 440        help
 441          This enables Zstandard decompression library in the SPL.
 442
 443endmenu
 444
 445config ERRNO_STR
 446        bool "Enable function for getting errno-related string message"
 447        help
 448          The function errno_str(int errno), returns a pointer to the errno
 449          corresponding text message:
 450          - if errno is null or positive number - a pointer to "Success" message
 451          - if errno is negative - a pointer to errno related message
 452
 453config HEXDUMP
 454        bool "Enable hexdump"
 455        help
 456          This enables functions for printing dumps of binary data.
 457
 458config OF_LIBFDT
 459        bool "Enable the FDT library"
 460        default y if OF_CONTROL
 461        help
 462          This enables the FDT library (libfdt). It provides functions for
 463          accessing binary device tree images in memory, such as adding and
 464          removing nodes and properties, scanning through the tree and finding
 465          particular compatible nodes. The library operates on a flattened
 466          version of the device tree.
 467
 468config OF_LIBFDT_ASSUME_MASK
 469        hex "Mask of conditions to assume for libfdt"
 470        depends on OF_LIBFDT || FIT
 471        default 0
 472        help
 473          Use this to change the assumptions made by libfdt about the
 474          device tree it is working with. A value of 0 means that no assumptions
 475          are made, and libfdt is able to deal with malicious data. A value of
 476          0xff means all assumptions are made and any invalid data may cause
 477          unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
 478
 479config OF_LIBFDT_OVERLAY
 480        bool "Enable the FDT library overlay support"
 481        depends on OF_LIBFDT
 482        default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
 483        help
 484          This enables the FDT library (libfdt) overlay support.
 485
 486config SPL_OF_LIBFDT
 487        bool "Enable the FDT library for SPL"
 488        default y if SPL_OF_CONTROL
 489        help
 490          This enables the FDT library (libfdt). It provides functions for
 491          accessing binary device tree images in memory, such as adding and
 492          removing nodes and properties, scanning through the tree and finding
 493          particular compatible nodes. The library operates on a flattened
 494          version of the device tree.
 495
 496config SPL_OF_LIBFDT_ASSUME_MASK
 497        hex "Mask of conditions to assume for libfdt"
 498        depends on SPL_OF_LIBFDT || FIT
 499        default 0xff
 500        help
 501          Use this to change the assumptions made by libfdt in SPL about the
 502          device tree it is working with. A value of 0 means that no assumptions
 503          are made, and libfdt is able to deal with malicious data. A value of
 504          0xff means all assumptions are made and any invalid data may cause
 505          unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
 506
 507config TPL_OF_LIBFDT
 508        bool "Enable the FDT library for TPL"
 509        default y if TPL_OF_CONTROL
 510        help
 511          This enables the FDT library (libfdt). It provides functions for
 512          accessing binary device tree images in memory, such as adding and
 513          removing nodes and properties, scanning through the tree and finding
 514          particular compatible nodes. The library operates on a flattened
 515          version of the device tree.
 516
 517config TPL_OF_LIBFDT_ASSUME_MASK
 518        hex "Mask of conditions to assume for libfdt"
 519        depends on TPL_OF_LIBFDT || FIT
 520        default 0xff
 521        help
 522          Use this to change the assumptions made by libfdt in TPL about the
 523          device tree it is working with. A value of 0 means that no assumptions
 524          are made, and libfdt is able to deal with malicious data. A value of
 525          0xff means all assumptions are made and any invalid data may cause
 526          unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
 527
 528config FDT_FIXUP_PARTITIONS
 529        bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
 530        depends on OF_LIBFDT
 531        depends on CMD_MTDPARTS
 532        help
 533          Allow overwriting defined partitions in the device tree blob
 534          using partition info defined in the 'mtdparts' environment
 535          variable.
 536
 537menu "System tables"
 538        depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
 539
 540config GENERATE_SMBIOS_TABLE
 541        bool "Generate an SMBIOS (System Management BIOS) table"
 542        default y
 543        depends on X86 || EFI_LOADER
 544        help
 545          The System Management BIOS (SMBIOS) specification addresses how
 546          motherboard and system vendors present management information about
 547          their products in a standard format by extending the BIOS interface
 548          on Intel architecture systems.
 549
 550          Check http://www.dmtf.org/standards/smbios for details.
 551
 552config SMBIOS_MANUFACTURER
 553        string "SMBIOS Manufacturer"
 554        depends on GENERATE_SMBIOS_TABLE
 555        default SYS_VENDOR
 556        help
 557          The board manufacturer to store in SMBIOS structures.
 558          Change this to override the default one (CONFIG_SYS_VENDOR).
 559
 560config SMBIOS_PRODUCT_NAME
 561        string "SMBIOS Product Name"
 562        depends on GENERATE_SMBIOS_TABLE
 563        default SYS_BOARD
 564        help
 565          The product name to store in SMBIOS structures.
 566          Change this to override the default one (CONFIG_SYS_BOARD).
 567
 568endmenu
 569
 570config ASN1_COMPILER
 571        bool
 572
 573config ASN1_DECODER
 574        bool
 575        help
 576          Enable asn1 decoder library.
 577
 578config OID_REGISTRY
 579        bool
 580        help
 581          Enable fast lookup object identifier registry.
 582
 583source lib/efi/Kconfig
 584source lib/efi_loader/Kconfig
 585source lib/optee/Kconfig
 586
 587config TEST_FDTDEC
 588        bool "enable fdtdec test"
 589        depends on OF_LIBFDT
 590
 591config LIB_DATE
 592        bool
 593
 594endmenu
 595