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