uboot/cmd/Kconfig
<<
>>
Prefs
   1menu "Command line interface"
   2
   3config CMDLINE
   4        bool "Support U-Boot commands"
   5        default y
   6        help
   7          Enable U-Boot's command-line functions. This provides a means
   8          to enter commands into U-Boot for a wide variety of purposes. It
   9          also allows scripts (containing commands) to be executed.
  10          Various commands and command categorys can be indivdually enabled.
  11          Depending on the number of commands enabled, this can add
  12          substantially to the size of U-Boot.
  13
  14config HUSH_PARSER
  15        bool "Use hush shell"
  16        depends on CMDLINE
  17        help
  18          This option enables the "hush" shell (from Busybox) as command line
  19          interpreter, thus enabling powerful command line syntax like
  20          if...then...else...fi conditionals or `&&' and '||'
  21          constructs ("shell scripts").
  22
  23          If disabled, you get the old, much simpler behaviour with a somewhat
  24          smaller memory footprint.
  25
  26config CMDLINE_EDITING
  27        bool "Enable command line editing"
  28        depends on CMDLINE
  29        default y
  30        help
  31          Enable editing and History functions for interactive command line
  32          input operations
  33
  34config AUTO_COMPLETE
  35        bool "Enable auto complete using TAB"
  36        depends on CMDLINE
  37        default y
  38        help
  39          Enable auto completion of commands using TAB.
  40
  41config SYS_LONGHELP
  42        bool "Enable long help messages"
  43        depends on CMDLINE
  44        default y if CMDLINE
  45        help
  46          Defined when you want long help messages included
  47          Do not set this option when short of memory.
  48
  49config SYS_PROMPT
  50        string "Shell prompt"
  51        default "=> "
  52        help
  53          This string is displayed in the command line to the left of the
  54          cursor.
  55
  56config SYS_XTRACE
  57        string "Command execution tracer"
  58        depends on CMDLINE
  59        default y if CMDLINE
  60        help
  61          This option enables the possiblity to print all commands before
  62          executing them and after all variables are evaluated (similar
  63          to Bash's xtrace/'set -x' feature).
  64          To enable the tracer a variable "xtrace" needs to be defined in
  65          the environment.
  66
  67menu "Autoboot options"
  68
  69config AUTOBOOT
  70        bool "Autoboot"
  71        default y
  72        help
  73          This enables the autoboot.  See doc/README.autoboot for detail.
  74
  75config AUTOBOOT_KEYED
  76        bool "Stop autobooting via specific input key / string"
  77        default n
  78        help
  79          This option enables stopping (aborting) of the automatic
  80          boot feature only by issuing a specific input key or
  81          string. If not enabled, any input key will abort the
  82          U-Boot automatic booting process and bring the device
  83          to the U-Boot prompt for user input.
  84
  85config AUTOBOOT_PROMPT
  86        string "Autoboot stop prompt"
  87        depends on AUTOBOOT_KEYED
  88        default "Autoboot in %d seconds\\n"
  89        help
  90          This string is displayed before the boot delay selected by
  91          CONFIG_BOOTDELAY starts. If it is not defined there is no
  92          output indicating that autoboot is in progress.
  93
  94          Note that this define is used as the (only) argument to a
  95          printf() call, so it may contain '%' format specifications,
  96          provided that it also includes, sepearated by commas exactly
  97          like in a printf statement, the required arguments. It is
  98          the responsibility of the user to select only such arguments
  99          that are valid in the given context.
 100
 101config AUTOBOOT_ENCRYPTION
 102        bool "Enable encryption in autoboot stopping"
 103        depends on AUTOBOOT_KEYED
 104        help
 105          This option allows a string to be entered into U-Boot to stop the
 106          autoboot. The string itself is hashed and compared against the hash
 107          in the environment variable 'bootstopkeysha256'. If it matches then
 108          boot stops and a command-line prompt is presented.
 109
 110          This provides a way to ship a secure production device which can also
 111          be accessed at the U-Boot command line.
 112
 113config AUTOBOOT_DELAY_STR
 114        string "Delay autobooting via specific input key / string"
 115        depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION
 116        help
 117          This option delays the automatic boot feature by issuing
 118          a specific input key or string. If CONFIG_AUTOBOOT_DELAY_STR
 119          or the environment variable "bootdelaykey" is specified
 120          and this string is received from console input before
 121          autoboot starts booting, U-Boot gives a command prompt. The
 122          U-Boot prompt will time out if CONFIG_BOOT_RETRY_TIME is
 123          used, otherwise it never times out.
 124
 125config AUTOBOOT_STOP_STR
 126        string "Stop autobooting via specific input key / string"
 127        depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION
 128        help
 129          This option enables stopping (aborting) of the automatic
 130          boot feature only by issuing a specific input key or
 131          string. If CONFIG_AUTOBOOT_STOP_STR or the environment
 132          variable "bootstopkey" is specified and this string is
 133          received from console input before autoboot starts booting,
 134          U-Boot gives a command prompt. The U-Boot prompt never
 135          times out, even if CONFIG_BOOT_RETRY_TIME is used.
 136
 137config AUTOBOOT_KEYED_CTRLC
 138        bool "Enable Ctrl-C autoboot interruption"
 139        depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION
 140        default n
 141        help
 142          This option allows for the boot sequence to be interrupted
 143          by ctrl-c, in addition to the "bootdelaykey" and "bootstopkey".
 144          Setting this variable provides an escape sequence from the
 145          limited "password" strings.
 146
 147config AUTOBOOT_STOP_STR_SHA256
 148        string "Stop autobooting via SHA256 encrypted password"
 149        depends on AUTOBOOT_KEYED && AUTOBOOT_ENCRYPTION
 150        help
 151          This option adds the feature to only stop the autobooting,
 152          and therefore boot into the U-Boot prompt, when the input
 153          string / password matches a values that is encypted via
 154          a SHA256 hash and saved in the environment.
 155
 156config AUTOBOOT_USE_MENUKEY
 157        bool "Allow a specify key to run a menu from the environment"
 158        depends on !AUTOBOOT_KEYED
 159        help
 160          If a specific key is pressed to stop autoboot, then the commands in
 161          the environment variable 'menucmd' are executed before boot starts.
 162
 163config AUTOBOOT_MENUKEY
 164        int "ASCII value of boot key to show a menu"
 165        default 0
 166        depends on AUTOBOOT_USE_MENUKEY
 167        help
 168          If this key is pressed to stop autoboot, then the commands in the
 169          environment variable 'menucmd' will be executed before boot starts.
 170          For example, 33 means "!" in ASCII, so pressing ! at boot would take
 171          this action.
 172
 173config AUTOBOOT_MENU_SHOW
 174        bool "Show a menu on boot"
 175        depends on CMD_BOOTMENU
 176        help
 177          This enables the boot menu, controlled by environment variables
 178          defined by the board. The menu starts after running the 'preboot'
 179          environmnent variable (if enabled) and before handling the boot delay.
 180          See README.bootmenu for more details.
 181
 182endmenu
 183
 184config BUILD_BIN2C
 185        bool
 186
 187comment "Commands"
 188
 189menu "Info commands"
 190
 191config CMD_BDI
 192        bool "bdinfo"
 193        default y
 194        help
 195          Print board info
 196
 197config CMD_CONFIG
 198        bool "config"
 199        default SANDBOX
 200        select BUILD_BIN2C
 201        help
 202          Print ".config" contents.
 203
 204          If this option is enabled, the ".config" file contents are embedded
 205          in the U-Boot image and can be printed on the console by the "config"
 206          command.  This provides information of which options are enabled on
 207          the running U-Boot.
 208
 209config CMD_CONSOLE
 210        bool "coninfo"
 211        default y
 212        help
 213          Print console devices and information.
 214
 215config CMD_CPU
 216        bool "cpu"
 217        help
 218          Print information about available CPUs. This normally shows the
 219          number of CPUs, type (e.g. manufacturer, architecture, product or
 220          internal name) and clock frequency. Other information may be
 221          available depending on the CPU driver.
 222
 223config CMD_LICENSE
 224        bool "license"
 225        select BUILD_BIN2C
 226        help
 227          Print GPL license text
 228
 229config CMD_REGINFO
 230        bool "reginfo"
 231        depends on PPC
 232        help
 233          Register dump
 234
 235endmenu
 236
 237menu "Boot commands"
 238
 239config CMD_BOOTD
 240        bool "bootd"
 241        default y
 242        help
 243          Run the command stored in the environment "bootcmd", i.e.
 244          "bootd" does the same thing as "run bootcmd".
 245
 246config CMD_BOOTM
 247        bool "bootm"
 248        default y
 249        help
 250          Boot an application image from the memory.
 251
 252config CMD_BOOTZ
 253        bool "bootz"
 254        help
 255          Boot the Linux zImage
 256
 257config CMD_BOOTI
 258        bool "booti"
 259        depends on ARM64 || RISCV
 260        default y
 261        help
 262          Boot an AArch64 Linux Kernel image from memory.
 263
 264config CMD_BOOTEFI
 265        bool "bootefi"
 266        depends on EFI_LOADER
 267        default y
 268        help
 269          Boot an EFI image from memory.
 270
 271config BOOTM_LINUX
 272        bool "Support booting Linux OS images"
 273        depends on CMD_BOOTM || CMD_BOOTZ || CMD_BOOTI
 274        default y
 275        help
 276          Support booting the Linux kernel directly via a command such as bootm
 277          or booti or bootz.
 278
 279config BOOTM_NETBSD
 280        bool "Support booting NetBSD (non-EFI) loader images"
 281        depends on CMD_BOOTM
 282        default y
 283        help
 284          Support booting NetBSD via the bootm command.
 285
 286config BOOTM_OPENRTOS
 287        bool "Support booting OPENRTOS / FreeRTOS images"
 288        depends on CMD_BOOTM
 289        help
 290          Support booting OPENRTOS / FreeRTOS via the bootm command.
 291
 292config BOOTM_OSE
 293        bool "Support booting Enea OSE images"
 294        depends on CMD_BOOTM
 295        help
 296          Support booting Enea OSE images via the bootm command.
 297
 298config BOOTM_PLAN9
 299        bool "Support booting Plan9 OS images"
 300        depends on CMD_BOOTM
 301        default y
 302        help
 303          Support booting Plan9 images via the bootm command.
 304
 305config BOOTM_RTEMS
 306        bool "Support booting RTEMS OS images"
 307        depends on CMD_BOOTM
 308        default y
 309        help
 310          Support booting RTEMS images via the bootm command.
 311
 312config BOOTM_VXWORKS
 313        bool "Support booting VxWorks OS images"
 314        depends on CMD_BOOTM
 315        default y
 316        help
 317          Support booting VxWorks images via the bootm command.
 318
 319config CMD_BOOTEFI_HELLO_COMPILE
 320        bool "Compile a standard EFI hello world binary for testing"
 321        depends on CMD_BOOTEFI && !CPU_V7M && !SANDBOX
 322        default y
 323        help
 324          This compiles a standard EFI hello world application with U-Boot so
 325          that it can be used with the test/py testing framework. This is useful
 326          for testing that EFI is working at a basic level, and for bringing
 327          up EFI support on a new architecture.
 328
 329          No additional space will be required in the resulting U-Boot binary
 330          when this option is enabled.
 331
 332config CMD_BOOTEFI_HELLO
 333        bool "Allow booting a standard EFI hello world for testing"
 334        depends on CMD_BOOTEFI_HELLO_COMPILE
 335        help
 336          This adds a standard EFI hello world application to U-Boot so that
 337          it can be used with the 'bootefi hello' command. This is useful
 338          for testing that EFI is working at a basic level, and for bringing
 339          up EFI support on a new architecture.
 340
 341source lib/efi_selftest/Kconfig
 342
 343config CMD_BOOTMENU
 344        bool "bootmenu"
 345        select MENU
 346        help
 347          Add an ANSI terminal boot menu command.
 348
 349config CMD_DTIMG
 350        bool "dtimg"
 351        help
 352          Android DTB/DTBO image manipulation commands. Read dtb/dtbo files from
 353          image into RAM, dump image structure information, etc. Those dtb/dtbo
 354          files should be merged in one dtb further, which needs to be passed to
 355          the kernel, as part of a boot process.
 356
 357config CMD_ELF
 358        bool "bootelf, bootvx"
 359        default y
 360        help
 361          Boot an ELF/vxWorks image from the memory.
 362
 363config CMD_FDT
 364        bool "Flattened Device Tree utility commands"
 365        default y
 366        depends on OF_LIBFDT
 367        help
 368          Do FDT related setup before booting into the Operating System.
 369
 370config CMD_GO
 371        bool "go"
 372        default y
 373        help
 374          Start an application at a given address.
 375
 376config CMD_RUN
 377        bool "run"
 378        default y
 379        help
 380          Run the command in the given environment variable.
 381
 382config CMD_IMI
 383        bool "iminfo"
 384        default y
 385        help
 386          Print header information for application image.
 387
 388config CMD_IMLS
 389        bool "imls"
 390        help
 391          List all images found in flash
 392
 393config CMD_XIMG
 394        bool "imxtract"
 395        default y
 396        help
 397          Extract a part of a multi-image.
 398
 399config CMD_SPL
 400        bool "spl export - Export boot information for Falcon boot"
 401        depends on SPL
 402        help
 403          Falcon mode allows booting directly from SPL into an Operating
 404          System such as Linux, thus skipping U-Boot proper. See
 405          doc/README.falcon for full information about how to use this
 406          command.
 407
 408config CMD_SPL_NAND_OFS
 409        hex "Offset of OS args or dtb for Falcon-mode NAND boot"
 410        depends on CMD_SPL && (TPL_NAND_SUPPORT || SPL_NAND_SUPPORT)
 411        default 0
 412        help
 413          This provides the offset of the command line arguments for Linux
 414          when booting from NAND in Falcon mode.  See doc/README.falcon
 415          for full information about how to use this option (and also see
 416          board/gateworks/gw_ventana/README for an example).
 417
 418config CMD_SPL_NOR_OFS
 419        hex "Offset of OS args or dtb for Falcon-mode NOR boot"
 420        depends on CMD_SPL && SPL_NOR_SUPPORT
 421        default 0
 422        help
 423          This provides the offset of the command line arguments or dtb for
 424          Linux when booting from NOR in Falcon mode.
 425
 426config CMD_SPL_WRITE_SIZE
 427        hex "Size of argument area"
 428        depends on CMD_SPL
 429        default 0x2000
 430        help
 431          This provides the size of the command-line argument area in NAND
 432          flash used by Falcon-mode boot. See the documentation until CMD_SPL
 433          for detail.
 434
 435config CMD_FITUPD
 436        bool "fitImage update command"
 437        help
 438          Implements the 'fitupd' command, which allows to automatically
 439          store software updates present on a TFTP server in NOR Flash
 440
 441config CMD_THOR_DOWNLOAD
 442        bool "thor - TIZEN 'thor' download"
 443        help
 444          Implements the 'thor' download protocol. This is a way of
 445          downloading a software update over USB from an attached host.
 446          There is no documentation about this within the U-Boot source code
 447          but you should be able to find something on the interwebs.
 448
 449config CMD_ZBOOT
 450        bool "zboot - x86 boot command"
 451        help
 452          With x86 machines it is common to boot a bzImage file which
 453          contains both a kernel and a setup.bin file. The latter includes
 454          configuration information from the dark ages which x86 boards still
 455          need to pick things out of.
 456
 457          Consider using FIT in preference to this since it supports directly
 458          booting both 32- and 64-bit kernels, as well as secure boot.
 459          Documentation is available in doc/uImage.FIT/x86-fit-boot.txt
 460
 461endmenu
 462
 463menu "Environment commands"
 464
 465config CMD_ASKENV
 466        bool "ask for env variable"
 467        help
 468          Ask for environment variable
 469
 470config CMD_EXPORTENV
 471        bool "env export"
 472        default y
 473        help
 474          Export environments.
 475
 476config CMD_IMPORTENV
 477        bool "env import"
 478        default y
 479        help
 480          Import environments.
 481
 482config CMD_EDITENV
 483        bool "editenv"
 484        default y
 485        help
 486          Edit environment variable.
 487
 488config CMD_GREPENV
 489        bool "search env"
 490        help
 491          Allow for searching environment variables
 492
 493config CMD_SAVEENV
 494        bool "saveenv"
 495        default y
 496        help
 497          Save all environment variables into the compiled-in persistent
 498          storage.
 499
 500config CMD_ERASEENV
 501        bool "eraseenv"
 502        default n
 503        depends on CMD_SAVEENV
 504        help
 505          Erase environment variables from the compiled-in persistent
 506          storage.
 507
 508config CMD_ENV_EXISTS
 509        bool "env exists"
 510        default y
 511        help
 512          Check if a variable is defined in the environment for use in
 513          shell scripting.
 514
 515config CMD_ENV_CALLBACK
 516        bool "env callbacks - print callbacks and their associated variables"
 517        help
 518          Some environment variable have callbacks defined by
 519          U_BOOT_ENV_CALLBACK. These are called when the variable changes.
 520          For example changing "baudrate" adjust the serial baud rate. This
 521          command lists the currently defined callbacks.
 522
 523config CMD_ENV_FLAGS
 524        bool "env flags -print variables that have non-default flags"
 525        help
 526          Some environment variables have special flags that control their
 527          behaviour. For example, serial# can only be written once and cannot
 528          be deleted. This command shows the variables that have special
 529          flags.
 530
 531config CMD_NVEDIT_EFI
 532        bool "env [set|print] -e - set/print UEFI variables"
 533        depends on EFI_LOADER
 534        default y
 535        imply HEXDUMP
 536        help
 537          UEFI variables are encoded as some form of U-Boot variables.
 538          If enabled, we are allowed to set/print UEFI variables using
 539          "env" command with "-e" option without knowing details.
 540
 541config CMD_NVEDIT_INFO
 542        bool "env info - print or evaluate environment information"
 543        help
 544          Print environment information:
 545          - env_valid : is environment valid
 546          - env_ready : is environment imported into hash table
 547          - env_use_default : is default environment used
 548
 549          This command can be optionally used for evaluation in scripts:
 550          [-d] : evaluate whether default environment is used
 551          [-p] : evaluate whether environment can be persisted
 552          The result of multiple evaluations will be combined with AND.
 553
 554endmenu
 555
 556menu "Memory commands"
 557
 558config CMD_BINOP
 559        bool "binop"
 560        help
 561          Compute binary operations (xor, or, and) of byte arrays of arbitrary
 562          size from memory and store the result in memory or the environment.
 563
 564config CMD_CRC32
 565        bool "crc32"
 566        default y
 567        select HASH
 568        help
 569          Compute CRC32.
 570
 571config CRC32_VERIFY
 572        bool "crc32 -v"
 573        depends on CMD_CRC32
 574        help
 575          Add -v option to verify data against a crc32 checksum.
 576
 577config CMD_EEPROM
 578        bool "eeprom - EEPROM subsystem"
 579        help
 580          (deprecated, needs conversion to driver model)
 581          Provides commands to read and write EEPROM (Electrically Erasable
 582          Programmable Read Only Memory) chips that are connected over an
 583          I2C bus.
 584
 585config CMD_EEPROM_LAYOUT
 586        bool "Enable layout-aware eeprom commands"
 587        depends on CMD_EEPROM
 588        help
 589          (deprecated, needs conversion to driver model)
 590          When enabled, additional eeprom sub-commands become available.
 591
 592          eeprom print - prints the contents of the eeprom in a human-readable
 593          way (eeprom layout fields, and data formatted to be fit for human
 594          consumption).
 595
 596          eeprom update - allows user to update eeprom fields by specifying
 597          the field name, and providing the new data in a human readable format
 598          (same format as displayed by the eeprom print command).
 599
 600          Both commands can either auto detect the layout, or be told which
 601          layout to use.
 602
 603          Feature API:
 604          __weak int parse_layout_version(char *str)
 605                - override to provide your own layout name parsing
 606          __weak void __eeprom_layout_assign(struct eeprom_layout *layout,
 607                        int layout_version);
 608                - override to setup the layout metadata based on the version
 609          __weak int eeprom_layout_detect(unsigned char *data)
 610                - override to provide your own algorithm for detecting layout
 611                        version
 612          eeprom_field.c
 613                - contains various printing and updating functions for common
 614                        types of eeprom fields. Can be used for defining
 615                        custom layouts.
 616
 617config EEPROM_LAYOUT_HELP_STRING
 618          string "Tells user what layout names are supported"
 619          depends on CMD_EEPROM_LAYOUT
 620          default "<not defined>"
 621          help
 622            Help printed with the LAYOUT VERSIONS part of the 'eeprom'
 623            command's help.
 624
 625config LOOPW
 626        bool "loopw"
 627        help
 628          Infinite write loop on address range
 629
 630config CMD_MD5SUM
 631        bool "md5sum"
 632        default n
 633        select MD5
 634        help
 635          Compute MD5 checksum.
 636
 637config MD5SUM_VERIFY
 638        bool "md5sum -v"
 639        default n
 640        depends on CMD_MD5SUM
 641        help
 642          Add -v option to verify data against an MD5 checksum.
 643
 644config CMD_MEMINFO
 645        bool "meminfo"
 646        help
 647          Display memory information.
 648
 649config CMD_MEMORY
 650        bool "md, mm, nm, mw, cp, cmp, base, loop"
 651        default y
 652        help
 653          Memory commands.
 654            md - memory display
 655            mm - memory modify (auto-incrementing address)
 656            nm - memory modify (constant address)
 657            mw - memory write (fill)
 658            cp - memory copy
 659            cmp - memory compare
 660            base - print or set address offset
 661            loop - initialize loop on address range
 662
 663config MX_CYCLIC
 664        bool "Enable cyclic md/mw commands"
 665        depends on CMD_MEMORY
 666        help
 667          Add the "mdc" and "mwc" memory commands. These are cyclic
 668          "md/mw" commands.
 669          Examples:
 670
 671          => mdc.b 10 4 500
 672          This command will print 4 bytes (10,11,12,13) each 500 ms.
 673
 674          => mwc.l 100 12345678 10
 675          This command will write 12345678 to address 100 all 10 ms.
 676
 677config CMD_RANDOM
 678        bool "random"
 679        default y
 680        depends on CMD_MEMORY && (LIB_RAND || LIB_HW_RAND)
 681        help
 682          random - fill memory with random data
 683
 684config CMD_MEMTEST
 685        bool "memtest"
 686        help
 687          Simple RAM read/write test.
 688
 689if CMD_MEMTEST
 690
 691config SYS_ALT_MEMTEST
 692        bool "Alternative test"
 693        help
 694          Use a more complete alternative memory test.
 695
 696endif
 697
 698config CMD_MX_CYCLIC
 699        bool "mdc, mwc"
 700        help
 701          mdc - memory display cyclic
 702          mwc - memory write cyclic
 703
 704config CMD_SHA1SUM
 705        bool "sha1sum"
 706        select SHA1
 707        help
 708          Compute SHA1 checksum.
 709
 710config SHA1SUM_VERIFY
 711        bool "sha1sum -v"
 712        depends on CMD_SHA1SUM
 713        help
 714          Add -v option to verify data against a SHA1 checksum.
 715
 716config CMD_STRINGS
 717        bool "strings - display strings in memory"
 718        help
 719          This works similarly to the Unix 'strings' command except that it
 720          works with a memory range. String of printable characters found
 721          within the range are displayed. The minimum number of characters
 722          for a sequence to be considered a string can be provided.
 723
 724endmenu
 725
 726menu "Compression commands"
 727
 728config CMD_LZMADEC
 729        bool "lzmadec"
 730        default y if CMD_BOOTI
 731        select LZMA
 732        help
 733          Support decompressing an LZMA (Lempel-Ziv-Markov chain algorithm)
 734          image from memory.
 735
 736config CMD_UNZIP
 737        bool "unzip"
 738        default y if CMD_BOOTI
 739        help
 740          Uncompress a zip-compressed memory region.
 741
 742config CMD_ZIP
 743        bool "zip"
 744        help
 745          Compress a memory region with zlib deflate method.
 746
 747endmenu
 748
 749menu "Device access commands"
 750
 751config CMD_ARMFLASH
 752        #depends on FLASH_CFI_DRIVER
 753        bool "armflash"
 754        help
 755          ARM Ltd reference designs flash partition access
 756
 757config CMD_ADC
 758        bool "adc - Access Analog to Digital Converters info and data"
 759        select ADC
 760        select DM_REGULATOR
 761        help
 762          Shows ADC device info and permit printing one-shot analog converted
 763          data from a named Analog to Digital Converter.
 764
 765config CMD_BCB
 766        bool "bcb"
 767        depends on MMC
 768        depends on PARTITIONS
 769        help
 770          Read/modify/write the fields of Bootloader Control Block, usually
 771          stored on the flash "misc" partition with its structure defined in:
 772          https://android.googlesource.com/platform/bootable/recovery/+/master/
 773          bootloader_message/include/bootloader_message/bootloader_message.h
 774
 775          Some real-life use-cases include (but are not limited to):
 776          - Determine the "boot reason" (and act accordingly):
 777            https://source.android.com/devices/bootloader/boot-reason
 778          - Get/pass a list of commands from/to recovery:
 779            https://android.googlesource.com/platform/bootable/recovery
 780          - Inspect/dump the contents of the BCB fields
 781
 782config CMD_BIND
 783        bool "bind/unbind - Bind or unbind a device to/from a driver"
 784        depends on DM
 785        help
 786          Bind or unbind a device to/from a driver from the command line.
 787          This is useful in situations where a device may be handled by several
 788          drivers. For example, this can be used to bind a UDC to the usb ether
 789          gadget driver from the command line.
 790
 791config CMD_CLK
 792        bool "clk - Show clock frequencies"
 793        help
 794          (deprecated)
 795          Shows clock frequences by calling a sock_clk_dump() hook function.
 796          This is depreated in favour of using the CLK uclass and accessing
 797          clock values from associated drivers. However currently no command
 798          exists for this.
 799
 800config CMD_DEMO
 801        bool "demo - Demonstration commands for driver model"
 802        depends on DM
 803        help
 804          Provides a 'demo' command which can be used to play around with
 805          driver model. To use this properly you will need to enable one or
 806          both of the demo devices (DM_DEMO_SHAPE and DM_DEMO_SIMPLE).
 807          Otherwise you will always get an empty list of devices. The demo
 808          devices are defined in the sandbox device tree, so the easiest
 809          option is to use sandbox and pass the -d point to sandbox's
 810          u-boot.dtb file.
 811
 812config CMD_DFU
 813        bool "dfu"
 814        select DFU
 815        help
 816          Enables the command "dfu" which is used to have U-Boot create a DFU
 817          class device via USB. This command requires that the "dfu_alt_info"
 818          environment variable be set and define the alt settings to expose to
 819          the host.
 820
 821config CMD_DM
 822        bool "dm - Access to driver model information"
 823        depends on DM
 824        help
 825          Provides access to driver model data structures and information,
 826          such as a list of devices, list of uclasses and the state of each
 827          device (e.g. activated). This is not required for operation, but
 828          can be useful to see the state of driver model for debugging or
 829          interest.
 830
 831config CMD_FASTBOOT
 832        bool "fastboot - Android fastboot support"
 833        depends on FASTBOOT
 834        help
 835          This enables the command "fastboot" which enables the Android
 836          fastboot mode for the platform. Fastboot is a protocol for
 837          downloading images, flashing and device control used on
 838          Android devices. Fastboot requires either the network stack
 839          enabled or support for acting as a USB device.
 840
 841          See doc/android/fastboot.txt for more information.
 842
 843config CMD_FDC
 844        bool "fdcboot - Boot from floppy device"
 845        help
 846          The 'fdtboot' command allows booting an image from a floppy disk.
 847
 848config CMD_FLASH
 849        bool "flinfo, erase, protect"
 850        default y
 851        help
 852          NOR flash support.
 853            flinfo - print FLASH memory information
 854            erase - FLASH memory
 855            protect - enable or disable FLASH write protection
 856
 857config CMD_FPGA
 858        bool "fpga"
 859        depends on FPGA
 860        default y
 861        help
 862          FPGA support.
 863
 864config CMD_FPGA_LOADBP
 865        bool "fpga loadbp - load partial bitstream (Xilinx only)"
 866        depends on CMD_FPGA
 867        help
 868          Supports loading an FPGA device from a bitstream buffer containing
 869          a partial bitstream.
 870
 871config CMD_FPGA_LOADFS
 872        bool "fpga loadfs - load bitstream from FAT filesystem (Xilinx only)"
 873        depends on CMD_FPGA
 874        help
 875          Supports loading an FPGA device from a FAT filesystem.
 876
 877config CMD_FPGA_LOADMK
 878        bool "fpga loadmk - load bitstream from image"
 879        depends on CMD_FPGA
 880        help
 881          Supports loading an FPGA device from a image generated by mkimage.
 882
 883config CMD_FPGA_LOADP
 884        bool "fpga loadp - load partial bitstream"
 885        depends on CMD_FPGA
 886        help
 887          Supports loading an FPGA device from a bitstream buffer containing
 888          a partial bitstream.
 889
 890config CMD_FPGA_LOAD_SECURE
 891        bool "fpga loads - loads secure bitstreams (Xilinx only)"
 892        depends on CMD_FPGA
 893        help
 894          Enables the fpga loads command which is used to load secure
 895          (authenticated or encrypted or both) bitstreams on to FPGA.
 896
 897config CMD_FPGAD
 898        bool "fpgad - dump FPGA registers"
 899        help
 900          (legacy, needs conversion to driver model)
 901          Provides a way to dump FPGA registers by calling the board-specific
 902          fpga_get_reg() function. This functions similarly to the 'md'
 903          command.
 904
 905config CMD_FUSE
 906        bool "fuse - support for the fuse subssystem"
 907        help
 908          (deprecated - needs conversion to driver model)
 909          This allows reading, sensing, programming or overriding fuses
 910          which control the behaviour of the device. The command uses the
 911          fuse_...() API.
 912
 913config CMD_GPIO
 914        bool "gpio"
 915        help
 916          GPIO support.
 917
 918config CMD_GPT
 919        bool "GPT (GUID Partition Table) command"
 920        select EFI_PARTITION
 921        select HAVE_BLOCK_DEVICE
 922        select PARTITION_UUIDS
 923        imply RANDOM_UUID
 924        help
 925          Enable the 'gpt' command to ready and write GPT style partition
 926          tables.
 927
 928config RANDOM_UUID
 929        bool "GPT Random UUID generation"
 930        select LIB_UUID
 931        help
 932          Enable the generation of partitions with random UUIDs if none
 933          are provided.
 934
 935config CMD_GPT_RENAME
 936        bool "GPT partition renaming commands"
 937        depends on CMD_GPT
 938        help
 939          Enables the 'gpt' command to interchange names on two GPT
 940          partitions via the 'gpt swap' command or to rename single
 941          partitions via the 'rename' command.
 942
 943config CMD_IDE
 944        bool "ide - Support for IDE drivers"
 945        select IDE
 946        help
 947          Provides an 'ide' command which allows accessing the IDE drive,
 948          reseting the IDE interface, printing the partition table and
 949          geting device info. It also enables the 'diskboot' command which
 950          permits booting from an IDE drive.
 951
 952config CMD_IO
 953        bool "io - Support for performing I/O accesses"
 954        help
 955          Provides an 'iod' command to display I/O space and an 'iow' command
 956          to write values to the I/O space. This can be useful for manually
 957          checking the state of devices during boot when debugging device
 958          drivers, etc.
 959
 960config CMD_IOTRACE
 961        bool "iotrace - Support for tracing I/O activity"
 962        help
 963          Provides an 'iotrace' command which supports recording I/O reads and
 964          writes in a trace buffer in memory . It also maintains a checksum
 965          of the trace records (even if space is exhausted) so that the
 966          sequence of I/O accesses can be verified.
 967
 968          When debugging drivers it is useful to see what I/O accesses were
 969          done and in what order.
 970
 971          Even if the individual accesses are of little interest it can be
 972          useful to verify that the access pattern is consistent each time
 973          an operation is performed. In this case a checksum can be used to
 974          characterise the operation of a driver. The checksum can be compared
 975          across different runs of the operation to verify that the driver is
 976          working properly.
 977
 978          In particular, when performing major refactoring of the driver, where
 979          the access pattern should not change, the checksum provides assurance
 980          that the refactoring work has not broken the driver.
 981
 982          This works by sneaking into the io.h heder for an architecture and
 983          redirecting I/O accesses through iotrace's tracing mechanism.
 984
 985          For now no commands are provided to examine the trace buffer. The
 986          format is fairly simple, so 'md' is a reasonable substitute.
 987
 988          Note: The checksum feature is only useful for I/O regions where the
 989          contents do not change outside of software control. Where this is not
 990          suitable you can fall back to manually comparing the addresses. It
 991          might be useful to enhance tracing to only checksum the accesses and
 992          not the data read/written.
 993
 994config CMD_I2C
 995        bool "i2c"
 996        help
 997          I2C support.
 998
 999config CMD_W1
1000        depends on W1
1001        default y if W1
1002        bool "w1 - Support for Dallas 1-Wire protocol"
1003        help
1004          Dallas 1-wire protocol support
1005
1006config CMD_LOADB
1007        bool "loadb"
1008        default y
1009        help
1010          Load a binary file over serial line.
1011
1012config CMD_LOADS
1013        bool "loads"
1014        default y
1015        help
1016          Load an S-Record file over serial line
1017
1018config CMD_MMC
1019        bool "mmc"
1020        help
1021          MMC memory mapped support.
1022
1023config CMD_MMC_RPMB
1024        bool "Enable support for RPMB in the mmc command"
1025        depends on CMD_MMC
1026        help
1027          Enable the commands for reading, writing and programming the
1028          key for the Replay Protection Memory Block partition in eMMC.
1029
1030config CMD_MMC_SWRITE
1031        bool "mmc swrite"
1032        depends on CMD_MMC && MMC_WRITE
1033        select IMAGE_SPARSE
1034        help
1035          Enable support for the "mmc swrite" command to write Android sparse
1036          images to eMMC.
1037
1038config CMD_MTD
1039        bool "mtd"
1040        select MTD_PARTITIONS
1041        help
1042          MTD commands support.
1043
1044config CMD_NAND
1045        bool "nand"
1046        default y if NAND_SUNXI
1047        help
1048          NAND support.
1049
1050if CMD_NAND
1051config CMD_NAND_TRIMFFS
1052        bool "nand write.trimffs"
1053        default y if ARCH_SUNXI
1054        help
1055          Allows one to skip empty pages when flashing something on a NAND.
1056
1057config CMD_NAND_LOCK_UNLOCK
1058        bool "nand lock/unlock"
1059        help
1060          NAND locking support.
1061
1062config CMD_NAND_TORTURE
1063        bool "nand torture"
1064        help
1065          NAND torture support.
1066
1067endif # CMD_NAND
1068
1069config CMD_NVME
1070        bool "nvme"
1071        depends on NVME
1072        default y if NVME
1073        help
1074          NVM Express device support
1075
1076config CMD_ONENAND
1077        bool "onenand - access to onenand device"
1078        help
1079          OneNAND is a brand of NAND ('Not AND' gate) flash which provides
1080          various useful features. This command allows reading, writing,
1081          and erasing blocks. It allso provides a way to show and change
1082          bad blocks, and test the device.
1083
1084config CMD_OSD
1085        bool "osd"
1086        help
1087          Enable the 'osd' command which allows to query information from and
1088          write text data to a on-screen display (OSD) device; a virtual device
1089          associated with a display capable of displaying a text overlay on the
1090          display it's associated with..
1091
1092config CMD_PART
1093        bool "part"
1094        select HAVE_BLOCK_DEVICE
1095        select PARTITION_UUIDS
1096        help
1097          Read and display information about the partition table on
1098          various media.
1099
1100config CMD_PCI
1101        bool "pci - Access PCI devices"
1102        help
1103          Provide access to PCI (Peripheral Interconnect Bus), a type of bus
1104          used on some devices to allow the CPU to communicate with its
1105          peripherals. Sub-commands allow bus enumeration, displaying and
1106          changing configuration space and a few other features.
1107
1108config CMD_PINMUX
1109        bool "pinmux - show pins muxing"
1110        default y if PINCTRL
1111        help
1112          Parse all available pin-controllers and show pins muxing. This
1113          is useful for debug purpoer to check the pin muxing and to know if
1114          a pin is configured as a GPIO or as an alternate function.
1115
1116config CMD_POWEROFF
1117        bool "poweroff"
1118        help
1119          Poweroff/Shutdown the system
1120
1121config CMD_READ
1122        bool "read - Read binary data from a partition"
1123        help
1124          Provides low-level access to the data in a partition.
1125
1126config CMD_REMOTEPROC
1127        bool "remoteproc"
1128        depends on REMOTEPROC
1129        help
1130          Support for Remote Processor control
1131
1132config CMD_SATA
1133        bool "sata - Access SATA subsystem"
1134        select SATA
1135        help
1136          SATA (Serial Advanced Technology Attachment) is a serial bus
1137          standard for connecting to hard drives and other storage devices.
1138          This command provides information about attached devices and allows
1139          reading, writing and other operations.
1140
1141          SATA replaces PATA (originally just ATA), which stands for Parallel AT
1142          Attachment, where AT refers to an IBM AT (Advanced Technology)
1143          computer released in 1984.
1144
1145config CMD_SAVES
1146        bool "saves - Save a file over serial in S-Record format"
1147        help
1148          Provides a way to save a binary file using the Motorola S-Record
1149          format over the serial line.
1150
1151config CMD_SCSI
1152        bool "scsi - Access to SCSI devices"
1153        default y if SCSI
1154        help
1155          This provides a 'scsi' command which provides access to SCSI (Small
1156          Computer System Interface) devices. The command provides a way to
1157          scan the bus, reset the bus, read and write data and get information
1158          about devices.
1159
1160config CMD_SDRAM
1161        bool "sdram - Print SDRAM configuration information"
1162        help
1163          Provides information about attached SDRAM. This assumed that the
1164          SDRAM has an EEPROM with information that can be read using the
1165          I2C bus. This is only available on some boards.
1166
1167config CMD_SF
1168        bool "sf"
1169        depends on DM_SPI_FLASH || SPI_FLASH
1170        help
1171          SPI Flash support
1172
1173config CMD_SF_TEST
1174        bool "sf test - Allow testing of SPI flash"
1175        depends on CMD_SF
1176        help
1177          Provides a way to test that SPI flash is working correctly. The
1178          test is destructive, in that an area of SPI flash must be provided
1179          for the test to use. Performance information is also provided,
1180          measuring the performance of reading, writing and erasing in
1181          Mbps (Million Bits Per Second). This value should approximately
1182          equal the SPI bus speed for a single-bit-wide SPI bus, assuming
1183          everything is working properly.
1184
1185config CMD_SPI
1186        bool "sspi - Command to access spi device"
1187        depends on SPI
1188        help
1189          SPI utility command.
1190
1191config DEFAULT_SPI_BUS
1192        int "default spi bus used by sspi command"
1193        depends on CMD_SPI
1194        default 0
1195
1196config DEFAULT_SPI_MODE
1197        hex "default spi mode used by sspi command (see include/spi.h)"
1198        depends on CMD_SPI
1199        default 0
1200
1201config CMD_TSI148
1202        bool "tsi148 - Command to access tsi148 device"
1203        help
1204          This provides various sub-commands to initialise and configure the
1205          Turndra tsi148 device. See the command help for full details.
1206
1207config CMD_UNIVERSE
1208        bool "universe - Command to set up the Turndra Universe controller"
1209        help
1210          This allows setting up the VMEbus provided by this controller.
1211          See the command help for full details.
1212
1213config CMD_USB
1214        bool "usb"
1215        select HAVE_BLOCK_DEVICE
1216        help
1217          USB support.
1218
1219config CMD_USB_SDP
1220        bool "sdp"
1221        select USB_FUNCTION_SDP
1222        help
1223          Enables the command "sdp" which is used to have U-Boot emulating the
1224          Serial Download Protocol (SDP) via USB.
1225
1226config CMD_ROCKUSB
1227        bool "rockusb"
1228        depends on USB_FUNCTION_ROCKUSB
1229        help
1230          Rockusb protocol is widely used by Rockchip SoC based devices. It can
1231          read/write info, image to/from devices. This enable rockusb command
1232          support to communication with rockusb device. for more detail about
1233          this command, please read doc/README.rockusb.
1234
1235config CMD_USB_MASS_STORAGE
1236        bool "UMS usb mass storage"
1237        select USB_FUNCTION_MASS_STORAGE
1238        help
1239          USB mass storage support
1240
1241config CMD_VIRTIO
1242        bool "virtio"
1243        depends on VIRTIO
1244        default y if VIRTIO
1245        help
1246          VirtIO block device support
1247
1248config CMD_WDT
1249        bool "wdt"
1250        depends on WDT
1251        help
1252          This provides commands to control the watchdog timer devices.
1253
1254config CMD_AXI
1255        bool "axi"
1256        depends on AXI
1257        help
1258          Enable the command "axi" for accessing AXI (Advanced eXtensible
1259          Interface) busses, a on-chip interconnect specification for managing
1260          functional blocks in SoC designs, which is also often used in designs
1261          involving FPGAs (e.g.  communication with IP cores in Xilinx FPGAs).
1262endmenu
1263
1264
1265menu "Shell scripting commands"
1266
1267config CMD_ECHO
1268        bool "echo"
1269        default y
1270        help
1271          Echo args to console
1272
1273config CMD_ITEST
1274        bool "itest"
1275        default y
1276        help
1277          Return true/false on integer compare.
1278
1279config CMD_SOURCE
1280        bool "source"
1281        default y
1282        help
1283          Run script from memory
1284
1285config CMD_SETEXPR
1286        bool "setexpr"
1287        default y
1288        help
1289          Evaluate boolean and math expressions and store the result in an env
1290            variable.
1291          Also supports loading the value at a memory location into a variable.
1292          If CONFIG_REGEX is enabled, setexpr also supports a gsub function.
1293
1294endmenu
1295
1296menu "Android support commands"
1297
1298config CMD_AB_SELECT
1299        bool "ab_select"
1300        default n
1301        depends on ANDROID_AB
1302        help
1303          On Android devices with more than one boot slot (multiple copies of
1304          the kernel and system images) this provides a command to select which
1305          slot should be used to boot from and register the boot attempt. This
1306          is used by the new A/B update model where one slot is updated in the
1307          background while running from the other slot.
1308
1309endmenu
1310
1311if NET
1312
1313menuconfig CMD_NET
1314        bool "Network commands"
1315        default y
1316        imply NETDEVICES
1317
1318if CMD_NET
1319
1320config CMD_BOOTP
1321        bool "bootp"
1322        default y
1323        help
1324          bootp - boot image via network using BOOTP/TFTP protocol
1325
1326config CMD_DHCP
1327        bool "dhcp"
1328        depends on CMD_BOOTP
1329        help
1330          Boot image via network using DHCP/TFTP protocol
1331
1332config BOOTP_BOOTPATH
1333        bool "Request & store 'rootpath' from BOOTP/DHCP server"
1334        default y
1335        depends on CMD_BOOTP
1336        help
1337          Even though the config is called BOOTP_BOOTPATH, it stores the
1338          path in the variable 'rootpath'.
1339
1340config BOOTP_DNS
1341        bool "Request & store 'dnsip' from BOOTP/DHCP server"
1342        default y
1343        depends on CMD_BOOTP
1344        help
1345          The primary DNS server is stored as 'dnsip'. If two servers are
1346          returned, you must set BOOTP_DNS2 to store that second server IP
1347          also.
1348
1349config BOOTP_DNS2
1350        bool "Store 'dnsip2' from BOOTP/DHCP server"
1351        depends on BOOTP_DNS
1352        help
1353          If a DHCP client requests the DNS server IP from a DHCP server,
1354          it is possible that more than one DNS serverip is offered to the
1355          client. If CONFIG_BOOTP_DNS2 is enabled, the secondary DNS
1356          server IP will be stored in the additional environment
1357          variable "dnsip2". The first DNS serverip is always
1358          stored in the variable "dnsip", when BOOTP_DNS is defined.
1359
1360config BOOTP_GATEWAY
1361        bool "Request & store 'gatewayip' from BOOTP/DHCP server"
1362        default y
1363        depends on CMD_BOOTP
1364
1365config BOOTP_HOSTNAME
1366        bool "Request & store 'hostname' from BOOTP/DHCP server"
1367        default y
1368        depends on CMD_BOOTP
1369        help
1370          The name may or may not be qualified with the local domain name.
1371
1372config BOOTP_PREFER_SERVERIP
1373        bool "serverip variable takes precedent over DHCP server IP."
1374        depends on CMD_BOOTP
1375        help
1376          By default a BOOTP/DHCP reply will overwrite the 'serverip' variable.
1377
1378          With this option enabled, the 'serverip' variable in the environment
1379          takes precedence over DHCP server IP and will only be set by the DHCP
1380          server if not already set in the environment.
1381
1382config BOOTP_SUBNETMASK
1383        bool "Request & store 'netmask' from BOOTP/DHCP server"
1384        default y
1385        depends on CMD_BOOTP
1386
1387config BOOTP_NTPSERVER
1388        bool "Request & store 'ntpserverip' from BOOTP/DHCP server"
1389        depends on CMD_BOOTP
1390
1391config CMD_PCAP
1392        bool "pcap capture"
1393        help
1394          Selecting this will allow capturing all Ethernet packets and store
1395          them in physical memory in a PCAP formated file,
1396          later to be analyzed by PCAP reader application (IE. WireShark).
1397
1398config BOOTP_PXE
1399        bool "Send PXE client arch to BOOTP/DHCP server"
1400        default y
1401        depends on CMD_BOOTP && CMD_PXE
1402        help
1403          Supported for ARM, ARM64, and x86 for now.
1404
1405config BOOTP_PXE_CLIENTARCH
1406        hex
1407        depends on BOOTP_PXE
1408        default 0x16 if ARM64
1409        default 0x15 if ARM
1410        default 0 if X86
1411
1412config BOOTP_VCI_STRING
1413        string
1414        depends on CMD_BOOTP
1415        default "U-Boot.armv7" if CPU_V7A || CPU_V7M || CPU_V7R
1416        default "U-Boot.armv8" if ARM64
1417        default "U-Boot.arm" if ARM
1418        default "U-Boot"
1419
1420config CMD_TFTPBOOT
1421        bool "tftpboot"
1422        default y
1423        help
1424          tftpboot - boot image via network using TFTP protocol
1425
1426config CMD_TFTPPUT
1427        bool "tftp put"
1428        depends on CMD_TFTPBOOT
1429        help
1430          TFTP put command, for uploading files to a server
1431
1432config CMD_TFTPSRV
1433        bool "tftpsrv"
1434        depends on CMD_TFTPBOOT
1435        help
1436          Act as a TFTP server and boot the first received file
1437
1438config NET_TFTP_VARS
1439        bool "Control TFTP timeout and count through environment"
1440        depends on CMD_TFTPBOOT
1441        default y
1442        help
1443          If set, allows controlling the TFTP timeout through the
1444          environment variable tftptimeout, and the TFTP maximum
1445          timeout count through the variable tftptimeoutcountmax.
1446          If unset, timeout and maximum are hard-defined as 1 second
1447          and 10 timouts per TFTP transfer.
1448
1449config CMD_RARP
1450        bool "rarpboot"
1451        help
1452          Boot image via network using RARP/TFTP protocol
1453
1454config CMD_NFS
1455        bool "nfs"
1456        default y
1457        help
1458          Boot image via network using NFS protocol.
1459
1460config CMD_MII
1461        bool "mii"
1462        help
1463          Enable MII utility commands.
1464
1465config CMD_PING
1466        bool "ping"
1467        help
1468          Send ICMP ECHO_REQUEST to network host
1469
1470config CMD_CDP
1471        bool "cdp"
1472        help
1473          Perform CDP network configuration
1474
1475config CMD_SNTP
1476        bool "sntp"
1477        help
1478          Synchronize RTC via network
1479
1480config CMD_DNS
1481        bool "dns"
1482        help
1483          Lookup the IP of a hostname
1484
1485config CMD_LINK_LOCAL
1486        bool "linklocal"
1487        select LIB_RAND
1488        help
1489          Acquire a network IP address using the link-local protocol
1490
1491endif
1492
1493config CMD_ETHSW
1494        bool "ethsw"
1495        help
1496          Allow control of L2 Ethernet switch commands. These are supported
1497          by the vsc9953 Ethernet driver at present. Sub-commands allow
1498          operations such as enabling / disabling a port and
1499          viewing/maintaining the filtering database (FDB)
1500
1501config CMD_PXE
1502        bool "pxe"
1503        select MENU
1504        help
1505          Boot image via network using PXE protocol
1506
1507config CMD_WOL
1508        bool "wol"
1509        help
1510          Wait for wake-on-lan Magic Packet
1511
1512endif
1513
1514menu "Misc commands"
1515
1516config CMD_BMP
1517        bool "Enable 'bmp' command"
1518        depends on LCD || DM_VIDEO || VIDEO
1519        help
1520          This provides a way to obtain information about a BMP-format image
1521          and to display it. BMP (which presumably stands for BitMaP) is a
1522          file format defined by Microsoft which supports images of various
1523          depths, formats and compression methods. Headers on the file
1524          determine the formats used. This command can be used by first loading
1525          the image into RAM, then using this command to look at it or display
1526          it.
1527
1528config CMD_BOOTCOUNT
1529        bool "bootcount"
1530        depends on BOOTCOUNT_LIMIT
1531        help
1532          Enable the bootcount command, which allows interrogation and
1533          reset of the bootcounter.
1534
1535config CMD_BSP
1536        bool "Enable board-specific commands"
1537        help
1538          (deprecated: instead, please define a Kconfig option for each command)
1539
1540          Some boards have board-specific commands which are only enabled
1541          during developemnt and need to be turned off for production. This
1542          option provides a way to control this. The commands that are enabled
1543          vary depending on the board.
1544
1545config CMD_BKOPS_ENABLE
1546        bool "mmc bkops enable"
1547        depends on CMD_MMC
1548        default n
1549        help
1550          Enable command for setting manual background operations handshake
1551          on a eMMC device. The feature is optionally available on eMMC devices
1552          conforming to standard >= 4.41.
1553
1554config CMD_BLOCK_CACHE
1555        bool "blkcache - control and stats for block cache"
1556        depends on BLOCK_CACHE
1557        default y if BLOCK_CACHE
1558        help
1559          Enable the blkcache command, which can be used to control the
1560          operation of the cache functions.
1561          This is most useful when fine-tuning the operation of the cache
1562          during development, but also allows the cache to be disabled when
1563          it might hurt performance (e.g. when using the ums command).
1564
1565config CMD_CACHE
1566        bool "icache or dcache"
1567        help
1568          Enable the "icache" and "dcache" commands
1569
1570config CMD_CONITRACE
1571        bool "conitrace - trace console input codes"
1572        help
1573          Enable the 'conitrace' command which displays the codes received
1574          from the console input as hexadecimal numbers.
1575
1576config CMD_CLS
1577        bool "Enable clear screen command 'cls'"
1578        depends on CFB_CONSOLE || DM_VIDEO || LCD || VIDEO
1579        default y if LCD
1580        help
1581          Enable the 'cls' command which clears the screen contents
1582          on video frame buffer.
1583
1584config CMD_EFIDEBUG
1585        bool "efidebug - display/configure UEFI environment"
1586        depends on EFI_LOADER
1587        select EFI_DEVICE_PATH_TO_TEXT
1588        default n
1589        help
1590          Enable the 'efidebug' command which provides a subset of UEFI
1591          shell utility with simplified functionality. It will be useful
1592          particularly for managing boot parameters as  well as examining
1593          various EFI status for debugging.
1594
1595config CMD_EXCEPTION
1596        bool "exception - raise exception"
1597        depends on ARM || RISCV || X86
1598        help
1599          Enable the 'exception' command which allows to raise an exception.
1600
1601config CMD_LED
1602        bool "led"
1603        depends on LED
1604        default y if LED
1605        help
1606          Enable the 'led' command which allows for control of LEDs supported
1607          by the board. The LEDs can be listed with 'led list' and controlled
1608          with led on/off/togle/blink. Any LED drivers can be controlled with
1609          this command, e.g. led_gpio.
1610
1611config CMD_DATE
1612        bool "date"
1613        default y if DM_RTC
1614        help
1615          Enable the 'date' command for getting/setting the time/date in RTC
1616          devices.
1617
1618config CMD_TIME
1619        bool "time"
1620        help
1621          Run commands and summarize execution time.
1622
1623config CMD_GETTIME
1624        bool "gettime - read elapsed time"
1625        help
1626          Enable the 'gettime' command which reads the elapsed time since
1627          U-Boot started running. This shows the time in seconds and
1628          milliseconds. See also the 'bootstage' command which provides more
1629          flexibility for boot timing.
1630
1631# TODO: rename to CMD_SLEEP
1632config CMD_MISC
1633        bool "sleep"
1634        default y
1635        help
1636          Delay execution for some time
1637
1638config MP
1639        bool "support for multiprocessor"
1640        help
1641          This provides an option to brinup
1642          different processors in multiprocessor
1643          cases.
1644
1645config CMD_TIMER
1646        bool "timer"
1647        help
1648          Access the system timer.
1649
1650config CMD_SOUND
1651        bool "sound"
1652        depends on SOUND
1653        help
1654          This provides basic access to the U-Boot's sound support. The main
1655          feature is to play a beep.
1656
1657             sound init   - set up sound system
1658             sound play   - play a sound
1659
1660config CMD_QFW
1661        bool "qfw"
1662        select QFW
1663        help
1664          This provides access to the QEMU firmware interface.  The main
1665          feature is to allow easy loading of files passed to qemu-system
1666          via -kernel / -initrd
1667
1668source "cmd/mvebu/Kconfig"
1669
1670config CMD_TERMINAL
1671        bool "terminal - provides a way to attach a serial terminal"
1672        help
1673          Provides a 'cu'-like serial terminal command. This can be used to
1674          access other serial ports from the system console. The terminal
1675          is very simple with no special processing of characters. As with
1676          cu, you can press ~. (tilde followed by period) to exit.
1677
1678config CMD_UUID
1679        bool "uuid, guid - generation of unique IDs"
1680        select LIB_UUID
1681        help
1682          This enables two commands:
1683
1684             uuid - generate random Universally Unique Identifier
1685             guid - generate Globally Unique Identifier based on random UUID
1686
1687          The two commands are very similar except for the endianness of the
1688          output.
1689
1690endmenu
1691
1692source "cmd/ti/Kconfig"
1693
1694config CMD_BOOTSTAGE
1695        bool "Enable the 'bootstage' command"
1696        depends on BOOTSTAGE
1697        help
1698          Add a 'bootstage' command which supports printing a report
1699          and un/stashing of bootstage data.
1700
1701menu "Power commands"
1702config CMD_PMIC
1703        bool "Enable Driver Model PMIC command"
1704        depends on DM_PMIC
1705        help
1706          This is the pmic command, based on a driver model pmic's API.
1707          Command features are unchanged:
1708          - list               - list pmic devices
1709          - pmic dev <id>      - show or [set] operating pmic device (NEW)
1710          - pmic dump          - dump registers
1711          - pmic read address  - read byte of register at address
1712          - pmic write address - write byte to register at address
1713          The only one change for this command is 'dev' subcommand.
1714
1715config CMD_REGULATOR
1716        bool "Enable Driver Model REGULATOR command"
1717        depends on DM_REGULATOR
1718        help
1719          This command is based on driver model regulator's API.
1720          User interface features:
1721          - list               - list regulator devices
1722          - regulator dev <id> - show or [set] operating regulator device
1723          - regulator info     - print constraints info
1724          - regulator status   - print operating status
1725          - regulator value <val] <-f> - print/[set] voltage value [uV]
1726          - regulator current <val>    - print/[set] current value [uA]
1727          - regulator mode <id>        - print/[set] operating mode id
1728          - regulator enable           - enable the regulator output
1729          - regulator disable          - disable the regulator output
1730
1731          The '-f' (force) option can be used for set the value which exceeds
1732          the limits, which are found in device-tree and are kept in regulator's
1733          uclass platdata structure.
1734
1735endmenu
1736
1737menu "Security commands"
1738config CMD_AES
1739        bool "Enable the 'aes' command"
1740        select AES
1741        help
1742          This provides a means to encrypt and decrypt data using the AES
1743          (Advanced Encryption Standard). This algorithm uses a symetric key
1744          and is widely used as a streaming cipher. Different key lengths are
1745          supported by the algorithm but this command only supports 128 bits
1746          at present.
1747
1748config CMD_BLOB
1749        bool "Enable the 'blob' command"
1750        help
1751          This is used with the Freescale secure boot mechanism.
1752
1753          Freescale's SEC block has built-in Blob Protocol which provides
1754          a method for protecting user-defined data across system power
1755          cycles. SEC block protects data in a data structure called a Blob,
1756          which provides both confidentiality and integrity protection.
1757
1758          Encapsulating data as a blob
1759          Each time that the Blob Protocol is used to protect data, a
1760          different randomly generated key is used to encrypt the data.
1761          This random key is itself encrypted using a key which is derived
1762          from SoC's non-volatile secret key and a 16 bit Key identifier.
1763          The resulting encrypted key along with encrypted data is called a
1764          blob. The non-volatile secure key is available for use only during
1765          secure boot.
1766
1767          During decapsulation, the reverse process is performed to get back
1768          the original data.
1769
1770          Sub-commands:
1771            blob enc - encapsulating data as a cryptgraphic blob
1772            blob dec - decapsulating cryptgraphic blob to get the data
1773
1774          Syntax:
1775
1776          blob enc src dst len km
1777
1778          Encapsulate and create blob of data $len bytes long
1779          at address $src and store the result at address $dst.
1780          $km is the 16 byte key modifier is also required for
1781          generation/use as key for cryptographic operation. Key
1782          modifier should be 16 byte long.
1783
1784          blob dec src dst len km
1785
1786          Decapsulate the  blob of data at address $src and
1787          store result of $len byte at addr $dst.
1788          $km is the 16 byte key modifier is also required for
1789          generation/use as key for cryptographic operation. Key
1790          modifier should be 16 byte long.
1791
1792config CMD_HASH
1793        bool "Support 'hash' command"
1794        select HASH
1795        help
1796          This provides a way to hash data in memory using various supported
1797          algorithms (such as SHA1, MD5, CRC32). The computed digest can be
1798          saved to memory or to an environment variable. It is also possible
1799          to verify a hash against data in memory.
1800
1801config CMD_HVC
1802        bool "Support the 'hvc' command"
1803        depends on ARM_SMCCC
1804        help
1805          Allows issuing Hypervisor Calls (HVCs). Mostly useful for
1806          development and testing.
1807
1808config CMD_SMC
1809        bool "Support the 'smc' command"
1810        depends on ARM_SMCCC
1811        help
1812          Allows issuing Secure Monitor Calls (SMCs). Mostly useful for
1813          development and testing.
1814
1815config HASH_VERIFY
1816        bool "hash -v"
1817        depends on CMD_HASH
1818        help
1819          Add -v option to verify data against a hash.
1820
1821config CMD_TPM_V1
1822        bool
1823
1824config CMD_TPM_V2
1825        bool
1826        select CMD_LOG
1827
1828config CMD_TPM
1829        bool "Enable the 'tpm' command"
1830        depends on TPM_V1 || TPM_V2
1831        select CMD_TPM_V1 if TPM_V1
1832        select CMD_TPM_V2 if TPM_V2
1833        help
1834          This provides a means to talk to a TPM from the command line. A wide
1835          range of commands if provided - see 'tpm help' for details. The
1836          command requires a suitable TPM on your board and the correct driver
1837          must be enabled.
1838
1839if CMD_TPM
1840
1841config CMD_TPM_TEST
1842        bool "Enable the 'tpm test' command"
1843        depends on TPM_V1
1844        help
1845          This provides a a series of tests to confirm that the TPMv1.x is
1846          working correctly. The tests cover initialisation, non-volatile RAM,
1847          extend, global lock and checking that timing is within expectations.
1848          The tests pass correctly on Infineon TPMs but may need to be adjusted
1849          for other devices.
1850
1851endif
1852
1853endmenu
1854
1855menu "Firmware commands"
1856config CMD_CROS_EC
1857        bool "Enable crosec command"
1858        depends on CROS_EC
1859        default y
1860        help
1861          Enable command-line access to the Chrome OS EC (Embedded
1862          Controller). This provides the 'crosec' command which has
1863          a number of sub-commands for performing EC tasks such as
1864          updating its flash, accessing a small saved context area
1865          and talking to the I2C bus behind the EC (if there is one).
1866endmenu
1867
1868menu "Filesystem commands"
1869config CMD_BTRFS
1870        bool "Enable the 'btrsubvol' command"
1871        select FS_BTRFS
1872        help
1873          This enables the 'btrsubvol' command to list subvolumes
1874          of a BTRFS filesystem. There are no special commands for
1875          listing BTRFS directories or loading BTRFS files - this
1876          can be done by the generic 'fs' commands (see CMD_FS_GENERIC)
1877          when BTRFS is enabled (see FS_BTRFS).
1878
1879config CMD_CBFS
1880        bool "Enable the 'cbfs' command"
1881        depends on FS_CBFS
1882        help
1883          Define this to enable support for reading from a Coreboot
1884          filesystem. This is a ROM-based filesystem used for accessing files
1885          on systems that use coreboot as the first boot-loader and then load
1886          U-Boot to actually boot the Operating System. Available commands are
1887          cbfsinit, cbfsinfo, cbfsls and cbfsload.
1888
1889config CMD_CRAMFS
1890        bool "Enable the 'cramfs' command"
1891        depends on FS_CRAMFS
1892        help
1893          This provides commands for dealing with CRAMFS (Compressed ROM
1894          filesystem). CRAMFS is useful when space is tight since files are
1895          compressed. Two commands are provided:
1896
1897             cramfsls   - lists files in a cramfs image
1898             cramfsload - loads a file from a cramfs image
1899
1900config CMD_EXT2
1901        bool "ext2 command support"
1902        select FS_EXT4
1903        help
1904          Enables EXT2 FS command
1905
1906config CMD_EXT4
1907        bool "ext4 command support"
1908        select FS_EXT4
1909        help
1910          Enables EXT4 FS command
1911
1912config CMD_EXT4_WRITE
1913        depends on CMD_EXT4
1914        bool "ext4 write command support"
1915        select EXT4_WRITE
1916        help
1917          Enables EXT4 FS write command
1918
1919config CMD_FAT
1920        bool "FAT command support"
1921        select FS_FAT
1922        help
1923          Support for the FAT fs
1924
1925config CMD_FS_GENERIC
1926        bool "filesystem commands"
1927        help
1928          Enables filesystem commands (e.g. load, ls) that work for multiple
1929          fs types.
1930
1931config CMD_FS_UUID
1932        bool "fsuuid command"
1933        help
1934          Enables fsuuid command for filesystem UUID.
1935
1936config CMD_JFFS2
1937        bool "jffs2 command"
1938        select FS_JFFS2
1939        help
1940          Enables commands to support the JFFS2 (Journalling Flash File System
1941          version 2) filesystem. This enables fsload, ls and fsinfo which
1942          provide the ability to load files, list directories and obtain
1943          filesystem information.
1944
1945config CMD_MTDPARTS
1946        bool "MTD partition support"
1947        select MTD_DEVICE if (CMD_NAND || NAND)
1948        help
1949          MTD partitioning tool support.
1950          It is strongly encouraged to avoid using this command
1951          anymore along with 'sf', 'nand', 'onenand'. One can still
1952          declare the partitions in the mtdparts environment variable
1953          but better use the MTD stack and the 'mtd' command instead.
1954
1955config MTDIDS_DEFAULT
1956        string "Default MTD IDs"
1957        depends on MTD_PARTITIONS || CMD_MTDPARTS || CMD_NAND || CMD_FLASH
1958        help
1959          Defines a default MTD IDs list for use with MTD partitions in the
1960          Linux MTD command line partitions format.
1961
1962config MTDPARTS_DEFAULT
1963        string "Default MTD partition scheme"
1964        depends on MTD_PARTITIONS || CMD_MTDPARTS || CMD_NAND || CMD_FLASH
1965        help
1966          Defines a default MTD partitioning scheme in the Linux MTD command
1967          line partitions format
1968
1969config CMD_MTDPARTS_SPREAD
1970        bool "Padd partition size to take account of bad blocks"
1971        depends on CMD_MTDPARTS
1972        help
1973          This enables the 'spread' sub-command of the mtdparts command.
1974          This command will modify the existing mtdparts variable by increasing
1975          the size of the partitions such that 1) each partition's net size is
1976          at least as large as the size specified in the mtdparts variable and
1977          2) each partition starts on a good block.
1978
1979config CMD_REISER
1980        bool "reiser - Access to reiserfs filesystems"
1981        help
1982          This provides two commands which operate on a resierfs filesystem,
1983          commonly used some years ago:
1984
1985            reiserls - list files
1986            reiserload - load a file
1987
1988config CMD_YAFFS2
1989        bool "yaffs2 - Access of YAFFS2 filesystem"
1990        depends on YAFFS2
1991        default y
1992        help
1993          This provides commands for accessing a YAFFS2 filesystem. Yet
1994          Another Flash Filesystem 2 is a filesystem designed specifically
1995          for NAND flash. It incorporates bad-block management and ensures
1996          that device writes are sequential regardless of filesystem
1997          activity.
1998
1999config CMD_ZFS
2000        bool "zfs - Access of ZFS filesystem"
2001        help
2002          This provides commands to accessing a ZFS filesystem, commonly used
2003          on Solaris systems. Two sub-commands are provided:
2004
2005            zfsls - list files in a directory
2006            zfsload - load a file
2007
2008          See doc/README.zfs for more details.
2009
2010endmenu
2011
2012menu "Debug commands"
2013
2014config CMD_BEDBUG
2015        bool "bedbug"
2016        help
2017          The bedbug (emBEDded deBUGger) command provides debugging features
2018          for some PowerPC processors. For details please see the
2019          docuemntation in doc/README.beddbug
2020
2021config CMD_DIAG
2022        bool "diag - Board diagnostics"
2023        help
2024          This command provides access to board diagnostic tests. These are
2025          called Power-on Self Tests (POST). The command allows listing of
2026          available tests and running either all the tests, or specific tests
2027          identified by name.
2028
2029config CMD_IRQ
2030        bool "irq - Show information about interrupts"
2031        depends on !ARM && !MIPS && !SH
2032        help
2033          This enables two commands:
2034
2035             interrupts - enable or disable interrupts
2036             irqinfo - print device-specific interrupt information
2037
2038config CMD_KGDB
2039        bool "kgdb - Allow debugging of U-Boot with gdb"
2040        depends on PPC
2041        help
2042          This enables a 'kgdb' command which allows gdb to connect to U-Boot
2043          over a serial link for debugging purposes. This allows
2044          single-stepping, inspecting variables, etc. This is supported only
2045          on PowerPC at present.
2046
2047config CMD_LOG
2048        bool "log - Generation, control and access to logging"
2049        select LOG
2050        help
2051          This provides access to logging features. It allows the output of
2052          log data to be controlled to a limited extent (setting up the default
2053          maximum log level for emitting of records). It also provides access
2054          to a command used for testing the log system.
2055
2056config CMD_TRACE
2057        bool "trace - Support tracing of function calls and timing"
2058        help
2059          Enables a command to control using of function tracing within
2060          U-Boot. This allows recording of call traces including timing
2061          information. The command can write data to memory for exporting
2062          for analysis (e.g. using bootchart). See doc/README.trace for full
2063          details.
2064
2065config CMD_AVB
2066        bool "avb - Android Verified Boot 2.0 operations"
2067        depends on AVB_VERIFY
2068        default n
2069        help
2070          Enables a "avb" command to perform verification of partitions using
2071          Android Verified Boot 2.0 functionality. It includes such subcommands:
2072            avb init - initialize avb2 subsystem
2073            avb read_rb - read rollback index
2074            avb write_rb - write rollback index
2075            avb is_unlocked - check device lock state
2076            avb get_uuid - read and print uuid of a partition
2077            avb read_part - read data from partition
2078            avb read_part_hex - read data from partition and output to stdout
2079            avb write_part - write data to partition
2080            avb verify - run full verification chain
2081endmenu
2082
2083config CMD_UBI
2084        tristate "Enable UBI - Unsorted block images commands"
2085        select MTD_UBI
2086        help
2087          UBI is a software layer above MTD layer which admits use of LVM-like
2088          logical volumes on top of MTD devices, hides some complexities of
2089          flash chips like wear and bad blocks and provides some other useful
2090          capabilities. Please, consult the MTD web site for more details
2091          (www.linux-mtd.infradead.org). Activate this option if you want
2092          to use U-Boot UBI commands.
2093          It is also strongly encouraged to also enable CONFIG_MTD to get full
2094          partition support.
2095
2096config CMD_UBIFS
2097        tristate "Enable UBIFS - Unsorted block images filesystem commands"
2098        depends on CMD_UBI
2099        default y if CMD_UBI
2100        select LZO
2101        help
2102          UBIFS is a file system for flash devices which works on top of UBI.
2103
2104endmenu
2105