4 bool "Boot timing and reporting"
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
12 add up all the accumulated time and report it.
14 Normally, IDs are defined in bootstage.h but a small number of
15 additional 'user' IDs can be used by passing BOOTSTAGE_ID_ALLOC
18 Calls to show_boot_progress() will also result in log entries but
19 these will not have names.
21 config BOOTSTAGE_REPORT
22 bool "Display a detailed boot timing report before booting the OS"
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:
29 Timer summary in microseconds:
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
40 config BOOTSTAGE_USER_COUNT
41 int "Number of boot ID numbers available for user use"
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.
49 config BOOTSTAGE_RECORD_COUNT
50 int "Number of boot stage records to store"
53 This is the size of the bootstage record list and is the maximum
54 number of bootstage records that can be recorded.
57 bool "Store boot timing information in the OS device tree"
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
63 mark time in microseconds, or 'accum' containing the
64 accumulated time for that bootstage id in microseconds.
69 name = "board_init_f";
78 Code in the Linux kernel can find this in /proc/devicetree.
80 config BOOTSTAGE_STASH
81 bool "Stash the boot timing information in memory before booting OS"
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
91 config BOOTSTAGE_STASH_ADDR
92 hex "Address to stash boot timing information"
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.
98 config BOOTSTAGE_STASH_SIZE
99 hex "Size of boot timing stash region"
102 This should be large enough to hold the bootstage stash. A value of
103 4096 (4KiB) is normally plenty.
110 bool "Support for booting from NOR flash"
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
119 bool "Support for booting from NAND flash"
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,
127 bool "Support for booting from ONENAND"
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,
135 bool "Support for booting from QSPI flash"
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,
143 bool "Support for booting from SATA"
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,
151 bool "Support for booting from SD/EMMC"
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,
159 bool "Support for booting from SPI flash"
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,
173 prompt "Environment Device"
174 default ENV_IS_IN_MMC if ARCH_SUNXI
177 bool "Environment in an MMC device"
180 Define this if you have an MMC device which you want to use for the
183 config ENV_IS_IN_NAND
184 bool "Environment in a NAND device"
187 Define this if you have a NAND device which you want to use for the
191 bool "Environment in a UBI volume"
193 depends on CMD_MTDPARTS
195 Define this if you have a UBI volume which you want to use for the
198 config ENV_IS_NOWHERE
199 bool "Environment is not stored"
201 Define this if you don't want to or can't have an environment stored
207 hex "Environment Offset"
208 depends on !ENV_IS_IN_UBI
209 depends on !ENV_IS_NOWHERE
210 default 0x88000 if ARCH_SUNXI
212 Offset from the start of the device (or partition)
215 hex "Environment Size"
216 depends on !ENV_IS_NOWHERE
217 default 0x20000 if ARCH_SUNXI
219 Size of the environment storage area
222 string "UBI partition name"
223 depends on ENV_IS_IN_UBI
225 MTD partition containing the UBI device
227 config ENV_UBI_VOLUME
228 string "UBI volume name"
229 depends on ENV_IS_IN_UBI
231 Name of the volume that you want to store the environment in.
238 int "delay in seconds before automatically booting"
242 Delay before automatically running bootcmd;
243 set to 0 to autoboot with no delay, but you can stop it by key input.
244 set to -1 to disable autoboot.
245 set to -2 to autoboot with no delay and not check for abort
247 See doc/README.autoboot for details.
254 This is the library functionality to provide a text-based menu of
255 choices for the user to make choices with.
257 config CONSOLE_RECORD
258 bool "Console recording"
260 This provides a way to record console output (and provide console
261 input) through circular buffers. This is mostly useful for testing.
262 Console output is recorded even when the console is silent.
263 To enable console recording, call console_record_reset_enable()
266 config CONSOLE_RECORD_OUT_SIZE
267 hex "Output buffer size"
268 depends on CONSOLE_RECORD
269 default 0x400 if CONSOLE_RECORD
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.
275 config CONSOLE_RECORD_IN_SIZE
276 hex "Input buffer size"
277 depends on CONSOLE_RECORD
278 default 0x100 if CONSOLE_RECORD
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
286 string "Board specific string to be added to uboot version string"
288 This options adds the board specific name to u-boot version.
290 config SILENT_CONSOLE
291 bool "Support a silent console"
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.
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.
302 config SILENT_U_BOOT_ONLY
303 bool "Only silence the U-Boot console"
304 depends on SILENT_CONSOLE
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
311 config 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
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.
320 The effect is that any change to the variable will affect the
323 config SILENT_CONSOLE_UPDATE_ON_RELOC
324 bool "Allow flags to take effect on relocation"
325 depends on SILENT_CONSOLE
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.
331 config PRE_CONSOLE_BUFFER
332 bool "Buffer characters before the console is available"
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.
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.
344 config PRE_CON_BUF_SZ
345 int "Sets the size of the pre-console buffer"
346 depends on PRE_CONSOLE_BUFFER
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
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.
359 config 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
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
370 We should consider removing this option and allocating the memory
371 in board_init_f_init_reserve() instead.
374 bool "Enable console multiplexing"
375 default y if DM_VIDEO || VIDEO || LCD
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.
384 config SYS_CONSOLE_IS_IN_ENV
385 bool "Select console devices from the environment"
386 default y if CONSOLE_MUX
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.
394 config SYS_CONSOLE_OVERWRITE_ROUTINE
395 bool "Allow board control over console overwriting"
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
403 config SYS_CONSOLE_ENV_OVERWRITE
404 bool "Update environment variables during console init"
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.
412 config SYS_CONSOLE_INFO_QUIET
413 bool "Don't display the console devices on boot"
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.
420 config SYS_STDIO_DEREGISTER
421 bool "Allow deregistering stdio devices"
422 default y if USB_KEYBOARD
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.
431 config DEFAULT_FDT_FILE
432 string "Default fdt file"
434 This option is used to set the default fdt file to boot OS.
436 config VERSION_VARIABLE
437 bool "add U-Boot environment variable vers"
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
446 config BOARD_LATE_INIT
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.
453 So this config enable the late init code with the help of board_late_init
454 function which should defined on respective boards.
456 config DISPLAY_CPUINFO
457 bool "Display information about the CPU during start up"
458 default y if ARM || NIOS2 || X86 || XTENSA || MPC5xxx
460 Display information about the CPU that U-Boot is running on
461 when U-Boot starts up. The function print_cpuinfo() is called
464 config DISPLAY_BOARDINFO
465 bool "Display information about the board during start up"
466 default y if ARM || M68K || MIPS || PPC || XTENSA
468 Display information about the board that U-Boot is running on
469 when U-Boot starts up. The board function checkboard() is called
472 menu "Start-up hooks"
474 config ARCH_EARLY_INIT_R
475 bool "Call arch-specific init soon after relocation"
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.
483 config ARCH_MISC_INIT
484 bool "Call arch-specific init after relocation, when console is ready"
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.
491 config BOARD_EARLY_INIT_F
492 bool "Call board-specific init before relocation"
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.
503 menu "Security support"
506 bool # "Support hashing API (SHA1, SHA256, etc.)"
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.
515 source "common/spl/Kconfig"