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