cmd: fdt: Use env_set_hex() for "get addr" and "get size"
[platform/kernel/u-boot.git] / cmd / Kconfig
1 menu "Command line interface"
2
3 config 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
14 config 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
26 config 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
34 config CMDLINE_PS_SUPPORT
35         bool "Enable support for changing the command prompt string at run-time"
36         depends on HUSH_PARSER
37         help
38           Only static string in the prompt is supported so far.  The string is
39           obtained from environment variables PS1 and PS2.
40
41 config AUTO_COMPLETE
42         bool "Enable auto complete using TAB"
43         depends on CMDLINE
44         default y
45         help
46           Enable auto completion of commands using TAB.
47
48 config SYS_LONGHELP
49         bool "Enable long help messages"
50         depends on CMDLINE
51         default y if CMDLINE
52         help
53           Defined when you want long help messages included
54           Do not set this option when short of memory.
55
56 config SYS_PROMPT
57         string "Shell prompt"
58         default "Zynq> " if ARCH_ZYNQ
59         default "ZynqMP> " if ARCH_ZYNQMP
60         default "=> "
61         help
62           This string is displayed in the command line to the left of the
63           cursor.
64
65 config SYS_PROMPT_HUSH_PS2
66         string "Hush shell secondary prompt"
67         depends on HUSH_PARSER
68         default "> "
69         help
70           This defines the secondary prompt string, which is
71           printed when the command interpreter needs more input
72           to complete a command. Usually "> ".
73
74 config SYS_MAXARGS
75         int "Maximum number arguments accepted by commands"
76         default 16
77
78 config SYS_CBSIZE
79         int "Console input buffer size"
80         default 2048 if ARCH_TEGRA || ARCH_VERSAL || ARCH_ZYNQ || ARCH_ZYNQMP || \
81                 RCAR_GEN3 || TARGET_SOCFPGA_SOC64
82         default 512 if ARCH_MX5 || ARCH_MX6 || ARCH_MX7 || FSL_LSCH2 || \
83                 FSL_LSCH3 || X86
84         default 256 if M68K || PPC
85         default 1024
86
87 config SYS_PBSIZE
88         int "Buffer size for console output"
89         default 1024 if ARCH_SUNXI
90         default 1044
91
92 config SYS_XTRACE
93         bool "Command execution tracer"
94         depends on CMDLINE
95         default y if CMDLINE
96         help
97           This option enables the possiblity to print all commands before
98           executing them and after all variables are evaluated (similar
99           to Bash's xtrace/'set -x' feature).
100           To enable the tracer a variable "xtrace" needs to be defined in
101           the environment.
102
103 config BUILD_BIN2C
104         bool
105
106 comment "Commands"
107
108 menu "Info commands"
109
110 config CMD_ACPI
111         bool "acpi"
112         depends on ACPIGEN
113         default y
114         help
115           List and dump ACPI tables. ACPI (Advanced Configuration and Power
116           Interface) is used mostly on x86 for providing information to the
117           Operating System about devices in the system. The tables are set up
118           by the firmware, typically U-Boot but possibly an earlier firmware
119           module, if U-Boot is chain-loaded from something else. ACPI tables
120           can also include code, to perform hardware-specific tasks required
121           by the Operating Systems. This allows some amount of separation
122           between the firmware and OS, and is particularly useful when you
123           want to make hardware changes without the OS needing to be adjusted.
124
125 config CMD_ADDRMAP
126         bool "addrmap"
127         depends on ADDR_MAP
128         default y
129         help
130           List non-identity virtual-physical memory mappings for 32-bit CPUs.
131
132 config CMD_BDI
133         bool "bdinfo"
134         default y
135         help
136           Print board info
137
138 config CMD_CONFIG
139         bool "config"
140         default SANDBOX
141         select BUILD_BIN2C
142         help
143           Print ".config" contents.
144
145           If this option is enabled, the ".config" file contents are embedded
146           in the U-Boot image and can be printed on the console by the "config"
147           command.  This provides information of which options are enabled on
148           the running U-Boot.
149
150 config CMD_CONSOLE
151         bool "coninfo"
152         default y
153         help
154           Print console devices and information.
155
156 config CMD_CPU
157         bool "cpu"
158         depends on CPU
159         help
160           Print information about available CPUs. This normally shows the
161           number of CPUs, type (e.g. manufacturer, architecture, product or
162           internal name) and clock frequency. Other information may be
163           available depending on the CPU driver.
164
165 config CMD_FWU_METADATA
166         bool "fwu metadata read"
167         depends on FWU_MULTI_BANK_UPDATE
168         help
169           Command to read the metadata and dump it's contents
170
171 config CMD_LICENSE
172         bool "license"
173         select BUILD_BIN2C
174         help
175           Print GPL license text
176
177 config CMD_PMC
178         bool "pmc"
179         help
180           Provides access to the Intel Power-Management Controller (PMC) so
181           that its state can be examined. This does not currently support
182           changing the state but it is still useful for debugging and seeing
183           what is going on.
184
185 config CMD_REGINFO
186         bool "reginfo"
187         depends on PPC
188         help
189           Register dump
190
191 config CMD_TLV_EEPROM
192         bool "tlv_eeprom"
193         depends on I2C_EEPROM
194         select CRC32
195         help
196           Display and program the system EEPROM data block in ONIE Tlvinfo
197           format. TLV stands for Type-Length-Value.
198
199 config SPL_CMD_TLV_EEPROM
200         bool "tlv_eeprom for SPL"
201         depends on SPL_I2C_EEPROM
202         select SPL_DRIVERS_MISC
203         select SPL_CRC32
204         help
205           Read system EEPROM data block in ONIE Tlvinfo format from SPL.
206
207 config CMD_SBI
208         bool "sbi"
209         depends on RISCV_SMODE && SBI_V02
210         help
211           Display information about the SBI implementation.
212
213 endmenu
214
215 menu "Boot commands"
216
217 config CMD_BOOTD
218         bool "bootd"
219         default y
220         help
221           Run the command stored in the environment "bootcmd", i.e.
222           "bootd" does the same thing as "run bootcmd".
223
224 config CMD_BOOTM
225         bool "bootm"
226         default y
227         help
228           Boot an application image from the memory.
229
230 config CMD_BOOTM_PRE_LOAD
231        bool "enable pre-load on bootm"
232        depends on CMD_BOOTM
233        depends on IMAGE_PRE_LOAD
234        default n
235        help
236          Enable support of stage pre-load for the bootm command.
237          This stage allow to check or modify the image provided
238          to the bootm command.
239
240 config CMD_BOOTDEV
241         bool "bootdev"
242         depends on BOOTSTD
243         default y if BOOTSTD_FULL
244         help
245           Support listing available bootdevs (boot devices) which can provide an
246           OS to boot, as well as showing information about a particular one.
247
248           This command is not necessary for bootstd to work.
249
250 config CMD_BOOTFLOW
251         bool "bootflow"
252         depends on BOOTSTD
253         default y
254         help
255           Support scanning for bootflows available with the bootdevs. The
256           bootflows can optionally be booted.
257
258 config CMD_BOOTFLOW_FULL
259         bool "bootflow - extract subcommands"
260         depends on BOOTSTD_FULL
261         default y if BOOTSTD_FULL
262         help
263           Add the ability to list the available bootflows, select one and obtain
264           information about it.
265
266           This command is not necessary for bootstd to work.
267
268 config CMD_BOOTMETH
269         bool "bootmeth"
270         depends on BOOTSTD
271         default y if BOOTSTD_FULL
272         help
273           Support listing available bootmethds (methods used to boot an
274           Operating System), as well as selecting the order that the bootmeths
275           are used.
276
277           This command is not necessary for bootstd to work.
278
279 config BOOTM_EFI
280         bool "Support booting UEFI FIT images"
281         depends on CMD_BOOTEFI && CMD_BOOTM && FIT
282         default y
283         help
284           Support booting UEFI FIT images via the bootm command.
285
286 config CMD_BOOTZ
287         bool "bootz"
288         help
289           Boot the Linux zImage
290
291 config CMD_BOOTI
292         bool "booti"
293         depends on ARM64 || RISCV
294         default y
295         help
296           Boot an AArch64 Linux Kernel image from memory.
297
298 config BOOTM_LINUX
299         bool "Support booting Linux OS images"
300         depends on CMD_BOOTM || CMD_BOOTZ || CMD_BOOTI
301         default y
302         help
303           Support booting the Linux kernel directly via a command such as bootm
304           or booti or bootz.
305
306 config BOOTM_NETBSD
307         bool "Support booting NetBSD (non-EFI) loader images"
308         depends on CMD_BOOTM
309         default y
310         help
311           Support booting NetBSD via the bootm command.
312
313 config BOOTM_OPENRTOS
314         bool "Support booting OPENRTOS / FreeRTOS images"
315         depends on CMD_BOOTM
316         help
317           Support booting OPENRTOS / FreeRTOS via the bootm command.
318
319 config BOOTM_OSE
320         bool "Support booting Enea OSE images"
321         depends on (ARM && (ARM64 || CPU_V7A || CPU_V7R) || SANDBOX || PPC || X86)
322         depends on CMD_BOOTM
323         help
324           Support booting Enea OSE images via the bootm command.
325
326 config BOOTM_PLAN9
327         bool "Support booting Plan9 OS images"
328         depends on CMD_BOOTM
329         default y
330         help
331           Support booting Plan9 images via the bootm command.
332
333 config BOOTM_RTEMS
334         bool "Support booting RTEMS OS images"
335         depends on CMD_BOOTM
336         default y
337         help
338           Support booting RTEMS images via the bootm command.
339
340 config CMD_SEAMA
341         bool "Support read SEAMA NAND images"
342         depends on MTD_RAW_NAND
343         help
344           Support reading NAND Seattle Image (SEAMA) images.
345
346 config CMD_VBE
347         bool "vbe - Verified Boot for Embedded"
348         depends on BOOTMETH_VBE
349         default y if BOOTSTD_FULL
350         help
351           Provides various subcommands related to VBE, such as listing the
352           available methods, looking at the state and changing which method
353           is used to boot. Updating the parameters is not currently
354           supported.
355
356 config BOOTM_VXWORKS
357         bool "Support booting VxWorks OS images"
358         depends on CMD_BOOTM
359         default y
360         help
361           Support booting VxWorks images via the bootm command.
362
363 config SYS_BOOTM_LEN
364         hex "Maximum size of a decompresed OS image"
365         depends on CMD_BOOTM || CMD_BOOTI || CMD_BOOTZ
366         default 0x4000000 if PPC || ARM64
367         default 0x1000000 if X86 || ARCH_MX6 || ARCH_MX7
368         default 0x800000
369         help
370           This is the maximum size of the buffer that is used to decompress the OS
371           image in to, if passing a compressed image to bootm/booti/bootz.
372
373 config CMD_BOOTEFI
374         bool "bootefi"
375         depends on EFI_LOADER
376         default y
377         help
378           Boot an EFI image from memory.
379
380 config CMD_BOOTEFI_HELLO_COMPILE
381         bool "Compile a standard EFI hello world binary for testing"
382         depends on CMD_BOOTEFI && !CPU_V7M
383         default y
384         help
385           This compiles a standard EFI hello world application with U-Boot so
386           that it can be used with the test/py testing framework. This is useful
387           for testing that EFI is working at a basic level, and for bringing
388           up EFI support on a new architecture.
389
390           No additional space will be required in the resulting U-Boot binary
391           when this option is enabled.
392
393 config CMD_BOOTEFI_HELLO
394         bool "Allow booting a standard EFI hello world for testing"
395         depends on CMD_BOOTEFI_HELLO_COMPILE
396         default y if CMD_BOOTEFI_SELFTEST
397         help
398           This adds a standard EFI hello world application to U-Boot so that
399           it can be used with the 'bootefi hello' command. This is useful
400           for testing that EFI is working at a basic level, and for bringing
401           up EFI support on a new architecture.
402
403 source lib/efi_selftest/Kconfig
404
405 config CMD_BOOTMENU
406         bool "bootmenu"
407         select MENU
408         select CHARSET
409         help
410           Add an ANSI terminal boot menu command.
411
412 config CMD_ADTIMG
413         bool "adtimg"
414         help
415           Android DTB/DTBO image manipulation commands. Read dtb/dtbo files from
416           image into RAM, dump image structure information, etc. Those dtb/dtbo
417           files should be merged in one dtb further, which needs to be passed to
418           the kernel, as part of a boot process.
419
420 config CMD_ABOOTIMG
421         bool "abootimg"
422         depends on ANDROID_BOOT_IMAGE
423         help
424           Android Boot Image manipulation commands. Allows one to extract
425           images contained in boot.img, like kernel, ramdisk, dtb, etc, and
426           obtain corresponding meta-information from boot.img.
427
428           See doc/android/boot-image.rst for details.
429
430 config CMD_ELF
431         bool "bootelf, bootvx"
432         default y
433         select LIB_ELF
434         help
435           Boot an ELF/vxWorks image from the memory.
436
437 config CMD_FDT
438         bool "Flattened Device Tree utility commands"
439         default y
440         depends on OF_LIBFDT
441         help
442           Do FDT related setup before booting into the Operating System.
443
444 config SUPPORT_EXTENSION_SCAN
445         bool
446
447 config CMD_EXTENSION
448         bool "Extension board management command"
449         select CMD_FDT
450         depends on SUPPORT_EXTENSION_SCAN
451         help
452           Enables the "extension" command, which allows to detect
453           extension boards connected to the system, and apply
454           corresponding Device Tree overlays.
455
456 config CMD_GO
457         bool "go"
458         default y
459         help
460           Start an application at a given address.
461
462 config CMD_RUN
463         bool "run"
464         default y
465         help
466           Run the command in the given environment variable.
467
468 config CMD_IMI
469         bool "iminfo"
470         default y
471         help
472           Print header information for application image.
473
474 config CMD_IMLS
475         bool "imls"
476         help
477           List all images found in flash
478
479 config CMD_XIMG
480         bool "imxtract"
481         default y
482         help
483           Extract a part of a multi-image.
484
485 config CMD_XXD
486         bool "xxd"
487         help
488           Print file as hexdump to standard output
489
490 config CMD_SPL
491         bool "spl export - Export boot information for Falcon boot"
492         depends on SPL
493         help
494           Falcon mode allows booting directly from SPL into an Operating
495           System such as Linux, thus skipping U-Boot proper. See
496           doc/README.falcon for full information about how to use this
497           command.
498
499 config CMD_SPL_NAND_OFS
500         hex "Offset of OS args or dtb for Falcon-mode NAND boot"
501         depends on CMD_SPL && (TPL_NAND_SUPPORT || SPL_NAND_SUPPORT)
502         default 0
503         help
504           This provides the offset of the command line arguments for Linux
505           when booting from NAND in Falcon mode.  See doc/README.falcon
506           for full information about how to use this option (and also see
507           board/gateworks/gw_ventana/README for an example).
508
509 config CMD_SPL_NOR_OFS
510         hex "Offset of OS args or dtb for Falcon-mode NOR boot"
511         depends on CMD_SPL && SPL_NOR_SUPPORT
512         default 0
513         help
514           This provides the offset of the command line arguments or dtb for
515           Linux when booting from NOR in Falcon mode.
516
517 config CMD_SPL_WRITE_SIZE
518         hex "Size of argument area"
519         depends on CMD_SPL
520         default 0x2000
521         help
522           This provides the size of the command-line argument area in NAND
523           flash used by Falcon-mode boot. See the documentation until CMD_SPL
524           for detail.
525
526 config CMD_THOR_DOWNLOAD
527         bool "thor - TIZEN 'thor' download"
528         select DFU
529         help
530           Implements the 'thor' download protocol. This is a way of
531           downloading a software update over USB from an attached host.
532           There is no documentation about this within the U-Boot source code
533           but you should be able to find something on the interwebs.
534
535 config THOR_RESET_OFF
536         bool "thor: Disable reset on completion"
537         depends on CMD_THOR_DOWNLOAD
538
539 config CMD_ZBOOT
540         bool "zboot - x86 boot command"
541         help
542           With x86 machines it is common to boot a bzImage file which
543           contains both a kernel and a setup.bin file. The latter includes
544           configuration information from the dark ages which x86 boards still
545           need to pick things out of.
546
547           Consider using FIT in preference to this since it supports directly
548           booting both 32- and 64-bit kernels, as well as secure boot.
549           Documentation is available in doc/uImage.FIT/x86-fit-boot.txt
550
551 endmenu
552
553 menu "Environment commands"
554
555 config CMD_ASKENV
556         bool "ask for env variable"
557         help
558           Ask for environment variable
559
560 config CMD_EXPORTENV
561         bool "env export"
562         default y
563         help
564           Export environments.
565
566 config CMD_IMPORTENV
567         bool "env import"
568         default y
569         help
570           Import environments.
571
572 config CMD_EDITENV
573         bool "editenv"
574         default y
575         help
576           Edit environment variable.
577
578 config CMD_GREPENV
579         bool "search env"
580         help
581           Allow for searching environment variables
582
583 config CMD_SAVEENV
584         bool "saveenv"
585         default y
586         help
587           Save all environment variables into the compiled-in persistent
588           storage.
589
590 config CMD_ERASEENV
591         bool "eraseenv"
592         depends on CMD_SAVEENV
593         help
594           Erase environment variables from the compiled-in persistent
595           storage.
596
597 config CMD_ENV_EXISTS
598         bool "env exists"
599         default y
600         help
601           Check if a variable is defined in the environment for use in
602           shell scripting.
603
604 config CMD_ENV_CALLBACK
605         bool "env callbacks - print callbacks and their associated variables"
606         help
607           Some environment variable have callbacks defined by
608           U_BOOT_ENV_CALLBACK. These are called when the variable changes.
609           For example changing "baudrate" adjust the serial baud rate. This
610           command lists the currently defined callbacks.
611
612 config CMD_ENV_FLAGS
613         bool "env flags -print variables that have non-default flags"
614         help
615           Some environment variables have special flags that control their
616           behaviour. For example, serial# can only be written once and cannot
617           be deleted. This command shows the variables that have special
618           flags.
619
620 config CMD_NVEDIT_EFI
621         bool "env [set|print] -e - set/print UEFI variables"
622         depends on EFI_LOADER
623         imply HEXDUMP
624         help
625           UEFI variables are encoded as some form of U-Boot variables.
626           If enabled, we are allowed to set/print UEFI variables using
627           "env" command with "-e" option without knowing details.
628
629 config CMD_NVEDIT_INDIRECT
630         bool "env indirect - Sets environment value from another"
631
632 config CMD_NVEDIT_INFO
633         bool "env info - print or evaluate environment information"
634         help
635           Print environment information:
636           - env_valid : is environment valid
637           - env_ready : is environment imported into hash table
638           - env_use_default : is default environment used
639
640           This command can be optionally used for evaluation in scripts:
641           [-d] : evaluate whether default environment is used
642           [-p] : evaluate whether environment can be persisted
643           [-q] : quiet output
644           The result of multiple evaluations will be combined with AND.
645
646 config CMD_NVEDIT_LOAD
647         bool "env load"
648         help
649           Load all environment variables from the compiled-in persistent
650           storage.
651
652 config CMD_NVEDIT_SELECT
653         bool "env select"
654         help
655           Select the compiled-in persistent storage of environment variables.
656
657 endmenu
658
659 menu "Memory commands"
660
661 config CMD_BINOP
662         bool "binop"
663         help
664           Compute binary operations (xor, or, and) of byte arrays of arbitrary
665           size from memory and store the result in memory or the environment.
666
667 config CMD_BLOBLIST
668         bool "bloblist"
669         default y if BLOBLIST
670         help
671           Show information about the bloblist, a collection of binary blobs
672           held in memory that persist between SPL and U-Boot. In the case of
673           x86 devices the bloblist can be used to hold ACPI tables so that they
674           remain available in memory.
675
676 config CMD_CRC32
677         bool "crc32"
678         default y
679         select HASH
680         help
681           Compute CRC32.
682
683 config CRC32_VERIFY
684         bool "crc32 -v"
685         depends on CMD_CRC32
686         help
687           Add -v option to verify data against a crc32 checksum.
688
689 config CMD_EEPROM
690         bool "eeprom - EEPROM subsystem"
691         help
692           (deprecated, needs conversion to driver model)
693           Provides commands to read and write EEPROM (Electrically Erasable
694           Programmable Read Only Memory) chips that are connected over an
695           I2C bus.
696
697 config CMD_EEPROM_LAYOUT
698         bool "Enable layout-aware eeprom commands"
699         depends on CMD_EEPROM
700         help
701           (deprecated, needs conversion to driver model)
702           When enabled, additional eeprom sub-commands become available.
703
704           eeprom print - prints the contents of the eeprom in a human-readable
705           way (eeprom layout fields, and data formatted to be fit for human
706           consumption).
707
708           eeprom update - allows user to update eeprom fields by specifying
709           the field name, and providing the new data in a human readable format
710           (same format as displayed by the eeprom print command).
711
712           Both commands can either auto detect the layout, or be told which
713           layout to use.
714
715           Feature API:
716           __weak int parse_layout_version(char *str)
717                 - override to provide your own layout name parsing
718           __weak void __eeprom_layout_assign(struct eeprom_layout *layout,
719                         int layout_version);
720                 - override to setup the layout metadata based on the version
721           __weak int eeprom_layout_detect(unsigned char *data)
722                 - override to provide your own algorithm for detecting layout
723                         version
724           eeprom_field.c
725                 - contains various printing and updating functions for common
726                         types of eeprom fields. Can be used for defining
727                         custom layouts.
728
729 config EEPROM_LAYOUT_HELP_STRING
730           string "Tells user what layout names are supported"
731           depends on CMD_EEPROM_LAYOUT
732           default "<not defined>"
733           help
734             Help printed with the LAYOUT VERSIONS part of the 'eeprom'
735             command's help.
736
737 config SYS_I2C_EEPROM_BUS
738         int "I2C bus of the EEPROM device."
739         depends on CMD_EEPROM
740         default 0
741
742 config SYS_I2C_EEPROM_ADDR_LEN
743         int "Length in bytes of the EEPROM memory array address"
744         depends on CMD_EEPROM || ID_EEPROM
745         default 1
746         range 1 2
747         help
748           Note: This is NOT the chip address length!
749
750 config SYS_EEPROM_SIZE
751         depends on CMD_EEPROM
752         int "Size in bytes of the EEPROM device"
753         default 256
754
755 config SYS_EEPROM_PAGE_WRITE_BITS
756         int "Number of bits used to address bytes in a single page"
757         depends on CMD_EEPROM
758         default 8
759         help
760           The EEPROM page size is 2^SYS_EEPROM_PAGE_WRITE_BITS.
761           A 64 byte page, for example would require six bits.
762
763 config SYS_EEPROM_PAGE_WRITE_DELAY_MS
764         int "Number of milliseconds to delay between page writes"
765         depends on CMD_EEPROM || CMD_I2C
766         default 0
767
768 config LOOPW
769         bool "loopw"
770         help
771           Infinite write loop on address range
772
773 config CMD_MD5SUM
774         bool "md5sum"
775         select MD5
776         help
777           Compute MD5 checksum.
778
779 config MD5SUM_VERIFY
780         bool "md5sum -v"
781         depends on CMD_MD5SUM
782         help
783           Add -v option to verify data against an MD5 checksum.
784
785 config CMD_MEMINFO
786         bool "meminfo"
787         help
788           Display memory information.
789
790 config CMD_MEMORY
791         bool "md, mm, nm, mw, cp, cmp, base, loop"
792         default y
793         help
794           Memory commands.
795             md - memory display
796             mm - memory modify (auto-incrementing address)
797             nm - memory modify (constant address)
798             mw - memory write (fill)
799             cp - memory copy
800             cmp - memory compare
801             base - print or set address offset
802             loop - initialize loop on address range
803
804 config CMD_MEM_SEARCH
805         bool "ms - Memory search"
806         help
807           Memory-search command
808
809           This allows searching through a region of memory looking for hex
810           data (byte, 16-bit word, 32-bit long, also 64-bit on machines that
811           support it). It is also possible to search for a string. The
812           command accepts a memory range and a list of values to search for.
813           The values need to appear in memory in the same order they are given
814           in the command. At most 10 matches can be returned at a time, but
815           pressing return will show the next 10 matches. Environment variables
816           are set for use with scripting (memmatches, memaddr, mempos).
817
818 config CMD_MX_CYCLIC
819         bool "Enable cyclic md/mw commands"
820         depends on CMD_MEMORY
821         help
822           Add the "mdc" and "mwc" memory commands. These are cyclic
823           "md/mw" commands.
824           Examples:
825
826           => mdc.b 10 4 500
827           This command will print 4 bytes (10,11,12,13) each 500 ms.
828
829           => mwc.l 100 12345678 10
830           This command will write 12345678 to address 100 all 10 ms.
831
832 config CMD_RANDOM
833         bool "random"
834         default y
835         depends on CMD_MEMORY && (LIB_RAND || LIB_HW_RAND)
836         help
837           random - fill memory with random data
838
839 config CMD_MEMTEST
840         bool "memtest"
841         help
842           Simple RAM read/write test.
843
844 if CMD_MEMTEST
845
846 config SYS_ALT_MEMTEST
847         bool "Alternative test"
848         help
849           Use a more complete alternative memory test.
850
851 if SYS_ALT_MEMTEST
852
853 config SYS_ALT_MEMTEST_BITFLIP
854         bool "Bitflip test"
855         default y
856         help
857           The alternative memory test includes bitflip test since 2020.07.
858           The bitflip test significantly increases the overall test time.
859           Bitflip test can optionally be disabled here.
860
861 endif
862
863 config SYS_MEMTEST_START
864         hex "default start address for mtest"
865         default 0x0
866         help
867           This is the default start address for mtest for simple read/write
868           test. If no arguments are given to mtest, default address is used
869           as start address.
870
871 config SYS_MEMTEST_END
872         hex "default end address for mtest"
873         default 0x1000
874         help
875           This is the default end address for mtest for simple read/write
876           test. If no arguments are given to mtest, default address is used
877           as end address.
878
879 endif
880
881 config CMD_SHA1SUM
882         bool "sha1sum"
883         select SHA1
884         help
885           Compute SHA1 checksum.
886
887 config SHA1SUM_VERIFY
888         bool "sha1sum -v"
889         depends on CMD_SHA1SUM
890         help
891           Add -v option to verify data against a SHA1 checksum.
892
893 config CMD_STRINGS
894         bool "strings - display strings in memory"
895         help
896           This works similarly to the Unix 'strings' command except that it
897           works with a memory range. String of printable characters found
898           within the range are displayed. The minimum number of characters
899           for a sequence to be considered a string can be provided.
900
901 endmenu
902
903 menu "Compression commands"
904
905 config CMD_LZMADEC
906         bool "lzmadec"
907         default y if CMD_BOOTI
908         select LZMA
909         help
910           Support decompressing an LZMA (Lempel-Ziv-Markov chain algorithm)
911           image from memory.
912
913 config CMD_UNLZ4
914         bool "unlz4"
915         default y if CMD_BOOTI
916         select LZ4
917         help
918           Support decompressing an LZ4 image from memory region.
919
920 config CMD_UNZIP
921         bool "unzip"
922         default y if CMD_BOOTI
923         select GZIP
924         help
925           Uncompress a zip-compressed memory region.
926
927 config CMD_ZIP
928         bool "zip"
929         select GZIP_COMPRESSED
930         help
931           Compress a memory region with zlib deflate method.
932
933 endmenu
934
935 menu "Device access commands"
936
937 config CMD_ARMFLASH
938         #depends on FLASH_CFI_DRIVER
939         bool "armflash"
940         help
941           ARM Ltd reference designs flash partition access
942
943 config CMD_ADC
944         bool "adc - Access Analog to Digital Converters info and data"
945         select ADC
946         depends on DM_REGULATOR
947         help
948           Shows ADC device info and permit printing one-shot analog converted
949           data from a named Analog to Digital Converter.
950
951 config CMD_BCB
952         bool "bcb"
953         depends on MMC
954         depends on PARTITIONS
955         help
956           Read/modify/write the fields of Bootloader Control Block, usually
957           stored on the flash "misc" partition with its structure defined in:
958           https://android.googlesource.com/platform/bootable/recovery/+/master/
959           bootloader_message/include/bootloader_message/bootloader_message.h
960
961           Some real-life use-cases include (but are not limited to):
962           - Determine the "boot reason" (and act accordingly):
963             https://source.android.com/devices/bootloader/boot-reason
964           - Get/pass a list of commands from/to recovery:
965             https://android.googlesource.com/platform/bootable/recovery
966           - Inspect/dump the contents of the BCB fields
967
968 config CMD_BIND
969         bool "bind/unbind - Bind or unbind a device to/from a driver"
970         depends on DM
971         help
972           Bind or unbind a device to/from a driver from the command line.
973           This is useful in situations where a device may be handled by several
974           drivers. For example, this can be used to bind a UDC to the usb ether
975           gadget driver from the command line.
976
977 config CMD_CLK
978         bool "clk - Show clock frequencies"
979         help
980           (deprecated)
981           Shows clock frequences by calling a sock_clk_dump() hook function.
982           This is depreated in favour of using the CLK uclass and accessing
983           clock values from associated drivers. However currently no command
984           exists for this.
985
986 config CMD_DEMO
987         bool "demo - Demonstration commands for driver model"
988         depends on DM
989         help
990           Provides a 'demo' command which can be used to play around with
991           driver model. To use this properly you will need to enable one or
992           both of the demo devices (DM_DEMO_SHAPE and DM_DEMO_SIMPLE).
993           Otherwise you will always get an empty list of devices. The demo
994           devices are defined in the sandbox device tree, so the easiest
995           option is to use sandbox and pass the -d point to sandbox's
996           u-boot.dtb file.
997
998 config CMD_DFU
999         bool "dfu"
1000         select DFU
1001         help
1002           Enables the command "dfu" which is used to have U-Boot create a DFU
1003           class device via USB. This command requires that the "dfu_alt_info"
1004           environment variable be set and define the alt settings to expose to
1005           the host.
1006
1007 config CMD_DM
1008         bool "dm - Access to driver model information"
1009         depends on DM
1010         help
1011           Provides access to driver model data structures and information,
1012           such as a list of devices, list of uclasses and the state of each
1013           device (e.g. activated). This is not required for operation, but
1014           can be useful to see the state of driver model for debugging or
1015           interest.
1016
1017 config CMD_FASTBOOT
1018         bool "fastboot - Android fastboot support"
1019         depends on FASTBOOT
1020         help
1021           This enables the command "fastboot" which enables the Android
1022           fastboot mode for the platform. Fastboot is a protocol for
1023           downloading images, flashing and device control used on
1024           Android devices. Fastboot requires either the network stack
1025           enabled or support for acting as a USB device.
1026
1027           See doc/android/fastboot.rst for more information.
1028
1029 config CMD_FLASH
1030         bool "flinfo, erase, protect"
1031         default y
1032         depends on MTD || FLASH_CFI_DRIVER || MTD_NOR_FLASH
1033         help
1034           NOR flash support.
1035             flinfo - print FLASH memory information
1036             erase - FLASH memory
1037             protect - enable or disable FLASH write protection
1038
1039 config CMD_FPGA
1040         bool "fpga"
1041         depends on FPGA
1042         default y
1043         help
1044           FPGA support.
1045
1046 config CMD_FPGA_LOADBP
1047         bool "fpga loadbp - load partial bitstream (Xilinx only)"
1048         depends on CMD_FPGA
1049         help
1050           Supports loading an FPGA device from a bitstream buffer containing
1051           a partial bitstream.
1052
1053 config CMD_FPGA_LOADFS
1054         bool "fpga loadfs - load bitstream from FAT filesystem (Xilinx only)"
1055         depends on CMD_FPGA
1056         help
1057           Supports loading an FPGA device from a FAT filesystem.
1058
1059 config CMD_FPGA_LOADMK
1060         bool "fpga loadmk - load bitstream from image"
1061         depends on CMD_FPGA
1062         help
1063           Supports loading an FPGA device from a image generated by mkimage.
1064
1065 config CMD_FPGA_LOADP
1066         bool "fpga loadp - load partial bitstream"
1067         depends on CMD_FPGA
1068         help
1069           Supports loading an FPGA device from a bitstream buffer containing
1070           a partial bitstream.
1071
1072 config CMD_FPGA_LOAD_SECURE
1073         bool "fpga loads - loads secure bitstreams"
1074         depends on CMD_FPGA
1075         select FPGA_LOAD_SECURE
1076         help
1077           Enables the fpga loads command which is used to load secure
1078           (authenticated or encrypted or both) bitstreams on to FPGA.
1079
1080 config CMD_FPGAD
1081         bool "fpgad - dump FPGA registers"
1082         help
1083           (legacy, needs conversion to driver model)
1084           Provides a way to dump FPGA registers by calling the board-specific
1085           fpga_get_reg() function. This functions similarly to the 'md'
1086           command.
1087
1088 config CMD_FUSE
1089         bool "fuse - support for the fuse subssystem"
1090         help
1091           (deprecated - needs conversion to driver model)
1092           This allows reading, sensing, programming or overriding fuses
1093           which control the behaviour of the device. The command uses the
1094           fuse_...() API.
1095
1096 config CMD_GPIO
1097         bool "gpio"
1098         help
1099           GPIO support.
1100
1101 config CMD_GPIO_READ
1102         bool "gpio read - save GPIO value to variable"
1103         depends on CMD_GPIO
1104         help
1105           Enables the 'gpio read' command that saves the value
1106           of a GPIO pin to a variable.
1107
1108 config CMD_PWM
1109         bool "pwm"
1110         depends on DM_PWM
1111         help
1112           Control PWM channels, this allows invert/config/enable/disable PWM channels.
1113
1114 config CMD_GPT
1115         bool "GPT (GUID Partition Table) command"
1116         select EFI_PARTITION
1117         select PARTITION_UUIDS
1118         imply RANDOM_UUID
1119         help
1120           Enable the 'gpt' command to ready and write GPT style partition
1121           tables.
1122
1123 config RANDOM_UUID
1124         bool "GPT Random UUID generation"
1125         select LIB_UUID
1126         help
1127           Enable the generation of partitions with random UUIDs if none
1128           are provided.
1129
1130 config CMD_GPT_RENAME
1131         bool "GPT partition renaming commands"
1132         depends on CMD_GPT
1133         help
1134           Enables the 'gpt' command to interchange names on two GPT
1135           partitions via the 'gpt swap' command or to rename single
1136           partitions via the 'rename' command.
1137
1138 config CMD_IDE
1139         bool "ide - Support for IDE drivers"
1140         select IDE
1141         help
1142           Provides an 'ide' command which allows accessing the IDE drive,
1143           resetting the IDE interface, printing the partition table and
1144           geting device info. It also enables the 'diskboot' command which
1145           permits booting from an IDE drive.
1146
1147 config CMD_IO
1148         bool "io - Support for performing I/O accesses"
1149         help
1150           Provides an 'iod' command to display I/O space and an 'iow' command
1151           to write values to the I/O space. This can be useful for manually
1152           checking the state of devices during boot when debugging device
1153           drivers, etc.
1154
1155 config CMD_IOTRACE
1156         bool "iotrace - Support for tracing I/O activity"
1157         help
1158           Provides an 'iotrace' command which supports recording I/O reads and
1159           writes in a trace buffer in memory . It also maintains a checksum
1160           of the trace records (even if space is exhausted) so that the
1161           sequence of I/O accesses can be verified.
1162
1163           When debugging drivers it is useful to see what I/O accesses were
1164           done and in what order.
1165
1166           Even if the individual accesses are of little interest it can be
1167           useful to verify that the access pattern is consistent each time
1168           an operation is performed. In this case a checksum can be used to
1169           characterise the operation of a driver. The checksum can be compared
1170           across different runs of the operation to verify that the driver is
1171           working properly.
1172
1173           In particular, when performing major refactoring of the driver, where
1174           the access pattern should not change, the checksum provides assurance
1175           that the refactoring work has not broken the driver.
1176
1177           This works by sneaking into the io.h heder for an architecture and
1178           redirecting I/O accesses through iotrace's tracing mechanism.
1179
1180           For now no commands are provided to examine the trace buffer. The
1181           format is fairly simple, so 'md' is a reasonable substitute.
1182
1183           Note: The checksum feature is only useful for I/O regions where the
1184           contents do not change outside of software control. Where this is not
1185           suitable you can fall back to manually comparing the addresses. It
1186           might be useful to enhance tracing to only checksum the accesses and
1187           not the data read/written.
1188
1189 config CMD_I2C
1190         bool "i2c"
1191         help
1192           I2C support.
1193
1194 config CMD_W1
1195         depends on W1
1196         default y if W1
1197         bool "w1 - Support for Dallas 1-Wire protocol"
1198         help
1199           Dallas 1-wire protocol support
1200
1201 config CMD_LOADB
1202         bool "loadb"
1203         default y
1204         help
1205           Load a binary file over serial line.
1206
1207 config CMD_LOADM
1208         bool "loadm"
1209         help
1210           Load a binary over memory mapped.
1211
1212 config CMD_LOADS
1213         bool "loads - Load a file over serial in S-Record format"
1214         default y
1215         help
1216           Load an S-Record file over serial line
1217
1218 config LOADS_ECHO
1219         bool "Echo all characters received during a loads back to console"
1220         depends on CMD_LOADS
1221         help
1222           If enabled, all characters received during a serial download (using
1223           the "loads" command) are echoed back. This might be needed by some
1224           terminal emulations (like "cu"), but may as well just take time on
1225           others. This sets the initial value of the "loads_echo" environment
1226           variable to 1.
1227
1228 config CMD_SAVES
1229         bool "saves - Save a file over serial in S-Record format"
1230         help
1231           Provides a way to save a binary file using the Motorola S-Record
1232           format over the serial line.
1233
1234 config SYS_LOADS_BAUD_CHANGE
1235         bool "Enable a temporary baudrate change during loads/saves command"
1236         depends on CMD_LOADS || CMD_SAVES
1237
1238 config CMD_LOADXY_TIMEOUT
1239         int "loadxy_timeout"
1240         range 0 2000
1241         default 90
1242         help
1243           Initial timeout for loadx and loady commands. Zero means infinity.
1244
1245 config CMD_LSBLK
1246         depends on BLK
1247         bool "lsblk - list block drivers and devices"
1248         help
1249           Print list of available block device drivers, and for each, the list
1250           of known block devices.
1251
1252 config CMD_MBR
1253         bool "MBR (Master Boot Record) command"
1254         select DOS_PARTITION
1255         help
1256           Enable the 'mbr' command to ready and write MBR (Master Boot Record)
1257           style partition tables.
1258
1259 config CMD_MISC
1260         bool "misc"
1261         depends on MISC
1262         help
1263           Enable the command "misc" for accessing miscellaneous devices with
1264           a MISC uclass driver. The command provides listing all MISC devices
1265           as well as read and write functionalities via their drivers.
1266
1267 config CMD_MMC
1268         bool "mmc"
1269         depends on MMC
1270         help
1271           MMC memory mapped support.
1272
1273 if CMD_MMC
1274
1275 config CMD_BKOPS_ENABLE
1276         bool "mmc bkops enable"
1277         depends on CMD_MMC
1278         help
1279           Enable command for setting manual background operations handshake
1280           on a eMMC device. The feature is optionally available on eMMC devices
1281           conforming to standard >= 4.41.
1282
1283 config CMD_MMC_RPMB
1284         bool "Enable support for RPMB in the mmc command"
1285         depends on SUPPORT_EMMC_RPMB
1286         help
1287           Enable the commands for reading, writing and programming the
1288           key for the Replay Protection Memory Block partition in eMMC.
1289
1290 config CMD_MMC_SWRITE
1291         bool "mmc swrite"
1292         depends on MMC_WRITE
1293         select IMAGE_SPARSE
1294         help
1295           Enable support for the "mmc swrite" command to write Android sparse
1296           images to eMMC.
1297
1298 endif
1299
1300 config CMD_CLONE
1301         bool "clone"
1302         depends on BLK
1303         help
1304           Enable storage cloning over block devices, useful for
1305           initial flashing by external block device without network
1306           or usb support.
1307
1308 config CMD_OPTEE_RPMB
1309         bool "Enable read/write support on RPMB via OPTEE"
1310         depends on SUPPORT_EMMC_RPMB && OPTEE
1311         help
1312           Enable the commands for reading, writing persistent named values
1313           in the Replay Protection Memory Block partition in eMMC by
1314           using Persistent Objects in OPTEE
1315
1316 config CMD_MTD
1317         bool "mtd"
1318         depends on MTD
1319         select MTD_PARTITIONS
1320         help
1321           MTD commands support.
1322
1323 config CMD_MUX
1324         bool "mux"
1325         depends on MULTIPLEXER
1326         help
1327          List, select, and deselect mux controllers on the fly.
1328
1329 config CMD_NAND
1330         bool "nand"
1331         default y if NAND_SUNXI
1332         depends on MTD_RAW_NAND
1333         help
1334           NAND support.
1335
1336 if CMD_NAND
1337 config CMD_NAND_TRIMFFS
1338         bool "nand write.trimffs"
1339         default y if ARCH_SUNXI
1340         help
1341           Allows one to skip empty pages when flashing something on a NAND.
1342
1343 config CMD_NAND_LOCK_UNLOCK
1344         bool "nand lock/unlock"
1345         help
1346           NAND locking support.
1347
1348 config CMD_NAND_TORTURE
1349         bool "nand torture"
1350         help
1351           NAND torture support.
1352
1353 endif # CMD_NAND
1354
1355 config CMD_NVME
1356         bool "nvme"
1357         depends on NVME
1358         default y if NVME
1359         help
1360           NVM Express device support
1361
1362 config CMD_ONENAND
1363         bool "onenand - access to onenand device"
1364         depends on MTD
1365         help
1366           OneNAND is a brand of NAND ('Not AND' gate) flash which provides
1367           various useful features. This command allows reading, writing,
1368           and erasing blocks. It allso provides a way to show and change
1369           bad blocks, and test the device.
1370
1371 config USE_ONENAND_BOARD_INIT
1372         bool "Call onenand_board_init() in the onenand command"
1373         depends on CMD_ONENAND
1374
1375 config CMD_OSD
1376         bool "osd"
1377         help
1378           Enable the 'osd' command which allows to query information from and
1379           write text data to a on-screen display (OSD) device; a virtual device
1380           associated with a display capable of displaying a text overlay on the
1381           display it's associated with..
1382
1383 config CMD_PART
1384         bool "part"
1385         depends on PARTITIONS
1386         select PARTITION_UUIDS
1387         help
1388           Read and display information about the partition table on
1389           various media.
1390
1391 config CMD_PCI
1392         bool "pci - Access PCI devices"
1393         help
1394           Provide access to PCI (Peripheral Interconnect Bus), a type of bus
1395           used on some devices to allow the CPU to communicate with its
1396           peripherals. Sub-commands allow bus enumeration, displaying and
1397           changing configuration space and a few other features.
1398
1399 config CMD_PCI_MPS
1400         bool "pci_mps - Configure PCI device MPS"
1401         depends on PCI
1402         help
1403           Enables PCI Express Maximum Packet Size (MPS) tuning. This
1404           command configures the PCI Express MPS of each endpoint to the
1405           largest value supported by all devices below the root complex.
1406           The Maximum Read Request Size will not be altered. This method is
1407           the same algorithm as used by Linux pci=pcie_bus_safe.
1408
1409 config CMD_PINMUX
1410         bool "pinmux - show pins muxing"
1411         depends on PINCTRL
1412         default y if PINCTRL
1413         help
1414           Parse all available pin-controllers and show pins muxing. This
1415           is useful for debug purpoer to check the pin muxing and to know if
1416           a pin is configured as a GPIO or as an alternate function.
1417
1418 config CMD_POWEROFF
1419         bool "poweroff"
1420         help
1421           Poweroff/Shutdown the system
1422
1423 config CMD_READ
1424         bool "read - Read binary data from a partition"
1425         help
1426           Provides low-level access to the data in a partition.
1427
1428 config CMD_REMOTEPROC
1429         bool "remoteproc"
1430         depends on REMOTEPROC
1431         help
1432           Support for Remote Processor control
1433
1434 config CMD_SATA
1435         bool "sata - Access SATA subsystem"
1436         select SATA
1437         help
1438           SATA (Serial Advanced Technology Attachment) is a serial bus
1439           standard for connecting to hard drives and other storage devices.
1440           This command provides information about attached devices and allows
1441           reading, writing and other operations.
1442
1443           SATA replaces PATA (originally just ATA), which stands for Parallel AT
1444           Attachment, where AT refers to an IBM AT (Advanced Technology)
1445           computer released in 1984.
1446
1447 config CMD_SCSI
1448         bool "scsi - Access to SCSI devices"
1449         default y if SCSI
1450         help
1451           This provides a 'scsi' command which provides access to SCSI (Small
1452           Computer System Interface) devices. The command provides a way to
1453           scan the bus, reset the bus, read and write data and get information
1454           about devices.
1455
1456 config CMD_SDRAM
1457         bool "sdram - Print SDRAM configuration information"
1458         help
1459           Provides information about attached SDRAM. This assumed that the
1460           SDRAM has an EEPROM with information that can be read using the
1461           I2C bus. This is only available on some boards.
1462
1463 config CMD_SF
1464         bool "sf"
1465         depends on DM_SPI_FLASH || SPI_FLASH
1466         default y if DM_SPI_FLASH
1467         help
1468           SPI Flash support
1469
1470 config CMD_SF_TEST
1471         bool "sf test - Allow testing of SPI flash"
1472         depends on CMD_SF
1473         help
1474           Provides a way to test that SPI flash is working correctly. The
1475           test is destructive, in that an area of SPI flash must be provided
1476           for the test to use. Performance information is also provided,
1477           measuring the performance of reading, writing and erasing in
1478           Mbps (Million Bits Per Second). This value should approximately
1479           equal the SPI bus speed for a single-bit-wide SPI bus, assuming
1480           everything is working properly.
1481
1482 config CMD_SPI
1483         bool "sspi - Command to access spi device"
1484         depends on SPI
1485         help
1486           SPI utility command.
1487
1488 config DEFAULT_SPI_BUS
1489         int "default spi bus used by sspi command"
1490         depends on CMD_SPI
1491         default 0
1492
1493 config DEFAULT_SPI_MODE
1494         hex "default spi mode used by sspi command (see include/spi.h)"
1495         depends on CMD_SPI
1496         default 0
1497
1498 config CMD_TEMPERATURE
1499         bool "temperature - display the temperature from thermal sensors"
1500         depends on DM_THERMAL
1501         help
1502           Provides a way to list thermal sensors and to get their readings.
1503
1504 config CMD_TSI148
1505         bool "tsi148 - Command to access tsi148 device"
1506         help
1507           This provides various sub-commands to initialise and configure the
1508           Turndra tsi148 device. See the command help for full details.
1509
1510 config CMD_UFS
1511         bool "Enable UFS - Universal Flash Subsystem commands"
1512         depends on UFS
1513         help
1514           "This provides commands to initialise and configure universal flash
1515            subsystem devices"
1516
1517 config CMD_UNIVERSE
1518         bool "universe - Command to set up the Turndra Universe controller"
1519         help
1520           This allows setting up the VMEbus provided by this controller.
1521           See the command help for full details.
1522
1523 config CMD_USB
1524         bool "usb"
1525         depends on USB_HOST
1526         help
1527           USB support.
1528
1529 config CMD_USB_SDP
1530         bool "sdp"
1531         select USB_FUNCTION_SDP
1532         help
1533           Enables the command "sdp" which is used to have U-Boot emulating the
1534           Serial Download Protocol (SDP) via USB.
1535
1536 config CMD_ROCKUSB
1537         bool "rockusb"
1538         depends on USB_FUNCTION_ROCKUSB
1539         help
1540           Rockusb protocol is widely used by Rockchip SoC based devices. It can
1541           read/write info, image to/from devices. This enable rockusb command
1542           support to communication with rockusb device. for more detail about
1543           this command, please read doc/README.rockusb.
1544
1545 config CMD_USB_MASS_STORAGE
1546         bool "UMS usb mass storage"
1547         depends on USB_GADGET_DOWNLOAD
1548         select USB_FUNCTION_MASS_STORAGE
1549         depends on BLK && USB_GADGET
1550         help
1551           Enables the command "ums" and the USB mass storage support to the
1552           export a block device: U-Boot, the USB device, acts as a simple
1553           external hard drive plugged on the host USB port.
1554
1555 config CMD_UMS_ABORT_KEYED
1556         bool "UMS abort with any key"
1557         depends on CMD_USB_MASS_STORAGE
1558         help
1559           Allow interruption of usb mass storage run with any key pressed.
1560
1561 config CMD_PVBLOCK
1562         bool "Xen para-virtualized block device"
1563         depends on XEN
1564         select PVBLOCK
1565         help
1566           Xen para-virtualized block device support
1567
1568 config CMD_VIRTIO
1569         bool "virtio"
1570         depends on VIRTIO
1571         default y if VIRTIO
1572         help
1573           VirtIO block device support
1574
1575 config CMD_WDT
1576         bool "wdt"
1577         depends on WDT
1578         help
1579           This provides commands to control the watchdog timer devices.
1580
1581 config CMD_WRITE
1582         bool "write - Write binary data to a partition"
1583         help
1584           Provides low-level write access to a partition.
1585
1586 config CMD_AXI
1587         bool "axi"
1588         depends on AXI
1589         help
1590           Enable the command "axi" for accessing AXI (Advanced eXtensible
1591           Interface) busses, a on-chip interconnect specification for managing
1592           functional blocks in SoC designs, which is also often used in designs
1593           involving FPGAs (e.g.  communication with IP cores in Xilinx FPGAs).
1594 endmenu
1595
1596
1597 menu "Shell scripting commands"
1598
1599 config CMD_CAT
1600         bool "cat"
1601         help
1602           Print file to standard output
1603
1604 config CMD_ECHO
1605         bool "echo"
1606         default y
1607         help
1608           Echo args to console
1609
1610 config CMD_ITEST
1611         bool "itest"
1612         default y
1613         help
1614           Return true/false on integer compare.
1615
1616 config CMD_SOURCE
1617         bool "source"
1618         default y
1619         help
1620           Run script from memory
1621
1622 config CMD_SETEXPR
1623         bool "setexpr"
1624         default y
1625         help
1626           Evaluate boolean and math expressions and store the result in an env
1627             variable.
1628           Also supports loading the value at a memory location into a variable.
1629           If CONFIG_REGEX is enabled, setexpr also supports a gsub function.
1630
1631 config CMD_SETEXPR_FMT
1632         bool "setexpr_fmt"
1633         depends on CMD_SETEXPR
1634         help
1635           Evaluate format string expression and store result in an environment
1636             variable.
1637
1638 endmenu
1639
1640 menu "Android support commands"
1641
1642 config CMD_AB_SELECT
1643         bool "ab_select"
1644         depends on ANDROID_AB
1645         help
1646           On Android devices with more than one boot slot (multiple copies of
1647           the kernel and system images) this provides a command to select which
1648           slot should be used to boot from and register the boot attempt. This
1649           is used by the new A/B update model where one slot is updated in the
1650           background while running from the other slot.
1651
1652 endmenu
1653
1654 if NET
1655
1656 menuconfig CMD_NET
1657         bool "Network commands"
1658         default y
1659         imply NETDEVICES
1660
1661 if CMD_NET
1662
1663 config CMD_BOOTP
1664         bool "bootp"
1665         default y
1666         help
1667           bootp - boot image via network using BOOTP/TFTP protocol
1668
1669 config CMD_DHCP
1670         bool "dhcp"
1671         depends on CMD_BOOTP
1672         help
1673           Boot image via network using DHCP/TFTP protocol
1674
1675 config BOOTP_MAY_FAIL
1676         bool "Allow for the BOOTP/DHCP server to not be found"
1677         depends on CMD_BOOTP
1678         help
1679           If the DHCP server is not found after the configured retry count, the
1680           call will fail instead of starting over.  This can be used to fail
1681           over to Link-local IP address configuration if the DHCP server is not
1682           available.
1683
1684 config BOOTP_BOOTPATH
1685         bool "Request & store 'rootpath' from BOOTP/DHCP server"
1686         default y
1687         depends on CMD_BOOTP
1688         help
1689           Even though the config is called BOOTP_BOOTPATH, it stores the
1690           path in the variable 'rootpath'.
1691
1692 config BOOTP_VENDOREX
1693         bool "Support vendor extensions from BOOTP/DHCP server"
1694         depends on CMD_BOOTP
1695
1696 config BOOTP_BOOTFILESIZE
1697         bool "Request & store 'bootfilesize' from BOOTP/DHCP server"
1698         depends on CMD_BOOTP
1699
1700 config BOOTP_DNS
1701         bool "Request & store 'dnsip' from BOOTP/DHCP server"
1702         default y
1703         depends on CMD_BOOTP
1704         help
1705           The primary DNS server is stored as 'dnsip'. If two servers are
1706           returned, you must set BOOTP_DNS2 to store that second server IP
1707           also.
1708
1709 config BOOTP_DNS2
1710         bool "Store 'dnsip2' from BOOTP/DHCP server"
1711         depends on BOOTP_DNS
1712         help
1713           If a DHCP client requests the DNS server IP from a DHCP server,
1714           it is possible that more than one DNS serverip is offered to the
1715           client. If CONFIG_BOOTP_DNS2 is enabled, the secondary DNS
1716           server IP will be stored in the additional environment
1717           variable "dnsip2". The first DNS serverip is always
1718           stored in the variable "dnsip", when BOOTP_DNS is defined.
1719
1720 config BOOTP_GATEWAY
1721         bool "Request & store 'gatewayip' from BOOTP/DHCP server"
1722         default y
1723         depends on CMD_BOOTP
1724
1725 config BOOTP_HOSTNAME
1726         bool "Request & store 'hostname' from BOOTP/DHCP server"
1727         default y
1728         depends on CMD_BOOTP
1729         help
1730           The name may or may not be qualified with the local domain name.
1731
1732 config BOOTP_PREFER_SERVERIP
1733         bool "serverip variable takes precedent over DHCP server IP."
1734         depends on CMD_BOOTP
1735         help
1736           By default a BOOTP/DHCP reply will overwrite the 'serverip' variable.
1737
1738           With this option enabled, the 'serverip' variable in the environment
1739           takes precedence over DHCP server IP and will only be set by the DHCP
1740           server if not already set in the environment.
1741
1742 config BOOTP_SUBNETMASK
1743         bool "Request & store 'netmask' from BOOTP/DHCP server"
1744         default y
1745         depends on CMD_BOOTP
1746
1747 config BOOTP_NISDOMAIN
1748         bool "Request & store 'nisdomain' from BOOTP/DHCP server"
1749         depends on CMD_BOOTP
1750
1751 config BOOTP_NTPSERVER
1752         bool "Request & store 'ntpserverip' from BOOTP/DHCP server"
1753         depends on CMD_BOOTP
1754
1755 config BOOTP_TIMEOFFSET
1756         bool "Request & store 'timeoffset' from BOOTP/DHCP server"
1757         depends on CMD_BOOTP && CMD_SNTP
1758
1759 config CMD_PCAP
1760         bool "pcap capture"
1761         help
1762           Selecting this will allow capturing all Ethernet packets and store
1763           them in physical memory in a PCAP formated file,
1764           later to be analyzed by PCAP reader application (IE. WireShark).
1765
1766 config BOOTP_PXE
1767         bool "Send PXE client arch to BOOTP/DHCP server"
1768         default y
1769         depends on CMD_BOOTP && CMD_PXE
1770         help
1771           Supported for ARM, ARM64, and x86 for now.
1772
1773 config BOOTP_PXE_CLIENTARCH
1774         hex
1775         depends on BOOTP_PXE
1776         default 0x16 if ARM64
1777         default 0x15 if ARM
1778         default 0 if X86
1779
1780 config BOOTP_VCI_STRING
1781         string
1782         depends on CMD_BOOTP
1783         default "U-Boot.armv7" if CPU_V7A || CPU_V7M || CPU_V7R
1784         default "U-Boot.armv8" if ARM64
1785         default "U-Boot.arm" if ARM
1786         default "U-Boot"
1787
1788 config CMD_TFTPBOOT
1789         bool "tftpboot"
1790         default y
1791         help
1792           tftpboot - load file via network using TFTP protocol
1793
1794 config CMD_TFTPPUT
1795         bool "tftp put"
1796         depends on CMD_TFTPBOOT
1797         help
1798           TFTP put command, for uploading files to a server
1799
1800 config CMD_TFTPSRV
1801         bool "tftpsrv"
1802         depends on CMD_TFTPBOOT
1803         help
1804           Act as a TFTP server and boot the first received file
1805
1806 config NET_TFTP_VARS
1807         bool "Control TFTP timeout and count through environment"
1808         depends on CMD_TFTPBOOT
1809         default y
1810         help
1811           If set, allows controlling the TFTP timeout through the
1812           environment variable tftptimeout, and the TFTP maximum
1813           timeout count through the variable tftptimeoutcountmax.
1814           If unset, timeout and maximum are hard-defined as 1 second
1815           and 10 timouts per TFTP transfer.
1816
1817 config CMD_RARP
1818         bool "rarpboot"
1819         help
1820           Boot image via network using RARP/TFTP protocol
1821
1822 config CMD_NFS
1823         bool "nfs"
1824         default y
1825         help
1826           Boot image via network using NFS protocol.
1827
1828 config NFS_TIMEOUT
1829         int "Timeout in milliseconds for NFS mounts"
1830         depends on CMD_NFS
1831         default 2000
1832         help
1833           Timeout in milliseconds used in NFS protocol.  If you encounter
1834           "ERROR: Cannot umount" in nfs command, try longer timeout such as
1835           10000.
1836
1837 config SYS_DISABLE_AUTOLOAD
1838         bool "Disable automatically loading files over the network"
1839         depends on CMD_BOOTP || CMD_DHCP || CMD_NFS || CMD_RARP
1840         help
1841           Typically, commands such as "dhcp" will attempt to automatically
1842           load a file from the network, once the initial network configuration
1843           is complete.  Enable this option to disable this behavior and instead
1844           require files to be loaded over the network by subsequent commands.
1845
1846 config CMD_WGET
1847         bool "wget"
1848         select PROT_TCP
1849         help
1850           wget is a simple command to download kernel, or other files,
1851           from a http server over TCP.
1852
1853 config CMD_MII
1854         bool "mii"
1855         imply CMD_MDIO
1856         help
1857           If set, allows 802.3(clause 22) MII Management functions interface access
1858           The management interface specified in Clause 22 provides
1859           a simple, two signal, serial interface to connect a
1860           Station Management entity and a managed PHY for providing access
1861           to management parameters and services.
1862           The interface is referred to as the MII management interface.
1863
1864 config MII_INIT
1865         bool "Call mii_init() in the mii command"
1866         depends on CMD_MII && (MPC8XX_FEC || FSLDMAFE || MCFFEC)
1867
1868 config CMD_MDIO
1869         bool "mdio"
1870         depends on PHYLIB
1871         help
1872           If set, allows Enable 802.3(clause 45) MDIO interface registers access
1873           The MDIO interface is orthogonal to the MII interface and extends
1874           it by adding access to more registers through indirect addressing.
1875
1876 config CMD_PING
1877         bool "ping"
1878         help
1879           Send ICMP ECHO_REQUEST to network host
1880
1881 config CMD_PING6
1882         bool "ping6"
1883         depends on IPV6
1884         default y if (CMD_PING && IPV6)
1885         help
1886           Send ICMPv6 ECHO_REQUEST to network host
1887
1888 config CMD_CDP
1889         bool "cdp"
1890         help
1891           Perform CDP network configuration
1892
1893 config CMD_SNTP
1894         bool "sntp"
1895         select PROT_UDP
1896         help
1897           Synchronize RTC via network
1898
1899 config CMD_DNS
1900         bool "dns"
1901         help
1902           Lookup the IP of a hostname
1903
1904 config CMD_LINK_LOCAL
1905         bool "linklocal"
1906         select LIB_RAND
1907         help
1908           Acquire a network IP address using the link-local protocol
1909
1910 config CMD_NCSI
1911         bool "ncsi"
1912         depends on PHY_NCSI
1913         help
1914           Manually configure the attached NIC via NC-SI.
1915           Normally this happens automatically before other network
1916           operations.
1917
1918 endif
1919
1920 config CMD_ETHSW
1921         bool "ethsw"
1922         help
1923           Allow control of L2 Ethernet switch commands. These are supported
1924           by the vsc9953 Ethernet driver at present. Sub-commands allow
1925           operations such as enabling / disabling a port and
1926           viewing/maintaining the filtering database (FDB)
1927
1928 config CMD_PXE
1929         bool "pxe"
1930         select PXE_UTILS
1931         help
1932           Boot image via network using PXE protocol
1933
1934 config CMD_WOL
1935         bool "wol"
1936         help
1937           Wait for wake-on-lan Magic Packet
1938
1939 endif
1940
1941 menu "Misc commands"
1942
1943 config CMD_BMP
1944         bool "Enable 'bmp' command"
1945         depends on VIDEO
1946         help
1947           This provides a way to obtain information about a BMP-format image
1948           and to display it. BMP (which presumably stands for BitMaP) is a
1949           file format defined by Microsoft which supports images of various
1950           depths, formats and compression methods. Headers on the file
1951           determine the formats used. This command can be used by first loading
1952           the image into RAM, then using this command to look at it or display
1953           it.
1954
1955 config CMD_BOOTCOUNT
1956         bool "bootcount"
1957         depends on BOOTCOUNT_LIMIT
1958         help
1959           Enable the bootcount command, which allows interrogation and
1960           reset of the bootcounter.
1961
1962 config CMD_BSP
1963         bool "Enable board-specific commands"
1964         help
1965           (deprecated: instead, please define a Kconfig option for each command)
1966
1967           Some boards have board-specific commands which are only enabled
1968           during developemnt and need to be turned off for production. This
1969           option provides a way to control this. The commands that are enabled
1970           vary depending on the board.
1971
1972 config CMD_BLOCK_CACHE
1973         bool "blkcache - control and stats for block cache"
1974         depends on BLOCK_CACHE
1975         default y if BLOCK_CACHE
1976         help
1977           Enable the blkcache command, which can be used to control the
1978           operation of the cache functions.
1979           This is most useful when fine-tuning the operation of the cache
1980           during development, but also allows the cache to be disabled when
1981           it might hurt performance (e.g. when using the ums command).
1982
1983 config CMD_BUTTON
1984         bool "button"
1985         depends on BUTTON
1986         default y if BUTTON
1987         help
1988           Enable the 'button' command which allows to get the status of
1989           buttons supported by the board. The buttonss can be listed with
1990           'button list' and state can be known with 'button <label>'.
1991           Any button drivers can be controlled with this command, e.g.
1992           button_gpio.
1993
1994 config CMD_CACHE
1995         bool "icache or dcache"
1996         help
1997           Enable the "icache" and "dcache" commands
1998
1999 config CMD_CONITRACE
2000         bool "conitrace - trace console input codes"
2001         help
2002           Enable the 'conitrace' command which displays the codes received
2003           from the console input as hexadecimal numbers.
2004
2005 config CMD_CLS
2006         bool "Enable clear screen command 'cls'"
2007         default y if LCD || VIDEO
2008         help
2009           Enable the 'cls' command which clears the screen contents
2010           on video frame buffer.
2011
2012 config CMD_EFIDEBUG
2013         bool "efidebug - display/configure UEFI environment"
2014         depends on EFI_LOADER
2015         select EFI_DEVICE_PATH_TO_TEXT
2016         help
2017           Enable the 'efidebug' command which provides a subset of UEFI
2018           shell utility with simplified functionality. It will be useful
2019           particularly for managing boot parameters as  well as examining
2020           various EFI status for debugging.
2021
2022 config CMD_EFICONFIG
2023         bool "eficonfig - provide menu-driven uefi variables maintenance interface"
2024         default y if !HAS_BOARD_SIZE_LIMIT
2025         depends on CMD_BOOTEFI_BOOTMGR
2026         select MENU
2027         help
2028           Enable the 'eficonfig' command which provides the menu-driven UEFI
2029           variable maintenance interface.
2030
2031 config CMD_EXCEPTION
2032         bool "exception - raise exception"
2033         depends on ARM || RISCV || SANDBOX || X86
2034         help
2035           Enable the 'exception' command which allows to raise an exception.
2036
2037 config CMD_LED
2038         bool "led"
2039         depends on LED
2040         default y if LED
2041         help
2042           Enable the 'led' command which allows for control of LEDs supported
2043           by the board. The LEDs can be listed with 'led list' and controlled
2044           with led on/off/togle/blink. Any LED drivers can be controlled with
2045           this command, e.g. led_gpio.
2046
2047 config CMD_INI
2048         bool "ini"
2049         help
2050           Enable the 'ini' command which allows a .ini file to be parsed and
2051           placed into environment variables. Please check the source code for
2052           this as there is no documentation.
2053
2054 config CMD_DATE
2055         bool "date"
2056         default y if DM_RTC
2057         select LIB_DATE
2058         help
2059           Enable the 'date' command for getting/setting the time/date in RTC
2060           devices.
2061
2062 config CMD_RTC
2063         bool "rtc"
2064         depends on DM_RTC
2065         help
2066           Enable the 'rtc' command for low-level access to RTC devices.
2067
2068 config CMD_TIME
2069         bool "time"
2070         help
2071           Run commands and summarize execution time.
2072
2073 config CMD_GETTIME
2074         bool "gettime - read elapsed time"
2075         help
2076           Enable the 'gettime' command which reads the elapsed time since
2077           U-Boot started running. This shows the time in seconds and
2078           milliseconds. See also the 'bootstage' command which provides more
2079           flexibility for boot timing.
2080
2081 config CMD_PAUSE
2082         bool "pause command"
2083         help
2084           Delay execution waiting for any user input.
2085           Useful to allow the user to read a failure log.
2086
2087 config CMD_RNG
2088         bool "rng command"
2089         depends on DM_RNG
2090         default y if SANDBOX
2091         select HEXDUMP
2092         help
2093           Print bytes from the hardware random number generator.
2094
2095 config CMD_KASLRSEED
2096         bool "kaslrseed"
2097         depends on DM_RNG
2098         help
2099           Set the kaslr-seed in the chosen node with entropy provided by a
2100           hardware random number generator.
2101
2102 config CMD_SLEEP
2103         bool "sleep"
2104         default y
2105         help
2106           Delay execution for some time
2107
2108 config CMD_MP
2109         bool "support for multiprocessor commands"
2110         depends on MP
2111         default y
2112         help
2113           This enables commands to bringup different processors
2114           in multiprocessor cases.
2115
2116 config CMD_TIMER
2117         bool "timer"
2118         help
2119           Access the system timer.
2120
2121 config CMD_SOUND
2122         bool "sound"
2123         depends on SOUND
2124         help
2125           This provides basic access to the U-Boot's sound support. The main
2126           feature is to play a beep.
2127
2128              sound init   - set up sound system
2129              sound play   - play a sound
2130
2131 config CMD_SYSBOOT
2132         bool "sysboot"
2133         select PXE_UTILS
2134         help
2135           Boot image via local extlinux.conf file
2136
2137 config CMD_QFW
2138         bool "qfw"
2139         select QFW
2140         help
2141           This provides access to the QEMU firmware interface.  The main
2142           feature is to allow easy loading of files passed to qemu-system
2143           via -kernel / -initrd
2144
2145 config CMD_PSTORE
2146         bool "pstore"
2147         help
2148           This provides access to Linux PStore with Rammoops backend. The main
2149           feature is to allow to display or save PStore records.
2150
2151           See doc/pstore.rst for more information.
2152
2153 if CMD_PSTORE
2154
2155 config CMD_PSTORE_MEM_ADDR
2156         hex "Memory Address"
2157         depends on CMD_PSTORE
2158         help
2159           Base addr used for PStore ramoops memory, should be identical to
2160           ramoops.mem_address parameter used by kernel
2161
2162 config CMD_PSTORE_MEM_SIZE
2163         hex "Memory size"
2164         depends on CMD_PSTORE
2165         default "0x10000"
2166         help
2167           Size of PStore ramoops memory, should be identical to ramoops.mem_size
2168           parameter used by kernel, a power of 2 and larger than the sum of the
2169           record sizes
2170
2171 config CMD_PSTORE_RECORD_SIZE
2172         hex "Dump record size"
2173         depends on CMD_PSTORE
2174         default "0x1000"
2175         help
2176           Size of each dump done on oops/panic, should be identical to
2177           ramoops.record_size parameter used by kernel and a power of 2
2178           Must be non-zero
2179
2180 config CMD_PSTORE_CONSOLE_SIZE
2181         hex "Kernel console log size"
2182         depends on CMD_PSTORE
2183         default "0x1000"
2184         help
2185           Size of kernel console log, should be identical to
2186           ramoops.console_size parameter used by kernel and a power of 2
2187           Must be non-zero
2188
2189 config CMD_PSTORE_FTRACE_SIZE
2190         hex "FTrace log size"
2191         depends on CMD_PSTORE
2192         default "0x1000"
2193         help
2194           Size of ftrace log, should be identical to ramoops.ftrace_size
2195           parameter used by kernel and a power of 2
2196
2197 config CMD_PSTORE_PMSG_SIZE
2198         hex "User space message log size"
2199         depends on CMD_PSTORE
2200         default "0x1000"
2201         help
2202           Size of user space message log, should be identical to
2203           ramoops.pmsg_size parameter used by kernel and a power of 2
2204
2205 config CMD_PSTORE_ECC_SIZE
2206         int "ECC size"
2207         depends on CMD_PSTORE
2208         default "0"
2209         help
2210         if non-zero, the option enables ECC support and specifies ECC buffer
2211         size in bytes (1 is a special value, means 16 bytes ECC), should be
2212         identical to ramoops.ramoops_ecc parameter used by kernel
2213
2214 endif
2215
2216 source "cmd/mvebu/Kconfig"
2217
2218 config CMD_TERMINAL
2219         bool "terminal - provides a way to attach a serial terminal"
2220         help
2221           Provides a 'cu'-like serial terminal command. This can be used to
2222           access other serial ports from the system console. The terminal
2223           is very simple with no special processing of characters. As with
2224           cu, you can press ~. (tilde followed by period) to exit.
2225
2226 config CMD_UUID
2227         bool "uuid, guid - generation of unique IDs"
2228         select LIB_UUID
2229         help
2230           This enables two commands:
2231
2232              uuid - generate random Universally Unique Identifier
2233              guid - generate Globally Unique Identifier based on random UUID
2234
2235           The two commands are very similar except for the endianness of the
2236           output.
2237
2238 config CMD_VIDCONSOLE
2239         bool "lcdputs and setcurs"
2240         depends on VIDEO
2241         default y
2242         help
2243           Enabling this will provide 'setcurs' and 'lcdputs' commands which
2244           support cursor positioning and drawing strings on the video
2245           console (framebuffer).
2246
2247           The name 'lcdputs' is a bit of a misnomer, but so named because the
2248           video device is often an LCD.
2249
2250 config CMD_SELECT_FONT
2251         bool "select font size"
2252         depends on VIDEO
2253         default n
2254         help
2255           Enabling this will provide 'font' command.
2256           Allows font selection at runtime.
2257
2258 endmenu
2259
2260 source "cmd/ti/Kconfig"
2261
2262 config CMD_BOOTSTAGE
2263         bool "Enable the 'bootstage' command"
2264         depends on BOOTSTAGE
2265         help
2266           Add a 'bootstage' command which supports printing a report
2267           and un/stashing of bootstage data.
2268
2269 menu "Power commands"
2270 config CMD_PMIC
2271         bool "Enable Driver Model PMIC command"
2272         depends on DM_PMIC
2273         help
2274           This is the pmic command, based on a driver model pmic's API.
2275           Command features are unchanged:
2276           - list               - list pmic devices
2277           - pmic dev <id>      - show or [set] operating pmic device (NEW)
2278           - pmic dump          - dump registers
2279           - pmic read address  - read byte of register at address
2280           - pmic write address - write byte to register at address
2281           The only one change for this command is 'dev' subcommand.
2282
2283 config CMD_REGULATOR
2284         bool "Enable Driver Model REGULATOR command"
2285         depends on DM_REGULATOR
2286         help
2287           This command is based on driver model regulator's API.
2288           User interface features:
2289           - list               - list regulator devices
2290           - regulator dev <id> - show or [set] operating regulator device
2291           - regulator info     - print constraints info
2292           - regulator status   - print operating status
2293           - regulator value <val] <-f> - print/[set] voltage value [uV]
2294           - regulator current <val>    - print/[set] current value [uA]
2295           - regulator mode <id>        - print/[set] operating mode id
2296           - regulator enable           - enable the regulator output
2297           - regulator disable          - disable the regulator output
2298
2299           The '-f' (force) option can be used for set the value which exceeds
2300           the limits, which are found in device-tree and are kept in regulator's
2301           uclass plat structure.
2302
2303 endmenu
2304
2305 menu "Security commands"
2306 config CMD_AES
2307         bool "Enable the 'aes' command"
2308         select AES
2309         help
2310           This provides a means to encrypt and decrypt data using the AES
2311           (Advanced Encryption Standard). This algorithm uses a symetric key
2312           and is widely used as a streaming cipher. Different key lengths are
2313           supported by the algorithm but this command only supports 128 bits
2314           at present.
2315
2316 config CMD_BLOB
2317         bool "Enable the 'blob' command"
2318         depends on !MX6ULL && !MX6SLL && !MX6SL
2319         select IMX_HAB if ARCH_MX6 || ARCH_MX7 || ARCH_MX7ULP || ARCH_IMX8M
2320         help
2321           This is used with the Freescale secure boot mechanism.
2322
2323           Freescale's SEC block has built-in Blob Protocol which provides
2324           a method for protecting user-defined data across system power
2325           cycles. SEC block protects data in a data structure called a Blob,
2326           which provides both confidentiality and integrity protection.
2327
2328           Encapsulating data as a blob
2329           Each time that the Blob Protocol is used to protect data, a
2330           different randomly generated key is used to encrypt the data.
2331           This random key is itself encrypted using a key which is derived
2332           from SoC's non-volatile secret key and a 16 bit Key identifier.
2333           The resulting encrypted key along with encrypted data is called a
2334           blob. The non-volatile secure key is available for use only during
2335           secure boot.
2336
2337           During decapsulation, the reverse process is performed to get back
2338           the original data.
2339
2340           Sub-commands:
2341             blob enc - encapsulating data as a cryptgraphic blob
2342             blob dec - decapsulating cryptgraphic blob to get the data
2343
2344           Syntax:
2345
2346           blob enc src dst len km
2347
2348           Encapsulate and create blob of data $len bytes long
2349           at address $src and store the result at address $dst.
2350           $km is the 16 byte key modifier is also required for
2351           generation/use as key for cryptographic operation. Key
2352           modifier should be 16 byte long.
2353
2354           blob dec src dst len km
2355
2356           Decapsulate the  blob of data at address $src and
2357           store result of $len byte at addr $dst.
2358           $km is the 16 byte key modifier is also required for
2359           generation/use as key for cryptographic operation. Key
2360           modifier should be 16 byte long.
2361
2362 config CMD_HASH
2363         bool "Support 'hash' command"
2364         select HASH
2365         help
2366           This provides a way to hash data in memory using various supported
2367           algorithms (such as SHA1, MD5, CRC32). The computed digest can be
2368           saved to memory or to an environment variable. It is also possible
2369           to verify a hash against data in memory.
2370
2371 config CMD_HVC
2372         bool "Support the 'hvc' command"
2373         depends on ARM_SMCCC
2374         help
2375           Allows issuing Hypervisor Calls (HVCs). Mostly useful for
2376           development and testing.
2377
2378 config CMD_SMC
2379         bool "Support the 'smc' command"
2380         depends on ARM_SMCCC
2381         help
2382           Allows issuing Secure Monitor Calls (SMCs). Mostly useful for
2383           development and testing.
2384
2385 config HASH_VERIFY
2386         bool "hash -v"
2387         depends on CMD_HASH
2388         help
2389           Add -v option to verify data against a hash.
2390
2391 config CMD_SCP03
2392         bool "scp03 - SCP03 enable and rotate/provision operations"
2393         depends on SCP03
2394         help
2395           This command provides access to a Trusted Application
2396           running in a TEE to request Secure Channel Protocol 03
2397           (SCP03) enablement and/or rotation of its SCP03 keys.
2398
2399 config CMD_TPM_V1
2400         bool
2401
2402 config CMD_TPM_V2
2403         bool
2404
2405 config CMD_TPM
2406         bool "Enable the 'tpm' command"
2407         depends on TPM_V1 || TPM_V2
2408         select CMD_TPM_V1 if TPM_V1
2409         select CMD_TPM_V2 if TPM_V2
2410         help
2411           This provides a means to talk to a TPM from the command line. A wide
2412           range of commands if provided - see 'tpm help' for details. The
2413           command requires a suitable TPM on your board and the correct driver
2414           must be enabled.
2415
2416 if CMD_TPM
2417
2418 config CMD_TPM_TEST
2419         bool "Enable the 'tpm test' command"
2420         depends on TPM_V1
2421         help
2422           This provides a a series of tests to confirm that the TPMv1.x is
2423           working correctly. The tests cover initialisation, non-volatile RAM,
2424           extend, global lock and checking that timing is within expectations.
2425           The tests pass correctly on Infineon TPMs but may need to be adjusted
2426           for other devices.
2427
2428 endif
2429
2430 endmenu
2431
2432 menu "Firmware commands"
2433 config CMD_CROS_EC
2434         bool "Enable crosec command"
2435         depends on CROS_EC
2436         default y
2437         help
2438           Enable command-line access to the Chrome OS EC (Embedded
2439           Controller). This provides the 'crosec' command which has
2440           a number of sub-commands for performing EC tasks such as
2441           updating its flash, accessing a small saved context area
2442           and talking to the I2C bus behind the EC (if there is one).
2443 endmenu
2444
2445 menu "Filesystem commands"
2446 config CMD_BTRFS
2447         bool "Enable the 'btrsubvol' command"
2448         select FS_BTRFS
2449         help
2450           This enables the 'btrsubvol' command to list subvolumes
2451           of a BTRFS filesystem. There are no special commands for
2452           listing BTRFS directories or loading BTRFS files - this
2453           can be done by the generic 'fs' commands (see CMD_FS_GENERIC)
2454           when BTRFS is enabled (see FS_BTRFS).
2455
2456 config CMD_CBFS
2457         bool "Enable the 'cbfs' command"
2458         depends on FS_CBFS
2459         help
2460           Define this to enable support for reading from a Coreboot
2461           filesystem. This is a ROM-based filesystem used for accessing files
2462           on systems that use coreboot as the first boot-loader and then load
2463           U-Boot to actually boot the Operating System. Available commands are
2464           cbfsinit, cbfsinfo, cbfsls and cbfsload.
2465
2466 config CMD_CRAMFS
2467         bool "Enable the 'cramfs' command"
2468         depends on FS_CRAMFS
2469         help
2470           This provides commands for dealing with CRAMFS (Compressed ROM
2471           filesystem). CRAMFS is useful when space is tight since files are
2472           compressed. Two commands are provided:
2473
2474              cramfsls   - lists files in a cramfs image
2475              cramfsload - loads a file from a cramfs image
2476
2477 config CMD_EROFS
2478         bool "EROFS command support"
2479         select FS_EROFS
2480         help
2481           Support for the EROFS fs
2482
2483 config CMD_EXT2
2484         bool "ext2 command support"
2485         select FS_EXT4
2486         help
2487           Enables EXT2 FS command
2488
2489 config CMD_EXT4
2490         bool "ext4 command support"
2491         select FS_EXT4
2492         help
2493           Enables EXT4 FS command
2494
2495 config CMD_EXT4_WRITE
2496         depends on CMD_EXT4
2497         bool "ext4 write command support"
2498         select EXT4_WRITE
2499         help
2500           Enables EXT4 FS write command
2501
2502 config CMD_FAT
2503         bool "FAT command support"
2504         select FS_FAT
2505         help
2506           Support for the FAT fs
2507
2508 config CMD_SQUASHFS
2509         bool "SquashFS command support"
2510         select FS_SQUASHFS
2511         help
2512           Enables SquashFS filesystem commands (e.g. load, ls).
2513
2514 config CMD_FS_GENERIC
2515         bool "filesystem commands"
2516         help
2517           Enables filesystem commands (e.g. load, ls) that work for multiple
2518           fs types.
2519
2520 config CMD_FS_UUID
2521         bool "fsuuid command"
2522         help
2523           Enables fsuuid command for filesystem UUID.
2524
2525 config CMD_JFFS2
2526         bool "jffs2 command"
2527         select FS_JFFS2
2528         help
2529           Enables commands to support the JFFS2 (Journalling Flash File System
2530           version 2) filesystem. This enables fsload, ls and fsinfo which
2531           provide the ability to load files, list directories and obtain
2532           filesystem information.
2533
2534 config JFFS2_DEV
2535         string "Default device for JFFS2"
2536         depends on CMD_JFFS2
2537         default "nor0"
2538         help
2539           The default device to use with the jffs2 command.
2540
2541 config JFFS2_PART_OFFSET
2542         hex "Default offset within flash to locate the JFFS2 image"
2543         depends on CMD_JFFS2
2544         default 0x0
2545         help
2546           The default offset within flash to locate the JFFS2 image.
2547
2548 config JFFS2_PART_SIZE
2549         hex "Default size of JFFS2 partition"
2550         depends on CMD_JFFS2
2551         default 0xFFFFFFFF
2552         help
2553           The default size of the JFFS2 partition
2554
2555 config CMD_MTDPARTS
2556         bool "MTD partition support"
2557         depends on MTD
2558         help
2559           MTD partitioning tool support.
2560           It is strongly encouraged to avoid using this command
2561           anymore along with 'sf', 'nand', 'onenand'. One can still
2562           declare the partitions in the mtdparts environment variable
2563           but better use the MTD stack and the 'mtd' command instead.
2564
2565 config CMD_MTDPARTS_SPREAD
2566         bool "Padd partition size to take account of bad blocks"
2567         depends on CMD_MTDPARTS
2568         help
2569           This enables the 'spread' sub-command of the mtdparts command.
2570           This command will modify the existing mtdparts variable by increasing
2571           the size of the partitions such that 1) each partition's net size is
2572           at least as large as the size specified in the mtdparts variable and
2573           2) each partition starts on a good block.
2574
2575 config CMD_MTDPARTS_SHOW_NET_SIZES
2576         bool "Show net size (w/o bad blocks) of partitions"
2577         depends on CMD_MTDPARTS
2578         help
2579           Adds two columns to the printed partition table showing the
2580           effective usable size of a partition, if bad blocks are taken
2581           into account.
2582
2583 config MTDIDS_DEFAULT
2584         string "Default MTD IDs"
2585         depends on MTD || SPI_FLASH
2586         depends on !SYS_MTDPARTS_RUNTIME
2587         help
2588           Defines a default MTD IDs list for use with MTD partitions in the
2589           Linux MTD command line partitions format.
2590
2591 config MTDPARTS_DEFAULT
2592         string "Default MTD partition scheme"
2593         depends on MTD || SPI_FLASH
2594         depends on !SYS_MTDPARTS_RUNTIME
2595         help
2596           Defines a default MTD partitioning scheme in the Linux MTD command
2597           line partitions format
2598
2599 config CMD_REISER
2600         bool "reiser - Access to reiserfs filesystems"
2601         help
2602           This provides two commands which operate on a resierfs filesystem,
2603           commonly used some years ago:
2604
2605             reiserls - list files
2606             reiserload - load a file
2607
2608 config CMD_YAFFS2
2609         bool "yaffs2 - Access of YAFFS2 filesystem"
2610         depends on YAFFS2
2611         default y
2612         help
2613           This provides commands for accessing a YAFFS2 filesystem. Yet
2614           Another Flash Filesystem 2 is a filesystem designed specifically
2615           for NAND flash. It incorporates bad-block management and ensures
2616           that device writes are sequential regardless of filesystem
2617           activity.
2618
2619 config CMD_ZFS
2620         bool "zfs - Access of ZFS filesystem"
2621         help
2622           This provides commands to accessing a ZFS filesystem, commonly used
2623           on Solaris systems. Two sub-commands are provided:
2624
2625             zfsls - list files in a directory
2626             zfsload - load a file
2627
2628           See doc/README.zfs for more details.
2629
2630 endmenu
2631
2632 menu "Debug commands"
2633
2634 config CMD_CBSYSINFO
2635         bool "cbsysinfo"
2636         depends on X86
2637         default y if SYS_COREBOOT
2638         help
2639           This provides information about the coreboot sysinfo table stored in
2640           memory by coreboot before jumping to U-Boot. It can be useful for
2641           debugging the beaaviour of coreboot or U-Boot.
2642
2643 config CMD_CYCLIC
2644         bool "cyclic - Show information about cyclic functions"
2645         depends on CYCLIC
2646         default y
2647         help
2648           This enables the 'cyclic' command which provides information about
2649           cyclic execution functions. This infrastructure allows registering
2650           functions to be executed cyclically, e.g. every 100ms. These commands
2651           are supported:
2652
2653             cyclic list - list cyclic functions
2654             cyclic cyclic demo <cycletime_ms> <delay_us> - register cyclic
2655                 demo function
2656
2657           See doc/develop/cyclic.rst for more details.
2658
2659 config CMD_DIAG
2660         bool "diag - Board diagnostics"
2661         help
2662           This command provides access to board diagnostic tests. These are
2663           called Power-on Self Tests (POST). The command allows listing of
2664           available tests and running either all the tests, or specific tests
2665           identified by name.
2666
2667 config CMD_EVENT
2668         bool "event - Show information about events"
2669         depends on EVENT
2670         default y if EVENT_DEBUG
2671         help
2672           This enables the 'event' command which provides information about
2673           events and event-handler routines. This can help to device event
2674           hadling.
2675
2676 config CMD_IRQ
2677         bool "irq - Show information about interrupts"
2678         depends on !ARM && !MIPS && !RISCV && !SH
2679         help
2680           This enables two commands:
2681
2682              interrupts - enable or disable interrupts
2683              irqinfo - print device-specific interrupt information
2684
2685 config CMD_KGDB
2686         bool "kgdb - Allow debugging of U-Boot with gdb"
2687         depends on PPC
2688         help
2689           This enables a 'kgdb' command which allows gdb to connect to U-Boot
2690           over a serial link for debugging purposes. This allows
2691           single-stepping, inspecting variables, etc. This is supported only
2692           on PowerPC at present.
2693
2694 config CMD_LOG
2695         bool "log - Generation, control and access to logging"
2696         select LOG
2697         select GETOPT
2698         help
2699           This provides access to logging features. It allows the output of
2700           log data to be controlled to a limited extent (setting up the default
2701           maximum log level for emitting of records). It also provides access
2702           to a command used for testing the log system.
2703
2704 config CMD_TRACE
2705         bool "trace - Support tracing of function calls and timing"
2706         depends on TRACE
2707         default y
2708         help
2709           Enables a command to control using of function tracing within
2710           U-Boot. This allows recording of call traces including timing
2711           information. The command can write data to memory for exporting
2712           for analysis (e.g. using bootchart). See doc/README.trace for full
2713           details.
2714
2715 config CMD_AVB
2716         bool "avb - Android Verified Boot 2.0 operations"
2717         depends on AVB_VERIFY
2718         help
2719           Enables a "avb" command to perform verification of partitions using
2720           Android Verified Boot 2.0 functionality. It includes such subcommands:
2721             avb init - initialize avb2 subsystem
2722             avb read_rb - read rollback index
2723             avb write_rb - write rollback index
2724             avb is_unlocked - check device lock state
2725             avb get_uuid - read and print uuid of a partition
2726             avb read_part - read data from partition
2727             avb read_part_hex - read data from partition and output to stdout
2728             avb write_part - write data to partition
2729             avb verify - run full verification chain
2730
2731 config CMD_STACKPROTECTOR_TEST
2732         bool "Test command for stack protector"
2733         depends on STACKPROTECTOR
2734         help
2735           Enable stackprot_test command
2736           The stackprot_test command will force a stack overrun to test
2737           the stack smashing detection mechanisms.
2738
2739 endmenu
2740
2741 config CMD_UBI
2742         tristate "Enable UBI - Unsorted block images commands"
2743         select MTD_UBI
2744         help
2745           UBI is a software layer above MTD layer which admits use of LVM-like
2746           logical volumes on top of MTD devices, hides some complexities of
2747           flash chips like wear and bad blocks and provides some other useful
2748           capabilities. Please, consult the MTD web site for more details
2749           (www.linux-mtd.infradead.org). Activate this option if you want
2750           to use U-Boot UBI commands.
2751           It is also strongly encouraged to also enable CONFIG_MTD to get full
2752           partition support.
2753
2754 config CMD_UBI_RENAME
2755        bool "Enable rename"
2756        depends on CMD_UBI
2757        help
2758          Enable a "ubi" command to rename ubi volume:
2759            ubi rename <oldname> <newname>
2760
2761 config CMD_UBIFS
2762         tristate "Enable UBIFS - Unsorted block images filesystem commands"
2763         depends on CMD_UBI
2764         default y if CMD_UBI
2765         select LZO
2766         select GZIP
2767         help
2768           UBIFS is a file system for flash devices which works on top of UBI.
2769
2770 config MMC_SPEED_MODE_SET
2771         bool "set speed mode using mmc command"
2772         depends on CMD_MMC
2773         default n
2774         help
2775           Enable setting speed mode using mmc rescan and mmc dev commands.
2776           The speed mode is provided as the last argument in these commands
2777           and is indicated using the index from enum bus_mode in
2778           include/mmc.h. A speed mode can be set only if it has already
2779           been enabled in the device tree.
2780
2781 config CMD_MESON
2782         bool "Amlogic Meson commands"
2783         depends on ARCH_MESON
2784         default y
2785         help
2786           Enable useful commands for the Meson Soc family developed by Amlogic Inc.
2787 endmenu