]> git.ipfire.org Git - people/ms/u-boot.git/blame - common/Kconfig
bootstage: Adjust to use const * where possible
[people/ms/u-boot.git] / common / Kconfig
CommitLineData
ee2b2434
SG
1menu "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
57247d9c 12 add up all the accumulated time and report it.
ee2b2434
SG
13
14 Normally, IDs are defined in bootstage.h but a small number of
57247d9c 15 additional 'user' IDs can be used by passing BOOTSTAGE_ID_ALLOC
ee2b2434
SG
16 as the ID.
17
57247d9c 18 Calls to show_boot_progress() will also result in log entries but
ee2b2434
SG
19 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
5a0e275c 41 int "Number of boot ID numbers available for user use"
ee2b2434
SG
42 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
03ecac31
SG
49config 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
ee2b2434
SG
56config 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
57247d9c 63 mark time in microseconds, or 'accum' containing the
ee2b2434
SG
64 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"
fad6a2b7 100 default 0x1000
ee2b2434
SG
101 help
102 This should be large enough to hold the bootstage stash. A value of
103 4096 (4KiB) is normally plenty.
104
105endmenu
106
d14739ff
PF
107menu "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
faaef73f
PF
118config 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,
57247d9c 124 some not.
faaef73f
PF
125
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,
57247d9c 132 some not.
faaef73f
PF
133
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,
57247d9c 140 some not.
faaef73f
PF
141
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,
57247d9c 148 some not.
faaef73f
PF
149
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,
57247d9c 156 some not.
faaef73f
PF
157
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,
57247d9c 164 some not.
faaef73f 165
d14739ff
PF
166endmenu
167
fb1c43cc
MR
168menu "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
bb597c0e
HS
237config BOOTDELAY
238 int "delay in seconds before automatically booting"
5e4e8741 239 default 2
41598c82 240 depends on AUTOBOOT
bb597c0e
HS
241 help
242 Delay before automatically running bootcmd;
2fbb8462 243 set to 0 to autoboot with no delay, but you can stop it by key input.
bb597c0e
HS
244 set to -1 to disable autoboot.
245 set to -2 to autoboot with no delay and not check for abort
bb597c0e 246
9060970f
MY
247 See doc/README.autoboot for details.
248
98af8799
SG
249menu "Console"
250
4880b026
TR
251config 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
9854a874
SG
257config CONSOLE_RECORD
258 bool "Console recording"
259 help
260 This provides a way to record console output (and provide console
57247d9c 261 input) through circular buffers. This is mostly useful for testing.
9854a874
SG
262 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.
4d25507f 284
a4d88920
SDPP
285config 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
98af8799
SG
290config 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
8f925584
SG
331config 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
ef26d603
SG
373config 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
84f2a5d0
SG
394config 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
3505bc55
SG
403config 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
f3f3efff
SG
412config 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
869588de
SG
420config 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
98af8799
SG
429endmenu
430
d259c008
JT
431config 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
9dd1d0aa
HS
436config 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.
c2ae7d82 445
de70fefb 446config BOARD_LATE_INIT
e5ec4815 447 bool
de70fefb
JT
448 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
19a97475
LV
456config DISPLAY_CPUINFO
457 bool "Display information about the CPU during start up"
ea3310e8 458 default y if ARM || NIOS2 || X86 || XTENSA || MPC5xxx
19a97475
LV
459 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
84351792
LV
464config DISPLAY_BOARDINFO
465 bool "Display information about the board during start up"
936478e7 466 default y if ARM || M68K || MIPS || PPC || XTENSA
84351792
LV
467 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
a421192f
SG
472menu "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
4585601a
SG
483config 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
a5d67547
SG
491config 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
a421192f
SG
501endmenu
502
d70f919e
SG
503menu "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
c2ae7d82 515source "common/spl/Kconfig"