riscv: align mtvec on a 4-byte boundary
[oweals/u-boot.git] / common / Kconfig
index 540cc9999bc6df546fcf408d188cd4d91f192020..ba460d9150dee8f5c1dddfe7852fd0b16c3b6978 100644 (file)
@@ -27,6 +27,15 @@ config SPL_BOOTSTAGE
          information when SPL finishes and load it when U-Boot proper starts
          up.
 
+config TPL_BOOTSTAGE
+       bool "Boot timing and reported in TPL"
+       depends on BOOTSTAGE
+       help
+         Enable recording of boot time in SPL. To make this visible to U-Boot
+         proper, enable BOOTSTAGE_STASH as well. This will stash the timing
+         information when TPL finishes and load it when U-Boot proper starts
+         up.
+
 config BOOTSTAGE_REPORT
        bool "Display a detailed boot timing report before booting the OS"
        depends on BOOTSTAGE
@@ -125,6 +134,7 @@ config NOR_BOOT
 config NAND_BOOT
        bool "Support for booting from NAND flash"
        default n
+       imply NAND
        help
          Enabling this will make a U-Boot binary that is capable of being
          booted via NAND flash. This is not a must, some SoCs need this,
@@ -133,6 +143,7 @@ config NAND_BOOT
 config ONENAND_BOOT
        bool "Support for booting from ONENAND"
        default n
+       imply NAND
        help
          Enabling this will make a U-Boot binary that is capable of being
          booted via ONENAND. This is not a must, some SoCs need this,
@@ -182,6 +193,10 @@ config BOOTDELAY
          set to -1 to disable autoboot.
          set to -2 to autoboot with no delay and not check for abort
 
+         If this value is >= 0 then it is also used for the default delay
+         before starting the default entry in bootmenu. If it is < 0 then
+         a default value of 10s is used.
+
          See doc/README.autoboot for details.
 
 config USE_BOOTARGS
@@ -200,6 +215,23 @@ config BOOTARGS
          CONFIG_BOOTARGS goes into the environment value "bootargs". Note that
          this value will also override the "chosen" node in FDT blob.
 
+config USE_BOOTCOMMAND
+       bool "Enable a default value for bootcmd"
+       help
+         Provide a default value for the bootcmd entry in the environment.  If
+         autoboot is enabled this is what will be run automatically.  Enable
+         this option to be able to specify CONFIG_BOOTCOMMAND as a string.  If
+         this option is disabled, CONFIG_BOOTCOMMAND will be undefined and
+         won't take any space in U-Boot image.
+
+config BOOTCOMMAND
+       string "bootcmd value"
+       depends on USE_BOOTCOMMAND
+       default "run distro_bootcmd" if DISTRO_DEFAULTS
+       help
+         This is the string of commands that will be used as bootcmd and if
+         AUTOBOOT is set, automatically run.
+
 menu "Console"
 
 config MENU
@@ -236,11 +268,37 @@ config CONSOLE_RECORD_IN_SIZE
          The buffer is allocated immediately after the malloc() region is
          ready.
 
+config DISABLE_CONSOLE
+       bool "Add functionality to disable console completely"
+       help
+               Disable console (in & out).
+
 config IDENT_STRING
        string "Board specific string to be added to uboot version string"
        help
          This options adds the board specific name to u-boot version.
 
+config LOGLEVEL
+       int "loglevel"
+       default 4
+       range 0 8
+       help
+         All Messages with a loglevel smaller than the console loglevel will
+         be compiled in. The loglevels are defined as follows:
+
+         0 (KERN_EMERG)          system is unusable
+         1 (KERN_ALERT)          action must be taken immediately
+         2 (KERN_CRIT)           critical conditions
+         3 (KERN_ERR)            error conditions
+         4 (KERN_WARNING)        warning conditions
+         5 (KERN_NOTICE)         normal but significant condition
+         6 (KERN_INFO)           informational
+         7 (KERN_DEBUG)          debug-level messages
+
+config SPL_LOGLEVEL
+       int
+       default LOGLEVEL
+
 config SILENT_CONSOLE
        bool "Support a silent console"
        help
@@ -382,27 +440,136 @@ config SYS_STDIO_DEREGISTER
 
 endmenu
 
