menu "Boot timing" 
 | 
  
 | 
config BOOTSTAGE 
 | 
    bool "Boot timing and reporting" 
 | 
    help 
 | 
      Enable recording of boot time while booting. To use it, insert 
 | 
      calls to bootstage_mark() with a suitable BOOTSTAGE_ID from 
 | 
      bootstage.h. Only a single entry is recorded for each ID. You can 
 | 
      give the entry a name with bootstage_mark_name(). You can also 
 | 
      record elapsed time in a particular stage using bootstage_start() 
 | 
      before starting and bootstage_accum() when finished. Bootstage will 
 | 
      add up all the accumulated time and report it. 
 | 
  
 | 
      Normally, IDs are defined in bootstage.h but a small number of 
 | 
      additional 'user' IDs can be used by passing BOOTSTAGE_ID_ALLOC 
 | 
      as the ID. 
 | 
  
 | 
      Calls to show_boot_progress() will also result in log entries but 
 | 
      these will not have names. 
 | 
  
 | 
config SPL_BOOTSTAGE 
 | 
    bool "Boot timing and reported in SPL" 
 | 
    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 SPL 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 
 | 
    help 
 | 
      Enable output of a boot time report just before the OS is booted. 
 | 
      This shows how long it took U-Boot to go through each stage of the 
 | 
      boot process. The report looks something like this: 
 | 
  
 | 
        Timer summary in microseconds: 
 | 
               Mark    Elapsed  Stage 
 | 
              0          0  reset 
 | 
          3,575,678  3,575,678  board_init_f start 
 | 
          3,575,695         17  arch_cpu_init A9 
 | 
          3,575,777         82  arch_cpu_init done 
 | 
          3,659,598     83,821  board_init_r start 
 | 
          3,910,375    250,777  main_loop 
 | 
         29,916,167 26,005,792  bootm_start 
 | 
         30,361,327    445,160  start_kernel 
 | 
  
 | 
config BOOTSTAGE_USER_COUNT 
 | 
    int "Number of boot ID numbers available for user use" 
 | 
    default 20 
 | 
    help 
 | 
      This is the number of available user bootstage records. 
 | 
      Each time you call bootstage_mark(BOOTSTAGE_ID_ALLOC, ...) 
 | 
      a new ID will be allocated from this stash. If you exceed 
 | 
      the limit, recording will stop. 
 | 
  
 | 
config BOOTSTAGE_RECORD_COUNT 
 | 
    int "Number of boot stage records to store" 
 | 
    default 30 
 | 
    help 
 | 
      This is the size of the bootstage record list and is the maximum 
 | 
      number of bootstage records that can be recorded. 
 | 
  
 | 
config BOOTSTAGE_FDT 
 | 
    bool "Store boot timing information in the OS device tree" 
 | 
    depends on BOOTSTAGE 
 | 
    help 
 | 
      Stash the bootstage information in the FDT. A root 'bootstage' 
 | 
      node is created with each bootstage id as a child. Each child 
 | 
      has a 'name' property and either 'mark' containing the 
 | 
      mark time in microseconds, or 'accum' containing the 
 | 
      accumulated time for that bootstage id in microseconds. 
 | 
      For example: 
 | 
  
 | 
        bootstage { 
 | 
            154 { 
 | 
                name = "board_init_f"; 
 | 
                mark = <3575678>; 
 | 
            }; 
 | 
            170 { 
 | 
                name = "lcd"; 
 | 
                accum = <33482>; 
 | 
            }; 
 | 
        }; 
 | 
  
 | 
      Code in the Linux kernel can find this in /proc/devicetree. 
 | 
  
 | 
config BOOTSTAGE_STASH 
 | 
    bool "Stash the boot timing information in memory before booting OS" 
 | 
    depends on BOOTSTAGE 
 | 
    help 
 | 
      Some OSes do not support device tree. Bootstage can instead write 
 | 
      the boot timing information in a binary format at a given address. 
 | 
      This happens through a call to bootstage_stash(), typically in 
 | 
      the CPU's cleanup_before_linux() function. You can use the 
 | 
      'bootstage stash' and 'bootstage unstash' commands to do this on 
 | 
      the command line. 
 | 
  
 | 
