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