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