config BOOTSTAGE_STASH_ADDR 
 | 
    hex "Address to stash boot timing information" 
 | 
    default 0 
 | 
    help 
 | 
      Provide an address which will not be overwritten by the OS when it 
 | 
      starts, so that it can read this information when ready. 
 | 
  
 | 
config BOOTSTAGE_STASH_SIZE 
 | 
    hex "Size of boot timing stash region" 
 | 
    default 0x1000 
 | 
    help 
 | 
      This should be large enough to hold the bootstage stash. A value of 
 | 
      4096 (4KiB) is normally plenty. 
 | 
  
 | 
config BOOTSTAGE_PRINTF_TIMESTAMP 
 | 
    bool "Support printf timestamp" 
 | 
    help 
 | 
      Enabling this will support printf timestamp. 
 | 
endmenu 
 | 
  
 | 
menu "Boot media" 
 | 
  
 | 
config NOR_BOOT 
 | 
    bool "Support for booting from NOR flash" 
 | 
    depends on NOR 
 | 
    help 
 | 
      Enabling this will make a U-Boot binary that is capable of being 
 | 
      booted via NOR.  In this case we will enable certain pinmux early 
 | 
      as the ROM only partially sets up pinmux.  We also default to using 
 | 
      NOR for environment. 
 | 
  
 | 
config NAND_BOOT 
 | 
    bool "Support for booting from NAND flash" 
 | 
    default n 
 | 
    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, 
 | 
      some not. 
 | 
  
 | 
config ONENAND_BOOT 
 | 
    bool "Support for booting from ONENAND" 
 | 
    default n 
 | 
    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, 
 | 
      some not. 
 | 
  
 | 
config QSPI_BOOT 
 | 
    bool "Support for booting from QSPI flash" 
 | 
    default n 
 | 
    help 
 | 
      Enabling this will make a U-Boot binary that is capable of being 
 | 
      booted via QSPI flash. This is not a must, some SoCs need this, 
 | 
      some not. 
 | 
  
 | 
config SATA_BOOT 
 | 
    bool "Support for booting from SATA" 
 | 
    default n 
 | 
    help 
 | 
      Enabling this will make a U-Boot binary that is capable of being 
 | 
      booted via SATA. This is not a must, some SoCs need this, 
 | 
      some not. 
 | 
  
 | 
config SD_BOOT 
 | 
    bool "Support for booting from SD/EMMC" 
 | 
    default n 
 | 
    help 
 | 
      Enabling this will make a U-Boot binary that is capable of being 
 | 
      booted via SD/EMMC. This is not a must, some SoCs need this, 
 | 
      some not. 
 | 
  
 | 
config SPI_BOOT 
 | 
    bool "Support for booting from SPI flash" 
 | 
    default n 
 | 
    help 
 | 
      Enabling this will make a U-Boot binary that is capable of being 
 | 
      booted via SPI flash. This is not a must, some SoCs need this, 
 | 
      some not. 
 | 
  
 | 
endmenu 
 | 
  
 | 
config PASS_DEVICE_SERIAL_BY_FDT 
 | 
    bool "Pass the device serial number to kernel through devicetree" 
 | 
    default y 
 | 
    help 
 | 
      Enabling this will pass a device serial number to kernel by devicetree 
 | 
      "serial-number" properties. 
 | 
  
 | 
config BOOTDELAY 
 | 
    int "delay in seconds before automatically booting" 
 | 
    default 2 
 | 
    depends on AUTOBOOT 
 | 
    help 
 | 
      Delay before automatically running bootcmd; 
 | 
      set to 0 to autoboot with no delay, but you can stop it by key input. 
 | 
      set to -1 to disable autoboot. 
 | 
      set to -2 to autoboot with no delay and not check for abort 
 | 
  
 | 
      See doc/README.autoboot for details. 
 | 
  
 | 
config USE_BOOTARGS 
 | 
    bool "Enable boot arguments" 
 | 
    help 
 | 
      Provide boot arguments to bootm command. Boot arguments are specified 
 | 
      in CONFIG_BOOTARGS option. Enable this option to be able to specify 
 | 
      CONFIG_BOOTARGS string. If this option is disabled, CONFIG_BOOTARGS 
 | 
      will be undefined and won't take any space in U-Boot image. 
 | 
  
 | 
