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