efi_loader: correct includes in efi_variable.c
[oweals/u-boot.git] / lib / Kconfig
index 710deb7a630306dbb088517117e4e09beb86de85..135f0b372b074270beab7450a542edeeef94124f 100644 (file)
@@ -15,9 +15,69 @@ config CC_OPTIMIZE_LIBS_FOR_SPEED
 
          If unsure, say N.
 
 
          If unsure, say N.
 
+config DYNAMIC_CRC_TABLE
+       bool "Enable Dynamic tables for CRC"
+       help
+         Enable this option to calculate entries for CRC tables at runtime.
+         This can be helpful when reducing the size of the build image
+
+config HAVE_ARCH_IOMAP
+       bool
+       help
+         Enable this option if architecture provides io{read,write}{8,16,32}
+         I/O accessor functions.
+
 config HAVE_PRIVATE_LIBGCC
        bool
 
 config HAVE_PRIVATE_LIBGCC
        bool
 
+config LIB_UUID
+       bool
+
+config PRINTF
+       bool
+       default y
+
+config SPL_PRINTF
+       bool
+       select SPL_SPRINTF
+       select SPL_STRTO if !SPL_USE_TINY_PRINTF
+
+config TPL_PRINTF
+       bool
+       select TPL_SPRINTF
+       select TPL_STRTO if !TPL_USE_TINY_PRINTF
+
+config SPRINTF
+       bool
+       default y
+
+config SPL_SPRINTF
+       bool
+
+config TPL_SPRINTF
+       bool
+
+config STRTO
+       bool
+       default y
+
+config SPL_STRTO
+       bool
+
+config TPL_STRTO
+       bool
+
+config IMAGE_SPARSE
+       bool
+
+config IMAGE_SPARSE_FILLBUF_SIZE
+       hex "Android sparse image CHUNK_TYPE_FILL buffer size"
+       default 0x80000
+       depends on IMAGE_SPARSE
+       help
+         Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
+         chunks.
+
 config USE_PRIVATE_LIBGCC
        bool "Use private libgcc"
        depends on HAVE_PRIVATE_LIBGCC
 config USE_PRIVATE_LIBGCC
        bool "Use private libgcc"
        depends on HAVE_PRIVATE_LIBGCC
@@ -35,8 +95,22 @@ config SYS_HZ
          get_timer() must operate in milliseconds and this option must be
          set to 1000.
 
          get_timer() must operate in milliseconds and this option must be
          set to 1000.
 
-config USE_TINY_PRINTF
+config SPL_USE_TINY_PRINTF
+       bool "Enable tiny printf() version"
+       depends on SPL
+       default y
+       help
+         This option enables a tiny, stripped down printf version.
+         This should only be used in space limited environments,
+         like SPL versions with hard memory limits. This version
+         reduces the code size by about 2.5KiB on armv7.
+
+         The supported format specifiers are %c, %s, %u/%d and %x.
+
+config TPL_USE_TINY_PRINTF
        bool "Enable tiny printf() version"
        bool "Enable tiny printf() version"
+       depends on TPL
+       default y if SPL_USE_TINY_PRINTF
        help
          This option enables a tiny, stripped down printf version.
          This should only be used in space limited environments,
        help
          This option enables a tiny, stripped down printf version.
          This should only be used in space limited environments,
@@ -57,7 +131,6 @@ config PANIC_HANG
 
 config REGEX
        bool "Enable regular expression support"
 
 config REGEX
        bool "Enable regular expression support"
-       default n if ARCH_SUNXI
        default y if NET
        help
          If this variable is defined, U-Boot is linked against the
        default y if NET
        help
          If this variable is defined, U-Boot is linked against the
@@ -65,10 +138,22 @@ config REGEX
          regex support to some commands, for example "env grep" and
          "setexpr".
 
          regex support to some commands, for example "env grep" and
          "setexpr".
 
-config LIB_RAND
-       bool "Pseudo-random library support "
+choice
+       prompt "Pseudo-random library support type"
+       depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID
+       default LIB_RAND
        help
        help
-         This library provides pseudo-random number generator functions.
+         Select the library to provide pseudo-random number generator
+         functions.  LIB_HW_RAND supports certain hardware engines that
+         provide this functionality.  If in doubt, select LIB_RAND.
+
+config LIB_RAND
+       bool "Pseudo-random library support"
+
+config LIB_HW_RAND
+       bool "HW Engine for random libray support"
+
+endchoice
 
 config SPL_TINY_MEMSET
        bool "Use a very small memset() in SPL"
 
 config SPL_TINY_MEMSET
        bool "Use a very small memset() in SPL"
@@ -76,7 +161,7 @@ config SPL_TINY_MEMSET
          The faster memset() is the arch-specific one (if available) enabled
          by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
          better performance by writing a word at a time. But in very
          The faster memset() is the arch-specific one (if available) enabled
          by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
          better performance by writing a word at a time. But in very