config BOOTARGS 
 | 
    string "Boot arguments" 
 | 
    depends on USE_BOOTARGS 
 | 
    help 
 | 
      This can be used to pass arguments to the bootm command. The value of 
 | 
      CONFIG_BOOTARGS goes into the environment value "bootargs". Note that 
 | 
      this value will also override the "chosen" node in FDT blob. 
 | 
  
 | 
config IO_TRACE 
 | 
    bool "Enable iotrace" 
 | 
    help 
 | 
      This enable iotrace feature. 
 | 
  
 | 
menu "Console" 
 | 
  
 | 
config MENU 
 | 
    bool 
 | 
    help 
 | 
      This is the library functionality to provide a text-based menu of 
 | 
      choices for the user to make choices with. 
 | 
  
 | 
config CONSOLE_RECORD 
 | 
    bool "Console recording" 
 | 
    help 
 | 
      This provides a way to record console output (and provide console 
 | 
      input) through circular buffers. This is mostly useful for testing. 
 | 
      Console output is recorded even when the console is silent. 
 | 
      To enable console recording, call console_record_reset_enable() 
 | 
      from your code. 
 | 
  
 | 
config CONSOLE_RECORD_OUT_SIZE 
 | 
    hex "Output buffer size" 
 | 
    depends on CONSOLE_RECORD 
 | 
    default 0x400 if CONSOLE_RECORD && !ARCH_ROCKCHIP 
 | 
    default 0x2000 if CONSOLE_RECORD && ARCH_ROCKCHIP 
 | 
    help 
 | 
      Set the size of the console output buffer. When this fills up, no 
 | 
      more data will be recorded until some is removed. The buffer is 
 | 
      allocated immediately after the malloc() region is ready. 
 | 
  
 | 
config CONSOLE_RECORD_IN_SIZE 
 | 
    hex "Input buffer size" 
 | 
    depends on CONSOLE_RECORD 
 | 
    default 0x100 if CONSOLE_RECORD 
 | 
    help 
 | 
      Set the size of the console input buffer. When this contains data, 
 | 
      tstc() and getc() will use this in preference to real device input. 
 | 
      The buffer is allocated immediately after the malloc() region is 
 | 
      ready. 
 | 
  
 | 
config CONSOLE_DISABLE_CLI 
 | 
    bool "disable ctrlc" 
 | 
    default n 
 | 
    help 
 | 
      This disable CLI interactive in verified-boot. 
 | 
  
 | 
config DISABLE_CONSOLE 
 | 
    bool "disable console in & out" 
 | 
    help 
 | 
     This 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 
 | 
      This option allows the console to be silenced, meaning that no 
 | 
      output will appear on the console devices. This is controlled by 
 | 
      setting the environment vaariable 'silent' to a non-empty value. 
 | 
      Note this also silences the console when booting Linux. 
 | 
  
 | 
      When the console is set up, the variable is checked, and the 
 | 
      GD_FLG_SILENT flag is set. Changing the environment variable later 
 | 
      will update the flag. 
 | 
  
 | 
config SILENT_U_BOOT_ONLY 
 | 
    bool "Only silence the U-Boot console" 
 | 
    depends on SILENT_CONSOLE 
 | 
    help 
 | 
      Normally when the U-Boot console is silenced, Linux's console is 
 | 
      also silenced (assuming the board boots into Linux). This option 
 | 
      allows the linux console to operate normally, even if U-Boot's 
 | 
      is silenced. 
 | 
  
 | 
config SILENT_CONSOLE_UPDATE_ON_SET 
 | 
    bool "Changes to the 'silent' environment variable update immediately" 
 | 
    depends on SILENT_CONSOLE 
 | 
    default y if SILENT_CONSOLE 
 | 
    help 
 | 
      When the 'silent' environment variable is changed, update the 
 | 
      console silence flag immediately. This allows 'setenv' to be used 
 | 
      to silence or un-silence the console. 
 | 
  
 | 
      The effect is that any change to the variable will affect the 
 | 
      GD_FLG_SILENT flag. 
 | 
  
 | 
