uboot/common/Kconfig
<<
>>
Prefs
   1menu "Console"
   2
   3config MENU
   4        bool
   5        help
   6          This is the library functionality to provide a text-based menu of
   7          choices for the user to make choices with.
   8
   9config CONSOLE_RECORD
  10        bool "Console recording"
  11        help
  12          This provides a way to record console output (and provide console
  13          input) through circular buffers. This is mostly useful for testing.
  14          Console output is recorded even when the console is silent.
  15          To enable console recording, call console_record_reset_enable()
  16          from your code.
  17
  18config CONSOLE_RECORD_INIT_F
  19        bool "Enable console recording during pre-relocation init"
  20        depends on CONSOLE_RECORD && SYS_MALLOC_F
  21        default y
  22        help
  23          This option enables console recording during pre-relocation init.
  24          CONFIG_SYS_MALLOC_F must be enabled to use this feature.
  25
  26config CONSOLE_RECORD_OUT_SIZE
  27        hex "Output buffer size"
  28        depends on CONSOLE_RECORD
  29        default 0x400 if CONSOLE_RECORD
  30        help
  31          Set the size of the console output buffer. When this fills up, no
  32          more data will be recorded until some is removed. The buffer is
  33          allocated immediately after the malloc() region is ready.
  34
  35config CONSOLE_RECORD_OUT_SIZE_F
  36        hex "Output buffer size before relocation"
  37        depends on CONSOLE_RECORD
  38        default 0x400 if CONSOLE_RECORD
  39        help
  40          Set the size of the console output buffer before relocation. When
  41          this fills up, no more data will be recorded until some is removed.
  42          The buffer is allocated immediately after the early malloc() region is
  43          ready.
  44
  45config CONSOLE_RECORD_IN_SIZE
  46        hex "Input buffer size"
  47        depends on CONSOLE_RECORD
  48        default 0x100 if CONSOLE_RECORD
  49        help
  50          Set the size of the console input buffer. When this contains data,
  51          tstc() and getc() will use this in preference to real device input.
  52          The buffer is allocated immediately after the malloc() region is
  53          ready.
  54
  55config DISABLE_CONSOLE
  56        bool "Add functionality to disable console completely"
  57        help
  58                Disable console (in & out).
  59
  60config IDENT_STRING
  61        string "Board specific string to be added to uboot version string"
  62        help
  63          This options adds the board specific name to u-boot version.
  64
  65config LOGLEVEL
  66        int "loglevel"
  67        default 4
  68        range 0 10
  69        help
  70          All Messages with a loglevel smaller than the console loglevel will
  71          be compiled in. The loglevels are defined as follows:
  72
  73            0 - emergency
  74            1 - alert
  75            2 - critical
  76            3 - error
  77            4 - warning
  78            5 - note
  79            6 - info
  80            7 - debug
  81            8 - debug content
  82            9 - debug hardware I/O
  83
  84config SPL_LOGLEVEL
  85        int
  86        default LOGLEVEL
  87
  88config TPL_LOGLEVEL
  89        int
  90        default LOGLEVEL
  91
  92config SILENT_CONSOLE
  93        bool "Support a silent console"
  94        help
  95          This option allows the console to be silenced, meaning that no
  96          output will appear on the console devices. This is controlled by
  97          setting the environment variable 'silent' to a non-empty value.
  98          Note this also silences the console when booting Linux.
  99
 100          When the console is set up, the variable is checked, and the
 101          GD_FLG_SILENT flag is set. Changing the environment variable later
 102          will update the flag.
 103
 104config SILENT_U_BOOT_ONLY
 105        bool "Only silence the U-Boot console"
 106        depends on SILENT_CONSOLE
 107        help
 108          Normally when the U-Boot console is silenced, Linux's console is
 109          also silenced (assuming the board boots into Linux). This option
 110          allows the linux console to operate normally, even if U-Boot's
 111          is silenced.
 112
 113config SILENT_CONSOLE_UPDATE_ON_SET
 114        bool "Changes to the 'silent' environment variable update immediately"
 115        depends on SILENT_CONSOLE
 116        default y if SILENT_CONSOLE
 117        help
 118          When the 'silent' environment variable is changed, update the
 119          console silence flag immediately. This allows 'setenv' to be used
 120          to silence or un-silence the console.
 121
 122          The effect is that any change to the variable will affect the
 123          GD_FLG_SILENT flag.
 124
 125config SILENT_CONSOLE_UPDATE_ON_RELOC
 126        bool "Allow flags to take effect on relocation"
 127        depends on SILENT_CONSOLE
 128        help
 129          In some cases the environment is not available until relocation
 130          (e.g. NAND). This option makes the value of the 'silent'
 131          environment variable take effect at relocation.
 132
 133config PRE_CONSOLE_BUFFER
 134        bool "Buffer characters before the console is available"
 135        help
 136          Prior to the console being initialised (i.e. serial UART
 137          initialised etc) all console output is silently discarded.
 138          Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to
 139          buffer any console messages prior to the console being
 140          initialised to a buffer. The buffer is a circular buffer, so
 141          if it overflows, earlier output is discarded.
 142
 143          Note that this is not currently supported in SPL. It would be
 144          useful to be able to share the pre-console buffer with SPL.
 145
 146config PRE_CON_BUF_SZ
 147        int "Sets the size of the pre-console buffer"
 148        depends on PRE_CONSOLE_BUFFER
 149        default 4096
 150        help
 151          The size of the pre-console buffer affects how much console output
 152          can be held before it overflows and starts discarding earlier
 153          output. Normally there is very little output at this early stage,
 154          unless debugging is enabled, so allow enough for ~10 lines of
 155          text.
 156
 157          This is a useful feature if you are using a video console and
 158          want to see the full boot output on the console. Without this
 159          option only the post-relocation output will be displayed.
 160
 161config PRE_CON_BUF_ADDR
 162        hex "Address of the pre-console buffer"
 163        depends on PRE_CONSOLE_BUFFER
 164        default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I
 165        default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I
 166        default 0x0f000000 if ROCKCHIP_RK3288
 167        default 0x0f200000 if ROCKCHIP_RK3399
 168        help
 169          This sets the start address of the pre-console buffer. This must
 170          be in available memory and is accessed before relocation and
 171          possibly before DRAM is set up. Therefore choose an address
 172          carefully.
 173
 174          We should consider removing this option and allocating the memory
 175          in board_init_f_init_reserve() instead.
 176
 177config CONSOLE_MUX
 178        bool "Enable console multiplexing"
 179        default y if DM_VIDEO || VIDEO || LCD
 180        help
 181          This allows multiple devices to be used for each console 'file'.
 182          For example, stdout can be set to go to serial and video.
 183          Similarly, stdin can be set to come from serial and keyboard.
 184          Input can be provided from either source. Console multiplexing
 185          adds a small amount of size to U-Boot.  Changes to the environment
 186          variables stdout, stdin and stderr will take effect immediately.
 187
 188config SYS_CONSOLE_IS_IN_ENV
 189        bool "Select console devices from the environment"
 190        default y if CONSOLE_MUX
 191        help
 192          This allows multiple input/output devices to be set at boot time.
 193          For example, if stdout is set to "serial,vidconsole" then output
 194          will be sent to both the serial and video devices on boot. The
 195          environment variables can be updated after boot to change the
 196          input/output devices.
 197
 198config SYS_CONSOLE_OVERWRITE_ROUTINE
 199        bool "Allow board control over console overwriting"
 200        help
 201          If this is enabled, and the board-specific function
 202          overwrite_console() returns 1, the stdin, stderr and stdout are
 203          switched to the serial port, else the settings in the environment
 204          are used. If this is not enabled, the console will not be switched
 205          to serial.
 206
 207config SYS_CONSOLE_ENV_OVERWRITE
 208        bool "Update environment variables during console init"
 209        help
 210          The console environment variables (stdout, stdin, stderr) can be
 211          used to determine the correct console devices on start-up. This
 212          option writes the console devices to these variables on console
 213          start-up (after relocation). This causes the environment to be
 214          updated to match the console devices actually chosen.
 215
 216config SYS_CONSOLE_INFO_QUIET
 217        bool "Don't display the console devices on boot"
 218        help
 219          Normally U-Boot displays the current settings for stdout, stdin
 220          and stderr on boot when the post-relocation console is set up.
 221          Enable this option to suppress this output. It can be obtained by
 222          calling stdio_print_current_devices() from board code.
 223
 224config SYS_STDIO_DEREGISTER
 225        bool "Allow deregistering stdio devices"
 226        default y if USB_KEYBOARD
 227        help
 228          Generally there is no need to deregister stdio devices since they
 229          are never deactivated. But if a stdio device is used which can be
 230          removed (for example a USB keyboard) then this option can be
 231          enabled to ensure this is handled correctly.
 232
 233config SPL_SYS_STDIO_DEREGISTER
 234        bool "Allow deregistering stdio devices in SPL"
 235        help
 236          Generally there is no need to deregister stdio devices since they
 237          are never deactivated. But if a stdio device is used which can be
 238          removed (for example a USB keyboard) then this option can be
 239          enabled to ensure this is handled correctly. This is very rarely
 240          needed in SPL.
 241
 242config SYS_DEVICE_NULLDEV
 243        bool "Enable a null device for stdio"
 244        default y if SPLASH_SCREEN || SYS_STDIO_DEREGISTER
 245        help
 246          Enable creation of a "nulldev" stdio device. This allows silent
 247          operation of the console by setting stdout to "nulldev". Enable
 248          this to use a serial console under board control.
 249
 250endmenu
 251
 252menu "Logging"
 253
 254config LOG
 255        bool "Enable logging support"
 256        depends on DM
 257        help
 258          This enables support for logging of status and debug messages. These
 259          can be displayed on the console, recorded in a memory buffer, or
 260          discarded if not needed. Logging supports various categories and
 261          levels of severity.
 262
 263if LOG
 264
 265config LOG_MAX_LEVEL
 266        int "Maximum log level to record"
 267        default 6
 268        range 0 9
 269        help
 270          This selects the maximum log level that will be recorded. Any value
 271          higher than this will be ignored. If possible log statements below
 272          this level will be discarded at build time. Levels:
 273
 274            0 - emergency
 275            1 - alert
 276            2 - critical
 277            3 - error
 278            4 - warning
 279            5 - note
 280            6 - info
 281            7 - debug
 282            8 - debug content
 283            9 - debug hardware I/O
 284
 285config LOG_DEFAULT_LEVEL
 286        int "Default logging level to display"
 287        default LOG_MAX_LEVEL
 288        range 0 LOG_MAX_LEVEL
 289        help
 290          This is the default logging level set when U-Boot starts. It can
 291          be adjusted later using the 'log level' command. Note that setting
 292          this to a value above LOG_MAX_LEVEL will be ineffective, since the
 293          higher levels are not compiled in to U-Boot.
 294
 295            0 - emergency
 296            1 - alert
 297            2 - critical
 298            3 - error
 299            4 - warning
 300            5 - note
 301            6 - info
 302            7 - debug
 303            8 - debug content
 304            9 - debug hardware I/O
 305
 306config LOG_CONSOLE
 307        bool "Allow log output to the console"
 308        default y
 309        help
 310          Enables a log driver which writes log records to the console.
 311          Generally the console is the serial port or LCD display. Only the
 312          log message is shown - other details like level, category, file and
 313          line number are omitted.
 314
 315config LOGF_FILE
 316        bool "Show source file name in log messages by default"
 317        help
 318          Show the source file name in log messages by default. This value
 319          can be overridden using the 'log format' command.
 320
 321config LOGF_LINE
 322        bool "Show source line number in log messages by default"
 323        help
 324          Show the source line number in log messages by default. This value
 325          can be overridden using the 'log format' command.
 326
 327config LOGF_FUNC
 328        bool "Show function name in log messages by default"
 329        help
 330          Show the function name in log messages by default. This value can
 331          be overridden using the 'log format' command.
 332
 333config LOGF_FUNC_PAD
 334        int "Number of characters to use for function"
 335        default 20
 336        help
 337          Sets the field width to use when showing the function. Set this to
 338          a larger value if you have lots of long function names, and want
 339          things to line up.
 340
 341config LOG_SYSLOG
 342        bool "Log output to syslog server"
 343        depends on NET
 344        help
 345          Enables a log driver which broadcasts log records via UDP port 514
 346          to syslog servers.
 347
 348config SPL_LOG
 349        bool "Enable logging support in SPL"
 350        depends on LOG
 351        help
 352          This enables support for logging of status and debug messages. These
 353          can be displayed on the console, recorded in a memory buffer, or
 354          discarded if not needed. Logging supports various categories and
 355          levels of severity.
 356
 357if SPL_LOG
 358
 359config SPL_LOG_MAX_LEVEL
 360        int "Maximum log level to record in SPL"
 361        depends on SPL_LOG
 362        default 3
 363        range 0 9
 364        help
 365          This selects the maximum log level that will be recorded. Any value
 366          higher than this will be ignored. If possible log statements below
 367          this level will be discarded at build time. Levels:
 368
 369            0 - emergency
 370            1 - alert
 371            2 - critical
 372            3 - error
 373            4 - warning
 374            5 - note
 375            6 - info
 376            7 - debug
 377            8 - debug content
 378            9 - debug hardware I/O
 379
 380config SPL_LOG_CONSOLE
 381        bool "Allow log output to the console in SPL"
 382        default y
 383        help
 384          Enables a log driver which writes log records to the console.
 385          Generally the console is the serial port or LCD display. Only the
 386          log message is shown - other details like level, category, file and
 387          line number are omitted.
 388
 389endif
 390
 391config TPL_LOG
 392        bool "Enable logging support in TPL"
 393        depends on LOG
 394        help
 395          This enables support for logging of status and debug messages. These
 396          can be displayed on the console, recorded in a memory buffer, or
 397          discarded if not needed. Logging supports various categories and
 398          levels of severity.
 399
 400if TPL_LOG
 401
 402config TPL_LOG_MAX_LEVEL
 403        int "Maximum log level to record in TPL"
 404        depends on TPL_LOG
 405        default 3
 406        range 0 9
 407        help
 408          This selects the maximum log level that will be recorded. Any value
 409          higher than this will be ignored. If possible log statements below
 410          this level will be discarded at build time. Levels:
 411
 412            0 - emergency
 413            1 - alert
 414            2 - critical
 415            3 - error
 416            4 - warning
 417            5 - note
 418            6 - info
 419            7 - debug
 420            8 - debug content
 421            9 - debug hardware I/O
 422
 423config TPL_LOG_CONSOLE
 424        bool "Allow log output to the console in TPL"
 425        default y
 426        help
 427          Enables a log driver which writes log records to the console.
 428          Generally the console is the serial port or LCD display. Only the
 429          log message is shown - other details like level, category, file and
 430          line number are omitted.
 431
 432endif
 433
 434config LOG_ERROR_RETURN
 435        bool "Log all functions which return an error"
 436        help
 437          When an error is returned in U-Boot it is sometimes difficult to
 438          figure out the root cause. For example, reading from SPI flash may
 439          fail due to a problem in the SPI controller or due to the flash part
 440          not returning the expected information. This option changes
 441          log_ret() to log any errors it sees. With this option disabled,
 442          log_ret() is a nop.
 443
 444          You can add log_ret() to all functions which return an error code.
 445
 446config LOG_TEST
 447        bool "Provide a test for logging"
 448        depends on UNIT_TEST
 449        default y if SANDBOX
 450        help
 451          This enables a 'log test' command to test logging. It is normally
 452          executed from a pytest and simply outputs logging information
 453          in various different ways to test that the logging system works
 454          correctly with various settings.
 455
 456endif
 457
 458endmenu
 459
 460menu "Init options"
 461
 462config BOARD_TYPES
 463        bool "Call get_board_type() to get and display the board type"
 464        help
 465          If this option is enabled, checkboard() will call get_board_type()
 466          to get a string containing the board type and this will be
 467          displayed immediately after the model is shown on the console
 468          early in boot.
 469
 470config DISPLAY_CPUINFO
 471        bool "Display information about the CPU during start up"
 472        default y if ARC|| ARM || NIOS2 || X86 || XTENSA || M68K
 473        help
 474          Display information about the CPU that U-Boot is running on
 475          when U-Boot starts up. The function print_cpuinfo() is called
 476          to do this.
 477
 478config DISPLAY_BOARDINFO
 479        bool "Display information about the board during early start up"
 480        default y if ARC || ARM || M68K || MIPS || PPC || SANDBOX || XTENSA
 481        help
 482          Display information about the board that U-Boot is running on
 483          when U-Boot starts up. The board function checkboard() is called
 484          to do this.
 485
 486config DISPLAY_BOARDINFO_LATE
 487        bool "Display information about the board during late start up"
 488        help
 489          Display information about the board that U-Boot is running on after
 490          the relocation phase. The board function checkboard() is called to do
 491          this.
 492
 493menu "Start-up hooks"
 494
 495config ARCH_EARLY_INIT_R
 496        bool "Call arch-specific init soon after relocation"
 497        help
 498          With this option U-Boot will call arch_early_init_r() soon after
 499          relocation. Driver model is running by this point, and the cache
 500          is on. Note that board_early_init_r() is called first, if
 501          enabled. This can be used to set up architecture-specific devices.
 502
 503config ARCH_MISC_INIT
 504        bool "Call arch-specific init after relocation, when console is ready"
 505        help
 506          With this option U-Boot will call arch_misc_init() after
 507          relocation to allow miscellaneous arch-dependent initialisation
 508          to be performed. This function should be defined by the board
 509          and will be called after the console is set up, after relocation.
 510
 511config BOARD_EARLY_INIT_F
 512        bool "Call board-specific init before relocation"
 513        help
 514          Some boards need to perform initialisation as soon as possible
 515          after boot. With this option, U-Boot calls board_early_init_f()
 516          after driver model is ready in the pre-relocation init sequence.
 517          Note that the normal serial console is not yet set up, but the
 518          debug UART will be available if enabled.
 519
 520config BOARD_EARLY_INIT_R
 521        bool "Call board-specific init after relocation"
 522        help
 523          Some boards need to perform initialisation as directly after
 524          relocation. With this option, U-Boot calls board_early_init_r()
 525          in the post-relocation init sequence.
 526
 527config BOARD_LATE_INIT
 528        bool "Execute Board late init"
 529        help
 530          Sometimes board require some initialization code that might
 531          require once the actual init done, example saving board specific env,
 532          boot-modes etc. which eventually done at late.
 533
 534          So this config enable the late init code with the help of board_late_init
 535          function which should defined on respective boards.
 536
 537config SYS_FSL_CLK
 538        bool
 539        depends on ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3 || \
 540                (FSL_ESDHC_IMX && (ARCH_MX5 || ARCH_MX6 || ARCH_MX7))
 541        default y
 542        help
 543          Enable to call get_clocks() in board_init_f() for platforms other
 544          than PowerPC or M68k.  This is a legacy option.  If not TARGET_BRPPT2
 545
 546config LAST_STAGE_INIT
 547        bool "Call board-specific as last setup step"
 548        help
 549          Some boards need to perform initialisation immediately before control
 550          is passed to the command-line interpreter (e.g. for initializations
 551          that depend on later phases in the init sequence). With this option,
 552          U-Boot calls last_stage_init() before the command-line interpreter is
 553          started.
 554
 555config MISC_INIT_F
 556        bool "Execute pre-relocation misc init"
 557        help
 558          Enabling this option calls the 'misc_init_f' function in the init
 559          sequence just before DRAM is inited.
 560
 561config MISC_INIT_R
 562        bool "Execute Misc Init"
 563        default y if ARCH_KEYSTONE || ARCH_SUNXI || MPC85xx
 564        default y if ARCH_OMAP2PLUS && !AM33XX
 565        help
 566          Enabling this option calls 'misc_init_r' function
 567
 568config ID_EEPROM
 569        bool "Enable I2C connected system identifier EEPROM"
 570        help
 571          A number of different systems and vendors enable a vendor-specified
 572          EEPROM that contains various identifying features.
 573
 574config PCI_INIT_R
 575        bool "Enumerate PCI buses during init"
 576        depends on PCI
 577        help
 578          With this option U-Boot will call pci_init() soon after relocation,
 579          which will enumerate PCI buses. This is needed, for instance, in the
 580          case of DM PCI-based Ethernet devices, which will not be detected
 581          without having the enumeration performed earlier.
 582
 583endmenu
 584
 585endmenu         # Init options
 586
 587menu "Security support"
 588
 589config HASH
 590        bool # "Support hashing API (SHA1, SHA256, etc.)"
 591        help
 592          This provides a way to hash data in memory using various supported
 593          algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
 594          and the algorithms it supports are defined in common/hash.c. See
 595          also CMD_HASH for command-line access.
 596
 597config AVB_VERIFY
 598        bool "Build Android Verified Boot operations"
 599        depends on LIBAVB
 600        depends on MMC
 601        depends on PARTITION_UUIDS
 602        help
 603          This option enables compilation of bootloader-dependent operations,
 604          used by Android Verified Boot 2.0 library (libavb). Includes:
 605            * Helpers to process strings in order to build OS bootargs.
 606            * Helpers to access MMC, similar to drivers/fastboot/fb_mmc.c.
 607            * Helpers to alloc/init/free avb ops.
 608
 609if AVB_VERIFY
 610
 611config AVB_BUF_ADDR
 612        hex "Define AVB buffer address"
 613        default FASTBOOT_BUF_ADDR
 614        help
 615          AVB requires a buffer for memory transactions. This variable defines the
 616          buffer address.
 617
 618config AVB_BUF_SIZE
 619        hex "Define AVB buffer SIZE"
 620        default FASTBOOT_BUF_SIZE
 621        help
 622          AVB requires a buffer for memory transactions. This variable defines the
 623          buffer size.
 624
 625endif # AVB_VERIFY
 626
 627config SCP03
 628        bool "Build SCP03 - Secure Channel Protocol O3 - controls"
 629        depends on OPTEE || SANDBOX
 630        depends on TEE
 631        help
 632          This option allows U-Boot to enable and or provision SCP03 on an OPTEE
 633          controlled Secured Element.
 634
 635config SPL_HASH
 636        bool # "Support hashing API (SHA1, SHA256, etc.)"
 637        help
 638          This provides a way to hash data in memory using various supported
 639          algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
 640          and the algorithms it supports are defined in common/hash.c. See
 641          also CMD_HASH for command-line access.
 642
 643config TPL_HASH
 644        bool # "Support hashing API (SHA1, SHA256, etc.)"
 645        help
 646          This provides a way to hash data in memory using various supported
 647          algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
 648          and the algorithms it supports are defined in common/hash.c. See
 649          also CMD_HASH for command-line access.
 650
 651config STACKPROTECTOR
 652        bool "Stack Protector buffer overflow detection"
 653        help
 654          Enable stack smash detection through compiler's stack-protector
 655          canary logic
 656
 657config SPL_STACKPROTECTOR
 658        bool "Stack Protector buffer overflow detection for SPL"
 659        depends on STACKPROTECTOR && SPL
 660
 661config TPL_STACKPROTECTOR
 662        bool "Stack Protector buffer overflow detection for TPL"
 663        depends on STACKPROTECTOR && TPL
 664
 665endmenu
 666
 667menu "Update support"
 668
 669config UPDATE_COMMON
 670        bool
 671        select DFU_WRITE_ALT
 672
 673config UPDATE_TFTP
 674        bool "Auto-update using fitImage via TFTP"
 675        depends on FIT
 676        select UPDATE_COMMON
 677        help
 678          This option allows performing update of NOR with data in fitImage
 679          sent via TFTP boot.
 680
 681config UPDATE_TFTP_CNT_MAX
 682        int "The number of connection retries during auto-update"
 683        default 0
 684        depends on UPDATE_TFTP
 685
 686config UPDATE_TFTP_MSEC_MAX
 687        int "Delay in mSec to wait for the TFTP server during auto-update"
 688        default 100
 689        depends on UPDATE_TFTP
 690
 691config UPDATE_FIT
 692        bool "Firmware update using fitImage"
 693        depends on FIT
 694        depends on DFU
 695        select UPDATE_COMMON
 696        help
 697          This option allows performing update of DFU-capable storage with
 698          data in fitImage.
 699
 700config ANDROID_AB
 701        bool "Android A/B updates"
 702        help
 703          If enabled, adds support for the new Android A/B update model. This
 704          allows the bootloader to select which slot to boot from based on the
 705          information provided by userspace via the Android boot_ctrl HAL. This
 706          allows a bootloader to try a new version of the system but roll back
 707          to previous version if the new one didn't boot all the way.
 708
 709endmenu
 710
 711menu "Blob list"
 712
 713config BLOBLIST
 714        bool "Support for a bloblist"
 715        help
 716          This enables support for a bloblist in U-Boot, which can be passed
 717          from TPL to SPL to U-Boot proper (and potentially to Linux). The
 718          blob list supports multiple binary blobs of data, each with a tag,
 719          so that different U-Boot components can store data which can survive
 720          through to the next phase of the boot.
 721
 722config SPL_BLOBLIST
 723        bool "Support for a bloblist in SPL"
 724        depends on BLOBLIST
 725        default y if SPL
 726        help
 727          This enables a bloblist in SPL. If this is the first part of U-Boot
 728          to run, then the bloblist is set up in SPL and passed to U-Boot
 729          proper. If TPL also has a bloblist, then SPL uses the one from there.
 730
 731config TPL_BLOBLIST
 732        bool "Support for a bloblist in TPL"
 733        depends on BLOBLIST
 734        default y if TPL
 735        help
 736          This enables a bloblist in TPL. The bloblist is set up in TPL and
 737          passed to SPL and U-Boot proper.
 738
 739if BLOBLIST
 740
 741choice
 742        prompt "Bloblist location"
 743        help
 744          Select the location of the bloblist, via various means.
 745
 746config BLOBLIST_FIXED
 747        bool "Place bloblist at a fixed address in memory"
 748        help
 749          Select this to used a fixed memory address for the bloblist. If the
 750          bloblist exists at this address from a previous phase, it used as is.
 751          If not it is created at this address in U-Boot.
 752
 753config BLOBLIST_ALLOC
 754        bool "Allocate bloblist"
 755        help
 756          Allocate the bloblist using malloc(). This avoids the need to
 757          specify a fixed address on systems where this is unknown or can
 758          change at runtime.
 759
 760endchoice
 761
 762config BLOBLIST_ADDR
 763        hex "Address of bloblist"
 764        default 0xc000 if SANDBOX
 765        depends on BLOBLIST_FIXED
 766        help
 767          Sets the address of the bloblist, set up by the first part of U-Boot
 768          which runs. Subsequent U-Boot phases typically use the same address.
 769
 770          This is not used if BLOBLIST_ALLOC is selected.
 771
 772config BLOBLIST_SIZE
 773        hex "Size of bloblist"
 774        default 0x400
 775        help
 776          Sets the size of the bloblist in bytes. This must include all
 777          overhead (alignment, bloblist header, record header). The bloblist
 778          is set up in the first part of U-Boot to run (TPL, SPL or U-Boot
 779          proper), and this sane bloblist is used for subsequent phases.
 780
 781config BLOBLIST_SIZE_RELOC
 782        hex "Size of bloblist after relocation"
 783        default BLOBLIST_SIZE if BLOBLIST_FIXED || BLOBLIST_ALLOC
 784        default 0 if BLOBLIST_PASSAGE
 785        help
 786          Sets the size of the bloblist in bytes after relocation. Since U-Boot
 787          has a lot more memory available then, it is possible to use a larger
 788          size than the one set up by SPL. This bloblist is set up during the
 789          relocation process.
 790
 791endif # BLOBLIST
 792
 793if SPL_BLOBLIST
 794
 795choice
 796        prompt "Bloblist location in SPL"
 797        help
 798          Select the location of the bloblist, via various means. Typically
 799          you should use the same value for SPL as for U-Boot, since they need
 800          to look in the same place. But if BLOBLIST_ALLOC is used, then a
 801          fresh bloblist will be created each time, since there is no shared
 802          address (between phases) for the bloblist.
 803
 804config SPL_BLOBLIST_FIXED
 805        bool "Place bloblist at a fixed address in memory"
 806        help
 807          Select this to used a fixed memory address for the bloblist. If the
 808          bloblist exists at this address from a previous phase, it used as is.
 809          If not it is created at this address in SPL.
 810
 811config SPL_BLOBLIST_ALLOC
 812        bool "Allocate bloblist"
 813        help
 814          Allocate the bloblist using malloc(). This avoids the need to
 815          specify a fixed address on systems where this is unknown or can
 816          change at runtime.
 817
 818endchoice
 819
 820endif # SPL_BLOBLIST
 821
 822if TPL_BLOBLIST
 823
 824choice
 825        prompt "Bloblist location in TPL"
 826        help
 827          Select the location of the bloblist, via various means. Typically
 828          you should use the same value for SPL as for U-Boot, since they need
 829          to look in the same place. But if BLOBLIST_ALLOC is used, then a
 830          fresh bloblist will be created each time, since there is no shared
 831          address (between phases) for the bloblist.
 832
 833config TPL_BLOBLIST_FIXED
 834        bool "Place bloblist at a fixed address in memory"
 835        help
 836          Select this to used a fixed memory address for the bloblist. If the
 837          bloblist exists at this address from a previous phase, it used as is.
 838          If not it is created at this address in TPL.
 839
 840config TPL_BLOBLIST_ALLOC
 841        bool "Allocate bloblist"
 842        help
 843          Allocate the bloblist using malloc(). This avoids the need to
 844          specify a fixed address on systems where this is unknown or can
 845          change at runtime.
 846
 847endchoice
 848
 849endif # TPL_BLOBLIST
 850
 851endmenu
 852
 853source "common/spl/Kconfig"
 854
 855config IMAGE_SIGN_INFO
 856        bool
 857        select SHA1
 858        select SHA256
 859        help
 860          Enable image_sign_info helper functions.
 861
 862if IMAGE_SIGN_INFO
 863
 864config SPL_IMAGE_SIGN_INFO
 865        bool
 866        select SHA1
 867        select SHA256
 868        help
 869          Enable image_sign_info helper functions in SPL.
 870
 871endif
 872
 873config FDT_SIMPLEFB
 874        bool "FDT tools for simplefb support"
 875        depends on OF_LIBFDT
 876        help
 877          Enable the fdt tools to manage the simple fb nodes in device tree.
 878          These functions can be used by board to indicate to the OS
 879          the presence of the simple frame buffer with associated reserved
 880          memory
 881