xref: /openbmc/u-boot/common/Kconfig (revision 9c71a21d)
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_GO
152	bool "go"
153	default y
154	help
155	  Start an application at a given address.
156
157config CMD_RUN
158	bool "run"
159	default y
160	help
161	  Run the command in the given environment variable.
162
163config CMD_IMI
164	bool "iminfo"
165	default y
166	help
167	  Print header information for application image.
168
169config CMD_IMLS
170	bool "imls"
171	default y
172	help
173	  List all images found in flash
174
175config CMD_XIMG
176	bool "imxtract"
177	default y
178	help
179	  Extract a part of a multi-image.
180
181endmenu
182
183menu "Environment commands"
184
185config CMD_EXPORTENV
186	bool "env export"
187	default y
188	help
189	  Export environments.
190
191config CMD_IMPORTENV
192	bool "env import"
193	default y
194	help
195	  Import environments.
196
197config CMD_EDITENV
198	bool "editenv"
199	default y
200	help
201	  Edit environment variable.
202
203config CMD_SAVEENV
204	bool "saveenv"
205	default y
206	help
207	  Save all environment variables into the compiled-in persistent
208	  storage.
209
210config CMD_ENV_EXISTS
211	bool "env exists"
212	default y
213	help
214	  Check if a variable is defined in the environment for use in
215	  shell scripting.
216
217endmenu
218
219menu "Memory commands"
220
221config CMD_MEMORY
222	bool "md, mm, nm, mw, cp, cmp, base, loop"
223	default y
224	help
225	  Memeory commands.
226	    md - memory display
227	    mm - memory modify (auto-incrementing address)
228	    nm - memory modify (constant address)
229	    mw - memory write (fill)
230	    cp - memory copy
231	    cmp - memory compare
232	    base - print or set address offset
233	    loop - initinite loop on address range
234
235config CMD_CRC32
236	bool "crc32"
237	default y
238	help
239	  Compute CRC32.
240
241config LOOPW
242	bool "loopw"
243	help
244	  Infinite write loop on address range
245
246config CMD_MEMTEST
247	bool "memtest"
248	help
249	  Simple RAM read/write test.
250
251config CMD_MX_CYCLIC
252	bool "mdc, mwc"
253	help
254	  mdc - memory display cyclic
255	  mwc - memory write cyclic
256
257config CMD_MEMINFO
258	bool "meminfo"
259	help
260	  Display memory information.
261
262endmenu
263
264menu "Device access commands"
265
266config CMD_DM
267	bool "dm - Access to driver model information"
268	depends on DM
269	default y
270	help
271	  Provides access to driver model data structures and information,
272	  such as a list of devices, list of uclasses and the state of each
273	  device (e.g. activated). This is not required for operation, but
274	  can be useful to see the state of driver model for debugging or
275	  interest.
276
277config CMD_DEMO
278	bool "demo - Demonstration commands for driver model"
279	depends on DM
280	help
281	  Provides a 'demo' command which can be used to play around with
282	  driver model. To use this properly you will need to enable one or
283	  both of the demo devices (DM_DEMO_SHAPE and DM_DEMO_SIMPLE).
284	  Otherwise you will always get an empty list of devices. The demo
285	  devices are defined in the sandbox device tree, so the easiest
286	  option is to use sandbox and pass the -d point to sandbox's
287	  u-boot.dtb file.
288
289config CMD_LOADB
290	bool "loadb"
291	default y
292	help
293	  Load a binary file over serial line.
294
295config CMD_LOADS
296	bool "loads"
297	default y
298	help
299	  Load an S-Record file over serial line
300
301config CMD_FLASH
302	bool "flinfo, erase, protect"
303	default y
304	help
305	  NOR flash support.
306	    flinfo - print FLASH memory information
307	    erase - FLASH memory
308	    protect - enable or disable FLASH write protection
309
310config CMD_ARMFLASH
311	depends on FLASH_CFI_DRIVER
312	bool "armflash"
313	help
314	  ARM Ltd reference designs flash partition access
315
316config CMD_NAND
317	bool "nand"
318	help
319	  NAND support.
320
321config CMD_SF
322	bool "sf"
323	help
324	  SPI Flash support
325
326config CMD_SPI
327	bool "sspi"
328	help
329	  SPI utility command.
330
331config CMD_I2C
332	bool "i2c"
333	help
334	  I2C support.
335
336config CMD_USB
337	bool "usb"
338	help
339	  USB support.
340
341config CMD_FPGA
342	bool "fpga"
343	default y
344	help
345	  FPGA support.
346
347endmenu
348
349
350menu "Shell scripting commands"
351
352config CMD_ECHO
353	bool "echo"
354	default y
355	help
356	  Echo args to console
357
358config CMD_ITEST
359	bool "itest"
360	default y
361	help
362	  Return true/false on integer compare.
363
364config CMD_SOURCE
365	bool "source"
366	default y
367	help
368	  Run script from memory
369
370config CMD_SETEXPR
371	bool "setexpr"
372	default y
373	help
374	  Evaluate boolean and math expressions and store the result in an env
375	    variable.
376	  Also supports loading the value at a memory location into a variable.
377	  If CONFIG_REGEX is enabled, setexpr also supports a gsub function.
378
379endmenu
380
381menu "Network commands"
382
383config CMD_NET
384	bool "bootp, tftpboot"
385        select NET
386	default y
387	help
388	  Network commands.
389	  bootp - boot image via network using BOOTP/TFTP protocol
390	  tftpboot - boot image via network using TFTP protocol
391
392config CMD_TFTPPUT
393	bool "tftp put"
394	help
395	  TFTP put command, for uploading files to a server
396
397config CMD_TFTPSRV
398	bool "tftpsrv"
399	help
400	  Act as a TFTP server and boot the first received file
401
402config CMD_RARP
403	bool "rarpboot"
404	help
405	  Boot image via network using RARP/TFTP protocol
406
407config CMD_DHCP
408	bool "dhcp"
409	help
410	  Boot image via network using DHCP/TFTP protocol
411
412config CMD_NFS
413	bool "nfs"
414	default y
415	help
416	  Boot image via network using NFS protocol.
417
418config CMD_PING
419	bool "ping"
420	help
421	  Send ICMP ECHO_REQUEST to network host
422
423config CMD_CDP
424	bool "cdp"
425	help
426	  Perform CDP network configuration
427
428config CMD_SNTP
429	bool "sntp"
430	help
431	  Synchronize RTC via network
432
433config CMD_DNS
434	bool "dns"
435	help
436	  Lookup the IP of a hostname
437
438config CMD_LINK_LOCAL
439	bool "linklocal"
440	help
441	  Acquire a network IP address using the link-local protocol
442
443endmenu
444
445menu "Misc commands"
446
447config CMD_TIME
448	bool "time"
449	help
450	  Run commands and summarize execution time.
451
452# TODO: rename to CMD_SLEEP
453config CMD_MISC
454	bool "sleep"
455	default y
456	help
457	  Delay execution for some time
458
459config CMD_TIMER
460	bool "timer"
461	help
462	  Access the system timer.
463
464config CMD_SETGETDCR
465	bool "getdcr, setdcr, getidcr, setidcr"
466	depends on 4xx
467	default y
468	help
469	  getdcr - Get an AMCC PPC 4xx DCR's value
470	  setdcr - Set an AMCC PPC 4xx DCR's value
471	  getidcr - Get a register value via indirect DCR addressing
472	  setidcr - Set a register value via indirect DCR addressing
473
474config CMD_SOUND
475	bool "sound"
476	depends on SOUND
477	help
478	  This provides basic access to the U-Boot's sound support. The main
479	  feature is to play a beep.
480
481	     sound init   - set up sound system
482	     sound play   - play a sound
483
484endmenu
485
486menu "Boot timing"
487
488config BOOTSTAGE
489	bool "Boot timing and reporting"
490	help
491	  Enable recording of boot time while booting. To use it, insert
492	  calls to bootstage_mark() with a suitable BOOTSTAGE_ID from
493	  bootstage.h. Only a single entry is recorded for each ID. You can
494	  give the entry a name with bootstage_mark_name(). You can also
495	  record elapsed time in a particular stage using bootstage_start()
496	  before starting and bootstage_accum() when finished. Bootstage will
497	  add up all the accumated time and report it.
498
499	  Normally, IDs are defined in bootstage.h but a small number of
500	  additional 'user' IDs can be used but passing BOOTSTAGE_ID_ALLOC
501	  as the ID.
502
503	  Calls to show_boot_progress() wil also result in log entries but
504	  these will not have names.
505
506config BOOTSTAGE_REPORT
507	bool "Display a detailed boot timing report before booting the OS"
508	depends on BOOTSTAGE
509	help
510	  Enable output of a boot time report just before the OS is booted.
511	  This shows how long it took U-Boot to go through each stage of the
512	  boot process. The report looks something like this:
513
514		Timer summary in microseconds:
515		       Mark    Elapsed  Stage
516			  0          0  reset
517		  3,575,678  3,575,678  board_init_f start
518		  3,575,695         17  arch_cpu_init A9
519		  3,575,777         82  arch_cpu_init done
520		  3,659,598     83,821  board_init_r start
521		  3,910,375    250,777  main_loop
522		 29,916,167 26,005,792  bootm_start
523		 30,361,327    445,160  start_kernel
524
525config BOOTSTAGE_USER_COUNT
526	hex "Number of boot ID numbers available for user use"
527	default 20
528	help
529	  This is the number of available user bootstage records.
530	  Each time you call bootstage_mark(BOOTSTAGE_ID_ALLOC, ...)
531	  a new ID will be allocated from this stash. If you exceed
532	  the limit, recording will stop.
533
534config CMD_BOOTSTAGE
535	bool "Enable the 'bootstage' command"
536	depends on BOOTSTAGE
537	help
538	  Add a 'bootstage' command which supports printing a report
539	  and un/stashing of bootstage data.
540
541config BOOTSTAGE_FDT
542	bool "Store boot timing information in the OS device tree"
543	depends on BOOTSTAGE
544	help
545	  Stash the bootstage information in the FDT. A root 'bootstage'
546	  node is created with each bootstage id as a child. Each child
547	  has a 'name' property and either 'mark' containing the
548	  mark time in microsecond, or 'accum' containing the
549	  accumulated time for that bootstage id in microseconds.
550	  For example:
551
552		bootstage {
553			154 {
554				name = "board_init_f";
555				mark = <3575678>;
556			};
557			170 {
558				name = "lcd";
559				accum = <33482>;
560			};
561		};
562
563	  Code in the Linux kernel can find this in /proc/devicetree.
564
565config BOOTSTAGE_STASH
566	bool "Stash the boot timing information in memory before booting OS"
567	depends on BOOTSTAGE
568	help
569	  Some OSes do not support device tree. Bootstage can instead write
570	  the boot timing information in a binary format at a given address.
571	  This happens through a call to bootstage_stash(), typically in
572	  the CPU's cleanup_before_linux() function. You can use the
573	  'bootstage stash' and 'bootstage unstash' commands to do this on
574	  the command line.
575
576config BOOTSTAGE_STASH_ADDR
577	hex "Address to stash boot timing information"
578	default 0
579	help
580	  Provide an address which will not be overwritten by the OS when it
581	  starts, so that it can read this information when ready.
582
583config BOOTSTAGE_STASH_SIZE
584	hex "Size of boot timing stash region"
585	default 4096
586	help
587	  This should be large enough to hold the bootstage stash. A value of
588	  4096 (4KiB) is normally plenty.
589
590endmenu
591
592menu "Power commands"
593config CMD_PMIC
594	bool "Enable Driver Model PMIC command"
595	depends on DM_PMIC
596	help
597	  This is the pmic command, based on a driver model pmic's API.
598	  Command features are unchanged:
599	  - list               - list pmic devices
600	  - pmic dev <id>      - show or [set] operating pmic device (NEW)
601	  - pmic dump          - dump registers
602	  - pmic read address  - read byte of register at address
603	  - pmic write address - write byte to register at address
604	  The only one change for this command is 'dev' subcommand.
605
606config CMD_REGULATOR
607	bool "Enable Driver Model REGULATOR command"
608	depends on DM_REGULATOR
609	help
610	  This command is based on driver model regulator's API.
611	  User interface features:
612	  - list               - list regulator devices
613	  - regulator dev <id> - show or [set] operating regulator device
614	  - regulator info     - print constraints info
615	  - regulator status   - print operating status
616	  - regulator value <val] <-f> - print/[set] voltage value [uV]
617	  - regulator current <val>    - print/[set] current value [uA]
618	  - regulator mode <id>        - print/[set] operating mode id
619	  - regulator enable           - enable the regulator output
620	  - regulator disable          - disable the regulator output
621
622	  The '-f' (force) option can be used for set the value which exceeds
623	  the limits, which are found in device-tree and are kept in regulator's
624	  uclass platdata structure.
625
626endmenu
627
628menu "Security commands"
629config CMD_TPM
630	bool "Enable the 'tpm' command"
631	depends on TPM
632	help
633	  This provides a means to talk to a TPM from the command line. A wide
634	  range of commands if provided - see 'tpm help' for details. The
635	  command requires a suitable TPM on your board and the correct driver
636	  must be enabled.
637
638config CMD_TPM_TEST
639	bool "Enable the 'tpm test' command"
640	depends on CMD_TPM
641	help
642	  This provides a a series of tests to confirm that the TPM is working
643	  correctly. The tests cover initialisation, non-volatile RAM, extend,
644	  global lock and checking that timing is within expectations. The
645	  tests pass correctly on Infineon TPMs but may need to be adjusted
646	  for other devices.
647
648endmenu
649
650endmenu
651