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