uboot/common/Kconfig
<<
>>
Prefs
   1menu "Boot timing"
   2
   3config BOOTSTAGE
   4        bool "Boot timing and reporting"
   5        help
   6          Enable recording of boot time while booting. To use it, insert
   7          calls to bootstage_mark() with a suitable BOOTSTAGE_ID from
   8          bootstage.h. Only a single entry is recorded for each ID. You can
   9          give the entry a name with bootstage_mark_name(). You can also
  10          record elapsed time in a particular stage using bootstage_start()
  11          before starting and bootstage_accum() when finished. Bootstage will
  12          add up all the accumulated time and report it.
  13
  14          Normally, IDs are defined in bootstage.h but a small number of
  15          additional 'user' IDs can be used by passing BOOTSTAGE_ID_ALLOC
  16          as the ID.
  17
  18          Calls to show_boot_progress() will also result in log entries but
  19          these will not have names.
  20
  21config SPL_BOOTSTAGE
  22        bool "Boot timing and reported in SPL"
  23        depends on BOOTSTAGE
  24        help
  25          Enable recording of boot time in SPL. To make this visible to U-Boot
  26          proper, enable BOOTSTAGE_STASH as well. This will stash the timing
  27          information when SPL finishes and load it when U-Boot proper starts
  28          up.
  29
  30config BOOTSTAGE_REPORT
  31        bool "Display a detailed boot timing report before booting the OS"
  32        depends on BOOTSTAGE
  33        help
  34          Enable output of a boot time report just before the OS is booted.
  35          This shows how long it took U-Boot to go through each stage of the
  36          boot process. The report looks something like this:
  37
  38                Timer summary in microseconds:
  39                       Mark    Elapsed  Stage
  40                          0          0  reset
  41                  3,575,678  3,575,678  board_init_f start
  42                  3,575,695         17  arch_cpu_init A9
  43                  3,575,777         82  arch_cpu_init done
  44                  3,659,598     83,821  board_init_r start
  45                  3,910,375    250,777  main_loop
  46                 29,916,167 26,005,792  bootm_start
  47                 30,361,327    445,160  start_kernel
  48
  49config BOOTSTAGE_RECORD_COUNT
  50        int "Number of boot stage records to store"
  51        default 30
  52        help
  53          This is the size of the bootstage record list and is the maximum
  54          number of bootstage records that can be recorded.
  55
  56config SPL_BOOTSTAGE_RECORD_COUNT
  57        int "Number of boot stage records to store for SPL"
  58        default 5
  59        help
  60          This is the size of the bootstage record list and is the maximum
  61          number of bootstage records that can be recorded.
  62
  63config BOOTSTAGE_FDT
  64        bool "Store boot timing information in the OS device tree"
  65        depends on BOOTSTAGE
  66        help
  67          Stash the bootstage information in the FDT. A root 'bootstage'
  68          node is created with each bootstage id as a child. Each child
  69          has a 'name' property and either 'mark' containing the
  70          mark time in microseconds, or 'accum' containing the
  71          accumulated time for that bootstage id in microseconds.
  72          For example:
  73
  74                bootstage {
  75                        154 {
  76                                name = "board_init_f";
  77                                mark = <3575678>;
  78                        };
  79                        170 {
  80                                name = "lcd";
  81                                accum = <33482>;
  82                        };
  83                };
  84
  85          Code in the Linux kernel can find this in /proc/devicetree.
  86
  87config BOOTSTAGE_STASH
  88        bool "Stash the boot timing information in memory before booting OS"
  89        depends on BOOTSTAGE
  90        help
  91          Some OSes do not support device tree. Bootstage can instead write
  92          the boot timing information in a binary format at a given address.
  93          This happens through a call to bootstage_stash(), typically in
  94          the CPU's cleanup_before_linux() function. You can use the
  95          'bootstage stash' and 'bootstage unstash' commands to do this on
  96          the command line.
  97
  98config BOOTSTAGE_STASH_ADDR
  99        hex "Address to stash boot timing information"
 100        default 0
 101        help
 102          Provide an address which will not be overwritten by the OS when it
 103          starts, so that it can read this information when ready.
 104
 105config BOOTSTAGE_STASH_SIZE
 106        hex "Size of boot timing stash region"
 107        default 0x1000
 108        help
 109          This should be large enough to hold the bootstage stash. A value of
 110          4096 (4KiB) is normally plenty.
 111
 112endmenu
 113
 114menu "Boot media"
 115
 116config NOR_BOOT
 117        bool "Support for booting from NOR flash"
 118        depends on NOR
 119        help
 120          Enabling this will make a U-Boot binary that is capable of being
 121          booted via NOR.  In this case we will enable certain pinmux early
 122          as the ROM only partially sets up pinmux.  We also default to using
 123          NOR for environment.
 124
 125config NAND_BOOT
 126        bool "Support for booting from NAND flash"
 127        default n
 128        help
 129          Enabling this will make a U-Boot binary that is capable of being
 130          booted via NAND flash. This is not a must, some SoCs need this,
 131          some not.
 132
 133config ONENAND_BOOT
 134        bool "Support for booting from ONENAND"
 135        default n
 136        help
 137          Enabling this will make a U-Boot binary that is capable of being
 138          booted via ONENAND. This is not a must, some SoCs need this,
 139          some not.
 140
 141config QSPI_BOOT
 142        bool "Support for booting from QSPI flash"
 143        default n
 144        help
 145          Enabling this will make a U-Boot binary that is capable of being
 146          booted via QSPI flash. This is not a must, some SoCs need this,
 147          some not.
 148
 149config SATA_BOOT
 150        bool "Support for booting from SATA"
 151        default n
 152        help
 153          Enabling this will make a U-Boot binary that is capable of being
 154          booted via SATA. This is not a must, some SoCs need this,
 155          some not.
 156
 157config SD_BOOT
 158        bool "Support for booting from SD/EMMC"
 159        default n
 160        help
 161          Enabling this will make a U-Boot binary that is capable of being
 162          booted via SD/EMMC. This is not a must, some SoCs need this,
 163          some not.
 164
 165config SPI_BOOT
 166        bool "Support for booting from SPI flash"
 167        default n
 168        help
 169          Enabling this will make a U-Boot binary that is capable of being
 170          booted via SPI flash. This is not a must, some SoCs need this,
 171          some not.
 172
 173endmenu
 174
 175config BOOTDELAY
 176        int "delay in seconds before automatically booting"
 177        default 2
 178        depends on AUTOBOOT
 179        help
 180          Delay before automatically running bootcmd;
 181          set to 0 to autoboot with no delay, but you can stop it by key input.
 182          set to -1 to disable autoboot.
 183          set to -2 to autoboot with no delay and not check for abort
 184
 185          See doc/README.autoboot for details.
 186
 187config USE_BOOTARGS
 188        bool "Enable boot arguments"
 189        help
 190          Provide boot arguments to bootm command. Boot arguments are specified
 191          in CONFIG_BOOTARGS option. Enable this option to be able to specify
 192          CONFIG_BOOTARGS string. If this option is disabled, CONFIG_BOOTARGS
 193          will be undefined and won't take any space in U-Boot image.
 194
 195config BOOTARGS
 196        string "Boot arguments"
 197        depends on USE_BOOTARGS
 198        help
 199          This can be used to pass arguments to the bootm command. The value of
 200          CONFIG_BOOTARGS goes into the environment value "bootargs". Note that
 201          this value will also override the "chosen" node in FDT blob.
 202
 203config USE_BOOTCOMMAND
 204        bool "Enable a default value for bootcmd"
 205        help
 206          Provide a default value for the bootcmd entry in the environment.  If
 207          autoboot is enabled this is what will be run automatically.  Enable
 208          this option to be able to specify CONFIG_BOOTCOMMAND as a string.  If
 209          this option is disabled, CONFIG_BOOTCOMMAND will be undefined and
 210          won't take any space in U-Boot image.
 211
 212config BOOTCOMMAND
 213        string "bootcmd value"
 214        depends on USE_BOOTCOMMAND
 215        default "run distro_bootcmd" if DISTRO_DEFAULTS
 216        help
 217          This is the string of commands that will be used as bootcmd and if
 218          AUTOBOOT is set, automatically run.
 219
 220menu "Console"
 221
 222config MENU
 223        bool
 224        help
 225          This is the library functionality to provide a text-based menu of
 226          choices for the user to make choices with.
 227
 228config CONSOLE_RECORD
 229        bool "Console recording"
 230        help
 231          This provides a way to record console output (and provide console
 232          input) through circular buffers. This is mostly useful for testing.
 233          Console output is recorded even when the console is silent.
 234          To enable console recording, call console_record_reset_enable()
 235          from your code.
 236
 237config CONSOLE_RECORD_OUT_SIZE
 238        hex "Output buffer size"
 239        depends on CONSOLE_RECORD
 240        default 0x400 if CONSOLE_RECORD
 241        help
 242          Set the size of the console output buffer. When this fills up, no
 243          more data will be recorded until some is removed. The buffer is
 244          allocated immediately after the malloc() region is ready.
 245
 246config CONSOLE_RECORD_IN_SIZE
 247        hex "Input buffer size"
 248        depends on CONSOLE_RECORD
 249        default 0x100 if CONSOLE_RECORD
 250        help
 251          Set the size of the console input buffer. When this contains data,
 252          tstc() and getc() will use this in preference to real device input.
 253          The buffer is allocated immediately after the malloc() region is
 254          ready.
 255
 256config IDENT_STRING
 257        string "Board specific string to be added to uboot version string"
 258        help
 259          This options adds the board specific name to u-boot version.
 260
 261config LOGLEVEL
 262        int "loglevel"
 263        default 4
 264        range 0 8
 265        help
 266          All Messages with a loglevel smaller than the console loglevel will
 267          be compiled in. The loglevels are defined as follows:
 268
 269          0 (KERN_EMERG)          system is unusable
 270          1 (KERN_ALERT)          action must be taken immediately
 271          2 (KERN_CRIT)           critical conditions
 272          3 (KERN_ERR)            error conditions
 273          4 (KERN_WARNING)        warning conditions
 274          5 (KERN_NOTICE)         normal but significant condition
 275          6 (KERN_INFO)           informational
 276          7 (KERN_DEBUG)          debug-level messages
 277
 278config SPL_LOGLEVEL
 279        int
 280        default LOGLEVEL
 281
 282config SILENT_CONSOLE
 283        bool "Support a silent console"
 284        help
 285          This option allows the console to be silenced, meaning that no
 286          output will appear on the console devices. This is controlled by
 287          setting the environment vaariable 'silent' to a non-empty value.
 288          Note this also silences the console when booting Linux.
 289
 290          When the console is set up, the variable is checked, and the
 291          GD_FLG_SILENT flag is set. Changing the environment variable later
 292          will update the flag.
 293
 294config SILENT_U_BOOT_ONLY
 295        bool "Only silence the U-Boot console"
 296        depends on SILENT_CONSOLE
 297        help
 298          Normally when the U-Boot console is silenced, Linux's console is
 299          also silenced (assuming the board boots into Linux). This option
 300          allows the linux console to operate normally, even if U-Boot's
 301          is silenced.
 302
 303config SILENT_CONSOLE_UPDATE_ON_SET
 304        bool "Changes to the 'silent' environment variable update immediately"
 305        depends on SILENT_CONSOLE
 306        default y if SILENT_CONSOLE
 307        help
 308          When the 'silent' environment variable is changed, update the
 309          console silence flag immediately. This allows 'setenv' to be used
 310          to silence or un-silence the console.
 311
 312          The effect is that any change to the variable will affect the
 313          GD_FLG_SILENT flag.
 314
 315config SILENT_CONSOLE_UPDATE_ON_RELOC
 316        bool "Allow flags to take effect on relocation"
 317        depends on SILENT_CONSOLE
 318        help
 319          In some cases the environment is not available until relocation
 320          (e.g. NAND). This option makes the value of the 'silent'
 321          environment variable take effect at relocation.
 322
 323config PRE_CONSOLE_BUFFER
 324        bool "Buffer characters before the console is available"
 325        help
 326          Prior to the console being initialised (i.e. serial UART
 327          initialised etc) all console output is silently discarded.
 328          Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to
 329          buffer any console messages prior to the console being
 330          initialised to a buffer. The buffer is a circular buffer, so
 331          if it overflows, earlier output is discarded.
 332
 333          Note that this is not currently supported in SPL. It would be
 334          useful to be able to share the pre-console buffer with SPL.
 335
 336config PRE_CON_BUF_SZ
 337        int "Sets the size of the pre-console buffer"
 338        depends on PRE_CONSOLE_BUFFER
 339        default 4096
 340        help
 341          The size of the pre-console buffer affects how much console output
 342          can be held before it overflows and starts discarding earlier
 343          output. Normally there is very little output at this early stage,
 344          unless debugging is enabled, so allow enough for ~10 lines of
 345          text.
 346
 347          This is a useful feature if you are using a video console and
 348          want to see the full boot output on the console. Without this
 349          option only the post-relocation output will be displayed.
 350
 351config PRE_CON_BUF_ADDR
 352        hex "Address of the pre-console buffer"
 353        depends on PRE_CONSOLE_BUFFER
 354        default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I
 355        default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I
 356        help
 357          This sets the start address of the pre-console buffer. This must
 358          be in available memory and is accessed before relocation and
 359          possibly before DRAM is set up. Therefore choose an address
 360          carefully.
 361
 362          We should consider removing this option and allocating the memory
 363          in board_init_f_init_reserve() instead.
 364
 365config CONSOLE_MUX
 366        bool "Enable console multiplexing"
 367        default y if DM_VIDEO || VIDEO || LCD
 368        help
 369          This allows multiple devices to be used for each console 'file'.
 370          For example, stdout can be set to go to serial and video.
 371          Similarly, stdin can be set to come from serial and keyboard.
 372          Input can be provided from either source. Console multiplexing
 373          adds a small amount of size to U-Boot.  Changes to the environment
 374          variables stdout, stdin and stderr will take effect immediately.
 375
 376config SYS_CONSOLE_IS_IN_ENV
 377        bool "Select console devices from the environment"
 378        default y if CONSOLE_MUX
 379        help
 380          This allows multiple input/output devices to be set at boot time.
 381          For example, if stdout is set to "serial,video" then output will
 382          be sent to both the serial and video devices on boot. The
 383          environment variables can be updated after boot to change the
 384          input/output devices.
 385
 386config SYS_CONSOLE_OVERWRITE_ROUTINE
 387        bool "Allow board control over console overwriting"
 388        help
 389          If this is enabled, and the board-specific function
 390          overwrite_console() returns 1, the stdin, stderr and stdout are
 391          switched to the serial port, else the settings in the environment
 392          are used. If this is not enabled, the console will not be switched
 393          to serial.
 394
 395config SYS_CONSOLE_ENV_OVERWRITE
 396        bool "Update environment variables during console init"
 397        help
 398          The console environment variables (stdout, stdin, stderr) can be
 399          used to determine the correct console devices on start-up. This
 400          option writes the console devices to these variables on console
 401          start-up (after relocation). This causes the environment to be
 402          updated to match the console devices actually chosen.
 403
 404config SYS_CONSOLE_INFO_QUIET
 405        bool "Don't display the console devices on boot"
 406        help
 407          Normally U-Boot displays the current settings for stdout, stdin
 408          and stderr on boot when the post-relocation console is set up.
 409          Enable this option to supress this output. It can be obtained by
 410          calling stdio_print_current_devices() from board code.
 411
 412config SYS_STDIO_DEREGISTER
 413        bool "Allow deregistering stdio devices"
 414        default y if USB_KEYBOARD
 415        help
 416          Generally there is no need to deregister stdio devices since they
 417          are never deactivated. But if a stdio device is used which can be
 418          removed (for example a USB keyboard) then this option can be
 419          enabled to ensure this is handled correctly.
 420
 421endmenu
 422
 423menu "Logging"
 424
 425config LOG
 426        bool "Enable logging support"
 427        select DM
 428        help
 429          This enables support for logging of status and debug messages. These
 430          can be displayed on the console, recorded in a memory buffer, or
 431          discarded if not needed. Logging supports various categories and
 432          levels of severity.
 433
 434config SPL_LOG
 435        bool "Enable logging support in SPL"
 436        help
 437          This enables support for logging of status and debug messages. These
 438          can be displayed on the console, recorded in a memory buffer, or
 439          discarded if not needed. Logging supports various categories and
 440          levels of severity.
 441
 442config LOG_MAX_LEVEL
 443        int "Maximum log level to record"
 444        depends on LOG
 445        default 5
 446        help
 447          This selects the maximum log level that will be recorded. Any value
 448          higher than this will be ignored. If possible log statements below
 449          this level will be discarded at build time. Levels:
 450
 451            0 - panic
 452            1 - critical
 453            2 - error
 454            3 - warning
 455            4 - note
 456            5 - info
 457            6 - detail
 458            7 - debug
 459
 460config SPL_LOG_MAX_LEVEL
 461        int "Maximum log level to record in SPL"
 462        depends on SPL_LOG
 463        default 3
 464        help
 465          This selects the maximum log level that will be recorded. Any value
 466          higher than this will be ignored. If possible log statements below
 467          this level will be discarded at build time. Levels:
 468
 469            0 - panic
 470            1 - critical
 471            2 - error
 472            3 - warning
 473            4 - note
 474            5 - info
 475            6 - detail
 476            7 - debug
 477
 478config LOG_CONSOLE
 479        bool "Allow log output to the console"
 480        depends on LOG
 481        default y
 482        help
 483          Enables a log driver which writes log records to the console.
 484          Generally the console is the serial port or LCD display. Only the
 485          log message is shown - other details like level, category, file and
 486          line number are omitted.
 487
 488config LOG_SPL_CONSOLE
 489        bool "Allow log output to the console in SPL"
 490        depends on LOG_SPL
 491        default y
 492        help
 493          Enables a log driver which writes log records to the console.
 494          Generally the console is the serial port or LCD display. Only the
 495          log message is shown - other details like level, category, file and
 496          line number are omitted.
 497
 498config LOG_TEST
 499        bool "Provide a test for logging"
 500        depends on LOG
 501        default y if SANDBOX
 502        help
 503          This enables a 'log test' command to test logging. It is normally
 504          executed from a pytest and simply outputs logging information
 505          in various different ways to test that the logging system works
 506          correctly with varoius settings.
 507
 508config LOG_ERROR_RETURN
 509        bool "Log all functions which return an error"
 510        depends on LOG
 511        help
 512          When an error is returned in U-Boot it is sometimes difficult to
 513          figure out the root cause. For eaxmple, reading from SPI flash may
 514          fail due to a problem in the SPI controller or due to the flash part
 515          not returning the expected information. This option changes
 516          log_ret() to log any errors it sees. With this option disabled,
 517          log_ret() is a nop.
 518
 519          You can add log_ret() to all functions which return an error code.
 520
 521endmenu
 522
 523config SUPPORT_RAW_INITRD
 524        bool "Enable raw initrd images"
 525        help
 526          Note, defining the SUPPORT_RAW_INITRD allows user to supply
 527          kernel with raw initrd images. The syntax is slightly different, the
 528          address of the initrd must be augmented by it's size, in the following
 529          format: "<initrd address>:<initrd size>".
 530
 531config DEFAULT_FDT_FILE
 532        string "Default fdt file"
 533        help
 534          This option is used to set the default fdt file to boot OS.
 535
 536config VERSION_VARIABLE
 537        bool "add U-Boot environment variable vers"
 538        default n
 539        help
 540          If this variable is defined, an environment variable
 541          named "ver" is created by U-Boot showing the U-Boot
 542          version as printed by the "version" command.
 543          Any change to this variable will be reverted at the
 544          next reset.
 545
 546config BOARD_LATE_INIT
 547        bool
 548        help
 549          Sometimes board require some initialization code that might
 550          require once the actual init done, example saving board specific env,
 551          boot-modes etc. which eventually done at late.
 552
 553          So this config enable the late init code with the help of board_late_init
 554          function which should defined on respective boards.
 555
 556config DISPLAY_CPUINFO
 557        bool "Display information about the CPU during start up"
 558        default y if ARM || NIOS2 || X86 || XTENSA || M68K
 559        help
 560          Display information about the CPU that U-Boot is running on
 561          when U-Boot starts up. The function print_cpuinfo() is called
 562          to do this.
 563
 564config DISPLAY_BOARDINFO
 565        bool "Display information about the board during early start up"
 566        default y if ARM || M68K || MIPS || PPC || SANDBOX || XTENSA
 567        help
 568          Display information about the board that U-Boot is running on
 569          when U-Boot starts up. The board function checkboard() is called
 570          to do this.
 571
 572config DISPLAY_BOARDINFO_LATE
 573        bool "Display information about the board during late start up"
 574        help
 575          Display information about the board that U-Boot is running on after
 576          the relocation phase. The board function checkboard() is called to do
 577          this.
 578
 579menu "Start-up hooks"
 580
 581config ARCH_EARLY_INIT_R
 582        bool "Call arch-specific init soon after relocation"
 583        help
 584          With this option U-Boot will call arch_early_init_r() soon after
 585          relocation. Driver model is running by this point, and the cache
 586          is on. Note that board_early_init_r() is called first, if
 587          enabled. This can be used to set up architecture-specific devices.
 588
 589config ARCH_MISC_INIT
 590        bool "Call arch-specific init after relocation, when console is ready"
 591        help
 592          With this option U-Boot will call arch_misc_init() after
 593          relocation to allow miscellaneous arch-dependent initialisation
 594          to be performed. This function should be defined by the board
 595          and will be called after the console is set up, after relocaiton.
 596
 597config BOARD_EARLY_INIT_F
 598        bool "Call board-specific init before relocation"
 599        help
 600          Some boards need to perform initialisation as soon as possible
 601          after boot. With this option, U-Boot calls board_early_init_f()
 602          after driver model is ready in the pre-relocation init sequence.
 603          Note that the normal serial console is not yet set up, but the
 604          debug UART will be available if enabled.
 605
 606config BOARD_EARLY_INIT_R
 607        bool "Call board-specific init after relocation"
 608        help
 609          Some boards need to perform initialisation as directly after
 610          relocation. With this option, U-Boot calls board_early_init_r()
 611          in the post-relocation init sequence.
 612
 613config LAST_STAGE_INIT
 614        bool "Call board-specific as last setup step"
 615        help
 616          Some boards need to perform initialisation immediately before control
 617          is passed to the command-line interpreter (e.g. for initializations
 618          that depend on later phases in the init sequence). With this option,
 619          U-Boot calls last_stage_init() before the command-line interpreter is
 620          started.
 621
 622endmenu
 623
 624menu "Security support"
 625
 626config HASH
 627        bool # "Support hashing API (SHA1, SHA256, etc.)"
 628        help
 629          This provides a way to hash data in memory using various supported
 630          algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
 631          and the algorithms it supports are defined in common/hash.c. See
 632          also CMD_HASH for command-line access.
 633
 634endmenu
 635
 636menu "Update support"
 637
 638config UPDATE_TFTP
 639        bool "Auto-update using fitImage via TFTP"
 640        depends on FIT
 641        help
 642          This option allows performing update of NOR with data in fitImage
 643          sent via TFTP boot.
 644
 645config UPDATE_TFTP_CNT_MAX
 646        int "The number of connection retries during auto-update"
 647        default 0
 648        depends on UPDATE_TFTP
 649
 650config UPDATE_TFTP_MSEC_MAX
 651        int "Delay in mSec to wait for the TFTP server during auto-update"
 652        default 100
 653        depends on UPDATE_TFTP
 654
 655endmenu
 656
 657source "common/spl/Kconfig"
 658