blob: a3094d984fd2e88c6131ea96d9f6c88e1739661d [file] [log] [blame]
Simon Glassee2b2432015-03-02 17:04:37 -07001menu "Boot timing"
2
3config BOOTSTAGE
4 bool "Boot timing and reporting"
5 help
6 Enable recording of boot time while booting. To use it, insert
7 calls to bootstage_mark() with a suitable BOOTSTAGE_ID from
8 bootstage.h. Only a single entry is recorded for each ID. You can
9 give the entry a name with bootstage_mark_name(). You can also
10 record elapsed time in a particular stage using bootstage_start()
11 before starting and bootstage_accum() when finished. Bootstage will
Robert P. J. Day57247d92016-08-31 12:49:13 -040012 add up all the accumulated time and report it.
Simon Glassee2b2432015-03-02 17:04:37 -070013
14 Normally, IDs are defined in bootstage.h but a small number of
Robert P. J. Day57247d92016-08-31 12:49:13 -040015 additional 'user' IDs can be used by passing BOOTSTAGE_ID_ALLOC
Simon Glassee2b2432015-03-02 17:04:37 -070016 as the ID.
17
Robert P. J. Day57247d92016-08-31 12:49:13 -040018 Calls to show_boot_progress() will also result in log entries but
Simon Glassee2b2432015-03-02 17:04:37 -070019 these will not have names.
20
21config BOOTSTAGE_REPORT
22 bool "Display a detailed boot timing report before booting the OS"
23 depends on BOOTSTAGE
24 help
25 Enable output of a boot time report just before the OS is booted.
26 This shows how long it took U-Boot to go through each stage of the
27 boot process. The report looks something like this:
28
29 Timer summary in microseconds:
30 Mark Elapsed Stage
31 0 0 reset
32 3,575,678 3,575,678 board_init_f start
33 3,575,695 17 arch_cpu_init A9
34 3,575,777 82 arch_cpu_init done
35 3,659,598 83,821 board_init_r start
36 3,910,375 250,777 main_loop
37 29,916,167 26,005,792 bootm_start
38 30,361,327 445,160 start_kernel
39
40config BOOTSTAGE_USER_COUNT
Simon Glass5a0e2752017-05-22 05:05:24 -060041 int "Number of boot ID numbers available for user use"
Simon Glassee2b2432015-03-02 17:04:37 -070042 default 20
43 help
44 This is the number of available user bootstage records.
45 Each time you call bootstage_mark(BOOTSTAGE_ID_ALLOC, ...)
46 a new ID will be allocated from this stash. If you exceed
47 the limit, recording will stop.
48
Simon Glass03ecac32017-05-22 05:05:27 -060049config BOOTSTAGE_RECORD_COUNT
50 int "Number of boot stage records to store"
51 default 30
52 help
53 This is the size of the bootstage record list and is the maximum
54 number of bootstage records that can be recorded.
55
Simon Glassee2b2432015-03-02 17:04:37 -070056config BOOTSTAGE_FDT
57 bool "Store boot timing information in the OS device tree"
58 depends on BOOTSTAGE
59 help
60 Stash the bootstage information in the FDT. A root 'bootstage'
61 node is created with each bootstage id as a child. Each child
62 has a 'name' property and either 'mark' containing the
Robert P. J. Day57247d92016-08-31 12:49:13 -040063 mark time in microseconds, or 'accum' containing the
Simon Glassee2b2432015-03-02 17:04:37 -070064 accumulated time for that bootstage id in microseconds.
65 For example:
66
67 bootstage {
68 154 {
69 name = "board_init_f";
70 mark = <3575678>;
71 };
72 170 {
73 name = "lcd";
74 accum = <33482>;
75 };
76 };
77
78 Code in the Linux kernel can find this in /proc/devicetree.
79
80config BOOTSTAGE_STASH
81 bool "Stash the boot timing information in memory before booting OS"
82 depends on BOOTSTAGE
83 help
84 Some OSes do not support device tree. Bootstage can instead write
85 the boot timing information in a binary format at a given address.
86 This happens through a call to bootstage_stash(), typically in
87 the CPU's cleanup_before_linux() function. You can use the
88 'bootstage stash' and 'bootstage unstash' commands to do this on
89 the command line.
90
91config BOOTSTAGE_STASH_ADDR
92 hex "Address to stash boot timing information"
93 default 0
94 help
95 Provide an address which will not be overwritten by the OS when it
96 starts, so that it can read this information when ready.
97
98config BOOTSTAGE_STASH_SIZE
99 hex "Size of boot timing stash region"
Nobuhiro Iwamatsufad6a2b2017-04-02 07:48:12 +0900100 default 0x1000
Simon Glassee2b2432015-03-02 17:04:37 -0700101 help
102 This should be large enough to hold the bootstage stash. A value of
103 4096 (4KiB) is normally plenty.
104
105endmenu
106
Peng Fand14739f2016-06-17 17:39:50 +0800107menu "Boot media"
108
109config NOR_BOOT
110 bool "Support for booting from NOR flash"
111 depends on NOR
112 help
113 Enabling this will make a U-Boot binary that is capable of being
114 booted via NOR. In this case we will enable certain pinmux early
115 as the ROM only partially sets up pinmux. We also default to using
116 NOR for environment.
117
Peng Fanfaaef732016-06-17 17:39:51 +0800118config NAND_BOOT
119 bool "Support for booting from NAND flash"
120 default n
121 help
122 Enabling this will make a U-Boot binary that is capable of being
123 booted via NAND flash. This is not a must, some SoCs need this,
Robert P. J. Day57247d92016-08-31 12:49:13 -0400124 some not.
Peng Fanfaaef732016-06-17 17:39:51 +0800125
126config ONENAND_BOOT
127 bool "Support for booting from ONENAND"
128 default n
129 help
130 Enabling this will make a U-Boot binary that is capable of being
131 booted via ONENAND. This is not a must, some SoCs need this,
Robert P. J. Day57247d92016-08-31 12:49:13 -0400132 some not.
Peng Fanfaaef732016-06-17 17:39:51 +0800133
134config QSPI_BOOT
135 bool "Support for booting from QSPI flash"
136 default n
137 help
138 Enabling this will make a U-Boot binary that is capable of being
139 booted via QSPI flash. This is not a must, some SoCs need this,
Robert P. J. Day57247d92016-08-31 12:49:13 -0400140 some not.
Peng Fanfaaef732016-06-17 17:39:51 +0800141
142config SATA_BOOT
143 bool "Support for booting from SATA"
144 default n
145 help
146 Enabling this will make a U-Boot binary that is capable of being
147 booted via SATA. This is not a must, some SoCs need this,
Robert P. J. Day57247d92016-08-31 12:49:13 -0400148 some not.
Peng Fanfaaef732016-06-17 17:39:51 +0800149
150config SD_BOOT
151 bool "Support for booting from SD/EMMC"
152 default n
153 help
154 Enabling this will make a U-Boot binary that is capable of being
155 booted via SD/EMMC. This is not a must, some SoCs need this,
Robert P. J. Day57247d92016-08-31 12:49:13 -0400156 some not.
Peng Fanfaaef732016-06-17 17:39:51 +0800157
158config SPI_BOOT
159 bool "Support for booting from SPI flash"
160 default n
161 help
162 Enabling this will make a U-Boot binary that is capable of being
163 booted via SPI flash. This is not a must, some SoCs need this,
Robert P. J. Day57247d92016-08-31 12:49:13 -0400164 some not.
Peng Fanfaaef732016-06-17 17:39:51 +0800165
Peng Fand14739f2016-06-17 17:39:50 +0800166endmenu
167
Maxime Ripardfb1c43c2017-02-27 18:22:03 +0100168menu "Environment"
169
170if ARCH_SUNXI
171
172choice
173 prompt "Environment Device"
174 default ENV_IS_IN_MMC if ARCH_SUNXI
175
176config ENV_IS_IN_MMC
177 bool "Environment in an MMC device"
178 depends on CMD_MMC
179 help
180 Define this if you have an MMC device which you want to use for the
181 environment.
182
183config ENV_IS_IN_NAND
184 bool "Environment in a NAND device"
185 depends on CMD_NAND
186 help
187 Define this if you have a NAND device which you want to use for the
188 environment.
189
190config ENV_IS_IN_UBI
191 bool "Environment in a UBI volume"
192 depends on CMD_UBI
193 depends on CMD_MTDPARTS
194 help
195 Define this if you have a UBI volume which you want to use for the
196 environment.
197
198config ENV_IS_NOWHERE
199 bool "Environment is not stored"
200 help
201 Define this if you don't want to or can't have an environment stored
202 on a storage medium
203
204endchoice
205
206config ENV_OFFSET
207 hex "Environment Offset"
208 depends on !ENV_IS_IN_UBI
209 depends on !ENV_IS_NOWHERE
210 default 0x88000 if ARCH_SUNXI
211 help
212 Offset from the start of the device (or partition)
213
214config ENV_SIZE
215 hex "Environment Size"
216 depends on !ENV_IS_NOWHERE
217 default 0x20000 if ARCH_SUNXI
218 help
219 Size of the environment storage area
220
221config ENV_UBI_PART
222 string "UBI partition name"
223 depends on ENV_IS_IN_UBI
224 help
225 MTD partition containing the UBI device
226
227config ENV_UBI_VOLUME
228 string "UBI volume name"
229 depends on ENV_IS_IN_UBI
230 help
231 Name of the volume that you want to store the environment in.
232
233endif
234
235endmenu
236
Heiko Schocherbb597c02016-06-07 08:31:14 +0200237config BOOTDELAY
238 int "delay in seconds before automatically booting"
Tom Rini5e4e8742016-06-13 09:00:30 -0400239 default 2
Masahiro Yamada41598c82016-06-20 17:33:39 +0900240 depends on AUTOBOOT
Heiko Schocherbb597c02016-06-07 08:31:14 +0200241 help
242 Delay before automatically running bootcmd;
Masahiro Yamada2fbb8462016-06-27 16:23:01 +0900243 set to 0 to autoboot with no delay, but you can stop it by key input.
Heiko Schocherbb597c02016-06-07 08:31:14 +0200244 set to -1 to disable autoboot.
245 set to -2 to autoboot with no delay and not check for abort
Heiko Schocherbb597c02016-06-07 08:31:14 +0200246
Masahiro Yamada90609702016-06-27 16:23:00 +0900247 See doc/README.autoboot for details.
248
Simon Glass98af8792016-10-17 20:12:35 -0600249menu "Console"
250
Tom Rini4880b022016-11-29 09:14:56 -0500251config MENU
252 bool
253 help
254 This is the library functionality to provide a text-based menu of
255 choices for the user to make choices with.
256
Simon Glass9854a872015-11-08 23:47:48 -0700257config CONSOLE_RECORD
258 bool "Console recording"
259 help
260 This provides a way to record console output (and provide console
Robert P. J. Day57247d92016-08-31 12:49:13 -0400261 input) through circular buffers. This is mostly useful for testing.
Simon Glass9854a872015-11-08 23:47:48 -0700262 Console output is recorded even when the console is silent.
263 To enable console recording, call console_record_reset_enable()
264 from your code.
265
266config CONSOLE_RECORD_OUT_SIZE
267 hex "Output buffer size"
268 depends on CONSOLE_RECORD
269 default 0x400 if CONSOLE_RECORD
270 help
271 Set the size of the console output buffer. When this fills up, no
272 more data will be recorded until some is removed. The buffer is
273 allocated immediately after the malloc() region is ready.
274
275config CONSOLE_RECORD_IN_SIZE
276 hex "Input buffer size"
277 depends on CONSOLE_RECORD
278 default 0x100 if CONSOLE_RECORD
279 help
280 Set the size of the console input buffer. When this contains data,
281 tstc() and getc() will use this in preference to real device input.
282 The buffer is allocated immediately after the malloc() region is
283 ready.
Siva Durga Prasad Paladugu4d255072016-07-19 10:42:22 +0530284
Siva Durga Prasad Paladugua4d88922016-07-29 15:31:47 +0530285config IDENT_STRING
286 string "Board specific string to be added to uboot version string"
287 help
288 This options adds the board specific name to u-boot version.
289
Simon Glass98af8792016-10-17 20:12:35 -0600290config SILENT_CONSOLE
291 bool "Support a silent console"
292 help
293 This option allows the console to be silenced, meaning that no
294 output will appear on the console devices. This is controlled by
295 setting the environment vaariable 'silent' to a non-empty value.
296 Note this also silences the console when booting Linux.
297
298 When the console is set up, the variable is checked, and the
299 GD_FLG_SILENT flag is set. Changing the environment variable later
300 will update the flag.
301
302config SILENT_U_BOOT_ONLY
303 bool "Only silence the U-Boot console"
304 depends on SILENT_CONSOLE
305 help
306 Normally when the U-Boot console is silenced, Linux's console is
307 also silenced (assuming the board boots into Linux). This option
308 allows the linux console to operate normally, even if U-Boot's
309 is silenced.
310
311config SILENT_CONSOLE_UPDATE_ON_SET
312 bool "Changes to the 'silent' environment variable update immediately"
313 depends on SILENT_CONSOLE
314 default y if SILENT_CONSOLE
315 help
316 When the 'silent' environment variable is changed, update the
317 console silence flag immediately. This allows 'setenv' to be used
318 to silence or un-silence the console.
319
320 The effect is that any change to the variable will affect the
321 GD_FLG_SILENT flag.
322
323config SILENT_CONSOLE_UPDATE_ON_RELOC
324 bool "Allow flags to take effect on relocation"
325 depends on SILENT_CONSOLE
326 help
327 In some cases the environment is not available until relocation
328 (e.g. NAND). This option makes the value of the 'silent'
329 environment variable take effect at relocation.
330
Simon Glass8f925582016-10-17 20:12:36 -0600331config PRE_CONSOLE_BUFFER
332 bool "Buffer characters before the console is available"
333 help
334 Prior to the console being initialised (i.e. serial UART
335 initialised etc) all console output is silently discarded.
336 Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to
337 buffer any console messages prior to the console being
338 initialised to a buffer. The buffer is a circular buffer, so
339 if it overflows, earlier output is discarded.
340
341 Note that this is not currently supported in SPL. It would be
342 useful to be able to share the pre-console buffer with SPL.
343
344config PRE_CON_BUF_SZ
345 int "Sets the size of the pre-console buffer"
346 depends on PRE_CONSOLE_BUFFER
347 default 4096
348 help
349 The size of the pre-console buffer affects how much console output
350 can be held before it overflows and starts discarding earlier
351 output. Normally there is very little output at this early stage,
352 unless debugging is enabled, so allow enough for ~10 lines of
353 text.
354
355 This is a useful feature if you are using a video console and
356 want to see the full boot output on the console. Without this
357 option only the post-relocation output will be displayed.
358
359config PRE_CON_BUF_ADDR
360 hex "Address of the pre-console buffer"
361 depends on PRE_CONSOLE_BUFFER
362 default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I
363 default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I
364 help
365 This sets the start address of the pre-console buffer. This must
366 be in available memory and is accessed before relocation and
367 possibly before DRAM is set up. Therefore choose an address
368 carefully.
369
370 We should consider removing this option and allocating the memory
371 in board_init_f_init_reserve() instead.
372
Simon Glassef26d602016-10-17 20:12:37 -0600373config CONSOLE_MUX
374 bool "Enable console multiplexing"
375 default y if DM_VIDEO || VIDEO || LCD
376 help
377 This allows multiple devices to be used for each console 'file'.
378 For example, stdout can be set to go to serial and video.
379 Similarly, stdin can be set to come from serial and keyboard.
380 Input can be provided from either source. Console multiplexing
381 adds a small amount of size to U-Boot. Changes to the environment
382 variables stdout, stdin and stderr will take effect immediately.
383
384config SYS_CONSOLE_IS_IN_ENV
385 bool "Select console devices from the environment"
386 default y if CONSOLE_MUX
387 help
388 This allows multiple input/output devices to be set at boot time.
389 For example, if stdout is set to "serial,video" then output will
390 be sent to both the serial and video devices on boot. The
391 environment variables can be updated after boot to change the
392 input/output devices.
393
Simon Glass84f2a5d2016-10-17 20:12:59 -0600394config SYS_CONSOLE_OVERWRITE_ROUTINE
395 bool "Allow board control over console overwriting"
396 help
397 If this is enabled, and the board-specific function
398 overwrite_console() returns 1, the stdin, stderr and stdout are
399 switched to the serial port, else the settings in the environment
400 are used. If this is not enabled, the console will not be switched
401 to serial.
402
Simon Glass3505bc52016-10-17 20:12:58 -0600403config SYS_CONSOLE_ENV_OVERWRITE
404 bool "Update environment variables during console init"
405 help
406 The console environment variables (stdout, stdin, stderr) can be
407 used to determine the correct console devices on start-up. This
408 option writes the console devices to these variables on console
409 start-up (after relocation). This causes the environment to be
410 updated to match the console devices actually chosen.
411
Simon Glassf3f3eff2016-10-17 20:13:00 -0600412config SYS_CONSOLE_INFO_QUIET
413 bool "Don't display the console devices on boot"
414 help
415 Normally U-Boot displays the current settings for stdout, stdin
416 and stderr on boot when the post-relocation console is set up.
417 Enable this option to supress this output. It can be obtained by
418 calling stdio_print_current_devices() from board code.
419
Simon Glass869588d2016-10-17 20:13:02 -0600420config SYS_STDIO_DEREGISTER
421 bool "Allow deregistering stdio devices"
422 default y if USB_KEYBOARD
423 help
424 Generally there is no need to deregister stdio devices since they
425 are never deactivated. But if a stdio device is used which can be
426 removed (for example a USB keyboard) then this option can be
427 enabled to ensure this is handled correctly.
428
Simon Glass98af8792016-10-17 20:12:35 -0600429endmenu
430
Jagan Tekid259c002016-10-08 18:00:10 +0530431config DEFAULT_FDT_FILE
432 string "Default fdt file"
433 help
434 This option is used to set the default fdt file to boot OS.
435
Heiko Schocher9dd1d0a2016-09-09 08:12:49 +0200436config VERSION_VARIABLE
437 bool "add U-Boot environment variable vers"
438 default n
439 help
440 If this variable is defined, an environment variable
441 named "ver" is created by U-Boot showing the U-Boot
442 version as printed by the "version" command.
443 Any change to this variable will be reverted at the
444 next reset.
Simon Glassc2ae7d82016-09-12 23:18:22 -0600445
Jagan Tekide70fef2017-01-21 11:48:32 +0100446config BOARD_LATE_INIT
Tom Rinie5ec4812017-01-22 19:43:11 -0500447 bool
Jagan Tekide70fef2017-01-21 11:48:32 +0100448 help
449 Sometimes board require some initialization code that might
450 require once the actual init done, example saving board specific env,
451 boot-modes etc. which eventually done at late.
452
453 So this config enable the late init code with the help of board_late_init
454 function which should defined on respective boards.
455
Lokesh Vutla19a97472016-10-08 14:41:44 -0400456config DISPLAY_CPUINFO
457 bool "Display information about the CPU during start up"
Tom Riniea3310e2017-03-14 11:08:10 -0400458 default y if ARM || NIOS2 || X86 || XTENSA || MPC5xxx
Lokesh Vutla19a97472016-10-08 14:41:44 -0400459 help
460 Display information about the CPU that U-Boot is running on
461 when U-Boot starts up. The function print_cpuinfo() is called
462 to do this.
463
Lokesh Vutla84351792016-10-11 21:33:46 -0400464config DISPLAY_BOARDINFO
465 bool "Display information about the board during start up"
Tom Rini936478e2017-03-14 11:08:11 -0400466 default y if ARM || M68K || MIPS || PPC || XTENSA
Lokesh Vutla84351792016-10-11 21:33:46 -0400467 help
468 Display information about the board that U-Boot is running on
469 when U-Boot starts up. The board function checkboard() is called
470 to do this.
471
Simon Glassa4211922017-01-23 13:31:19 -0700472menu "Start-up hooks"
473
474config ARCH_EARLY_INIT_R
475 bool "Call arch-specific init soon after relocation"
476 default y if X86
477 help
478 With this option U-Boot will call arch_early_init_r() soon after
479 relocation. Driver model is running by this point, and the cache
480 is on. Note that board_early_init_r() is called first, if
481 enabled. This can be used to set up architecture-specific devices.
482
Simon Glass45856012017-01-23 13:31:21 -0700483config ARCH_MISC_INIT
484 bool "Call arch-specific init after relocation, when console is ready"
485 help
486 With this option U-Boot will call arch_misc_init() after
487 relocation to allow miscellaneous arch-dependent initialisation
488 to be performed. This function should be defined by the board
489 and will be called after the console is set up, after relocaiton.
490
Simon Glassa5d67542017-01-23 13:31:20 -0700491config BOARD_EARLY_INIT_F
492 bool "Call board-specific init before relocation"
493 default y if X86
494 help
495 Some boards need to perform initialisation as soon as possible
496 after boot. With this option, U-Boot calls board_early_init_f()
497 after driver model is ready in the pre-relocation init sequence.
498 Note that the normal serial console is not yet set up, but the
499 debug UART will be available if enabled.
500
Simon Glassa4211922017-01-23 13:31:19 -0700501endmenu
502
Simon Glassd70f9192017-05-17 09:05:34 -0600503menu "Security support"
504
505config HASH
506 bool # "Support hashing API (SHA1, SHA256, etc.)"
507 help
508 This provides a way to hash data in memory using various supported
509 algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
510 and the algorithms it supports are defined in common/hash.c. See
511 also CMD_HASH for command-line access.
512
513endmenu
514
Simon Glassc2ae7d82016-09-12 23:18:22 -0600515source "common/spl/Kconfig"