xilinx: versal-net: Add support for timer and start it
[platform/kernel/u-boot.git] / lib / Kconfig
index 130fa06..def36f2 100644 (file)
@@ -15,6 +15,19 @@ config SYS_NUM_ADDR_MAP
        help
          Sets the number of entries in the virtual-physical mapping table.
 
+config SYS_TIMER_COUNTS_DOWN
+       bool "System timer counts down rathe than up"
+
+config PHYSMEM
+       bool "Access to physical memory region (> 4G)"
+       help
+         Some basic support is provided for operations on memory not
+         normally accessible to 32-bit U-Boot - e.g. some architectures
+         support access to more than 4G of memory on 32-bit
+         machines using physical address extension or similar.
+         Enable this to access this basic support, which only supports clearing
+         the memory.
+
 config BCH
        bool "Enable Software based BCH ECC"
        help
@@ -42,11 +55,6 @@ config CC_OPTIMIZE_LIBS_FOR_SPEED
 
 config CHARSET
        bool
-       default y if UT_UNICODE || EFI_LOADER || UFS
-       help
-         Enables support for various conversions between different
-         character sets, such as between unicode representations and
-         different 'code pages'.
 
 config DYNAMIC_CRC_TABLE
        bool "Enable Dynamic tables for CRC"
@@ -66,6 +74,53 @@ config HAVE_PRIVATE_LIBGCC
 config LIB_UUID
        bool
 
+config SEMIHOSTING
+       bool "Support semihosting"
+       depends on ARM || RISCV
+       help
+         Semihosting is a method for a target to communicate with a host
+         debugger. It uses special instructions which the debugger will trap
+         on and interpret. This allows U-Boot to read/write files, print to
+         the console, and execute arbitrary commands on the host system.
+
+         Enabling this option will add support for reading and writing files
+         on the host system. If you don't have a debugger attached then trying
+         to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
+
+config SEMIHOSTING_FALLBACK
+       bool "Recover gracefully when semihosting fails"
+       depends on SEMIHOSTING && (ARM64 || RISCV)
+       default y
+       help
+         Normally, if U-Boot makes a semihosting call and no debugger is
+         attached, then it will panic due to a synchronous abort
+         exception. This config adds an exception handler which will allow
+         U-Boot to recover. Say 'y' if unsure.
+
+config SPL_SEMIHOSTING
+       bool "Support semihosting in SPL"
+       depends on SPL && (ARM || RISCV)
+       help
+         Semihosting is a method for a target to communicate with a host
+         debugger. It uses special instructions which the debugger will trap
+         on and interpret. This allows U-Boot to read/write files, print to
+         the console, and execute arbitrary commands on the host system.
+
+         Enabling this option will add support for reading and writing files
+         on the host system. If you don't have a debugger attached then trying
+         to do this will likely cause U-Boot to hang. Say 'n' if you are unsure.
+
+config SPL_SEMIHOSTING_FALLBACK
+       bool "Recover gracefully when semihosting fails in SPL"
+       depends on SPL_SEMIHOSTING && (ARM64 || RISCV)
+       select ARMV8_SPL_EXCEPTION_VECTORS if ARM64
+       default y
+       help
+         Normally, if U-Boot makes a semihosting call and no debugger is
+         attached, then it will panic due to a synchronous abort
+         exception. This config adds an exception handler which will allow
+         U-Boot to recover. Say 'y' if unsure.
+
 config PRINTF
        bool
        default y
@@ -80,6 +135,11 @@ config TPL_PRINTF
        select TPL_SPRINTF
        select TPL_STRTO if !TPL_USE_TINY_PRINTF
 
+config VPL_PRINTF
+       bool
+       select VPL_SPRINTF
+       select VPL_STRTO if !VPL_USE_TINY_PRINTF
+
 config SPRINTF
        bool
        default y
@@ -90,9 +150,11 @@ config SPL_SPRINTF
 config TPL_SPRINTF
        bool
 
+config VPL_SPRINTF
+       bool
+
 config SSCANF
        bool
-       default n
 
 config STRTO
        bool
@@ -104,6 +166,9 @@ config SPL_STRTO
 config TPL_STRTO
        bool
 
+config VPL_STRTO
+       bool
+
 config IMAGE_SPARSE
        bool
 