config SILENT_CONSOLE_UPDATE_ON_RELOC 
 | 
    bool "Allow flags to take effect on relocation" 
 | 
    depends on SILENT_CONSOLE 
 | 
    help 
 | 
      In some cases the environment is not available until relocation 
 | 
      (e.g. NAND). This option makes the value of the 'silent' 
 | 
      environment variable take effect at relocation. 
 | 
  
 | 
config PRE_CONSOLE_BUFFER 
 | 
    bool "Buffer characters before the console is available" 
 | 
    help 
 | 
      Prior to the console being initialised (i.e. serial UART 
 | 
      initialised etc) all console output is silently discarded. 
 | 
      Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to 
 | 
      buffer any console messages prior to the console being 
 | 
      initialised to a buffer. The buffer is a circular buffer, so 
 | 
      if it overflows, earlier output is discarded. 
 | 
  
 | 
      Note that this is not currently supported in SPL. It would be 
 | 
      useful to be able to share the pre-console buffer with SPL. 
 | 
  
 | 
config PRE_CON_BUF_SZ 
 | 
    int "Sets the size of the pre-console buffer" 
 | 
    depends on PRE_CONSOLE_BUFFER 
 | 
    default 4096 
 | 
    help 
 | 
      The size of the pre-console buffer affects how much console output 
 | 
      can be held before it overflows and starts discarding earlier 
 | 
      output. Normally there is very little output at this early stage, 
 | 
      unless debugging is enabled, so allow enough for ~10 lines of 
 | 
      text. 
 | 
  
 | 
      This is a useful feature if you are using a video console and 
 | 
      want to see the full boot output on the console. Without this 
 | 
      option only the post-relocation output will be displayed. 
 | 
  
 | 
config PRE_CON_BUF_ADDR 
 | 
    hex "Address of the pre-console buffer" 
 | 
    depends on PRE_CONSOLE_BUFFER 
 | 
    default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I 
 | 
    default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I 
 | 
    help 
 | 
      This sets the start address of the pre-console buffer. This must 
 | 
      be in available memory and is accessed before relocation and 
 | 
      possibly before DRAM is set up. Therefore choose an address 
 | 
      carefully. 
 | 
  
 | 
      We should consider removing this option and allocating the memory 
 | 
      in board_init_f_init_reserve() instead. 
 | 
  
 | 
config CONSOLE_MUX 
 | 
    bool "Enable console multiplexing" 
 | 
    default y if DM_VIDEO || VIDEO || LCD 
 | 
    help 
 | 
      This allows multiple devices to be used for each console 'file'. 
 | 
      For example, stdout can be set to go to serial and video. 
 | 
      Similarly, stdin can be set to come from serial and keyboard. 
 | 
      Input can be provided from either source. Console multiplexing 
 | 
      adds a small amount of size to U-Boot.  Changes to the environment 
 | 
      variables stdout, stdin and stderr will take effect immediately. 
 | 
  
 | 
config SYS_CONSOLE_IS_IN_ENV 
 | 
    bool "Select console devices from the environment" 
 | 
    default y if CONSOLE_MUX 
 | 
    help 
 | 
      This allows multiple input/output devices to be set at boot time. 
 | 
      For example, if stdout is set to "serial,video" then output will 
 | 
      be sent to both the serial and video devices on boot. The 
 | 
      environment variables can be updated after boot to change the 
 | 
      input/output devices. 
 | 
  
 | 
config SYS_CONSOLE_OVERWRITE_ROUTINE 
 | 
    bool "Allow board control over console overwriting" 
 | 
    help 
 | 
      If this is enabled, and the board-specific function 
 | 
      overwrite_console() returns 1, the stdin, stderr and stdout are 
 | 
      switched to the serial port, else the settings in the environment 
 | 
      are used. If this is not enabled, the console will not be switched 
 | 
      to serial. 
 | 
  
 | 
config SYS_CONSOLE_ENV_OVERWRITE 
 | 
    bool "Update environment variables during console init" 
 | 
    help 
 | 
      The console environment variables (stdout, stdin, stderr) can be 
 | 
      used to determine the correct console devices on start-up. This 
 | 
      option writes the console devices to these variables on console 
 | 
      start-up (after relocation). This causes the environment to be 
 | 
      updated to match the console devices actually chosen. 
 | 
  
 | 
