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