@@ -156,6 +221,17 @@ config TPL_USE_TINY_PRINTF
 
          The supported format specifiers are %c, %s, %u/%d and %x.
 
+config VPL_USE_TINY_PRINTF
+       bool "Enable tiny printf() version for VPL"
+       depends on VPL
+       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 PANIC_HANG
        bool "Do not reset the system on fatal error"
        help
@@ -193,8 +269,27 @@ config LIB_HW_RAND
 
 endchoice
 
+config SUPPORT_ACPI
+       bool
+       help
+         Enable this if your arch or board can support generating ACPI
+         (Advanced Configuration and Power Interface) tables. In this case
+         U-Boot can generate these tables and pass them to the Operating
+         System.
+
+config GENERATE_ACPI_TABLE
+       bool "Generate an ACPI (Advanced Configuration and Power Interface) table"
+       depends on SUPPORT_ACPI
+       select QFW if QEMU
+       help
+         The Advanced Configuration and Power Interface (ACPI) specification
+         provides an open standard for device configuration and management
+         by the operating system. It defines platform-independent interfaces
+         for configuration and power management monitoring.
+
 config SPL_TINY_MEMSET
        bool "Use a very small memset() in SPL"
+       depends on SPL
        help
          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
@@ -204,6 +299,7 @@ config SPL_TINY_MEMSET
 
 config TPL_TINY_MEMSET
        bool "Use a very small memset() in TPL"
+       depends on TPL
        help
          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
@@ -290,6 +386,9 @@ config TRACE_EARLY_ADDR
          the size is too small then the message which says the amount of early
          data being coped will the the same as the
 
+config CIRCBUF
+       bool "Enable circular buffer support"
+
 source lib/dhry/Kconfig
 
 menu "Security support"
@@ -311,6 +410,7 @@ source lib/crypt/Kconfig
 config TPM
        bool "Trusted Platform Module (TPM) Support"
        depends on DM
+       imply DM_RNG
        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
@@ -341,6 +441,17 @@ config TPL_TPM
          for the low-level TPM interface, but only one TPM is supported at
          a time by the TPM library.
 
+config VPL_TPM
+       bool "Trusted Platform Module (TPM) Support in VPL"
+       depends on VPL_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"
@@ -348,7 +459,6 @@ 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
@@ -359,6 +469,14 @@ endmenu
 
 menu "Hashing Support"
 
+config BLAKE2
+       bool "Enable BLAKE2 support"
+       help
+         This option enables support of hashing using BLAKE2B algorithm.
+         The hash is calculated in software.
+         The BLAKE2 algorithm produces a hash value (digest) between 1 and
+         64 bytes.
+
 config SHA1
        bool "Enable SHA1 support"
        help
@@ -375,7 +493,6 @@ config SHA256
          The SHA256 algorithm produces a 256-bit (32-byte) hash value
          (digest).
 
-
 config SHA512
        bool "Enable SHA512 support"
        help
@@ -401,6 +518,66 @@ config SHA_HW_ACCEL
          hashing algorithms. This affects the 'hash' command and also the
          hash_lookup_algo() function.
 
+if SPL
+
+config SPL_SHA1
+       bool "Enable SHA1 support in SPL"
+       default y if SHA1
+       help
+         This option enables support of hashing using SHA1 algorithm.
+         The hash is calculated in software.
+         The SHA1 algorithm produces a 160-bit (20-byte) hash value
+         (digest).
+
+config SPL_SHA256
+       bool "Enable SHA256 support in SPL"
+       default y if SHA256
+       help
+         This option enables support of hashing using SHA256 algorithm.
+         The hash is calculated in software.
+         The SHA256 algorithm produces a 256-bit (32-byte) hash value
+         (digest).
+
+config SPL_SHA512
+       bool "Enable SHA512 support in SPL"
+       default y if SHA512
+       help
+         This option enables support of hashing using SHA512 algorithm.
+         The hash is calculated in software.
+         The SHA512 algorithm produces a 512-bit (64-byte) hash value
+         (digest).
+
+config SPL_SHA384
+       bool "Enable SHA384 support in SPL"
+       default y if SHA384
+       select SPL_SHA512
+       help
+         This option enables support of hashing using SHA384 algorithm.
+         The hash is calculated in software. This is also selects SHA512,
+         because these implementations share the bulk of the code..
+         The SHA384 algorithm produces a 384-bit (48-byte) hash value
+         (digest).
+
+config SPL_SHA_HW_ACCEL
+       bool "Enable hardware acceleration for SHA hash functions"
+       default y if SHA_HW_ACCEL
+       help
+         This option enables hardware acceleration for the SHA1 and SHA256
+         hashing algorithms. This affects the 'hash' command and also the
+         hash_lookup_algo() function.
+
+config SPL_SHA_PROG_HW_ACCEL
+       bool "Enable Progressive hashing support using hardware in SPL"
+       depends on SHA_PROG_HW_ACCEL
+       default y
+       help
+         This option enables hardware-acceleration for SHA progressive
+         hashing.
+         Data can be streamed in a block at a time and the hashing is
+         performed in hardware.
+
+endif
+
 if SHA_HW_ACCEL
 
 config SHA512_HW_ACCEL
