xref: /openbmc/u-boot/common/Kconfig (revision c7b9686d)
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
353config CMD_REMOTEPROC
354	bool "remoteproc"
355	depends on REMOTEPROC
356	help
357	  Support for Remote Processor control
358
359config CMD_GPIO
360	bool "gpio"
361	help
362	  GPIO support.
363
364endmenu
365
366
367menu "Shell scripting commands"
368
369config CMD_ECHO
370	bool "echo"
371	default y
372	help
373	  Echo args to console
374
375config CMD_ITEST
376	bool "itest"
377	default y
378	help
379	  Return true/false on integer compare.
380
381config CMD_SOURCE
382	bool "source"
383	default y
384	help
385	  Run script from memory
386
387config CMD_SETEXPR
388	bool "setexpr"
389	default y
390	help
391	  Evaluate boolean and math expressions and store the result in an env
392	    variable.
393	  Also supports loading the value at a memory location into a variable.
394	  If CONFIG_REGEX is enabled, setexpr also supports a gsub function.
395
396endmenu
397
398menu "Network commands"
399
400config CMD_NET
401	bool "bootp, tftpboot"
402        select NET
403	default y
404	help
405	  Network commands.
406	  bootp - boot image via network using BOOTP/TFTP protocol
407	  tftpboot - boot image via network using TFTP protocol
408
409config CMD_TFTPPUT
410	bool "tftp put"
411	help
412	  TFTP put command, for uploading files to a server
413
414config CMD_TFTPSRV
415	bool "tftpsrv"
416	help
417	  Act as a TFTP server and boot the first received file
418
419config CMD_RARP
420	bool "rarpboot"
421	help
422	  Boot image via network using RARP/TFTP protocol
423
424config CMD_DHCP
425	bool "dhcp"
426	help
427	  Boot image via network using DHCP/TFTP protocol
428
429config CMD_NFS
430	bool "nfs"
431	default y
432	help
433	  Boot image via network using NFS protocol.
434
435config CMD_PING
436	bool "ping"
437	help
438	  Send ICMP ECHO_REQUEST to network host
439
440config CMD_CDP
441	bool "cdp"
442	help
443	  Perform CDP network configuration
444
445config CMD_SNTP
446	bool "sntp"
447	help
448	  Synchronize RTC via network
449
450config CMD_DNS
451	bool "dns"
452	help
453	  Lookup the IP of a hostname
454
455config CMD_LINK_LOCAL
456	bool "linklocal"
457	help
458	  Acquire a network IP address using the link-local protocol
459
460endmenu
461
462menu "Misc commands"
463
464config CMD_AMBAPP
465	bool "ambapp"
466	depends on LEON3
467	default y
468	help
469	  Lists AMBA Plug-n-Play information.
470
471config SYS_AMBAPP_PRINT_ON_STARTUP
472	bool "Show AMBA PnP info on startup"
473	depends on CMD_AMBAPP
474	default n
475	help
476	  Show AMBA Plug-n-Play information on startup.
477
478config CMD_TIME
479	bool "time"
480	help
481	  Run commands and summarize execution time.
482
483# TODO: rename to CMD_SLEEP
484config CMD_MISC
485	bool "sleep"
486	default y
487	help
488	  Delay execution for some time
489
490config CMD_TIMER
491	bool "timer"
492	help
493	  Access the system timer.
494
495config CMD_SETGETDCR
496	bool "getdcr, setdcr, getidcr, setidcr"
497	depends on 4xx
498	default y
499	help
500	  getdcr - Get an AMCC PPC 4xx DCR's value
501	  setdcr - Set an AMCC PPC 4xx DCR's value
502	  getidcr - Get a register value via indirect DCR addressing
503	  setidcr - Set a register value via indirect DCR addressing
504
505config CMD_SOUND
506	bool "sound"
507	depends on SOUND
508	help
509	  This provides basic access to the U-Boot's sound support. The main
510	  feature is to play a beep.
511
512	     sound init   - set up sound system
513	     sound play   - play a sound
514
515endmenu
516
517menu "Boot timing"
518
519config BOOTSTAGE
520	bool "Boot timing and reporting"
521	help
522	  Enable recording of boot time while booting. To use it, insert
523	  calls to bootstage_mark() with a suitable BOOTSTAGE_ID from
524	  bootstage.h. Only a single entry is recorded for each ID. You can
525	  give the entry a name with bootstage_mark_name(). You can also
526	  record elapsed time in a particular stage using bootstage_start()
527	  before starting and bootstage_accum() when finished. Bootstage will
528	  add up all the accumated time and report it.
529
530	  Normally, IDs are defined in bootstage.h but a small number of
531	  additional 'user' IDs can be used but passing BOOTSTAGE_ID_ALLOC
532	  as the ID.
533
534	  Calls to show_boot_progress() wil also result in log entries but
535	  these will not have names.
536
537config BOOTSTAGE_REPORT
538	bool "Display a detailed boot timing report before booting the OS"
539	depends on BOOTSTAGE
540	help
541	  Enable output of a boot time report just before the OS is booted.
542	  This shows how long it took U-Boot to go through each stage of the
543	  boot process. The report looks something like this:
544
545		Timer summary in microseconds:
546		       Mark    Elapsed  Stage
547			  0          0  reset
548		  3,575,678  3,575,678  board_init_f start
549		  3,575,695         17  arch_cpu_init A9
550		  3,575,777         82  arch_cpu_init done
551		  3,659,598     83,821  board_init_r start
552		  3,910,375    250,777  main_loop
553		 29,916,167 26,005,792  bootm_start
554		 30,361,327    445,160  start_kernel
555
556config BOOTSTAGE_USER_COUNT
557	hex "Number of boot ID numbers available for user use"
558	default 20
559	help
560	  This is the number of available user bootstage records.
561	  Each time you call bootstage_mark(BOOTSTAGE_ID_ALLOC, ...)
562	  a new ID will be allocated from this stash. If you exceed
563	  the limit, recording will stop.
564
565config CMD_BOOTSTAGE
566	bool "Enable the 'bootstage' command"
567	depends on BOOTSTAGE
568	help
569	  Add a 'bootstage' command which supports printing a report
570	  and un/stashing of bootstage data.
571
572config BOOTSTAGE_FDT
573	bool "Store boot timing information in the OS device tree"
574	depends on BOOTSTAGE
575	help
576	  Stash the bootstage information in the FDT. A root 'bootstage'
577	  node is created with each bootstage id as a child. Each child
578	  has a 'name' property and either 'mark' containing the
579	  mark time in microsecond, or 'accum' containing the
580	  accumulated time for that bootstage id in microseconds.
581	  For example:
582
583		bootstage {
584			154 {
585				name = "board_init_f";
586				mark = <3575678>;
587			};
588			170 {
589				name = "lcd";
590				accum = <33482>;
591			};
592		};
593
594	  Code in the Linux kernel can find this in /proc/devicetree.
595
596config BOOTSTAGE_STASH
597	bool "Stash the boot timing information in memory before booting OS"
598	depends on BOOTSTAGE
599	help
600	  Some OSes do not support device tree. Bootstage can instead write
601	  the boot timing information in a binary format at a given address.
602	  This happens through a call to bootstage_stash(), typically in
603	  the CPU's cleanup_before_linux() function. You can use the
604	  'bootstage stash' and 'bootstage unstash' commands to do this on
605	  the command line.
606
607config BOOTSTAGE_STASH_ADDR
608	hex "Address to stash boot timing information"
609	default 0
610	help
611	  Provide an address which will not be overwritten by the OS when it
612	  starts, so that it can read this information when ready.
613
614config BOOTSTAGE_STASH_SIZE
615	hex "Size of boot timing stash region"
616	default 4096
617	help
618	  This should be large enough to hold the bootstage stash. A value of
619	  4096 (4KiB) is normally plenty.
620
621endmenu
622
623menu "Power commands"
624config CMD_PMIC
625	bool "Enable Driver Model PMIC command"
626	depends on DM_PMIC
627	help
628	  This is the pmic command, based on a driver model pmic's API.
629	  Command features are unchanged:
630	  - list               - list pmic devices
631	  - pmic dev <id>      - show or [set] operating pmic device (NEW)
632	  - pmic dump          - dump registers
633	  - pmic read address  - read byte of register at address
634	  - pmic write address - write byte to register at address
635	  The only one change for this command is 'dev' subcommand.
636
637config CMD_REGULATOR
638	bool "Enable Driver Model REGULATOR command"
639	depends on DM_REGULATOR
640	help
641	  This command is based on driver model regulator's API.
642	  User interface features:
643	  - list               - list regulator devices
644	  - regulator dev <id> - show or [set] operating regulator device
645	  - regulator info     - print constraints info
646	  - regulator status   - print operating status
647	  - regulator value <val] <-f> - print/[set] voltage value [uV]
648	  - regulator current <val>    - print/[set] current value [uA]
649	  - regulator mode <id>        - print/[set] operating mode id
650	  - regulator enable           - enable the regulator output
651	  - regulator disable          - disable the regulator output
652
653	  The '-f' (force) option can be used for set the value which exceeds
654	  the limits, which are found in device-tree and are kept in regulator's
655	  uclass platdata structure.
656
657endmenu
658
659menu "Security commands"
660config CMD_TPM
661	bool "Enable the 'tpm' command"
662	depends on TPM
663	help
664	  This provides a means to talk to a TPM from the command line. A wide
665	  range of commands if provided - see 'tpm help' for details. The
666	  command requires a suitable TPM on your board and the correct driver
667	  must be enabled.
668
669config CMD_TPM_TEST
670	bool "Enable the 'tpm test' command"
671	depends on CMD_TPM
672	help
673	  This provides a a series of tests to confirm that the TPM is working
674	  correctly. The tests cover initialisation, non-volatile RAM, extend,
675	  global lock and checking that timing is within expectations. The
676	  tests pass correctly on Infineon TPMs but may need to be adjusted
677	  for other devices.
678
679endmenu
680
681endmenu
682
683config CONSOLE_RECORD
684	bool "Console recording"
685	help
686	  This provides a way to record console output (and provide console
687	  input) through cirular buffers. This is mostly useful for testing.
688	  Console output is recorded even when the console is silent.
689	  To enable console recording, call console_record_reset_enable()
690	  from your code.
691
692config CONSOLE_RECORD_OUT_SIZE
693	hex "Output buffer size"
694	depends on CONSOLE_RECORD
695	default 0x400 if CONSOLE_RECORD
696	help
697	  Set the size of the console output buffer. When this fills up, no
698	  more data will be recorded until some is removed. The buffer is
699	  allocated immediately after the malloc() region is ready.
700
701config CONSOLE_RECORD_IN_SIZE
702	hex "Input buffer size"
703	depends on CONSOLE_RECORD
704	default 0x100 if CONSOLE_RECORD
705	help
706	  Set the size of the console input buffer. When this contains data,
707	  tstc() and getc() will use this in preference to real device input.
708	  The buffer is allocated immediately after the malloc() region is
709	  ready.
710