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