@@ -432,6 +609,7 @@ config MD5
 
 config SPL_MD5
        bool "Support MD5 algorithm in SPL"
+       depends on SPL
        help
          This option enables MD5 support in SPL. MD5 is an algorithm designed
          in 1991 that produces a 16-byte digest (or checksum) from its input
@@ -439,6 +617,11 @@ config SPL_MD5
          security applications, but it can be useful for providing a quick
          checksum of a block of data.
 
+config CRC32
+       def_bool y
+       help
+         Enables CRC32 support in U-Boot. This is normally required.
+
 config CRC32C
        bool
 
@@ -513,6 +696,7 @@ config ZSTD
 
 config SPL_LZ4
        bool "Enable LZ4 decompression support in SPL"
+       depends on SPL
        help
          This enables support for the LZ4 decompression algorithm in SPL. LZ4
          is a lossless data compression algorithm that is focused on
@@ -521,11 +705,19 @@ config SPL_LZ4
 
 config SPL_LZMA
        bool "Enable LZMA decompression support for SPL build"
+       depends on SPL
        help
          This enables support for LZMA compression algorithm for SPL boot.
 
+config VPL_LZMA
+       bool "Enable LZMA decompression support for VPL build"
+       default y if LZMA
+       help
+         This enables support for LZMA compression algorithm for VPL boot.
+
 config SPL_LZO
        bool "Enable LZO decompression support in SPL"
+       depends on SPL
        help
          This enables support for LZO compression algorithm in the SPL.
 
@@ -542,6 +734,7 @@ config SPL_ZLIB
 
 config SPL_ZSTD
        bool "Enable Zstandard decompression support in SPL"
+       depends on SPL
        select XXHASH
        help
          This enables Zstandard decompression library in the SPL.
@@ -601,8 +794,19 @@ config OF_LIBFDT_OVERLAY
        help
          This enables the FDT library (libfdt) overlay support.
 
+config SYS_FDT_PAD
+       hex "Maximum size of the FDT memory area passeed to the OS"
+       depends on OF_LIBFDT
+       default 0x13000 if FMAN_ENET || QE || U_QE
+       default 0x3000
+       help
+         During OS boot, we allocate a region of memory within the bootmap
+         for the FDT. This is the size that we will expand the FDT that we
+         are using will be extended to be, in bytes.
+
 config SPL_OF_LIBFDT
        bool "Enable the FDT library for SPL"
+       depends on SPL_LIBGENERIC_SUPPORT
        default y if SPL_OF_CONTROL
        help
          This enables the FDT library (libfdt). It provides functions for
@@ -613,7 +817,7 @@ config SPL_OF_LIBFDT
 
 config SPL_OF_LIBFDT_ASSUME_MASK
        hex "Mask of conditions to assume for libfdt"
-       depends on SPL_OF_LIBFDT || FIT
+       depends on SPL_OF_LIBFDT || (FIT && SPL)
        default 0xff
        help
          Use this to change the assumptions made by libfdt in SPL about the
@@ -624,6 +828,7 @@ config SPL_OF_LIBFDT_ASSUME_MASK
 
 config TPL_OF_LIBFDT
        bool "Enable the FDT library for TPL"
+       depends on TPL_LIBGENERIC_SUPPORT
        default y if TPL_OF_CONTROL
        help
          This enables the FDT library (libfdt). It provides functions for
@@ -634,7 +839,7 @@ config TPL_OF_LIBFDT
 
 config TPL_OF_LIBFDT_ASSUME_MASK
        hex "Mask of conditions to assume for libfdt"
