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