cmd: fdt: Map address returned from fdt get addr to sysmem
[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 ACPIGEN
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 if BOOTSTD_FULL
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_PINMUX
1400         bool "pinmux - show pins muxing"
1401         depends on PINCTRL
1402         default y if PINCTRL
1403         help
1404           Parse all available pin-controllers and show pins muxing. This
1405           is useful for debug purpoer to check the pin muxing and to know if
1406           a pin is configured as a GPIO or as an alternate function.
1407
1408 config CMD_POWEROFF
1409         bool "poweroff"
1410         help
1411           Poweroff/Shutdown the system
1412
1413 config CMD_READ
1414         bool "read - Read binary data from a partition"
1415         help
1416           Provides low-level access to the data in a partition.
1417
1418 config CMD_REMOTEPROC
1419         bool "remoteproc"
1420         depends on REMOTEPROC
1421         help
1422           Support for Remote Processor control
1423
1424 config CMD_SATA
1425         bool "sata - Access SATA subsystem"
1426         select SATA
1427         help
1428           SATA (Serial Advanced Technology Attachment) is a serial bus
1429           standard for connecting to hard drives and other storage devices.
1430           This command provides information about attached devices and allows
1431           reading, writing and other operations.
1432
1433           SATA replaces PATA (originally just ATA), which stands for Parallel AT
1434           Attachment, where AT refers to an IBM AT (Advanced Technology)
1435           computer released in 1984.
1436
1437 config CMD_SCSI
1438         bool "scsi - Access to SCSI devices"
1439         default y if SCSI
1440         help
1441           This provides a 'scsi' command which provides access to SCSI (Small
1442           Computer System Interface) devices. The command provides a way to
1443           scan the bus, reset the bus, read and write data and get information
1444           about devices.
1445
1446 config CMD_SDRAM
1447         bool "sdram - Print SDRAM configuration information"
1448         help
1449           Provides information about attached SDRAM. This assumed that the
1450           SDRAM has an EEPROM with information that can be read using the
1451           I2C bus. This is only available on some boards.
1452
1453 config CMD_SF
1454         bool "sf"
1455         depends on DM_SPI_FLASH || SPI_FLASH
1456         default y if DM_SPI_FLASH
1457         help
1458           SPI Flash support
1459
1460 config CMD_SF_TEST
1461         bool "sf test - Allow testing of SPI flash"
1462         depends on CMD_SF
1463         help
1464           Provides a way to test that SPI flash is working correctly. The
1465           test is destructive, in that an area of SPI flash must be provided
1466           for the test to use. Performance information is also provided,
1467           measuring the performance of reading, writing and erasing in
1468           Mbps (Million Bits Per Second). This value should approximately
1469           equal the SPI bus speed for a single-bit-wide SPI bus, assuming
1470           everything is working properly.
1471
1472 config CMD_SPI
1473         bool "sspi - Command to access spi device"
1474         depends on SPI
1475         help
1476           SPI utility command.
1477
1478 config DEFAULT_SPI_BUS
1479         int "default spi bus used by sspi command"
1480         depends on CMD_SPI
1481         default 0
1482
1483 config DEFAULT_SPI_MODE
1484         hex "default spi mode used by sspi command (see include/spi.h)"
1485         depends on CMD_SPI
1486         default 0
1487
1488 config CMD_TEMPERATURE
1489         bool "temperature - display the temperature from thermal sensors"
1490         depends on DM_THERMAL
1491         help
1492           Provides a way to list thermal sensors and to get their readings.
1493
1494 config CMD_TSI148
1495         bool "tsi148 - Command to access tsi148 device"
1496         help
1497           This provides various sub-commands to initialise and configure the
1498           Turndra tsi148 device. See the command help for full details.
1499
1500 config CMD_UFS
1501         bool "Enable UFS - Universal Flash Subsystem commands"
1502         depends on UFS
1503         help
1504           "This provides commands to initialise and configure universal flash
1505            subsystem devices"
1506
1507 config CMD_UNIVERSE
1508         bool "universe - Command to set up the Turndra Universe controller"
1509         help
1510           This allows setting up the VMEbus provided by this controller.
1511           See the command help for full details.
1512
1513 config CMD_USB
1514         bool "usb"
1515         depends on USB_HOST
1516         help
1517           USB support.
1518
1519 config CMD_USB_SDP
1520         bool "sdp"
1521         select USB_FUNCTION_SDP
1522         help
1523           Enables the command "sdp" which is used to have U-Boot emulating the
1524           Serial Download Protocol (SDP) via USB.
1525
1526 config CMD_ROCKUSB
1527         bool "rockusb"
1528         depends on USB_FUNCTION_ROCKUSB
1529         help
1530           Rockusb protocol is widely used by Rockchip SoC based devices. It can
1531           read/write info, image to/from devices. This enable rockusb command
1532           support to communication with rockusb device. for more detail about
1533           this command, please read doc/README.rockusb.
1534
1535 config CMD_USB_MASS_STORAGE
1536         bool "UMS usb mass storage"
1537         depends on USB_GADGET_DOWNLOAD
1538         select USB_FUNCTION_MASS_STORAGE
1539         depends on BLK && USB_GADGET
1540         help
1541           Enables the command "ums" and the USB mass storage support to the
1542           export a block device: U-Boot, the USB device, acts as a simple
1543           external hard drive plugged on the host USB port.
1544
1545 config CMD_PVBLOCK
1546         bool "Xen para-virtualized block device"
1547         depends on XEN
1548         select PVBLOCK
1549         help
1550           Xen para-virtualized block device support
1551
1552 config CMD_VIRTIO
1553         bool "virtio"
1554         depends on VIRTIO
1555         default y if VIRTIO
1556         help
1557           VirtIO block device support
1558
1559 config CMD_WDT
1560         bool "wdt"
1561         depends on WDT
1562         help
1563           This provides commands to control the watchdog timer devices.
1564
1565 config CMD_AXI
1566         bool "axi"
1567         depends on AXI
1568         help
1569           Enable the command "axi" for accessing AXI (Advanced eXtensible
1570           Interface) busses, a on-chip interconnect specification for managing
1571           functional blocks in SoC designs, which is also often used in designs
1572           involving FPGAs (e.g.  communication with IP cores in Xilinx FPGAs).
1573 endmenu
1574
1575
1576 menu "Shell scripting commands"
1577
1578 config CMD_CAT
1579         bool "cat"
1580         help
1581           Print file to standard output
1582
1583 config CMD_ECHO
1584         bool "echo"
1585         default y
1586         help
1587           Echo args to console
1588
1589 config CMD_ITEST
1590         bool "itest"
1591         default y
1592         help
1593           Return true/false on integer compare.
1594
1595 config CMD_SOURCE
1596         bool "source"
1597         default y
1598         help
1599           Run script from memory
1600
1601 config CMD_SETEXPR
1602         bool "setexpr"
1603         default y
1604         help
1605           Evaluate boolean and math expressions and store the result in an env
1606             variable.
1607           Also supports loading the value at a memory location into a variable.
1608           If CONFIG_REGEX is enabled, setexpr also supports a gsub function.
1609
1610 config CMD_SETEXPR_FMT
1611         bool "setexpr_fmt"
1612         depends on CMD_SETEXPR
1613         help
1614           Evaluate format string expression and store result in an environment
1615             variable.
1616
1617 endmenu
1618
1619 menu "Android support commands"
1620
1621 config CMD_AB_SELECT
1622         bool "ab_select"
1623         depends on ANDROID_AB
1624         help
1625           On Android devices with more than one boot slot (multiple copies of
1626           the kernel and system images) this provides a command to select which
1627           slot should be used to boot from and register the boot attempt. This
1628           is used by the new A/B update model where one slot is updated in the
1629           background while running from the other slot.
1630
1631 endmenu
1632
1633 if NET
1634
1635 menuconfig CMD_NET
1636         bool "Network commands"
1637         default y
1638         imply NETDEVICES
1639
1640 if CMD_NET
1641
1642 config CMD_BOOTP
1643         bool "bootp"
1644         default y
1645         help
1646           bootp - boot image via network using BOOTP/TFTP protocol
1647
1648 config CMD_DHCP
1649         bool "dhcp"
1650         depends on CMD_BOOTP
1651         help
1652           Boot image via network using DHCP/TFTP protocol
1653
1654 config BOOTP_MAY_FAIL
1655         bool "Allow for the BOOTP/DHCP server to not be found"
1656         depends on CMD_BOOTP
1657         help
1658           If the DHCP server is not found after the configured retry count, the
1659           call will fail instead of starting over.  This can be used to fail
1660           over to Link-local IP address configuration if the DHCP server is not
1661           available.
1662
1663 config BOOTP_BOOTPATH
1664         bool "Request & store 'rootpath' from BOOTP/DHCP server"
1665         default y
1666         depends on CMD_BOOTP
1667         help
1668           Even though the config is called BOOTP_BOOTPATH, it stores the
1669           path in the variable 'rootpath'.
1670
1671 config BOOTP_VENDOREX
1672         bool "Support vendor extensions from BOOTP/DHCP server"
1673         depends on CMD_BOOTP
1674
1675 config BOOTP_BOOTFILESIZE
1676         bool "Request & store 'bootfilesize' from BOOTP/DHCP server"
1677         depends on CMD_BOOTP
1678
1679 config BOOTP_DNS
1680         bool "Request & store 'dnsip' from BOOTP/DHCP server"
1681         default y
1682         depends on CMD_BOOTP
1683         help
1684           The primary DNS server is stored as 'dnsip'. If two servers are
1685           returned, you must set BOOTP_DNS2 to store that second server IP
1686           also.
1687
1688 config BOOTP_DNS2
1689         bool "Store 'dnsip2' from BOOTP/DHCP server"
1690         depends on BOOTP_DNS
1691         help
1692           If a DHCP client requests the DNS server IP from a DHCP server,
1693           it is possible that more than one DNS serverip is offered to the
1694           client. If CONFIG_BOOTP_DNS2 is enabled, the secondary DNS
1695           server IP will be stored in the additional environment
1696           variable "dnsip2". The first DNS serverip is always
1697           stored in the variable "dnsip", when BOOTP_DNS is defined.
1698
1699 config BOOTP_GATEWAY
1700         bool "Request & store 'gatewayip' from BOOTP/DHCP server"
1701         default y
1702         depends on CMD_BOOTP
1703
1704 config BOOTP_HOSTNAME
1705         bool "Request & store 'hostname' from BOOTP/DHCP server"
1706         default y
1707         depends on CMD_BOOTP
1708         help
1709           The name may or may not be qualified with the local domain name.
1710
1711 config BOOTP_PREFER_SERVERIP
1712         bool "serverip variable takes precedent over DHCP server IP."
1713         depends on CMD_BOOTP
1714         help
1715           By default a BOOTP/DHCP reply will overwrite the 'serverip' variable.
1716
1717           With this option enabled, the 'serverip' variable in the environment
1718           takes precedence over DHCP server IP and will only be set by the DHCP
1719           server if not already set in the environment.
1720
1721 config BOOTP_SUBNETMASK
1722         bool "Request & store 'netmask' from BOOTP/DHCP server"
1723         default y
1724         depends on CMD_BOOTP
1725
1726 config BOOTP_NISDOMAIN
1727         bool "Request & store 'nisdomain' from BOOTP/DHCP server"
1728         depends on CMD_BOOTP
1729
1730 config BOOTP_NTPSERVER
1731         bool "Request & store 'ntpserverip' from BOOTP/DHCP server"
1732         depends on CMD_BOOTP
1733
1734 config BOOTP_TIMEOFFSET
1735         bool "Request & store 'timeoffset' from BOOTP/DHCP server"
1736         depends on CMD_BOOTP && CMD_SNTP
1737
1738 config CMD_PCAP
1739         bool "pcap capture"
1740         help
1741           Selecting this will allow capturing all Ethernet packets and store
1742           them in physical memory in a PCAP formated file,
1743           later to be analyzed by PCAP reader application (IE. WireShark).
1744
1745 config BOOTP_PXE
1746         bool "Send PXE client arch to BOOTP/DHCP server"
1747         default y
1748         depends on CMD_BOOTP && CMD_PXE
1749         help
1750           Supported for ARM, ARM64, and x86 for now.
1751
1752 config BOOTP_PXE_CLIENTARCH
1753         hex
1754         depends on BOOTP_PXE
1755         default 0x16 if ARM64
1756         default 0x15 if ARM
1757         default 0 if X86
1758
1759 config BOOTP_VCI_STRING
1760         string
1761         depends on CMD_BOOTP
1762         default "U-Boot.armv7" if CPU_V7A || CPU_V7M || CPU_V7R
1763         default "U-Boot.armv8" if ARM64
1764         default "U-Boot.arm" if ARM
1765         default "U-Boot"
1766
1767 config CMD_TFTPBOOT
1768         bool "tftpboot"
1769         default y
1770         help
1771           tftpboot - load file via network using TFTP protocol
1772
1773 config CMD_TFTPPUT
1774         bool "tftp put"
1775         depends on CMD_TFTPBOOT
1776         help
1777           TFTP put command, for uploading files to a server
1778
1779 config CMD_TFTPSRV
1780         bool "tftpsrv"
1781         depends on CMD_TFTPBOOT
1782         help
1783           Act as a TFTP server and boot the first received file
1784
1785 config NET_TFTP_VARS
1786         bool "Control TFTP timeout and count through environment"
1787         depends on CMD_TFTPBOOT
1788         default y
1789         help
1790           If set, allows controlling the TFTP timeout through the
1791           environment variable tftptimeout, and the TFTP maximum
1792           timeout count through the variable tftptimeoutcountmax.
1793           If unset, timeout and maximum are hard-defined as 1 second
1794           and 10 timouts per TFTP transfer.
1795
1796 config CMD_RARP
1797         bool "rarpboot"
1798         help
1799           Boot image via network using RARP/TFTP protocol
1800
1801 config CMD_NFS
1802         bool "nfs"
1803         default y
1804         help
1805           Boot image via network using NFS protocol.
1806
1807 config NFS_TIMEOUT
1808         int "Timeout in milliseconds for NFS mounts"
1809         depends on CMD_NFS
1810         default 2000
1811         help
1812           Timeout in milliseconds used in NFS protocol.  If you encounter
1813           "ERROR: Cannot umount" in nfs command, try longer timeout such as
1814           10000.
1815
1816 config SYS_DISABLE_AUTOLOAD
1817         bool "Disable automatically loading files over the network"
1818         depends on CMD_BOOTP || CMD_DHCP || CMD_NFS || CMD_RARP
1819         help
1820           Typically, commands such as "dhcp" will attempt to automatically
1821           load a file from the network, once the initial network configuration
1822           is complete.  Enable this option to disable this behavior and instead
1823           require files to be loaded over the network by subsequent commands.
1824
1825 config CMD_WGET
1826         bool "wget"
1827         select PROT_TCP
1828         help
1829           wget is a simple command to download kernel, or other files,
1830           from a http server over TCP.
1831
1832 config CMD_MII
1833         bool "mii"
1834         imply CMD_MDIO
1835         help
1836           If set, allows 802.3(clause 22) MII Management functions interface access
1837           The management interface specified in Clause 22 provides
1838           a simple, two signal, serial interface to connect a
1839           Station Management entity and a managed PHY for providing access
1840           to management parameters and services.
1841           The interface is referred to as the MII management interface.
1842
1843 config MII_INIT
1844         bool "Call mii_init() in the mii command"
1845         depends on CMD_MII && (MPC8XX_FEC || FSLDMAFE || MCFFEC)
1846
1847 config CMD_MDIO
1848         bool "mdio"
1849         depends on PHYLIB
1850         help
1851           If set, allows Enable 802.3(clause 45) MDIO interface registers access
1852           The MDIO interface is orthogonal to the MII interface and extends
1853           it by adding access to more registers through indirect addressing.
1854
1855 config CMD_PING
1856         bool "ping"
1857         help
1858           Send ICMP ECHO_REQUEST to network host
1859
1860 config CMD_PING6
1861         bool "ping6"
1862         depends on IPV6
1863         default y if (CMD_PING && IPV6)
1864         help
1865           Send ICMPv6 ECHO_REQUEST to network host
1866
1867 config CMD_CDP
1868         bool "cdp"
1869         help
1870           Perform CDP network configuration
1871
1872 config CMD_SNTP
1873         bool "sntp"
1874         select PROT_UDP
1875         help
1876           Synchronize RTC via network
1877
1878 config CMD_DNS
1879         bool "dns"
1880         help
1881           Lookup the IP of a hostname
1882
1883 config CMD_LINK_LOCAL
1884         bool "linklocal"
1885         select LIB_RAND
1886         help
1887           Acquire a network IP address using the link-local protocol
1888
1889 config CMD_NCSI
1890         bool "ncsi"
1891         depends on PHY_NCSI
1892         help
1893           Manually configure the attached NIC via NC-SI.
1894           Normally this happens automatically before other network
1895           operations.
1896
1897 endif
1898
1899 config CMD_ETHSW
1900         bool "ethsw"
1901         help
1902           Allow control of L2 Ethernet switch commands. These are supported
1903           by the vsc9953 Ethernet driver at present. Sub-commands allow
1904           operations such as enabling / disabling a port and
1905           viewing/maintaining the filtering database (FDB)
1906
1907 config CMD_PXE
1908         bool "pxe"
1909         select PXE_UTILS
1910         help
1911           Boot image via network using PXE protocol
1912
1913 config CMD_WOL
1914         bool "wol"
1915         help
1916           Wait for wake-on-lan Magic Packet
1917
1918 endif
1919
1920 menu "Misc commands"
1921
1922 config CMD_BMP
1923         bool "Enable 'bmp' command"
1924         depends on VIDEO
1925         help
1926           This provides a way to obtain information about a BMP-format image
1927           and to display it. BMP (which presumably stands for BitMaP) is a
1928           file format defined by Microsoft which supports images of various
1929           depths, formats and compression methods. Headers on the file
1930           determine the formats used. This command can be used by first loading
1931           the image into RAM, then using this command to look at it or display
1932           it.
1933
1934 config CMD_BOOTCOUNT
1935         bool "bootcount"
1936         depends on BOOTCOUNT_LIMIT
1937         help
1938           Enable the bootcount command, which allows interrogation and
1939           reset of the bootcounter.
1940
1941 config CMD_BSP
1942         bool "Enable board-specific commands"
1943         help
1944           (deprecated: instead, please define a Kconfig option for each command)
1945
1946           Some boards have board-specific commands which are only enabled
1947           during developemnt and need to be turned off for production. This
1948           option provides a way to control this. The commands that are enabled
1949           vary depending on the board.
1950
1951 config CMD_BLOCK_CACHE
1952         bool "blkcache - control and stats for block cache"
1953         depends on BLOCK_CACHE
1954         default y if BLOCK_CACHE
1955         help
1956           Enable the blkcache command, which can be used to control the
1957           operation of the cache functions.
1958           This is most useful when fine-tuning the operation of the cache
1959           during development, but also allows the cache to be disabled when
1960           it might hurt performance (e.g. when using the ums command).
1961
1962 config CMD_BUTTON
1963         bool "button"
1964         depends on BUTTON
1965         default y if BUTTON
1966         help
1967           Enable the 'button' command which allows to get the status of
1968           buttons supported by the board. The buttonss can be listed with
1969           'button list' and state can be known with 'button <label>'.
1970           Any button drivers can be controlled with this command, e.g.
1971           button_gpio.
1972
1973 config CMD_CACHE
1974         bool "icache or dcache"
1975         help
1976           Enable the "icache" and "dcache" commands
1977
1978 config CMD_CONITRACE
1979         bool "conitrace - trace console input codes"
1980         help
1981           Enable the 'conitrace' command which displays the codes received
1982           from the console input as hexadecimal numbers.
1983
1984 config CMD_CLS
1985         bool "Enable clear screen command 'cls'"
1986         default y if LCD || VIDEO
1987         help
1988           Enable the 'cls' command which clears the screen contents
1989           on video frame buffer.
1990
1991 config CMD_EFIDEBUG
1992         bool "efidebug - display/configure UEFI environment"
1993         depends on EFI_LOADER
1994         select EFI_DEVICE_PATH_TO_TEXT
1995         help
1996           Enable the 'efidebug' command which provides a subset of UEFI
1997           shell utility with simplified functionality. It will be useful
1998           particularly for managing boot parameters as  well as examining
1999           various EFI status for debugging.
2000
2001 config CMD_EFICONFIG
2002         bool "eficonfig - provide menu-driven uefi variables maintenance interface"
2003         default y if !HAS_BOARD_SIZE_LIMIT
2004         depends on CMD_BOOTEFI_BOOTMGR
2005         select MENU
2006         help
2007           Enable the 'eficonfig' command which provides the menu-driven UEFI
2008           variable maintenance interface.
2009
2010 config CMD_EXCEPTION
2011         bool "exception - raise exception"
2012         depends on ARM || RISCV || SANDBOX || X86
2013         help
2014           Enable the 'exception' command which allows to raise an exception.
2015
2016 config CMD_LED
2017         bool "led"
2018         depends on LED
2019         default y if LED
2020         help
2021           Enable the 'led' command which allows for control of LEDs supported
2022           by the board. The LEDs can be listed with 'led list' and controlled
2023           with led on/off/togle/blink. Any LED drivers can be controlled with
2024           this command, e.g. led_gpio.
2025
2026 config CMD_INI
2027         bool "ini"
2028         help
2029           Enable the 'ini' command which allows a .ini file to be parsed and
2030           placed into environment variables. Please check the source code for
2031           this as there is no documentation.
2032
2033 config CMD_DATE
2034         bool "date"
2035         default y if DM_RTC
2036         select LIB_DATE
2037         help
2038           Enable the 'date' command for getting/setting the time/date in RTC
2039           devices.
2040
2041 config CMD_RTC
2042         bool "rtc"
2043         depends on DM_RTC
2044         help
2045           Enable the 'rtc' command for low-level access to RTC devices.
2046
2047 config CMD_TIME
2048         bool "time"
2049         help
2050           Run commands and summarize execution time.
2051
2052 config CMD_GETTIME
2053         bool "gettime - read elapsed time"
2054         help
2055           Enable the 'gettime' command which reads the elapsed time since
2056           U-Boot started running. This shows the time in seconds and
2057           milliseconds. See also the 'bootstage' command which provides more
2058           flexibility for boot timing.
2059
2060 config CMD_PAUSE
2061         bool "pause command"
2062         help
2063           Delay execution waiting for any user input.
2064           Useful to allow the user to read a failure log.
2065
2066 config CMD_RNG
2067         bool "rng command"
2068         depends on DM_RNG
2069         default y if SANDBOX
2070         select HEXDUMP
2071         help
2072           Print bytes from the hardware random number generator.
2073
2074 config CMD_KASLRSEED
2075         bool "kaslrseed"
2076         depends on DM_RNG
2077         help
2078           Set the kaslr-seed in the chosen node with entropy provided by a
2079           hardware random number generator.
2080
2081 config CMD_SLEEP
2082         bool "sleep"
2083         default y
2084         help
2085           Delay execution for some time
2086
2087 config CMD_MP
2088         bool "support for multiprocessor commands"
2089         depends on MP
2090         default y
2091         help
2092           This enables commands to bringup different processors
2093           in multiprocessor cases.
2094
2095 config CMD_TIMER
2096         bool "timer"
2097         help
2098           Access the system timer.
2099
2100 config CMD_SOUND
2101         bool "sound"
2102         depends on SOUND
2103         help
2104           This provides basic access to the U-Boot's sound support. The main
2105           feature is to play a beep.
2106
2107              sound init   - set up sound system
2108              sound play   - play a sound
2109
2110 config CMD_SYSBOOT
2111         bool "sysboot"
2112         select PXE_UTILS
2113         help
2114           Boot image via local extlinux.conf file
2115
2116 config CMD_QFW
2117         bool "qfw"
2118         select QFW
2119         help
2120           This provides access to the QEMU firmware interface.  The main
2121           feature is to allow easy loading of files passed to qemu-system
2122           via -kernel / -initrd
2123
2124 config CMD_PSTORE
2125         bool "pstore"
2126         help
2127           This provides access to Linux PStore with Rammoops backend. The main
2128           feature is to allow to display or save PStore records.
2129
2130           See doc/pstore.rst for more information.
2131
2132 if CMD_PSTORE
2133
2134 config CMD_PSTORE_MEM_ADDR
2135         hex "Memory Address"
2136         depends on CMD_PSTORE
2137         help
2138           Base addr used for PStore ramoops memory, should be identical to
2139           ramoops.mem_address parameter used by kernel
2140
2141 config CMD_PSTORE_MEM_SIZE
2142         hex "Memory size"
2143         depends on CMD_PSTORE
2144         default "0x10000"
2145         help
2146           Size of PStore ramoops memory, should be identical to ramoops.mem_size
2147           parameter used by kernel, a power of 2 and larger than the sum of the
2148           record sizes
2149
2150 config CMD_PSTORE_RECORD_SIZE
2151         hex "Dump record size"
2152         depends on CMD_PSTORE
2153         default "0x1000"
2154         help
2155           Size of each dump done on oops/panic, should be identical to
2156           ramoops.record_size parameter used by kernel and a power of 2
2157           Must be non-zero
2158
2159 config CMD_PSTORE_CONSOLE_SIZE
2160         hex "Kernel console log size"
2161         depends on CMD_PSTORE
2162         default "0x1000"
2163         help
2164           Size of kernel console log, should be identical to
2165           ramoops.console_size parameter used by kernel and a power of 2
2166           Must be non-zero
2167
2168 config CMD_PSTORE_FTRACE_SIZE
2169         hex "FTrace log size"
2170         depends on CMD_PSTORE
2171         default "0x1000"
2172         help
2173           Size of ftrace log, should be identical to ramoops.ftrace_size
2174           parameter used by kernel and a power of 2
2175
2176 config CMD_PSTORE_PMSG_SIZE
2177         hex "User space message log size"
2178         depends on CMD_PSTORE
2179         default "0x1000"
2180         help
2181           Size of user space message log, should be identical to
2182           ramoops.pmsg_size parameter used by kernel and a power of 2
2183
2184 config CMD_PSTORE_ECC_SIZE
2185         int "ECC size"
2186         depends on CMD_PSTORE
2187         default "0"
2188         help
2189         if non-zero, the option enables ECC support and specifies ECC buffer
2190         size in bytes (1 is a special value, means 16 bytes ECC), should be
2191         identical to ramoops.ramoops_ecc parameter used by kernel
2192
2193 endif
2194
2195 source "cmd/mvebu/Kconfig"
2196
2197 config CMD_TERMINAL
2198         bool "terminal - provides a way to attach a serial terminal"
2199         help
2200           Provides a 'cu'-like serial terminal command. This can be used to
2201           access other serial ports from the system console. The terminal
2202           is very simple with no special processing of characters. As with
2203           cu, you can press ~. (tilde followed by period) to exit.
2204
2205 config CMD_UUID
2206         bool "uuid, guid - generation of unique IDs"
2207         select LIB_UUID
2208         help
2209           This enables two commands:
2210
2211              uuid - generate random Universally Unique Identifier
2212              guid - generate Globally Unique Identifier based on random UUID
2213
2214           The two commands are very similar except for the endianness of the
2215           output.
2216
2217 config CMD_VIDCONSOLE
2218         bool "lcdputs and setcurs"
2219         depends on VIDEO
2220         default y
2221         help
2222           Enabling this will provide 'setcurs' and 'lcdputs' commands which
2223           support cursor positioning and drawing strings on the video
2224           console (framebuffer).
2225
2226           The name 'lcdputs' is a bit of a misnomer, but so named because the
2227           video device is often an LCD.
2228
2229 config CMD_SELECT_FONT
2230         bool "select font size"
2231         depends on VIDEO
2232         default n
2233         help
2234           Enabling this will provide 'font' command.
2235           Allows font selection at runtime.
2236
2237 endmenu
2238
2239 source "cmd/ti/Kconfig"
2240
2241 config CMD_BOOTSTAGE
2242         bool "Enable the 'bootstage' command"
2243         depends on BOOTSTAGE
2244         help
2245           Add a 'bootstage' command which supports printing a report
2246           and un/stashing of bootstage data.
2247
2248 menu "Power commands"
2249 config CMD_PMIC
2250         bool "Enable Driver Model PMIC command"
2251         depends on DM_PMIC
2252         help
2253           This is the pmic command, based on a driver model pmic's API.
2254           Command features are unchanged:
2255           - list               - list pmic devices
2256           - pmic dev <id>      - show or [set] operating pmic device (NEW)
2257           - pmic dump          - dump registers
2258           - pmic read address  - read byte of register at address
2259           - pmic write address - write byte to register at address
2260           The only one change for this command is 'dev' subcommand.
2261
2262 config CMD_REGULATOR
2263         bool "Enable Driver Model REGULATOR command"
2264         depends on DM_REGULATOR
2265         help
2266           This command is based on driver model regulator's API.
2267           User interface features:
2268           - list               - list regulator devices
2269           - regulator dev <id> - show or [set] operating regulator device
2270           - regulator info     - print constraints info
2271           - regulator status   - print operating status
2272           - regulator value <val] <-f> - print/[set] voltage value [uV]
2273           - regulator current <val>    - print/[set] current value [uA]
2274           - regulator mode <id>        - print/[set] operating mode id
2275           - regulator enable           - enable the regulator output
2276           - regulator disable          - disable the regulator output
2277
2278           The '-f' (force) option can be used for set the value which exceeds
2279           the limits, which are found in device-tree and are kept in regulator's
2280           uclass plat structure.
2281
2282 endmenu
2283
2284 menu "Security commands"
2285 config CMD_AES
2286         bool "Enable the 'aes' command"
2287         select AES
2288         help
2289           This provides a means to encrypt and decrypt data using the AES
2290           (Advanced Encryption Standard). This algorithm uses a symetric key
2291           and is widely used as a streaming cipher. Different key lengths are
2292           supported by the algorithm but this command only supports 128 bits
2293           at present.
2294
2295 config CMD_BLOB
2296         bool "Enable the 'blob' command"
2297         depends on !MX6ULL && !MX6SLL && !MX6SL
2298         select IMX_HAB if ARCH_MX6 || ARCH_MX7 || ARCH_MX7ULP || ARCH_IMX8M
2299         help
2300           This is used with the Freescale secure boot mechanism.
2301
2302           Freescale's SEC block has built-in Blob Protocol which provides
2303           a method for protecting user-defined data across system power
2304           cycles. SEC block protects data in a data structure called a Blob,
2305           which provides both confidentiality and integrity protection.
2306
2307           Encapsulating data as a blob
2308           Each time that the Blob Protocol is used to protect data, a
2309           different randomly generated key is used to encrypt the data.
2310           This random key is itself encrypted using a key which is derived
2311           from SoC's non-volatile secret key and a 16 bit Key identifier.
2312           The resulting encrypted key along with encrypted data is called a
2313           blob. The non-volatile secure key is available for use only during
2314           secure boot.
2315
2316           During decapsulation, the reverse process is performed to get back
2317           the original data.
2318
2319           Sub-commands:
2320             blob enc - encapsulating data as a cryptgraphic blob
2321             blob dec - decapsulating cryptgraphic blob to get the data
2322
2323           Syntax:
2324
2325           blob enc src dst len km
2326
2327           Encapsulate and create blob of data $len bytes long
2328           at address $src and store the result at address $dst.
2329           $km is the 16 byte key modifier is also required for
2330           generation/use as key for cryptographic operation. Key
2331           modifier should be 16 byte long.
2332
2333           blob dec src dst len km
2334
2335           Decapsulate the  blob of data at address $src and
2336           store result of $len byte at addr $dst.
2337           $km is the 16 byte key modifier is also required for
2338           generation/use as key for cryptographic operation. Key
2339           modifier should be 16 byte long.
2340
2341 config CMD_HASH
2342         bool "Support 'hash' command"
2343         select HASH
2344         help
2345           This provides a way to hash data in memory using various supported
2346           algorithms (such as SHA1, MD5, CRC32). The computed digest can be
2347           saved to memory or to an environment variable. It is also possible
2348           to verify a hash against data in memory.
2349
2350 config CMD_HVC
2351         bool "Support the 'hvc' command"
2352         depends on ARM_SMCCC
2353         help
2354           Allows issuing Hypervisor Calls (HVCs). Mostly useful for
2355           development and testing.
2356
2357 config CMD_SMC
2358         bool "Support the 'smc' command"
2359         depends on ARM_SMCCC
2360         help
2361           Allows issuing Secure Monitor Calls (SMCs). Mostly useful for
2362           development and testing.
2363
2364 config HASH_VERIFY
2365         bool "hash -v"
2366         depends on CMD_HASH
2367         help
2368           Add -v option to verify data against a hash.
2369
2370 config CMD_SCP03
2371         bool "scp03 - SCP03 enable and rotate/provision operations"
2372         depends on SCP03
2373         help
2374           This command provides access to a Trusted Application
2375           running in a TEE to request Secure Channel Protocol 03
2376           (SCP03) enablement and/or rotation of its SCP03 keys.
2377
2378 config CMD_TPM_V1
2379         bool
2380
2381 config CMD_TPM_V2
2382         bool
2383
2384 config CMD_TPM
2385         bool "Enable the 'tpm' command"
2386         depends on TPM_V1 || TPM_V2
2387         select CMD_TPM_V1 if TPM_V1
2388         select CMD_TPM_V2 if TPM_V2
2389         help
2390           This provides a means to talk to a TPM from the command line. A wide
2391           range of commands if provided - see 'tpm help' for details. The
2392           command requires a suitable TPM on your board and the correct driver
2393           must be enabled.
2394
2395 if CMD_TPM
2396
2397 config CMD_TPM_TEST
2398         bool "Enable the 'tpm test' command"
2399         depends on TPM_V1
2400         help
2401           This provides a a series of tests to confirm that the TPMv1.x is
2402           working correctly. The tests cover initialisation, non-volatile RAM,
2403           extend, global lock and checking that timing is within expectations.
2404           The tests pass correctly on Infineon TPMs but may need to be adjusted
2405           for other devices.
2406
2407 endif
2408
2409 endmenu
2410
2411 menu "Firmware commands"
2412 config CMD_CROS_EC
2413         bool "Enable crosec command"
2414         depends on CROS_EC
2415         default y
2416         help
2417           Enable command-line access to the Chrome OS EC (Embedded
2418           Controller). This provides the 'crosec' command which has
2419           a number of sub-commands for performing EC tasks such as
2420           updating its flash, accessing a small saved context area
2421           and talking to the I2C bus behind the EC (if there is one).
2422 endmenu
2423
2424 menu "Filesystem commands"
2425 config CMD_BTRFS
2426         bool "Enable the 'btrsubvol' command"
2427         select FS_BTRFS
2428         help
2429           This enables the 'btrsubvol' command to list subvolumes
2430           of a BTRFS filesystem. There are no special commands for
2431           listing BTRFS directories or loading BTRFS files - this
2432           can be done by the generic 'fs' commands (see CMD_FS_GENERIC)
2433           when BTRFS is enabled (see FS_BTRFS).
2434
2435 config CMD_CBFS
2436         bool "Enable the 'cbfs' command"
2437         depends on FS_CBFS
2438         help
2439           Define this to enable support for reading from a Coreboot
2440           filesystem. This is a ROM-based filesystem used for accessing files
2441           on systems that use coreboot as the first boot-loader and then load
2442           U-Boot to actually boot the Operating System. Available commands are
2443           cbfsinit, cbfsinfo, cbfsls and cbfsload.
2444
2445 config CMD_CRAMFS
2446         bool "Enable the 'cramfs' command"
2447         depends on FS_CRAMFS
2448         help
2449           This provides commands for dealing with CRAMFS (Compressed ROM
2450           filesystem). CRAMFS is useful when space is tight since files are
2451           compressed. Two commands are provided:
2452
2453              cramfsls   - lists files in a cramfs image
2454              cramfsload - loads a file from a cramfs image
2455
2456 config CMD_EROFS
2457         bool "EROFS command support"
2458         select FS_EROFS
2459         help
2460           Support for the EROFS fs
2461
2462 config CMD_EXT2
2463         bool "ext2 command support"
2464         select FS_EXT4
2465         help
2466           Enables EXT2 FS command
2467
2468 config CMD_EXT4
2469         bool "ext4 command support"
2470         select FS_EXT4
2471         help
2472           Enables EXT4 FS command
2473
2474 config CMD_EXT4_WRITE
2475         depends on CMD_EXT4
2476         bool "ext4 write command support"
2477         select EXT4_WRITE
2478         help
2479           Enables EXT4 FS write command
2480
2481 config CMD_FAT
2482         bool "FAT command support"
2483         select FS_FAT
2484         help
2485           Support for the FAT fs
2486
2487 config CMD_SQUASHFS
2488         bool "SquashFS command support"
2489         select FS_SQUASHFS
2490         help
2491           Enables SquashFS filesystem commands (e.g. load, ls).
2492
2493 config CMD_FS_GENERIC
2494         bool "filesystem commands"
2495         help
2496           Enables filesystem commands (e.g. load, ls) that work for multiple
2497           fs types.
2498
2499 config CMD_FS_UUID
2500         bool "fsuuid command"
2501         help
2502           Enables fsuuid command for filesystem UUID.
2503
2504 config CMD_JFFS2
2505         bool "jffs2 command"
2506         select FS_JFFS2
2507         help
2508           Enables commands to support the JFFS2 (Journalling Flash File System
2509           version 2) filesystem. This enables fsload, ls and fsinfo which
2510           provide the ability to load files, list directories and obtain
2511           filesystem information.
2512
2513 config JFFS2_DEV
2514         string "Default device for JFFS2"
2515         depends on CMD_JFFS2
2516         default "nor0"
2517         help
2518           The default device to use with the jffs2 command.
2519
2520 config JFFS2_PART_OFFSET
2521         hex "Default offset within flash to locate the JFFS2 image"
2522         depends on CMD_JFFS2
2523         default 0x0
2524         help
2525           The default offset within flash to locate the JFFS2 image.
2526
2527 config JFFS2_PART_SIZE
2528         hex "Default size of JFFS2 partition"
2529         depends on CMD_JFFS2
2530         default 0xFFFFFFFF
2531         help
2532           The default size of the JFFS2 partition
2533
2534 config CMD_MTDPARTS
2535         bool "MTD partition support"
2536         depends on MTD
2537         help
2538           MTD partitioning tool support.
2539           It is strongly encouraged to avoid using this command
2540           anymore along with 'sf', 'nand', 'onenand'. One can still
2541           declare the partitions in the mtdparts environment variable
2542           but better use the MTD stack and the 'mtd' command instead.
2543
2544 config CMD_MTDPARTS_SPREAD
2545         bool "Padd partition size to take account of bad blocks"
2546         depends on CMD_MTDPARTS
2547         help
2548           This enables the 'spread' sub-command of the mtdparts command.
2549           This command will modify the existing mtdparts variable by increasing
2550           the size of the partitions such that 1) each partition's net size is
2551           at least as large as the size specified in the mtdparts variable and
2552           2) each partition starts on a good block.
2553
2554 config CMD_MTDPARTS_SHOW_NET_SIZES
2555         bool "Show net size (w/o bad blocks) of partitions"
2556         depends on CMD_MTDPARTS
2557         help
2558           Adds two columns to the printed partition table showing the
2559           effective usable size of a partition, if bad blocks are taken
2560           into account.
2561
2562 config MTDIDS_DEFAULT
2563         string "Default MTD IDs"
2564         depends on MTD || SPI_FLASH
2565         depends on !SYS_MTDPARTS_RUNTIME
2566         help
2567           Defines a default MTD IDs list for use with MTD partitions in the
2568           Linux MTD command line partitions format.
2569
2570 config MTDPARTS_DEFAULT
2571         string "Default MTD partition scheme"
2572         depends on MTD || SPI_FLASH
2573         depends on !SYS_MTDPARTS_RUNTIME
2574         help
2575           Defines a default MTD partitioning scheme in the Linux MTD command
2576           line partitions format
2577
2578 config CMD_REISER
2579         bool "reiser - Access to reiserfs filesystems"
2580         help
2581           This provides two commands which operate on a resierfs filesystem,
2582           commonly used some years ago:
2583
2584             reiserls - list files
2585             reiserload - load a file
2586
2587 config CMD_YAFFS2
2588         bool "yaffs2 - Access of YAFFS2 filesystem"
2589         depends on YAFFS2
2590         default y
2591         help
2592           This provides commands for accessing a YAFFS2 filesystem. Yet
2593           Another Flash Filesystem 2 is a filesystem designed specifically
2594           for NAND flash. It incorporates bad-block management and ensures
2595           that device writes are sequential regardless of filesystem
2596           activity.
2597
2598 config CMD_ZFS
2599         bool "zfs - Access of ZFS filesystem"
2600         help
2601           This provides commands to accessing a ZFS filesystem, commonly used
2602           on Solaris systems. Two sub-commands are provided:
2603
2604             zfsls - list files in a directory
2605             zfsload - load a file
2606
2607           See doc/README.zfs for more details.
2608
2609 endmenu
2610
2611 menu "Debug commands"
2612
2613 config CMD_CBSYSINFO
2614         bool "cbsysinfo"
2615         depends on X86
2616         default y if SYS_COREBOOT
2617         help
2618           This provides information about the coreboot sysinfo table stored in
2619           memory by coreboot before jumping to U-Boot. It can be useful for
2620           debugging the beaaviour of coreboot or U-Boot.
2621
2622 config CMD_CYCLIC
2623         bool "cyclic - Show information about cyclic functions"
2624         depends on CYCLIC
2625         default y
2626         help
2627           This enables the 'cyclic' command which provides information about
2628           cyclic execution functions. This infrastructure allows registering
2629           functions to be executed cyclically, e.g. every 100ms. These commands
2630           are supported:
2631
2632             cyclic list - list cyclic functions
2633             cyclic cyclic demo <cycletime_ms> <delay_us> - register cyclic
2634                 demo function
2635
2636           See doc/develop/cyclic.rst for more details.
2637
2638 config CMD_DIAG
2639         bool "diag - Board diagnostics"
2640         help
2641           This command provides access to board diagnostic tests. These are
2642           called Power-on Self Tests (POST). The command allows listing of
2643           available tests and running either all the tests, or specific tests
2644           identified by name.
2645
2646 config CMD_EVENT
2647         bool "event - Show information about events"
2648         depends on EVENT
2649         default y if EVENT_DEBUG
2650         help
2651           This enables the 'event' command which provides information about
2652           events and event-handler routines. This can help to device event
2653           hadling.
2654
2655 config CMD_IRQ
2656         bool "irq - Show information about interrupts"
2657         depends on !ARM && !MIPS && !RISCV && !SH
2658         help
2659           This enables two commands:
2660
2661              interrupts - enable or disable interrupts
2662              irqinfo - print device-specific interrupt information
2663
2664 config CMD_KGDB
2665         bool "kgdb - Allow debugging of U-Boot with gdb"
2666         depends on PPC
2667         help
2668           This enables a 'kgdb' command which allows gdb to connect to U-Boot
2669           over a serial link for debugging purposes. This allows
2670           single-stepping, inspecting variables, etc. This is supported only
2671           on PowerPC at present.
2672
2673 config CMD_LOG
2674         bool "log - Generation, control and access to logging"
2675         select LOG
2676         select GETOPT
2677         help
2678           This provides access to logging features. It allows the output of
2679           log data to be controlled to a limited extent (setting up the default
2680           maximum log level for emitting of records). It also provides access
2681           to a command used for testing the log system.
2682
2683 config CMD_TRACE
2684         bool "trace - Support tracing of function calls and timing"
2685         depends on TRACE
2686         default y
2687         help
2688           Enables a command to control using of function tracing within
2689           U-Boot. This allows recording of call traces including timing
2690           information. The command can write data to memory for exporting
2691           for analysis (e.g. using bootchart). See doc/README.trace for full
2692           details.
2693
2694 config CMD_AVB
2695         bool "avb - Android Verified Boot 2.0 operations"
2696         depends on AVB_VERIFY
2697         help
2698           Enables a "avb" command to perform verification of partitions using
2699           Android Verified Boot 2.0 functionality. It includes such subcommands:
2700             avb init - initialize avb2 subsystem
2701             avb read_rb - read rollback index
2702             avb write_rb - write rollback index
2703             avb is_unlocked - check device lock state
2704             avb get_uuid - read and print uuid of a partition
2705             avb read_part - read data from partition
2706             avb read_part_hex - read data from partition and output to stdout
2707             avb write_part - write data to partition
2708             avb verify - run full verification chain
2709
2710 config CMD_STACKPROTECTOR_TEST
2711         bool "Test command for stack protector"
2712         depends on STACKPROTECTOR
2713         help
2714           Enable stackprot_test command
2715           The stackprot_test command will force a stack overrun to test
2716           the stack smashing detection mechanisms.
2717
2718 endmenu
2719
2720 config CMD_UBI
2721         tristate "Enable UBI - Unsorted block images commands"
2722         select MTD_UBI
2723         help
2724           UBI is a software layer above MTD layer which admits use of LVM-like
2725           logical volumes on top of MTD devices, hides some complexities of
2726           flash chips like wear and bad blocks and provides some other useful
2727           capabilities. Please, consult the MTD web site for more details
2728           (www.linux-mtd.infradead.org). Activate this option if you want
2729           to use U-Boot UBI commands.
2730           It is also strongly encouraged to also enable CONFIG_MTD to get full
2731           partition support.
2732
2733 config CMD_UBI_RENAME
2734        bool "Enable rename"
2735        depends on CMD_UBI
2736        help
2737          Enable a "ubi" command to rename ubi volume:
2738            ubi rename <oldname> <newname>
2739
2740 config CMD_UBIFS
2741         tristate "Enable UBIFS - Unsorted block images filesystem commands"
2742         depends on CMD_UBI
2743         default y if CMD_UBI
2744         select LZO
2745         select GZIP
2746         help
2747           UBIFS is a file system for flash devices which works on top of UBI.
2748
2749 config MMC_SPEED_MODE_SET
2750         bool "set speed mode using mmc command"
2751         depends on CMD_MMC
2752         default n
2753         help
2754           Enable setting speed mode using mmc rescan and mmc dev commands.
2755           The speed mode is provided as the last argument in these commands
2756           and is indicated using the index from enum bus_mode in
2757           include/mmc.h. A speed mode can be set only if it has already
2758           been enabled in the device tree.
2759
2760 config CMD_MESON
2761         bool "Amlogic Meson commands"
2762         depends on ARCH_MESON
2763         default y
2764         help
2765           Enable useful commands for the Meson Soc family developed by Amlogic Inc.
2766 endmenu