]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - common/Kconfig
autoboot.c: Add feature to stop autobooting via SHA256 encrypted password
[karo-tx-uboot.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         default y
105         help
106           Print board info
107
108 config CMD_CONSOLE
109         bool "coninfo"
110         default y
111         help
112           Print console devices and information.
113
114 config 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
122 config CMD_LICENSE
123         bool "license"
124         help
125           Print GPL license text
126
127 endmenu
128
129 menu "Boot commands"
130
131 config 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
138 config CMD_BOOTM
139         bool "bootm"
140         default y
141         help
142           Boot an application image from the memory.
143
144 config CMD_BOOTZ
145         bool "bootz"
146         default y
147         help
148           Boot a Linux kernel zImage.
149
150 config CMD_BOOTCE
151         bool "bootce"
152         help
153           Boot a WindowsCE image.
154
155 config CMD_GO
156         bool "go"
157         default y
158         help
159           Start an application at a given address.
160
161 config CMD_RUN
162         bool "run"
163         default y
164         help
165           Run the command in the given environment variable.
166
167 config CMD_IMI
168         bool "iminfo"
169         default y
170         help
171           Print header information for application image.
172
173 config CMD_IMLS
174         bool "imls"
175         default !SYS_NO_FLASH
176         help
177           List all images found in flash
178
179 config CMD_XIMG
180         bool "imxtract"
181         default y
182         help
183           Extract a part of a multi-image.
184
185 endmenu
186
187 menu "DTB support"
188
189 config OF_LIBFDT
190         bool "Enable FDT commands"
191
192 config OF_BOARD_SETUP
193         bool "Support DT modifications by board code"
194         depends on OF_LIBFDT
195
196 endmenu
197
198 menu "Environment commands"
199
200 config CMD_EXPORTENV
201         bool "env export"
202         default y
203         help
204           Export environments.
205
206 config CMD_IMPORTENV
207         bool "env import"
208         default y
209         help
210           Import environments.
211
212 config CMD_EDITENV
213         bool "editenv"
214         default y
215         help
216           Edit environment variable.
217
218 config CMD_SAVEENV
219         bool "saveenv"
220         default y
221         help
222           Run the command in the given environment variable.
223
224 endmenu
225
226 menu "Memory commands"
227
228 config CMD_MEMORY
229         bool "md, mm, nm, mw, cp, cmp, base, loop"
230         default y
231         help
232           Memeory commands.
233             md - memory display
234             mm - memory modify (auto-incrementing address)
235             nm - memory modify (constant address)
236             mw - memory write (fill)
237             cp - memory copy
238             cmp - memory compare
239             base - print or set address offset
240             loop - initinite loop on address range
241
242 config CMD_CRC32
243         bool "crc32"
244         default y
245         help
246           Compute CRC32.
247
248 config LOOPW
249         bool "loopw"
250         help
251           Infinite write loop on address range
252
253 config CMD_MEMTEST
254         bool "memtest"
255         help
256           Simple RAM read/write test.
257
258 config CMD_MX_CYCLIC
259         bool "mdc, mwc"
260         help
261           mdc - memory display cyclic
262           mwc - memory write cyclic
263
264 config CMD_MEMINFO
265         bool "meminfo"
266         help
267           Display memory information.
268
269 endmenu
270
271 menu "Device access commands"
272
273 config CMD_DM
274         bool "dm - Access to driver model information"
275         depends on DM
276         default y
277         help
278           Provides access to driver model data structures and information,
279           such as a list of devices, list of uclasses and the state of each
280           device (e.g. activated). This is not required for operation, but
281           can be useful to see the state of driver model for debugging or
282           interest.
283
284 config CMD_DEMO
285         bool "demo - Demonstration commands for driver model"
286         depends on DM
287         help
288           Provides a 'demo' command which can be used to play around with
289           driver model. To use this properly you will need to enable one or
290           both of the demo devices (DM_DEMO_SHAPE and DM_DEMO_SIMPLE).
291           Otherwise you will always get an empty list of devices. The demo
292           devices are defined in the sandbox device tree, so the easiest
293           option is to use sandbox and pass the -d point to sandbox's
294           u-boot.dtb file.
295
296 config CMD_LOADB
297         bool "loadb"
298         default y
299         help
300           Load a binary file over serial line.
301
302 config CMD_LOADS
303         bool "loads"
304         default y
305         help
306           Load an S-Record file over serial line
307
308 config CMD_FLASH
309         bool "flinfo, erase, protect"
310         default y if !SYS_NO_FLASH
311         help
312           NOR flash support.
313             flinfo - print FLASH memory information
314             erase - FLASH memory
315             protect - enable or disable FLASH write protection
316
317 config CMD_ARMFLASH
318         depends on FLASH_CFI_DRIVER
319         bool "armflash"
320         help
321           ARM Ltd reference designs flash partition access
322
323 config MTD_DEVICE
324         bool "MTD device support"
325
326 config CMD_MTDPARTS
327         bool "MTD partitioning support"
328         default y
329         depends on MTD_DEVICE && (CMD_FLASH || CMD_NAND)
330
331 config CMD_NAND
332         bool "nand"
333         help
334           NAND support.
335
336 config CMD_NAND_TRIMFFS
337         bool "Enable nand write.trimffs command"
338         help
339           Enable command to leave page sized runs of 0xff patterns in
340           erased state rather than overwriting them. This is required
341           for using NAND flash filesystems on NAND controllers with
342           a non-0xff ECC code for all 0xff data.
343
344 config CMD_ROMUPDATE
345         bool
346         depends on NAND
347
348 config CMD_MMC
349         bool "mmc/sd"
350         select PARTITIONS
351         help
352           MMC/SD support.
353
354 config CMD_SPI
355         bool "sspi"
356         help
357           SPI utility command.
358
359 config CMD_I2C
360         bool "i2c"
361         help
362           I2C support.
363
364 config CMD_USB
365         bool "usb"
366         help
367           USB support.
368
369 config CMD_FPGA
370         bool "fpga"
371         default y
372         help
373           FPGA support.
374
375 endmenu
376
377
378 menu "Shell scripting commands"
379
380 config CMD_ECHO
381         bool "echo"
382         default y
383         help
384           Echo args to console
385
386 config CMD_ITEST
387         bool "itest"
388         default y
389         help
390           Return true/false on integer compare.
391
392 config CMD_SOURCE
393         bool "source"
394         default y
395         help
396           Run script from memory
397
398 config CMD_SETEXPR
399         bool "setexpr"
400         help
401           Evaluate boolean and math expressions and store the result in an env
402             variable.
403           Also supports loading the value at a memory location into a variable.
404           If CONFIG_REGEX is enabled, setexpr also supports a gsub function.
405
406 endmenu
407
408 menu "Network commands"
409
410 config CMD_NET
411         bool "bootp, tftpboot"
412         default y
413         select NET
414         help
415           Network commands.
416           bootp - boot image via network using BOOTP/TFTP protocol
417           tftpboot - boot image via network using TFTP protocol
418
419 config CMD_TFTPPUT
420         bool "tftp put"
421         help
422           TFTP put command, for uploading files to a server
423
424 config CMD_TFTPSRV
425         bool "tftpsrv"
426         help
427           Act as a TFTP server and boot the first received file
428
429 config CMD_RARP
430         bool "rarpboot"
431         help
432           Boot image via network using RARP/TFTP protocol
433
434 config CMD_DHCP
435         bool "dhcp"
436         help
437           Boot image via network using DHCP/TFTP protocol
438
439 if CMD_DHCP
440
441 menu "DHCP options"
442
443 config BOOTP_BOOTFILESIZE
444         bool "obtain bootfile size from DHCP"
445
446 config BOOTP_BOOTPATH
447         bool "obtain bootfile path from DHCP"
448
449 config BOOTP_DNS
450         bool "obtain DNS server IP address from DHCP"
451
452 config BOOTP_DNS2
453         bool "store secondary DNS IP address in dnsip2"
454
455 config BOOTP_GATEWAY
456         bool "obtain gateway IP address from DHCP"
457
458 config BOOTP_ID_CACHE_SIZE
459         int "DHCP transaction ID cache size"
460         default 4
461         help
462           BOOTP packets are uniquely identified using a 32-bit ID. The
463           server will copy the ID from client requests to responses and
464           U-Boot will use this to determine if it is the destination of
465           an incoming response. Some servers will check that addresses
466           aren't in use before handing them out (usually using an ARP
467           ping) and therefore take up to a few hundred milliseconds to
468           respond. Network congestion may also influence the time it
469           takes for a response to make it back to the client. If that
470           time is too long, U-Boot will retransmit requests. In order
471           to allow earlier responses to still be accepted after these
472           retransmissions, U-Boot's BOOTP client keeps a small cache of
473           IDs. The CONFIG_BOOTP_ID_CACHE_SIZE controls the size of this
474           cache. The default is to keep IDs for up to four outstanding
475           requests. Increasing this will allow U-Boot to accept offers
476           from a BOOTP client in networks with unusually high latency.
477
478 config BOOTP_MAY_FAIL
479         bool "Do not start over, if DHCP server is not available"
480         help
481           If the DHCP server is not found after the configured retry
482           count, the call will fail instead of starting over.  This
483           can be used to fail over to Link-local IP address
484           configuration if the DHCP server is not available.
485
486 config BOOTP_NISDOMAIN
487         bool "obtain NIS domain from DHCP"
488
489 config BOOTP_NTPSERVER
490         bool "obtain NTP server IP address from DHCP"
491
492 config BOOTP_RANDOM_DELAY
493         bool "Use a (pseudo) random delay between DHCP retries"
494         select LIB_RAND
495
496 config BOOTP_RANDOM_ID
497         bool "Generate a (pseudo) random transaction ID"
498         select LIB_RAND
499
500 config BOOTP_SEND_HOSTNAME
501         bool "send hostname in DHCP request"
502
503 config BOOTP_SUBNETMASK
504         bool "obtain subnet mask from DHCP"
505
506 config BOOTP_TIMEOFFSET
507         bool "obtain  from DHCP"
508
509 config BOOTP_VENDOREX
510         bool "obtain  from DHCP"
511
512 endmenu
513
514 endif
515
516 config CMD_NFS
517         bool "nfs"
518         default y
519         help
520           Boot image via network using NFS protocol.
521
522 config CMD_PING
523         bool "ping"
524         help
525           Send ICMP ECHO_REQUEST to network host
526
527 config CMD_CDP
528         bool "cdp"
529         help
530           Perform CDP network configuration
531
532 config CMD_SNTP
533         bool "sntp"
534         help
535           Synchronize RTC via network
536
537 config CMD_DNS
538         bool "dns"
539         help
540           Lookup the IP of a hostname
541
542 config CMD_LINK_LOCAL
543         bool "linklocal"
544         help
545           Acquire a network IP address using the link-local protocol
546
547 config CMD_MII
548         bool "MII register access"
549         help
550           Support reading/writing ETH PHY registers via MII bus
551
552 endmenu
553
554 menu "Misc commands"
555
556 config CMD_CACHE
557         bool "cache control"
558         help
559           Enable commands to switch data cache on/off.
560
561 config CMD_TIME
562         bool "time"
563         help
564           Run commands and summarize execution time.
565
566 config CMD_FUSE
567         bool "fuse read/write"
568         help
569           eFuse reading and programming support
570
571 # TODO: rename to CMD_SLEEP
572 config CMD_MISC
573         bool "sleep"
574         default y
575         help
576           Delay execution for some time
577
578 config CMD_TIMER
579         bool "timer"
580         help
581           Access the system timer.
582
583 config CMD_SETGETDCR
584         bool "getdcr, setdcr, getidcr, setidcr"
585         depends on 4xx
586         default y
587         help
588           getdcr - Get an AMCC PPC 4xx DCR's value
589           setdcr - Set an AMCC PPC 4xx DCR's value
590           getidcr - Get a register value via indirect DCR addressing
591           setidcr - Set a register value via indirect DCR addressing
592
593 config CMD_SOUND
594         bool "sound"
595         depends on SOUND
596         help
597           This provides basic access to the U-Boot's sound support. The main
598           feature is to play a beep.
599
600              sound init   - set up sound system
601              sound play   - play a sound
602
603 endmenu
604
605 menu "Boot timing"
606
607 config BOOTSTAGE
608         bool "Boot timing and reporting"
609         help
610           Enable recording of boot time while booting. To use it, insert
611           calls to bootstage_mark() with a suitable BOOTSTAGE_ID from
612           bootstage.h. Only a single entry is recorded for each ID. You can
613           give the entry a name with bootstage_mark_name(). You can also
614           record elapsed time in a particular stage using bootstage_start()
615           before starting and bootstage_accum() when finished. Bootstage will
616           add up all the accumated time and report it.
617
618           Normally, IDs are defined in bootstage.h but a small number of
619           additional 'user' IDs can be used but passing BOOTSTAGE_ID_ALLOC
620           as the ID.
621
622           Calls to show_boot_progress() wil also result in log entries but
623           these will not have names.
624
625 config BOOTSTAGE_REPORT
626         bool "Display a detailed boot timing report before booting the OS"
627         depends on BOOTSTAGE
628         help
629           Enable output of a boot time report just before the OS is booted.
630           This shows how long it took U-Boot to go through each stage of the
631           boot process. The report looks something like this:
632
633                 Timer summary in microseconds:
634                        Mark    Elapsed  Stage
635                           0          0  reset
636                   3,575,678  3,575,678  board_init_f start
637                   3,575,695         17  arch_cpu_init A9
638                   3,575,777         82  arch_cpu_init done
639                   3,659,598     83,821  board_init_r start
640                   3,910,375    250,777  main_loop
641                  29,916,167 26,005,792  bootm_start
642                  30,361,327    445,160  start_kernel
643
644 config BOOTSTAGE_USER_COUNT
645         hex "Number of boot ID numbers available for user use"
646         default 20
647         help
648           This is the number of available user bootstage records.
649           Each time you call bootstage_mark(BOOTSTAGE_ID_ALLOC, ...)
650           a new ID will be allocated from this stash. If you exceed
651           the limit, recording will stop.
652
653 config CMD_BOOTSTAGE
654         bool "Enable the 'bootstage' command"
655         depends on BOOTSTAGE
656         help
657           Add a 'bootstage' command which supports printing a report
658           and un/stashing of bootstage data.
659
660 config BOOTSTAGE_FDT
661         bool "Store boot timing information in the OS device tree"
662         depends on BOOTSTAGE
663         help
664           Stash the bootstage information in the FDT. A root 'bootstage'
665           node is created with each bootstage id as a child. Each child
666           has a 'name' property and either 'mark' containing the
667           mark time in microsecond, or 'accum' containing the
668           accumulated time for that bootstage id in microseconds.
669           For example:
670
671                 bootstage {
672                         154 {
673                                 name = "board_init_f";
674                                 mark = <3575678>;
675                         };
676                         170 {
677                                 name = "lcd";
678                                 accum = <33482>;
679                         };
680                 };
681
682           Code in the Linux kernel can find this in /proc/devicetree.
683
684 config BOOTSTAGE_STASH
685         bool "Stash the boot timing information in memory before booting OS"
686         depends on BOOTSTAGE
687         help
688           Some OSes do not support device tree. Bootstage can instead write
689           the boot timing information in a binary format at a given address.
690           This happens through a call to bootstage_stash(), typically in
691           the CPU's cleanup_before_linux() function. You can use the
692           'bootstage stash' and 'bootstage unstash' commands to do this on
693           the command line.
694
695 config BOOTSTAGE_STASH_ADDR
696         hex "Address to stash boot timing information"
697         default 0
698         help
699           Provide an address which will not be overwritten by the OS when it
700           starts, so that it can read this information when ready.
701
702 config BOOTSTAGE_STASH_SIZE
703         hex "Size of boot timing stash region"
704         default 4096
705         help
706           This should be large enough to hold the bootstage stash. A value of
707           4096 (4KiB) is normally plenty.
708
709 endmenu
710
711 menu "Power commands"
712 config CMD_PMIC
713         bool "Enable Driver Model PMIC command"
714         depends on DM_PMIC
715         help
716           This is the pmic command, based on a driver model pmic's API.
717           Command features are unchanged:
718           - list               - list pmic devices
719           - pmic dev <id>      - show or [set] operating pmic device (NEW)
720           - pmic dump          - dump registers
721           - pmic read address  - read byte of register at address
722           - pmic write address - write byte to register at address
723           The only one change for this command is 'dev' subcommand.
724
725 config CMD_REGULATOR
726         bool "Enable Driver Model REGULATOR command"
727         depends on DM_REGULATOR
728         help
729           This command is based on driver model regulator's API.
730           User interface features:
731           - list               - list regulator devices
732           - regulator dev <id> - show or [set] operating regulator device
733           - regulator info     - print constraints info
734           - regulator status   - print operating status
735           - regulator value <val] <-f> - print/[set] voltage value [uV]
736           - regulator current <val>    - print/[set] current value [uA]
737           - regulator mode <id>        - print/[set] operating mode id
738           - regulator enable           - enable the regulator output
739           - regulator disable          - disable the regulator output
740
741           The '-f' (force) option can be used for set the value which exceeds
742           the limits, which are found in device-tree and are kept in regulator's
743           uclass platdata structure.
744
745 endmenu
746
747 endmenu
748
749 menu "Environment configuration settings"
750
751 choice
752         prompt "Select environment non-volatile storage"
753
754 config ENV_IS_NOWHERE
755         bool "do not store environment"
756
757 config ENV_IS_IN_NAND
758         bool "store environment in NAND"
759         depends on NAND
760
761 config ENV_IS_IN_MMC
762         bool "store environment in MMC"
763         depends on MMC
764
765 config ENV_IS_IN_SPI_FLASH
766         bool "store environment in SPI flash"
767
768 endchoice
769
770 endmenu
771
772 menu "Display configuration"
773
774 config LCD
775         bool "LCD support"
776
777 config DISPLAY_BOARDINFO
778         bool "Display board info"
779
780 endmenu