xref: /openbmc/u-boot/common/Kconfig (revision 679f82c349473c894159795c14a7fc0a8db0cd43)
1menu "Command line interface"
2
3config HUSH_PARSER
4	bool "Use hush shell"
5	select SYS_HUSH_PARSER
6	help
7	  This option enables the "hush" shell (from Busybox) as command line
8	  interpreter, thus enabling powerful command line syntax like
9	  if...then...else...fi conditionals or `&&' and '||'
10	  constructs ("shell scripts").
11
12	  If disabled, you get the old, much simpler behaviour with a somewhat
13	  smaller memory footprint.
14
15config SYS_HUSH_PARSER
16	bool
17	help
18	  Backward compatibility.
19
20config SYS_PROMPT
21	string "Shell prompt"
22	default "=> "
23	help
24	  This string is displayed in the command line to the left of the
25	  cursor.
26
27menu "Autoboot options"
28
29config AUTOBOOT_KEYED
30	bool "Stop autobooting via specific input key / string"
31	default n
32	help
33	  This option enables stopping (aborting) of the automatic
34	  boot feature only by issuing a specific input key or
35	  string. If not enabled, any input key will abort the
36	  U-Boot automatic booting process and bring the device
37	  to the U-Boot prompt for user input.
38
39config AUTOBOOT_PROMPT
40	string "Autoboot stop prompt"
41	depends on AUTOBOOT_KEYED
42	default "Autoboot in %d seconds\\n"
43	help
44	  This string is displayed before the boot delay selected by
45	  CONFIG_BOOTDELAY starts. If it is not defined	there is no
46	  output indicating that autoboot is in progress.
47
48	  Note that this define is used as the (only) argument to a
49	  printf() call, so it may contain '%' format specifications,
50	  provided that it also includes, sepearated by commas exactly
51	  like in a printf statement, the required arguments. It is
52	  the responsibility of the user to select only such arguments
53	  that are valid in the given context.
54
55config AUTOBOOT_ENCRYPTION
56	bool "Enable encryption in autoboot stopping"
57	depends on AUTOBOOT_KEYED
58	default n
59
60config AUTOBOOT_DELAY_STR
61	string "Delay autobooting via specific input key / string"
62	depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION
63	help
64	  This option delays the automatic boot feature by issuing
65	  a specific input key or string. If CONFIG_AUTOBOOT_DELAY_STR
66	  or the environment variable "bootdelaykey" is specified
67	  and this string is received from console input before
68	  autoboot starts booting, U-Boot gives a command prompt. The
69	  U-Boot prompt will time out if CONFIG_BOOT_RETRY_TIME is
70	  used, otherwise it never times out.
71
72config AUTOBOOT_STOP_STR
73	string "Stop autobooting via specific input key / string"
74	depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION
75	help
76	  This option enables stopping (aborting) of the automatic
77	  boot feature only by issuing a specific input key or
78	  string. If CONFIG_AUTOBOOT_STOP_STR or the environment
79	  variable "bootstopkey" is specified and this string is
80	  received from console input before autoboot starts booting,
81	  U-Boot gives a command prompt. The U-Boot prompt never
82	  times out, even if CONFIG_BOOT_RETRY_TIME is used.
83
84config AUTOBOOT_KEYED_CTRLC
85	bool "Enable Ctrl-C autoboot interruption"
86	depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION
87	default n
88	help
89	  This option allows for the boot sequence to be interrupted
90	  by ctrl-c, in addition to the "bootdelaykey" and "bootstopkey".
91	  Setting this variable	provides an escape sequence from the
92	  limited "password" strings.
93
94config AUTOBOOT_STOP_STR_SHA256
95	string "Stop autobooting via SHA256 encrypted password"
96	depends on AUTOBOOT_KEYED && AUTOBOOT_ENCRYPTION
97	help
98	  This option adds the feature to only stop the autobooting,
99	  and therefore boot into the U-Boot prompt, when the input
100	  string / password matches a values that is encypted via
101	  a SHA256 hash and saved in the environment.
102
103endmenu
104
105comment "Commands"
106
107menu "Info commands"
108
109config CMD_BDI
110	bool "bdinfo"
111	default y
112	help
113	  Print board info
114
115config CMD_CONSOLE
116	bool "coninfo"
117	default y
118	help
119	  Print console devices and information.
120
121config CMD_CPU
122	bool "cpu"
123	help
124	  Print information about available CPUs. This normally shows the
125	  number of CPUs, type (e.g. manufacturer, architecture, product or
126	  internal name) and clock frequency. Other information may be
127	  available depending on the CPU driver.
128
129config CMD_LICENSE
130	bool "license"
131	help
132	  Print GPL license text
133
134endmenu
135
136menu "Boot commands"
137
138config CMD_BOOTD
139	bool "bootd"
140	default y
141	help
142	  Run the command stored in the environment "bootcmd", i.e.
143	  "bootd" does the same thing as "run bootcmd".
144
145config CMD_BOOTM
146	bool "bootm"
147	default y
148	help
149	  Boot an application image from the memory.
150
151config CMD_ELF
152	bool "bootelf, bootvx"
153	default y
154	help
155	  Boot an ELF/vxWorks image from the memory.
156
157config CMD_GO
158	bool "go"
159	default y
160	help
161	  Start an application at a given address.
162
163config CMD_RUN
164	bool "run"
165	default y
166	help
167	  Run the command in the given environment variable.
168
169config CMD_IMI
170	bool "iminfo"
171	default y
172	help
173	  Print header information for application image.
174
175config CMD_IMLS
176	bool "imls"
177	default y
178	help
179	  List all images found in flash
180
181config CMD_XIMG
182	bool "imxtract"
183	default y
184	help
185	  Extract a part of a multi-image.
186
187endmenu
188
189menu "Environment commands"
190
191config CMD_EXPORTENV
192	bool "env export"
193	default y
194	help
195	  Export environments.
196
197config CMD_IMPORTENV
198	bool "env import"
199	default y
200	help
201	  Import environments.
202
203config CMD_EDITENV
204	bool "editenv"
205	default y
206	help
207	  Edit environment variable.
208
209config CMD_SAVEENV
210	bool "saveenv"
211	default y
212	help
213	  Save all environment variables into the compiled-in persistent
214	  storage.
215
216config CMD_ENV_EXISTS
217	bool "env exists"
218	default y
219	help
220	  Check if a variable is defined in the environment for use in
221	  shell scripting.
222
223endmenu
224
225menu "Memory commands"
226
227config CMD_MEMORY
228	bool "md, mm, nm, mw, cp, cmp, base, loop"
229	default y
230	help
231	  Memeory commands.
232	    md - memory display
233	    mm - memory modify (auto-incrementing address)
234	    nm - memory modify (constant address)
235	    mw - memory write (fill)
236	    cp - memory copy
237	    cmp - memory compare
238	    base - print or set address offset
239	    loop - initinite loop on address range
240
241config CMD_CRC32
242	bool "crc32"
243	default y
244	help
245	  Compute CRC32.
246
247config LOOPW
248	bool "loopw"
249	help
250	  Infinite write loop on address range
251
252config CMD_MEMTEST
253	bool "memtest"
254	help
255	  Simple RAM read/write test.
256
257config CMD_MX_CYCLIC
258	bool "mdc, mwc"
259	help
260	  mdc - memory display cyclic
261	  mwc - memory write cyclic
262
263config CMD_MEMINFO
264	bool "meminfo"
265	help
266	  Display memory information.
267
268endmenu
269
270menu "Device access commands"
271
272config CMD_DM
273	bool "dm - Access to driver model information"
274	depends on DM
275	default y
276	help
277	  Provides access to driver model data structures and information,
278	  such as a list of devices, list of uclasses and the state of each
279	  device (e.g. activated). This is not required for operation, but
280	  can be useful to see the state of driver model for debugging or
281	  interest.
282
283config CMD_DEMO
284	bool "demo - Demonstration commands for driver model"
285	depends on DM
286	help
287	  Provides a 'demo' command which can be used to play around with
288	  driver model. To use this properly you will need to enable one or
289	  both of the demo devices (DM_DEMO_SHAPE and DM_DEMO_SIMPLE).
290	  Otherwise you will always get an empty list of devices. The demo
291	  devices are defined in the sandbox device tree, so the easiest
292	  option is to use sandbox and pass the -d point to sandbox's
293	  u-boot.dtb file.
294
295config CMD_LOADB
296	bool "loadb"
297	default y
298	help
299	  Load a binary file over serial line.
300
301config CMD_LOADS
302	bool "loads"
303	default y
304	help
305	  Load an S-Record file over serial line
306
307config CMD_FLASH
308	bool "flinfo, erase, protect"
309	default y
310	help
311	  NOR flash support.
312	    flinfo - print FLASH memory information
313	    erase - FLASH memory
314	    protect - enable or disable FLASH write protection
315
316config CMD_ARMFLASH
317	depends on FLASH_CFI_DRIVER
318	bool "armflash"
319	help
320	  ARM Ltd reference designs flash partition access
321
322config CMD_NAND
323	bool "nand"
324	help
325	  NAND support.
326
327config CMD_SF
328	bool "sf"
329	help
330	  SPI Flash support
331
332config CMD_SPI
333	bool "sspi"
334	help
335	  SPI utility command.
336
337config CMD_I2C
338	bool "i2c"
339	help
340	  I2C support.
341
342config CMD_USB
343	bool "usb"
344	help
345	  USB support.
346
347config CMD_FPGA
348	bool "fpga"
349	default y
350	help
351	  FPGA support.
352
353endmenu
354
355
356menu "Shell scripting commands"
357
358config CMD_ECHO
359	bool "echo"
360	default y
361	help
362	  Echo args to console
363
364config CMD_ITEST
365	bool "itest"
366	default y
367	help
368	  Return true/false on integer compare.
369
370config CMD_SOURCE
371	bool "source"
372	default y
373	help
374	  Run script from memory
375
376config CMD_SETEXPR
377	bool "setexpr"
378	default y
379	help
380	  Evaluate boolean and math expressions and store the result in an env
381	    variable.
382	  Also supports loading the value at a memory location into a variable.
383	  If CONFIG_REGEX is enabled, setexpr also supports a gsub function.
384
385endmenu
386
387menu "Network commands"
388
389config CMD_NET
390	bool "bootp, tftpboot"
391        select NET
392	default y
393	help
394	  Network commands.
395	  bootp - boot image via network using BOOTP/TFTP protocol
396	  tftpboot - boot image via network using TFTP protocol
397
398config CMD_TFTPPUT
399	bool "tftp put"
400	help
401	  TFTP put command, for uploading files to a server
402
403config CMD_TFTPSRV
404	bool "tftpsrv"
405	help
406	  Act as a TFTP server and boot the first received file
407
408config CMD_RARP
409	bool "rarpboot"
410	help
411	  Boot image via network using RARP/TFTP protocol
412
413config CMD_DHCP
414	bool "dhcp"
415	help
416	  Boot image via network using DHCP/TFTP protocol
417
418config CMD_NFS
419	bool "nfs"
420	default y
421	help
422	  Boot image via network using NFS protocol.
423
424config CMD_PING
425	bool "ping"
426	help
427	  Send ICMP ECHO_REQUEST to network host
428
429config CMD_CDP
430	bool "cdp"
431	help
432	  Perform CDP network configuration
433
434config CMD_SNTP
435	bool "sntp"
436	help
437	  Synchronize RTC via network
438
439config CMD_DNS
440	bool "dns"
441	help
442	  Lookup the IP of a hostname
443
444config CMD_LINK_LOCAL
445	bool "linklocal"
446	help
447	  Acquire a network IP address using the link-local protocol
448
449endmenu
450
451menu "Misc commands"
452
453config CMD_TIME
454	bool "time"
455	help
456	  Run commands and summarize execution time.
457
458# TODO: rename to CMD_SLEEP
459config CMD_MISC
460	bool "sleep"
461	default y
462	help
463	  Delay execution for some time
464
465config CMD_TIMER
466	bool "timer"
467	help
468	  Access the system timer.
469
470config CMD_SETGETDCR
471	bool "getdcr, setdcr, getidcr, setidcr"
472	depends on 4xx
473	default y
474	help
475	  getdcr - Get an AMCC PPC 4xx DCR's value
476	  setdcr - Set an AMCC PPC 4xx DCR's value
477	  getidcr - Get a register value via indirect DCR addressing
478	  setidcr - Set a register value via indirect DCR addressing
479
480config CMD_SOUND
481	bool "sound"
482	depends on SOUND
483	help
484	  This provides basic access to the U-Boot's sound support. The main
485	  feature is to play a beep.
486
487	     sound init   - set up sound system
488	     sound play   - play a sound
489
490endmenu
491
492menu "Boot timing"
493
494config BOOTSTAGE
495	bool "Boot timing and reporting"
496	help
497	  Enable recording of boot time while booting. To use it, insert
498	  calls to bootstage_mark() with a suitable BOOTSTAGE_ID from
499	  bootstage.h. Only a single entry is recorded for each ID. You can
500	  give the entry a name with bootstage_mark_name(). You can also
501	  record elapsed time in a particular stage using bootstage_start()
502	  before starting and bootstage_accum() when finished. Bootstage will
503	  add up all the accumated time and report it.
504
505	  Normally, IDs are defined in bootstage.h but a small number of
506	  additional 'user' IDs can be used but passing BOOTSTAGE_ID_ALLOC
507	  as the ID.
508
509	  Calls to show_boot_progress() wil also result in log entries but
510	  these will not have names.
511
512config BOOTSTAGE_REPORT
513	bool "Display a detailed boot timing report before booting the OS"
514	depends on BOOTSTAGE
515	help
516	  Enable output of a boot time report just before the OS is booted.
517	  This shows how long it took U-Boot to go through each stage of the
518	  boot process. The report looks something like this:
519
520		Timer summary in microseconds:
521		       Mark    Elapsed  Stage
522			  0          0  reset
523		  3,575,678  3,575,678  board_init_f start
524		  3,575,695         17  arch_cpu_init A9
525		  3,575,777         82  arch_cpu_init done
526		  3,659,598     83,821  board_init_r start
527		  3,910,375    250,777  main_loop
528		 29,916,167 26,005,792  bootm_start
529		 30,361,327    445,160  start_kernel
530
531config BOOTSTAGE_USER_COUNT
532	hex "Number of boot ID numbers available for user use"
533	default 20
534	help
535	  This is the number of available user bootstage records.
536	  Each time you call bootstage_mark(BOOTSTAGE_ID_ALLOC, ...)
537	  a new ID will be allocated from this stash. If you exceed
538	  the limit, recording will stop.
539
540config CMD_BOOTSTAGE
541	bool "Enable the 'bootstage' command"
542	depends on BOOTSTAGE
543	help
544	  Add a 'bootstage' command which supports printing a report
545	  and un/stashing of bootstage data.
546
547config BOOTSTAGE_FDT
548	bool "Store boot timing information in the OS device tree"
549	depends on BOOTSTAGE
550	help
551	  Stash the bootstage information in the FDT. A root 'bootstage'
552	  node is created with each bootstage id as a child. Each child
553	  has a 'name' property and either 'mark' containing the
554	  mark time in microsecond, or 'accum' containing the
555	  accumulated time for that bootstage id in microseconds.
556	  For example:
557
558		bootstage {
559			154 {
560				name = "board_init_f";
561				mark = <3575678>;
562			};
563			170 {
564				name = "lcd";
565				accum = <33482>;
566			};
567		};
568
569	  Code in the Linux kernel can find this in /proc/devicetree.
570
571config BOOTSTAGE_STASH
572	bool "Stash the boot timing information in memory before booting OS"
573	depends on BOOTSTAGE
574	help
575	  Some OSes do not support device tree. Bootstage can instead write
576	  the boot timing information in a binary format at a given address.
577	  This happens through a call to bootstage_stash(), typically in
578	  the CPU's cleanup_before_linux() function. You can use the
579	  'bootstage stash' and 'bootstage unstash' commands to do this on
580	  the command line.
581
582config BOOTSTAGE_STASH_ADDR
583	hex "Address to stash boot timing information"
584	default 0
585	help
586	  Provide an address which will not be overwritten by the OS when it
587	  starts, so that it can read this information when ready.
588
589config BOOTSTAGE_STASH_SIZE
590	hex "Size of boot timing stash region"
591	default 4096
592	help
593	  This should be large enough to hold the bootstage stash. A value of
594	  4096 (4KiB) is normally plenty.
595
596endmenu
597
598menu "Power commands"
599config CMD_PMIC
600	bool "Enable Driver Model PMIC command"
601	depends on DM_PMIC
602	help
603	  This is the pmic command, based on a driver model pmic's API.
604	  Command features are unchanged:
605	  - list               - list pmic devices
606	  - pmic dev <id>      - show or [set] operating pmic device (NEW)
607	  - pmic dump          - dump registers
608	  - pmic read address  - read byte of register at address
609	  - pmic write address - write byte to register at address
610	  The only one change for this command is 'dev' subcommand.
611
612config CMD_REGULATOR
613	bool "Enable Driver Model REGULATOR command"
614	depends on DM_REGULATOR
615	help
616	  This command is based on driver model regulator's API.
617	  User interface features:
618	  - list               - list regulator devices
619	  - regulator dev <id> - show or [set] operating regulator device
620	  - regulator info     - print constraints info
621	  - regulator status   - print operating status
622	  - regulator value <val] <-f> - print/[set] voltage value [uV]
623	  - regulator current <val>    - print/[set] current value [uA]
624	  - regulator mode <id>        - print/[set] operating mode id
625	  - regulator enable           - enable the regulator output
626	  - regulator disable          - disable the regulator output
627
628	  The '-f' (force) option can be used for set the value which exceeds
629	  the limits, which are found in device-tree and are kept in regulator's
630	  uclass platdata structure.
631
632endmenu
633
634menu "Security commands"
635config CMD_TPM
636	bool "Enable the 'tpm' command"
637	depends on TPM
638	help
639	  This provides a means to talk to a TPM from the command line. A wide
640	  range of commands if provided - see 'tpm help' for details. The
641	  command requires a suitable TPM on your board and the correct driver
642	  must be enabled.
643
644config CMD_TPM_TEST
645	bool "Enable the 'tpm test' command"
646	depends on CMD_TPM
647	help
648	  This provides a a series of tests to confirm that the TPM is working
649	  correctly. The tests cover initialisation, non-volatile RAM, extend,
650	  global lock and checking that timing is within expectations. The
651	  tests pass correctly on Infineon TPMs but may need to be adjusted
652	  for other devices.
653
654endmenu
655
656endmenu
657