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