0beeb0eff0bbab8994c51f18fd6d5a8c1fc35d30
[oweals/u-boot.git] / common / Kconfig
1 menu "Boot timing"
2
3 config 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
12           add up all the accumulated time and report it.
13
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
16           as the ID.
17
18           Calls to show_boot_progress() will also result in log entries but
19           these will not have names.
20
21 config 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
40 config BOOTSTAGE_USER_COUNT
41         hex "Number of boot ID numbers available for user use"
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
49 config BOOTSTAGE_FDT
50         bool "Store boot timing information in the OS device tree"
51         depends on BOOTSTAGE
52         help
53           Stash the bootstage information in the FDT. A root 'bootstage'
54           node is created with each bootstage id as a child. Each child
55           has a 'name' property and either 'mark' containing the
56           mark time in microseconds, or 'accum' containing the
57           accumulated time for that bootstage id in microseconds.
58           For example:
59
60                 bootstage {
61                         154 {
62                                 name = "board_init_f";
63                                 mark = <3575678>;
64                         };
65                         170 {
66                                 name = "lcd";
67                                 accum = <33482>;
68                         };
69                 };
70
71           Code in the Linux kernel can find this in /proc/devicetree.
72
73 config BOOTSTAGE_STASH
74         bool "Stash the boot timing information in memory before booting OS"
75         depends on BOOTSTAGE
76         help
77           Some OSes do not support device tree. Bootstage can instead write
78           the boot timing information in a binary format at a given address.
79           This happens through a call to bootstage_stash(), typically in
80           the CPU's cleanup_before_linux() function. You can use the
81           'bootstage stash' and 'bootstage unstash' commands to do this on
82           the command line.
83
84 config BOOTSTAGE_STASH_ADDR
85         hex "Address to stash boot timing information"
86         default 0
87         help
88           Provide an address which will not be overwritten by the OS when it
89           starts, so that it can read this information when ready.
90
91 config BOOTSTAGE_STASH_SIZE
92         hex "Size of boot timing stash region"
93         default 4096
94         help
95           This should be large enough to hold the bootstage stash. A value of
96           4096 (4KiB) is normally plenty.
97
98 endmenu
99
100 menu "Boot media"
101
102 config NOR_BOOT
103         bool "Support for booting from NOR flash"
104         depends on NOR
105         help
106           Enabling this will make a U-Boot binary that is capable of being
107           booted via NOR.  In this case we will enable certain pinmux early
108           as the ROM only partially sets up pinmux.  We also default to using
109           NOR for environment.
110
111 config NAND_BOOT
112         bool "Support for booting from NAND flash"
113         default n
114         help
115           Enabling this will make a U-Boot binary that is capable of being
116           booted via NAND flash. This is not a must, some SoCs need this,
117           some not.
118
119 config ONENAND_BOOT
120         bool "Support for booting from ONENAND"
121         default n
122         help
123           Enabling this will make a U-Boot binary that is capable of being
124           booted via ONENAND. This is not a must, some SoCs need this,
125           some not.
126
127 config QSPI_BOOT
128         bool "Support for booting from QSPI flash"
129         default n
130         help
131           Enabling this will make a U-Boot binary that is capable of being
132           booted via QSPI flash. This is not a must, some SoCs need this,
133           some not.
134
135 config SATA_BOOT
136         bool "Support for booting from SATA"
137         default n
138         help
139           Enabling this will make a U-Boot binary that is capable of being
140           booted via SATA. This is not a must, some SoCs need this,
141           some not.
142
143 config SD_BOOT
144         bool "Support for booting from SD/EMMC"
145         default n
146         help
147           Enabling this will make a U-Boot binary that is capable of being
148           booted via SD/EMMC. This is not a must, some SoCs need this,
149           some not.
150
151 config SPI_BOOT
152         bool "Support for booting from SPI flash"
153         default n
154         help
155           Enabling this will make a U-Boot binary that is capable of being
156           booted via SPI flash. This is not a must, some SoCs need this,
157           some not.
158
159 endmenu
160
161 config BOOTDELAY
162         int "delay in seconds before automatically booting"
163         default 2
164         depends on AUTOBOOT
165         help
166           Delay before automatically running bootcmd;
167           set to 0 to autoboot with no delay, but you can stop it by key input.
168           set to -1 to disable autoboot.
169           set to -2 to autoboot with no delay and not check for abort
170
171           See doc/README.autoboot for details.
172
173 menu "Console"
174
175 config MENU
176         bool
177         help
178           This is the library functionality to provide a text-based menu of
179           choices for the user to make choices with.
180
181 config CONSOLE_RECORD
182         bool "Console recording"
183         help
184           This provides a way to record console output (and provide console
185           input) through circular buffers. This is mostly useful for testing.
186           Console output is recorded even when the console is silent.
187           To enable console recording, call console_record_reset_enable()
188           from your code.
189
190 config CONSOLE_RECORD_OUT_SIZE
191         hex "Output buffer size"
192         depends on CONSOLE_RECORD
193         default 0x400 if CONSOLE_RECORD
194         help
195           Set the size of the console output buffer. When this fills up, no
196           more data will be recorded until some is removed. The buffer is
197           allocated immediately after the malloc() region is ready.
198
199 config CONSOLE_RECORD_IN_SIZE
200         hex "Input buffer size"
201         depends on CONSOLE_RECORD
202         default 0x100 if CONSOLE_RECORD
203         help
204           Set the size of the console input buffer. When this contains data,
205           tstc() and getc() will use this in preference to real device input.
206           The buffer is allocated immediately after the malloc() region is
207           ready.
208
209 config IDENT_STRING
210         string "Board specific string to be added to uboot version string"
211         help
212           This options adds the board specific name to u-boot version.
213
214 config SILENT_CONSOLE
215         bool "Support a silent console"
216         help
217           This option allows the console to be silenced, meaning that no
218           output will appear on the console devices. This is controlled by
219           setting the environment vaariable 'silent' to a non-empty value.
220           Note this also silences the console when booting Linux.
221
222           When the console is set up, the variable is checked, and the
223           GD_FLG_SILENT flag is set. Changing the environment variable later
224           will update the flag.
225
226 config SILENT_U_BOOT_ONLY
227         bool "Only silence the U-Boot console"
228         depends on SILENT_CONSOLE
229         help
230           Normally when the U-Boot console is silenced, Linux's console is
231           also silenced (assuming the board boots into Linux). This option
232           allows the linux console to operate normally, even if U-Boot's
233           is silenced.
234
235 config SILENT_CONSOLE_UPDATE_ON_SET
236         bool "Changes to the 'silent' environment variable update immediately"
237         depends on SILENT_CONSOLE
238         default y if SILENT_CONSOLE
239         help
240           When the 'silent' environment variable is changed, update the
241           console silence flag immediately. This allows 'setenv' to be used
242           to silence or un-silence the console.
243
244           The effect is that any change to the variable will affect the
245           GD_FLG_SILENT flag.
246
247 config SILENT_CONSOLE_UPDATE_ON_RELOC
248         bool "Allow flags to take effect on relocation"
249         depends on SILENT_CONSOLE
250         help
251           In some cases the environment is not available until relocation
252           (e.g. NAND). This option makes the value of the 'silent'
253           environment variable take effect at relocation.
254
255 config PRE_CONSOLE_BUFFER
256         bool "Buffer characters before the console is available"
257         help
258           Prior to the console being initialised (i.e. serial UART
259           initialised etc) all console output is silently discarded.
260           Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to
261           buffer any console messages prior to the console being
262           initialised to a buffer. The buffer is a circular buffer, so
263           if it overflows, earlier output is discarded.
264
265           Note that this is not currently supported in SPL. It would be
266           useful to be able to share the pre-console buffer with SPL.
267
268 config PRE_CON_BUF_SZ
269         int "Sets the size of the pre-console buffer"
270         depends on PRE_CONSOLE_BUFFER
271         default 4096
272         help
273           The size of the pre-console buffer affects how much console output
274           can be held before it overflows and starts discarding earlier
275           output. Normally there is very little output at this early stage,
276           unless debugging is enabled, so allow enough for ~10 lines of
277           text.
278
279           This is a useful feature if you are using a video console and
280           want to see the full boot output on the console. Without this
281           option only the post-relocation output will be displayed.
282
283 config PRE_CON_BUF_ADDR
284         hex "Address of the pre-console buffer"
285         depends on PRE_CONSOLE_BUFFER
286         default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I
287         default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I
288         help
289           This sets the start address of the pre-console buffer. This must
290           be in available memory and is accessed before relocation and
291           possibly before DRAM is set up. Therefore choose an address
292           carefully.
293
294           We should consider removing this option and allocating the memory
295           in board_init_f_init_reserve() instead.
296
297 config CONSOLE_MUX
298         bool "Enable console multiplexing"
299         default y if DM_VIDEO || VIDEO || LCD
300         help
301           This allows multiple devices to be used for each console 'file'.
302           For example, stdout can be set to go to serial and video.
303           Similarly, stdin can be set to come from serial and keyboard.
304           Input can be provided from either source. Console multiplexing
305           adds a small amount of size to U-Boot.  Changes to the environment
306           variables stdout, stdin and stderr will take effect immediately.
307
308 config SYS_CONSOLE_IS_IN_ENV
309         bool "Select console devices from the environment"
310         default y if CONSOLE_MUX
311         help
312           This allows multiple input/output devices to be set at boot time.
313           For example, if stdout is set to "serial,video" then output will
314           be sent to both the serial and video devices on boot. The
315           environment variables can be updated after boot to change the
316           input/output devices.
317
318 config SYS_CONSOLE_OVERWRITE_ROUTINE
319         bool "Allow board control over console overwriting"
320         help
321           If this is enabled, and the board-specific function
322           overwrite_console() returns 1, the stdin, stderr and stdout are
323           switched to the serial port, else the settings in the environment
324           are used. If this is not enabled, the console will not be switched
325           to serial.
326
327 config SYS_CONSOLE_ENV_OVERWRITE
328         bool "Update environment variables during console init"
329         help
330           The console environment variables (stdout, stdin, stderr) can be
331           used to determine the correct console devices on start-up. This
332           option writes the console devices to these variables on console
333           start-up (after relocation). This causes the environment to be
334           updated to match the console devices actually chosen.
335
336 config SYS_CONSOLE_INFO_QUIET
337         bool "Don't display the console devices on boot"
338         help
339           Normally U-Boot displays the current settings for stdout, stdin
340           and stderr on boot when the post-relocation console is set up.
341           Enable this option to supress this output. It can be obtained by
342           calling stdio_print_current_devices() from board code.
343
344 config SYS_STDIO_DEREGISTER
345         bool "Allow deregistering stdio devices"
346         default y if USB_KEYBOARD
347         help
348           Generally there is no need to deregister stdio devices since they
349           are never deactivated. But if a stdio device is used which can be
350           removed (for example a USB keyboard) then this option can be
351           enabled to ensure this is handled correctly.
352
353 endmenu
354
355 config DEFAULT_FDT_FILE
356         string "Default fdt file"
357         help
358           This option is used to set the default fdt file to boot OS.
359
360 config VERSION_VARIABLE
361         bool "add U-Boot environment variable vers"
362         default n
363         help
364           If this variable is defined, an environment variable
365           named "ver" is created by U-Boot showing the U-Boot
366           version as printed by the "version" command.
367           Any change to this variable will be reverted at the
368           next reset.
369
370 config BOARD_LATE_INIT
371         bool
372         help
373           Sometimes board require some initialization code that might
374           require once the actual init done, example saving board specific env,
375           boot-modes etc. which eventually done at late.
376
377           So this config enable the late init code with the help of board_late_init
378           function which should defined on respective boards.
379
380 config DISPLAY_CPUINFO
381         bool "Display information about the CPU during start up"
382         default y if ARM || NIOS2 || X86 || XTENSA || MPC5xxx
383         help
384           Display information about the CPU that U-Boot is running on
385           when U-Boot starts up. The function print_cpuinfo() is called
386           to do this.
387
388 config DISPLAY_BOARDINFO
389         bool "Display information about the board during start up"
390         default y if ARM || M68K || MIPS || PPC || SPARC || XTENSA
391         help
392           Display information about the board that U-Boot is running on
393           when U-Boot starts up. The board function checkboard() is called
394           to do this.
395
396 menu "Start-up hooks"
397
398 config ARCH_EARLY_INIT_R
399         bool "Call arch-specific init soon after relocation"
400         default y if X86
401         help
402           With this option U-Boot will call arch_early_init_r() soon after
403           relocation. Driver model is running by this point, and the cache
404           is on. Note that board_early_init_r() is called first, if
405           enabled. This can be used to set up architecture-specific devices.
406
407 config ARCH_MISC_INIT
408         bool "Call arch-specific init after relocation, when console is ready"
409         help
410           With this option U-Boot will call arch_misc_init() after
411           relocation to allow miscellaneous arch-dependent initialisation
412           to be performed. This function should be defined by the board
413           and will be called after the console is set up, after relocaiton.
414
415 config BOARD_EARLY_INIT_F
416         bool "Call board-specific init before relocation"
417         default y if X86
418         help
419           Some boards need to perform initialisation as soon as possible
420           after boot. With this option, U-Boot calls board_early_init_f()
421           after driver model is ready in the pre-relocation init sequence.
422           Note that the normal serial console is not yet set up, but the
423           debug UART will be available if enabled.
424
425 endmenu
426
427 source "common/spl/Kconfig"