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