-config DTB_RESELECT
-       bool "Support swapping dtbs at a later point in boot"
-       depends on FIT_EMBED
+menu "Logging"
+
+config LOG
+       bool "Enable logging support"
+       depends on DM
+       help
+         This enables support for logging of status and debug messages. These
+         can be displayed on the console, recorded in a memory buffer, or
+         discarded if not needed. Logging supports various categories and
+         levels of severity.
+
+config SPL_LOG
+       bool "Enable logging support in SPL"
+       depends on LOG
+       help
+         This enables support for logging of status and debug messages. These
+         can be displayed on the console, recorded in a memory buffer, or
+         discarded if not needed. Logging supports various categories and
+         levels of severity.
+
+config TPL_LOG
+       bool "Enable logging support in TPL"
+       depends on LOG
        help
-         It is possible during initial boot you may need to use a generic
-         dtb until you can fully determine the board your running on. This
-         config allows boards to implement a function at a later point
-         during boot to switch to the "correct" dtb.
+         This enables support for logging of status and debug messages. These
+         can be displayed on the console, recorded in a memory buffer, or
+         discarded if not needed. Logging supports various categories and
+         levels of severity.
 
-config FIT_EMBED
-       bool "Support a FIT image embedded in the U-boot image"
+config LOG_MAX_LEVEL
+       int "Maximum log level to record"
+       depends on LOG
+       default 5
        help
-         This option provides hooks to allow U-boot to parse an
-         appended FIT image and enable board specific code to then select
-         the correct DTB to be used.
+         This selects the maximum log level that will be recorded. Any value
+         higher than this will be ignored. If possible log statements below
+         this level will be discarded at build time. Levels:
+
+           0 - panic
+           1 - critical
+           2 - error
+           3 - warning
+           4 - note
+           5 - info
+           6 - detail
+           7 - debug
+
+config SPL_LOG_MAX_LEVEL
+       int "Maximum log level to record in SPL"
+       depends on SPL_LOG
+       default 3
+       help
+         This selects the maximum log level that will be recorded. Any value
+         higher than this will be ignored. If possible log statements below
+         this level will be discarded at build time. Levels:
+
+           0 - panic
+           1 - critical
+           2 - error
+           3 - warning
+           4 - note
+           5 - info
+           6 - detail
+           7 - debug
+
+config LOG_CONSOLE
+       bool "Allow log output to the console"
+       depends on LOG
+       default y
+       help
+         Enables a log driver which writes log records to the console.
+         Generally the console is the serial port or LCD display. Only the
+         log message is shown - other details like level, category, file and
+         line number are omitted.
+
+config LOG_SPL_CONSOLE
+       bool "Allow log output to the console in SPL"
+       depends on LOG_SPL
+       default y
+       help
+         Enables a log driver which writes log records to the console.
+         Generally the console is the serial port or LCD display. Only the
+         log message is shown - other details like level, category, file and
+         line number are omitted.
+
+config LOG_TEST
+       bool "Provide a test for logging"
+       depends on LOG
+       default y if SANDBOX
+       help
+         This enables a 'log test' command to test logging. It is normally
+         executed from a pytest and simply outputs logging information
+         in various different ways to test that the logging system works
+         correctly with varoius settings.
+
+config LOG_ERROR_RETURN
+       bool "Log all functions which return an error"
+       depends on LOG
+       help
+         When an error is returned in U-Boot it is sometimes difficult to
+         figure out the root cause. For eaxmple, reading from SPI flash may
+         fail due to a problem in the SPI controller or due to the flash part
+         not returning the expected information. This option changes
+         log_ret() to log any errors it sees. With this option disabled,
+         log_ret() is a nop.
+
+         You can add log_ret() to all functions which return an error code.
+
+endmenu
+
+config SUPPORT_RAW_INITRD
+       bool "Enable raw initrd images"
+       help
+         Note, defining the SUPPORT_RAW_INITRD allows user to supply
+         kernel with raw initrd images. The syntax is slightly different, the
+         address of the initrd must be augmented by it's size, in the following
+         format: "<initrd address>:<initrd size>".
 
 config DEFAULT_FDT_FILE
        string "Default fdt file"
        help
          This option is used to set the default fdt file to boot OS.
 
+config MISC_INIT_R
+       bool "Execute Misc Init"
+       default y if ARCH_KEYSTONE || ARCH_SUNXI || MPC85xx
+       default y if ARCH_OMAP2PLUS && !AM33XX
+       help
+         Enabling this option calls 'misc_init_r' function
+
 config VERSION_VARIABLE
        bool "add U-Boot environment variable vers"
        default n