-       depends on TPL_OF_LIBFDT || FIT
+       depends on TPL_OF_LIBFDT || (FIT && TPL)
        default 0xff
        help
          Use this to change the assumptions made by libfdt in TPL about the
@@ -643,6 +848,28 @@ config TPL_OF_LIBFDT_ASSUME_MASK
          0xff means all assumptions are made and any invalid data may cause
          unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
 
+config VPL_OF_LIBFDT
+       bool "Enable the FDT library for VPL"
+       depends on VPL
+       default y if VPL_OF_CONTROL && !VPL_OF_PLATDATA
+       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 VPL_OF_LIBFDT_ASSUME_MASK
+       hex "Mask of conditions to assume for libfdt"
+       depends on VPL_OF_LIBFDT || (FIT && VPL)
+       default 0xff
+       help
+         Use this to change the assumptions made by libfdt in SPL about the
+         device tree it is working with. A value of 0 means that no assumptions
+         are made, and libfdt is able to deal with malicious data. A value of
+         0xff means all assumptions are made and any invalid data may cause
+         unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
+
 config FDT_FIXUP_PARTITIONS
        bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
        depends on OF_LIBFDT
@@ -690,17 +917,52 @@ endmenu
 
 config ASN1_COMPILER
        bool
+       help
+         ASN.1 (Abstract Syntax Notation One) is a standard interface
+         description language for defining data structures that can be
+         serialized and deserialized in a cross-platform way. It is
+         broadly used in telecommunications and computer networking,
+         and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
+         This option enables the support of the asn1 compiler.
 
 config ASN1_DECODER
        bool
        help
-         Enable asn1 decoder library.
+         ASN.1 (Abstract Syntax Notation One) is a standard interface
+         description language for defining data structures that can be
+         serialized and deserialized in a cross-platform way. It is
+         broadly used in telecommunications and computer networking,
+         and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
+         This option enables the support of the asn1 decoder.
+
+config SPL_ASN1_DECODER
+       bool
+       help
+         ASN.1 (Abstract Syntax Notation One) is a standard interface
+         description language for defining data structures that can be
+         serialized and deserialized in a cross-platform way. It is
+         broadly used in telecommunications and computer networking,
+         and especially in cryptography (https://en.wikipedia.org/wiki/ASN.1).
+         This option enables the support of the asn1 decoder in the SPL.
 
 config OID_REGISTRY
        bool
        help
+         In computing, object identifiers or OIDs are an identifier mechanism
+         standardized by the International Telecommunication Union (ITU) and
+         ISO/IEC for naming any object, concept, or "thing" with a globally
+         unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
          Enable fast lookup object identifier registry.
 
+config SPL_OID_REGISTRY
+       bool
+       help
+         In computing, object identifiers or OIDs are an identifier mechanism
+         standardized by the International Telecommunication Union (ITU) and
+         ISO/IEC for naming any object, concept, or "thing" with a globally
+         unambiguous persistent name (https://en.wikipedia.org/wiki/Object_identifier).
+         Enable fast lookup object identifier registry in the SPL.
+
 config SMBIOS_PARSER
        bool "SMBIOS parser"
        help
@@ -725,13 +987,13 @@ config LIB_ELF
 
 config LMB
        bool "Enable the logical memory blocks library (lmb)"
-       default y if ARC || ARM || M68K || MICROBLAZE || MIPS || NDS32 || \
+       default y if ARC || ARM || M68K || MICROBLAZE || MIPS || \
                     NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
        help
          Support the library logical memory blocks.
 
 config LMB_USE_MAX_REGIONS
-       bool "Use a commun number of memory and reserved regions in lmb lib"
+       bool "Use a common number of memory and reserved regions in lmb lib"
        depends on LMB
        default y
        help
@@ -767,10 +1029,8 @@ config LMB_RESERVED_REGIONS
 
 endmenu
 
-config PHANDLE_CHECK_SEQ
-       bool "Enable phandle check while getting sequence number"
-       default n
-       help
-         When there are multiple device tree nodes with same name,
-          enable this config option to distinguish them using
-         phandles in fdtdec_get_alias_seq() function.
+menu "FWU Multi Bank Updates"
+
+source lib/fwu_updates/Kconfig
+
+endmenu