config SYS_CONSOLE_INFO_QUIET 
 | 
    bool "Don't display the console devices on boot" 
 | 
    help 
 | 
      Normally U-Boot displays the current settings for stdout, stdin 
 | 
      and stderr on boot when the post-relocation console is set up. 
 | 
      Enable this option to supress this output. It can be obtained by 
 | 
      calling stdio_print_current_devices() from board code. 
 | 
  
 | 
config SYS_STDIO_DEREGISTER 
 | 
    bool "Allow deregistering stdio devices" 
 | 
    default y if USB_KEYBOARD 
 | 
    help 
 | 
      Generally there is no need to deregister stdio devices since they 
 | 
      are never deactivated. But if a stdio device is used which can be 
 | 
      removed (for example a USB keyboard) then this option can be 
 | 
      enabled to ensure this is handled correctly. 
 | 
  
 | 
endmenu 
 | 
  
 | 
menu "Logging" 
 | 
  
 | 
config LOG 
 | 
    bool "Enable logging support" 
 | 
    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" 
 | 
    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 LOG_MAX_LEVEL 
 | 
    int "Maximum log level to record" 
 | 
    depends on LOG 
 | 
    default 5 
 | 
    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 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. 
 | 
  
 | 
endmenu 
 | 
  
 | 
config DEFAULT_FDT_FILE 
 | 
    string "Default fdt file" 
 | 
    help 
 | 
      This option is used to set the default fdt file to boot OS. 
 | 
  
 | 
config VERSION_VARIABLE 
 | 
    bool "add U-Boot environment variable vers" 
 | 
    default n 
 | 
    help 
 | 
      If this variable is defined, an environment variable 
 | 
      named "ver" is created by U-Boot showing the U-Boot 
 | 
      version as printed by the "version" command. 
 | 
      Any change to this variable will be reverted at the 
 | 
      next reset. 
 | 
  
 | 
config BOARD_LATE_INIT 
 | 
    bool 
 | 
    help 
 | 
      Sometimes board require some initialization code that might 
 | 
      require once the actual init done, example saving board specific env, 
 | 
      boot-modes etc. which eventually done at late. 
 | 
  
 | 
      So this config enable the late init code with the help of board_late_init 
 | 
      function which should defined on respective boards. 
 | 
  
 | 
config DISPLAY_CPUINFO 
 | 
    bool "Display information about the CPU during start up" 
 | 
    default y if ARM || NIOS2 || X86 || XTENSA 
 | 
    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 
 | 
    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. 
 | 
  
 | 
menu "Start-up hooks" 
 | 
  
 | 
config ARCH_EARLY_INIT_R 
 | 
    bool "Call arch-specific init soon after relocation" 
 | 
    help 
 | 
      With this option U-Boot will call arch_early_init_r() soon after 
 | 
      relocation. Driver model is running by this point, and the cache 
 | 
      is on. Note that board_early_init_r() is called first, if 
 | 
      enabled. This can be used to set up architecture-specific devices. 
 | 
  
 | 
config ARCH_MISC_INIT 
 | 
    bool "Call arch-specific init after relocation, when console is ready" 
 | 
    help 
 | 
      With this option U-Boot will call arch_misc_init() after 
 | 
      relocation to allow miscellaneous arch-dependent initialisation 
 | 
      to be performed. This function should be defined by the board 
 | 
      and will be called after the console is set up, after relocaiton. 
 | 
  
 | 
config BOARD_EARLY_INIT_F 
 | 
    bool "Call board-specific init before relocation" 
 | 
    help 
 | 
      Some boards need to perform initialisation as soon as possible 
 | 
      after boot. With this option, U-Boot calls board_early_init_f() 
 | 
      after driver model is ready in the pre-relocation init sequence. 
 | 
      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. 
 | 
  
 | 
endmenu 
 | 
  
 | 
menu "Android features support" 
 | 
config ANDROID_BOOTLOADER 
 | 
    bool "Support for Android Bootloader boot flow" 
 | 
    default n 
 | 
    depends on ANDROID_BOOT_IMAGE 
 | 
    help 
 | 
      If enabled, adds support to boot an Android device following the 
 | 
      Android Bootloader boot flow. This flow requires an Android Bootloader 
 | 
      to handle the Android Bootloader Message stored in the Boot Control 
 | 
      Block (BCB), normally in the "misc" partition of an Android device. 
 | 
      The BCB is used to determine the boot mode of the device (normal mode, 
 | 
      recovery mode or bootloader mode) and, if enabled, the slot to boot 
 | 
      from in devices with multiple boot slots (A/B devices). 
 | 
  
 | 