-         size-constrained envrionments even this may be too big. Enable this
+         size-constrained environments even this may be too big. Enable this
          option to reduce code size slightly at the cost of some speed.
 
 config TPL_TINY_MEMSET
          option to reduce code size slightly at the cost of some speed.
 
 config TPL_TINY_MEMSET
@@ -85,7 +170,7 @@ config TPL_TINY_MEMSET
          The faster memset() is the arch-specific one (if available) enabled
          by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
          better performance by writing a word at a time. But in very
          The faster memset() is the arch-specific one (if available) enabled
          by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
          better performance by writing a word at a time. But in very
-         size-constrained envrionments even this may be too big. Enable this
+         size-constrained environments even this may be too big. Enable this
          option to reduce code size slightly at the cost of some speed.
 
 config RBTREE
          option to reduce code size slightly at the cost of some speed.
 
 config RBTREE
@@ -94,6 +179,78 @@ config RBTREE
 config BITREVERSE
        bool "Bit reverse library from Linux"
 
 config BITREVERSE
        bool "Bit reverse library from Linux"
 
+config TRACE
+       bool "Support for tracing of function calls and timing"
+       imply CMD_TRACE
+       help
+         Enables function tracing within U-Boot. This allows recording of call
+         traces including timing information. The command can write data to
+         memory for exporting for analysis (e.g. using bootchart).
+         See doc/README.trace for full details.
+
+config TRACE_BUFFER_SIZE
+       hex "Size of trace buffer in U-Boot"
+       depends on TRACE
+       default 0x01000000
+       help
+         Sets the size of the trace buffer in U-Boot. This is allocated from
+         memory during relocation. If this buffer is too small, the trace
+         history will be truncated, with later records omitted.
+
+         If early trace is enabled (i.e. before relocation), this buffer must
+         be large enough to include all the data from the early trace buffer as
+         well, since this is copied over to the main buffer during relocation.
+
+         A trace record is emitted for each function call and each record is
+         12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
+         the size is too small then 'trace stats' will show a message saying
+         how many records were dropped due to buffer overflow.
+
+config TRACE_CALL_DEPTH_LIMIT
+       int "Trace call depth limit"
+       depends on TRACE
+       default 15
+       help
+         Sets the maximum call depth up to which function calls are recorded.
+
+config TRACE_EARLY
+       bool "Enable tracing before relocation"
+       depends on TRACE
+       help
+         Sometimes it is helpful to trace execution of U-Boot before
+         relocation. This is possible by using a arch-specific, fixed buffer
+         position in memory. Enable this option to start tracing as early as
+         possible after U-Boot starts.
+
+config TRACE_EARLY_SIZE
+       hex "Size of early trace buffer in U-Boot"
+       depends on TRACE_EARLY
+       default 0x00100000
+       help
+         Sets the size of the early trace buffer in bytes. This is used to hold
+         tracing information before relocation.
+
+config TRACE_EARLY_CALL_DEPTH_LIMIT
+       int "Early trace call depth limit"
+       depends on TRACE_EARLY
+       default 200
+       help
+         Sets the maximum call depth up to which function calls are recorded
+         during early tracing.
+
+config TRACE_EARLY_ADDR
+       hex "Address of early trace buffer in U-Boot"
+       depends on TRACE_EARLY
+       default 0x00100000
+       help
+         Sets the address of the early trace buffer in U-Boot. This memory
+         must be accessible before relocation.
+
+         A trace record is emitted for each function call and each record is
+         12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
+         the size is too small then the message which says the amount of early
+         data being coped will the the same as the
+
 source lib/dhry/Kconfig
 
 menu "Security support"
 source lib/dhry/Kconfig
 
 menu "Security support"
@@ -120,6 +277,42 @@ config TPM
          for the low-level TPM interface, but only one TPM is supported at
          a time by the TPM library.
 
          for the low-level TPM interface, but only one TPM is supported at
          a time by the TPM library.
 
+config SPL_TPM
+       bool "Trusted Platform Module (TPM) Support in SPL"
+       depends on SPL_DM
+       help
+         This enables support for TPMs which can be used to provide security
+         features for your board. The TPM can be connected via LPC or I2C
+         and a sandbox TPM is provided for testing purposes. Use the 'tpm'
+         command to interactive the TPM. Driver model support is provided
+         for the low-level TPM interface, but only one TPM is supported at
+         a time by the TPM library.
+
+config TPL_TPM
+       bool "Trusted Platform Module (TPM) Support in TPL"
+       depends on TPL_DM
+       help
+         This enables support for TPMs which can be used to provide security
+         features for your board. The TPM can be connected via LPC or I2C
+         and a sandbox TPM is provided for testing purposes. Use the 'tpm'
+         command to interactive the TPM. Driver model support is provided
+         for the low-level TPM interface, but only one TPM is supported at
+         a time by the TPM library.
+
+endmenu
+
+menu "Android Verified Boot"
+
+config LIBAVB
+       bool "Android Verified Boot 2.0 support"
+       depends on ANDROID_BOOT_IMAGE
+       default n
+       help
+         This enables support of Android Verified Boot 2.0 which can be used
+         to assure the end user of the integrity of the software running on a
+         device. Introduces such features as boot chain of trust, rollback
+         protection etc.
+
 endmenu
 
 menu "Hashing Support"
 endmenu
 
 menu "Hashing Support"