@@ -414,7 +581,7 @@ config VERSION_VARIABLE
          next reset.
 
 config BOARD_LATE_INIT
-       bool
+       bool "Execute Board late init"
        help
          Sometimes board require some initialization code that might
          require once the actual init done, example saving board specific env,
@@ -425,20 +592,27 @@ config BOARD_LATE_INIT
 
 config DISPLAY_CPUINFO
        bool "Display information about the CPU during start up"
-       default y if ARM || NIOS2 || X86 || XTENSA
+       default y if ARC|| ARM || NIOS2 || X86 || XTENSA || M68K
        help
          Display information about the CPU that U-Boot is running on
          when U-Boot starts up. The function print_cpuinfo() is called
          to do this.
 
 config DISPLAY_BOARDINFO
-       bool "Display information about the board during start up"
-       default y if ARM || M68K || MIPS || PPC || SANDBOX || XTENSA
+       bool "Display information about the board during early start up"
+       default y if ARC || ARM || M68K || MIPS || PPC || SANDBOX || XTENSA
        help
          Display information about the board that U-Boot is running on
          when U-Boot starts up. The board function checkboard() is called
          to do this.
 
+config DISPLAY_BOARDINFO_LATE
+       bool "Display information about the board during late start up"
+       help
+         Display information about the board that U-Boot is running on after
+         the relocation phase. The board function checkboard() is called to do
+         this.
+
 menu "Start-up hooks"
 
 config ARCH_EARLY_INIT_R
@@ -466,6 +640,22 @@ config BOARD_EARLY_INIT_F
          Note that the normal serial console is not yet set up, but the
          debug UART will be available if enabled.
 
+config BOARD_EARLY_INIT_R
+       bool "Call board-specific init after relocation"
+       help
+         Some boards need to perform initialisation as directly after
+         relocation. With this option, U-Boot calls board_early_init_r()
+         in the post-relocation init sequence.
+
+config LAST_STAGE_INIT
+       bool "Call board-specific as last setup step"
+       help
+         Some boards need to perform initialisation immediately before control
+         is passed to the command-line interpreter (e.g. for initializations
+         that depend on later phases in the init sequence). With this option,
+         U-Boot calls last_stage_init() before the command-line interpreter is
+         started.
+
 endmenu
 
 menu "Security support"
@@ -478,6 +668,54 @@ config HASH
          and the algorithms it supports are defined in common/hash.c. See
          also CMD_HASH for command-line access.
 
+config AVB_VERIFY
+       bool "Build Android Verified Boot operations"
+       depends on LIBAVB && FASTBOOT
+       depends on PARTITION_UUIDS
+       help
+         This option enables compilation of bootloader-dependent operations,
+         used by Android Verified Boot 2.0 library (libavb). Includes:
+           * Helpers to process strings in order to build OS bootargs.
+           * Helpers to access MMC, similar to drivers/fastboot/fb_mmc.c.
+           * Helpers to alloc/init/free avb ops.
+
+config SPL_HASH
+       bool # "Support hashing API (SHA1, SHA256, etc.)"
+       help
+         This provides a way to hash data in memory using various supported
+         algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
+         and the algorithms it supports are defined in common/hash.c. See
+         also CMD_HASH for command-line access.
+
+config TPL_HASH
+       bool # "Support hashing API (SHA1, SHA256, etc.)"
+       help
+         This provides a way to hash data in memory using various supported
+         algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
+         and the algorithms it supports are defined in common/hash.c. See
+         also CMD_HASH for command-line access.
+
+endmenu
+
+menu "Update support"
+
+config UPDATE_TFTP
+       bool "Auto-update using fitImage via TFTP"
+       depends on FIT
+       help
+         This option allows performing update of NOR with data in fitImage
+         sent via TFTP boot.
+
+config UPDATE_TFTP_CNT_MAX
+       int "The number of connection retries during auto-update"
+       default 0
+       depends on UPDATE_TFTP
+
+config UPDATE_TFTP_MSEC_MAX
+       int "Delay in mSec to wait for the TFTP server during auto-update"
+       default 100
+       depends on UPDATE_TFTP
+
 endmenu
 
 source "common/spl/Kconfig"