config ANDROID_AB 
 | 
    bool "Support for Android A/B updates" 
 | 
    default n 
 | 
    help 
 | 
      If enabled, adds support for the new Android A/B update model. This 
 | 
      allows the bootloader to select which slot to boot from based on the 
 | 
      information provided by userspace via the Android boot_ctrl HAL. This 
 | 
      allows a bootloader to try a new version of the system but roll back 
 | 
      to previous version if the new one didn't boot all the way. 
 | 
  
 | 
config ANDROID_WRITE_KEYBOX 
 | 
    bool "Support Write Keybox" 
 | 
    default y 
 | 
    depends on OPTEE_CLIENT 
 | 
    help 
 | 
      This enable support write keybox to secure storage. 
 | 
  
 | 
config ANDROID_AVB 
 | 
    bool"Support Android Verified Boot" 
 | 
    default n 
 | 
    help 
 | 
      If enabled, adds support the android verified boot. The avb get the 
 | 
      digital signature and key from vemeta. Then use the RSA2048 and sha256 
 | 
      to verify the boot images. The vbmeta must be matched with images, 
 | 
      if not, verify failed. 
 | 
  
 | 
config ANDROID_AVB_ROLLBACK_INDEX 
 | 
    bool"Support Android Verified Boot Rollback Index" 
 | 
    default n 
 | 
    help 
 | 
      If enabled, support the android verified boot rollback index. 
 | 
  
 | 
config ANDROID_KEYMASTER_CA 
 | 
    bool "Support Keymaster CA" 
 | 
    default y 
 | 
    depends on OPTEE_CLIENT 
 | 
    help 
 | 
     This enable support read/write data in keymaster. 
 | 
  
 | 
config ANDROID_BOOT_IMAGE 
 | 
    bool "Enable support for Android Boot Images" 
 | 
    help 
 | 
      This enables support for booting images which use the Android 
 | 
      image format header. 
 | 
  
 | 
config ANDROID_BOOT_IMAGE_HASH 
 | 
    bool "Enable support for Android image hash verify" 
 | 
    depends on ANDROID_BOOT_IMAGE 
 | 
    select SHA1 if !DM_CRYPTO 
 | 
    help 
 | 
      This enables support for Android image hash verify, the mkbootimg always use 
 | 
      SHA1 for images. 
 | 
endmenu 
 | 
  
 | 
config SKIP_RELOCATE_UBOOT 
 | 
    bool "Skip U-Boot relocation" 
 | 
    default y if !ARM64 && !ARM64_BOOT_AARCH32 
 | 
    help 
 | 
      This enable support for skipping U-Boot relocation. 
 | 
  
 | 
menu "Security support" 
 | 
  
 | 
config 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 BOARD_RNG_SEED 
 | 
    bool "Provide /chosen/rng-seed property to the linux kernel" 
 | 
    help 
 | 
      Selecting this option requires the board to define a 
 | 
      board_rng_seed() function, which should return a buffer 
 | 
      which will be used to populate the /chosen/rng-seed property 
 | 
      in the device tree for the OS being booted. 
 | 
  
 | 
      It is up to the board code (and more generally the whole 
 | 
      BSP) where and how to store (or generate) such a seed, how 
 | 
      to ensure a given seed is only used once, how to create a 
 | 
      new seed for use on subsequent boots, and whether or not the 
 | 
      kernel should account any entropy from the given seed. 
 | 
  
 | 
endmenu 
 | 
  
 | 
menu "MT support" 
 | 
  
 | 
config MP_BOOT 
 | 
    bool "Support MT boot" 
 | 
    default n 
 | 
  
 | 
config MP_BOOT_BOOTM 
 | 
    bool "MT simple bootm image" 
 | 
    depends on MP_BOOT 
 | 
  
 | 
endmenu 
 | 
  
 | 
source "common/spl/Kconfig" 
 | 
source "common/usbplug/Kconfig" 
 |