@@ -163,6 +356,9 @@ config MD5
 config CRC32C
        bool
 
 config CRC32C
        bool
 
+config XXHASH
+       bool
+
 endmenu
 
 menu "Compression Support"
 endmenu
 
 menu "Compression Support"
@@ -194,6 +390,33 @@ config LZO
        help
          This enables support for LZO compression algorithm.r
 
        help
          This enables support for LZO compression algorithm.r
 
+config GZIP
+       bool "Enable gzip decompression support"
+       select ZLIB
+       default y
+       help
+         This enables support for GZIP compression algorithm.
+
+config ZLIB
+       bool
+       default y
+       help
+         This enables ZLIB compression lib.
+
+config ZSTD
+       bool "Enable Zstandard decompression support"
+       select XXHASH
+       help
+         This enables Zstandard decompression library.
+
+config SPL_LZ4
+       bool "Enable LZ4 decompression support in SPL"
+       help
+         This enables support for tge LZ4 decompression algorithm in SPL. LZ4
+         is a lossless data compression algorithm that is focused on
+         fast compression and decompression speed. It belongs to the LZ77
+         family of byte-oriented compression schemes.
+
 config SPL_LZO
        bool "Enable LZO decompression support in SPL"
        help
 config SPL_LZO
        bool "Enable LZO decompression support in SPL"
        help
@@ -210,6 +433,12 @@ config SPL_ZLIB
        help
          This enables compression lib for SPL boot.
 
        help
          This enables compression lib for SPL boot.
 
+config SPL_ZSTD
+       bool "Enable Zstandard decompression support in SPL"
+       select XXHASH
+       help
+         This enables Zstandard decompression library in the SPL.
+
 endmenu
 
 config ERRNO_STR
 endmenu
 
 config ERRNO_STR
@@ -220,6 +449,11 @@ config ERRNO_STR
          - if errno is null or positive number - a pointer to "Success" message
          - if errno is negative - a pointer to errno related message
 
          - if errno is null or positive number - a pointer to "Success" message
          - if errno is negative - a pointer to errno related message
 
+config HEXDUMP
+       bool "Enable hexdump"
+       help
+         This enables functions for printing dumps of binary data.
+
 config OF_LIBFDT
        bool "Enable the FDT library"
        default y if OF_CONTROL
 config OF_LIBFDT
        bool "Enable the FDT library"
        default y if OF_CONTROL
@@ -232,6 +466,8 @@ config OF_LIBFDT
 
 config OF_LIBFDT_OVERLAY
        bool "Enable the FDT library overlay support"
 
 config OF_LIBFDT_OVERLAY
        bool "Enable the FDT library overlay support"
+       depends on OF_LIBFDT
+       default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
        help
          This enables the FDT library (libfdt) overlay support.
 
        help
          This enables the FDT library (libfdt) overlay support.
 
@@ -245,10 +481,20 @@ config SPL_OF_LIBFDT
          particular compatible nodes. The library operates on a flattened
          version of the device tree.
 
          particular compatible nodes. The library operates on a flattened
          version of the device tree.
 
+config TPL_OF_LIBFDT
+       bool "Enable the FDT library for TPL"
+       default y if TPL_OF_CONTROL
+       help
+         This enables the FDT library (libfdt). It provides functions for
+         accessing binary device tree images in memory, such as adding and
+         removing nodes and properties, scanning through the tree and finding
+         particular compatible nodes. The library operates on a flattened
+         version of the device tree.
+
 config FDT_FIXUP_PARTITIONS
        bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
        depends on OF_LIBFDT
 config FDT_FIXUP_PARTITIONS
        bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
        depends on OF_LIBFDT
-       default n
+       depends on CMD_MTDPARTS
        help
          Allow overwriting defined partitions in the device tree blob
          using partition info defined in the 'mtdparts' environment
        help
          Allow overwriting defined partitions in the device tree blob
          using partition info defined in the 'mtdparts' environment
@@ -289,5 +535,10 @@ endmenu
 
 source lib/efi/Kconfig
 source lib/efi_loader/Kconfig
 
 source lib/efi/Kconfig
 source lib/efi_loader/Kconfig
+source lib/optee/Kconfig
+
+config TEST_FDTDEC
+       bool "enable fdtdec test"
+       depends on OF_LIBFDT
 
 endmenu
 
 endmenu