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