]>
Commit | Line | Data |
---|---|---|
98af8799 SG |
1 | menu "Console" |
2 | ||
4880b026 TR |
3 | config MENU |
4 | bool | |
5 | help | |
6 | This is the library functionality to provide a text-based menu of | |
7 | choices for the user to make choices with. | |
8 | ||
9854a874 SG |
9 | config CONSOLE_RECORD |
10 | bool "Console recording" | |
11 | help | |
12 | This provides a way to record console output (and provide console | |
57247d9c | 13 | input) through circular buffers. This is mostly useful for testing. |
9854a874 SG |
14 | Console output is recorded even when the console is silent. |
15 | To enable console recording, call console_record_reset_enable() | |
16 | from your code. | |
17 | ||
4e81920b OP |
18 | config CONSOLE_RECORD_INIT_F |
19 | bool "Enable console recording during pre-relocation init" | |
20 | depends on CONSOLE_RECORD && SYS_MALLOC_F | |
21 | default y | |
22 | help | |
23 | This option enables console recording during pre-relocation init. | |
24 | CONFIG_SYS_MALLOC_F must be enabled to use this feature. | |
25 | ||
9854a874 SG |
26 | config CONSOLE_RECORD_OUT_SIZE |
27 | hex "Output buffer size" | |
28 | depends on CONSOLE_RECORD | |
29 | default 0x400 if CONSOLE_RECORD | |
30 | help | |
31 | Set the size of the console output buffer. When this fills up, no | |
32 | more data will be recorded until some is removed. The buffer is | |
33 | allocated immediately after the malloc() region is ready. | |
34 | ||
8ce465e4 SG |
35 | config CONSOLE_RECORD_OUT_SIZE_F |
36 | hex "Output buffer size before relocation" | |
37 | depends on CONSOLE_RECORD | |
38 | default 0x400 if CONSOLE_RECORD | |
39 | help | |
40 | Set the size of the console output buffer before relocation. When | |
41 | this fills up, no more data will be recorded until some is removed. | |
42 | The buffer is allocated immediately after the early malloc() region is | |
43 | ready. | |
44 | ||
9854a874 SG |
45 | config CONSOLE_RECORD_IN_SIZE |
46 | hex "Input buffer size" | |
47 | depends on CONSOLE_RECORD | |
48 | default 0x100 if CONSOLE_RECORD | |
49 | help | |
50 | Set the size of the console input buffer. When this contains data, | |
51 | tstc() and getc() will use this in preference to real device input. | |
52 | The buffer is allocated immediately after the malloc() region is | |
53 | ready. | |
4d25507f | 54 | |
83f6f608 CG |
55 | config DISABLE_CONSOLE |
56 | bool "Add functionality to disable console completely" | |
57 | help | |
58 | Disable console (in & out). | |
59 | ||
a4d88920 SDPP |
60 | config IDENT_STRING |
61 | string "Board specific string to be added to uboot version string" | |
62 | help | |
63 | This options adds the board specific name to u-boot version. | |
64 | ||
b44b3026 MY |
65 | config LOGLEVEL |
66 | int "loglevel" | |
6a3e65de | 67 | default 4 |
2aa69c9b | 68 | range 0 10 |
b44b3026 MY |
69 | help |
70 | All Messages with a loglevel smaller than the console loglevel will | |
71 | be compiled in. The loglevels are defined as follows: | |
72 | ||
6fc7e938 SG |
73 | 0 - emergency |
74 | 1 - alert | |
75 | 2 - critical | |
76 | 3 - error | |
77 | 4 - warning | |
78 | 5 - note | |
79 | 6 - info | |
80 | 7 - debug | |
81 | 8 - debug content | |
82 | 9 - debug hardware I/O | |
b44b3026 MY |
83 | |
84 | config SPL_LOGLEVEL | |
85 | int | |
b340199f | 86 | depends on SPL |
b44b3026 MY |
87 | default LOGLEVEL |
88 | ||
4d8d3056 SG |
89 | config TPL_LOGLEVEL |
90 | int | |
8bea4bf7 | 91 | depends on TPL |
4d8d3056 SG |
92 | default LOGLEVEL |
93 | ||
747093dd SG |
94 | config VPL_LOGLEVEL |
95 | int "loglevel for VPL" | |
13ce351b | 96 | depends on VPL |
747093dd SG |
97 | default LOGLEVEL |
98 | help | |
99 | All Messages with a loglevel smaller than the console loglevel will | |
100 | be compiled in to VPL. See LOGLEVEL for a list of available log | |
101 | levels. Setting this to a value above 4 may increase the code size | |
102 | significantly. | |
103 | ||
98af8799 SG |
104 | config SILENT_CONSOLE |
105 | bool "Support a silent console" | |
106 | help | |
107 | This option allows the console to be silenced, meaning that no | |
108 | output will appear on the console devices. This is controlled by | |
f7597730 | 109 | setting the environment variable 'silent' to a non-empty value. |
98af8799 SG |
110 | Note this also silences the console when booting Linux. |
111 | ||
112 | When the console is set up, the variable is checked, and the | |
113 | GD_FLG_SILENT flag is set. Changing the environment variable later | |
114 | will update the flag. | |
115 | ||
116 | config SILENT_U_BOOT_ONLY | |
117 | bool "Only silence the U-Boot console" | |
118 | depends on SILENT_CONSOLE | |
119 | help | |
120 | Normally when the U-Boot console is silenced, Linux's console is | |
121 | also silenced (assuming the board boots into Linux). This option | |
122 | allows the linux console to operate normally, even if U-Boot's | |
123 | is silenced. | |
124 | ||
125 | config SILENT_CONSOLE_UPDATE_ON_SET | |
126 | bool "Changes to the 'silent' environment variable update immediately" | |
127 | depends on SILENT_CONSOLE | |
128 | default y if SILENT_CONSOLE | |
129 | help | |
130 | When the 'silent' environment variable is changed, update the | |
131 | console silence flag immediately. This allows 'setenv' to be used | |
132 | to silence or un-silence the console. | |
133 | ||
134 | The effect is that any change to the variable will affect the | |
135 | GD_FLG_SILENT flag. | |
136 | ||
137 | config SILENT_CONSOLE_UPDATE_ON_RELOC | |
138 | bool "Allow flags to take effect on relocation" | |
139 | depends on SILENT_CONSOLE | |
140 | help | |
141 | In some cases the environment is not available until relocation | |
142 | (e.g. NAND). This option makes the value of the 'silent' | |
143 | environment variable take effect at relocation. | |
144 | ||
8f925584 SG |
145 | config PRE_CONSOLE_BUFFER |
146 | bool "Buffer characters before the console is available" | |
147 | help | |
148 | Prior to the console being initialised (i.e. serial UART | |
149 | initialised etc) all console output is silently discarded. | |
150 | Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to | |
151 | buffer any console messages prior to the console being | |
152 | initialised to a buffer. The buffer is a circular buffer, so | |
153 | if it overflows, earlier output is discarded. | |
154 | ||
155 | Note that this is not currently supported in SPL. It would be | |
156 | useful to be able to share the pre-console buffer with SPL. | |
157 | ||
158 | config PRE_CON_BUF_SZ | |
159 | int "Sets the size of the pre-console buffer" | |
160 | depends on PRE_CONSOLE_BUFFER | |
161 | default 4096 | |
162 | help | |
163 | The size of the pre-console buffer affects how much console output | |
164 | can be held before it overflows and starts discarding earlier | |
165 | output. Normally there is very little output at this early stage, | |
166 | unless debugging is enabled, so allow enough for ~10 lines of | |
167 | text. | |
168 | ||
169 | This is a useful feature if you are using a video console and | |
170 | want to see the full boot output on the console. Without this | |
171 | option only the post-relocation output will be displayed. | |
172 | ||
173 | config PRE_CON_BUF_ADDR | |
174 | hex "Address of the pre-console buffer" | |
175 | depends on PRE_CONSOLE_BUFFER | |
176 | default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I | |
177 | default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I | |
38070170 | 178 | default 0x0f000000 if ROCKCHIP_RK3288 |
61853a7a | 179 | default 0x0f200000 if ROCKCHIP_RK3399 |
8f925584 SG |
180 | help |
181 | This sets the start address of the pre-console buffer. This must | |
182 | be in available memory and is accessed before relocation and | |
183 | possibly before DRAM is set up. Therefore choose an address | |
184 | carefully. | |
185 | ||
186 | We should consider removing this option and allocating the memory | |
187 | in board_init_f_init_reserve() instead. | |
188 | ||
974f4836 T |
189 | config CONSOLE_FLUSH_SUPPORT |
190 | bool "Enable console flush support" | |
191 | default y | |
192 | help | |
193 | This enables compilation of flush() function for console flush support. | |
194 | ||
ef26d603 SG |
195 | config CONSOLE_MUX |
196 | bool "Enable console multiplexing" | |
197 | default y if DM_VIDEO || VIDEO || LCD | |
198 | help | |
199 | This allows multiple devices to be used for each console 'file'. | |
200 | For example, stdout can be set to go to serial and video. | |
201 | Similarly, stdin can be set to come from serial and keyboard. | |
202 | Input can be provided from either source. Console multiplexing | |
203 | adds a small amount of size to U-Boot. Changes to the environment | |
204 | variables stdout, stdin and stderr will take effect immediately. | |
205 | ||
206 | config SYS_CONSOLE_IS_IN_ENV | |
207 | bool "Select console devices from the environment" | |
208 | default y if CONSOLE_MUX | |
209 | help | |
210 | This allows multiple input/output devices to be set at boot time. | |
de99e776 AG |
211 | For example, if stdout is set to "serial,vidconsole" then output |
212 | will be sent to both the serial and video devices on boot. The | |
ef26d603 SG |
213 | environment variables can be updated after boot to change the |
214 | input/output devices. | |
215 | ||
84f2a5d0 SG |
216 | config SYS_CONSOLE_OVERWRITE_ROUTINE |
217 | bool "Allow board control over console overwriting" | |
218 | help | |
219 | If this is enabled, and the board-specific function | |
220 | overwrite_console() returns 1, the stdin, stderr and stdout are | |
221 | switched to the serial port, else the settings in the environment | |
222 | are used. If this is not enabled, the console will not be switched | |
223 | to serial. | |
224 | ||
3505bc55 SG |
225 | config SYS_CONSOLE_ENV_OVERWRITE |
226 | bool "Update environment variables during console init" | |
227 | help | |
228 | The console environment variables (stdout, stdin, stderr) can be | |
229 | used to determine the correct console devices on start-up. This | |
230 | option writes the console devices to these variables on console | |
231 | start-up (after relocation). This causes the environment to be | |
232 | updated to match the console devices actually chosen. | |
233 | ||
f3f3efff SG |
234 | config SYS_CONSOLE_INFO_QUIET |
235 | bool "Don't display the console devices on boot" | |
236 | help | |
237 | Normally U-Boot displays the current settings for stdout, stdin | |
238 | and stderr on boot when the post-relocation console is set up. | |
f7597730 | 239 | Enable this option to suppress this output. It can be obtained by |
f3f3efff SG |
240 | calling stdio_print_current_devices() from board code. |
241 | ||
869588de SG |
242 | config SYS_STDIO_DEREGISTER |
243 | bool "Allow deregistering stdio devices" | |
244 | default y if USB_KEYBOARD | |
245 | help | |
246 | Generally there is no need to deregister stdio devices since they | |
247 | are never deactivated. But if a stdio device is used which can be | |
248 | removed (for example a USB keyboard) then this option can be | |
249 | enabled to ensure this is handled correctly. | |
250 | ||
7e15638d SG |
251 | config SPL_SYS_STDIO_DEREGISTER |
252 | bool "Allow deregistering stdio devices in SPL" | |
253 | help | |
254 | Generally there is no need to deregister stdio devices since they | |
255 | are never deactivated. But if a stdio device is used which can be | |
256 | removed (for example a USB keyboard) then this option can be | |
257 | enabled to ensure this is handled correctly. This is very rarely | |
258 | needed in SPL. | |
259 | ||
260 | config SYS_DEVICE_NULLDEV | |
261 | bool "Enable a null device for stdio" | |
3ca0609a | 262 | default y if SPLASH_SCREEN || SYS_STDIO_DEREGISTER |
7e15638d SG |
263 | help |
264 | Enable creation of a "nulldev" stdio device. This allows silent | |
265 | operation of the console by setting stdout to "nulldev". Enable | |
266 | this to use a serial console under board control. | |
267 | ||
98af8799 SG |
268 | endmenu |
269 | ||
e9c8d49d SG |
270 | menu "Logging" |
271 | ||
272 | config LOG | |
273 | bool "Enable logging support" | |
563273df | 274 | depends on DM |
e9c8d49d SG |
275 | help |
276 | This enables support for logging of status and debug messages. These | |
277 | can be displayed on the console, recorded in a memory buffer, or | |
278 | discarded if not needed. Logging supports various categories and | |
279 | levels of severity. | |
280 | ||
7b6c34cb | 281 | if LOG |
e9c8d49d SG |
282 | |
283 | config LOG_MAX_LEVEL | |
284 | int "Maximum log level to record" | |
7b6c34cb HS |
285 | default 6 |
286 | range 0 9 | |
e9c8d49d SG |
287 | help |
288 | This selects the maximum log level that will be recorded. Any value | |
289 | higher than this will be ignored. If possible log statements below | |
290 | this level will be discarded at build time. Levels: | |
291 | ||
6fc7e938 SG |
292 | 0 - emergency |
293 | 1 - alert | |
294 | 2 - critical | |
295 | 3 - error | |
296 | 4 - warning | |
297 | 5 - note | |
298 | 6 - info | |
e9c8d49d | 299 | 7 - debug |
6fc7e938 SG |
300 | 8 - debug content |
301 | 9 - debug hardware I/O | |
e9c8d49d | 302 | |
7b6c34cb HS |
303 | config LOG_DEFAULT_LEVEL |
304 | int "Default logging level to display" | |
305 | default LOG_MAX_LEVEL | |
306 | range 0 LOG_MAX_LEVEL | |
e9c8d49d | 307 | help |
7b6c34cb HS |
308 | This is the default logging level set when U-Boot starts. It can |
309 | be adjusted later using the 'log level' command. Note that setting | |
310 | this to a value above LOG_MAX_LEVEL will be ineffective, since the | |
311 | higher levels are not compiled in to U-Boot. | |
e9c8d49d | 312 | |
6fc7e938 SG |
313 | 0 - emergency |
314 | 1 - alert | |
315 | 2 - critical | |
316 | 3 - error | |
317 | 4 - warning | |
318 | 5 - note | |
319 | 6 - info | |
e9c8d49d | 320 | 7 - debug |
6fc7e938 SG |
321 | 8 - debug content |
322 | 9 - debug hardware I/O | |
e9c8d49d | 323 | |
7b6c34cb HS |
324 | config LOG_CONSOLE |
325 | bool "Allow log output to the console" | |
326 | default y | |
327 | help | |
328 | Enables a log driver which writes log records to the console. | |
329 | Generally the console is the serial port or LCD display. Only the | |
330 | log message is shown - other details like level, category, file and | |
331 | line number are omitted. | |
332 | ||
3c21d773 HS |
333 | config LOGF_FILE |
334 | bool "Show source file name in log messages by default" | |
335 | help | |
336 | Show the source file name in log messages by default. This value | |
337 | can be overridden using the 'log format' command. | |
338 | ||
339 | config LOGF_LINE | |
340 | bool "Show source line number in log messages by default" | |
341 | help | |
342 | Show the source line number in log messages by default. This value | |
343 | can be overridden using the 'log format' command. | |
344 | ||
345 | config LOGF_FUNC | |
346 | bool "Show function name in log messages by default" | |
347 | help | |
348 | Show the function name in log messages by default. This value can | |
349 | be overridden using the 'log format' command. | |
350 | ||
72fa1ad8 SG |
351 | config LOGF_FUNC_PAD |
352 | int "Number of characters to use for function" | |
353 | default 20 | |
354 | help | |
355 | Sets the field width to use when showing the function. Set this to | |
356 | a larger value if you have lots of long function names, and want | |
357 | things to line up. | |
358 | ||
7b6c34cb HS |
359 | config LOG_SYSLOG |
360 | bool "Log output to syslog server" | |
361 | depends on NET | |
362 | help | |
363 | Enables a log driver which broadcasts log records via UDP port 514 | |
364 | to syslog servers. | |
365 | ||
366 | config SPL_LOG | |
367 | bool "Enable logging support in SPL" | |
b340199f | 368 | depends on LOG && SPL |
7b6c34cb HS |
369 | help |
370 | This enables support for logging of status and debug messages. These | |
371 | can be displayed on the console, recorded in a memory buffer, or | |
372 | discarded if not needed. Logging supports various categories and | |
373 | levels of severity. | |
374 | ||
375 | if SPL_LOG | |
376 | ||
377 | config SPL_LOG_MAX_LEVEL | |
378 | int "Maximum log level to record in SPL" | |
379 | depends on SPL_LOG | |
4d8d3056 | 380 | default 3 |
7b6c34cb | 381 | range 0 9 |
4d8d3056 SG |
382 | help |
383 | This selects the maximum log level that will be recorded. Any value | |
384 | higher than this will be ignored. If possible log statements below | |
385 | this level will be discarded at build time. Levels: | |
386 | ||
6fc7e938 SG |
387 | 0 - emergency |
388 | 1 - alert | |
389 | 2 - critical | |
390 | 3 - error | |
391 | 4 - warning | |
392 | 5 - note | |
393 | 6 - info | |
4d8d3056 | 394 | 7 - debug |
6fc7e938 SG |
395 | 8 - debug content |
396 | 9 - debug hardware I/O | |
4d8d3056 | 397 | |
7b6c34cb HS |
398 | config SPL_LOG_CONSOLE |
399 | bool "Allow log output to the console in SPL" | |
400 | default y | |
f0b05c95 | 401 | help |
7b6c34cb HS |
402 | Enables a log driver which writes log records to the console. |
403 | Generally the console is the serial port or LCD display. Only the | |
404 | log message is shown - other details like level, category, file and | |
405 | line number are omitted. | |
406 | ||
407 | endif | |
408 | ||
409 | config TPL_LOG | |
410 | bool "Enable logging support in TPL" | |
8bea4bf7 | 411 | depends on LOG && TPL |
7b6c34cb HS |
412 | help |
413 | This enables support for logging of status and debug messages. These | |
414 | can be displayed on the console, recorded in a memory buffer, or | |
415 | discarded if not needed. Logging supports various categories and | |
416 | levels of severity. | |
417 | ||
418 | if TPL_LOG | |
419 | ||
420 | config TPL_LOG_MAX_LEVEL | |
421 | int "Maximum log level to record in TPL" | |
422 | depends on TPL_LOG | |
423 | default 3 | |
424 | range 0 9 | |
425 | help | |
426 | This selects the maximum log level that will be recorded. Any value | |
427 | higher than this will be ignored. If possible log statements below | |
428 | this level will be discarded at build time. Levels: | |
f0b05c95 SG |
429 | |
430 | 0 - emergency | |
431 | 1 - alert | |
432 | 2 - critical | |
433 | 3 - error | |
434 | 4 - warning | |
435 | 5 - note | |
436 | 6 - info | |
437 | 7 - debug | |
438 | 8 - debug content | |
439 | 9 - debug hardware I/O | |
440 | ||
4d8d3056 | 441 | config TPL_LOG_CONSOLE |
54b6abae | 442 | bool "Allow log output to the console in TPL" |
c6d47535 SG |
443 | default y |
444 | help | |
445 | Enables a log driver which writes log records to the console. | |
446 | Generally the console is the serial port or LCD display. Only the | |
447 | log message is shown - other details like level, category, file and | |
448 | line number are omitted. | |
449 | ||
7b6c34cb | 450 | endif |
ef11ed82 | 451 | |
747093dd SG |
452 | config VPL_LOG |
453 | bool "Enable logging support in VPL" | |
13ce351b | 454 | depends on LOG && VPL |
747093dd SG |
455 | help |
456 | This enables support for logging of status and debug messages. These | |
457 | can be displayed on the console, recorded in a memory buffer, or | |
458 | discarded if not needed. Logging supports various categories and | |
459 | levels of severity. | |
460 | ||
461 | if VPL_LOG | |
462 | ||
463 | config VPL_LOG_MAX_LEVEL | |
464 | int "Maximum log level to record in VPL" | |
465 | default 3 | |
466 | help | |
467 | This selects the maximum log level that will be recorded. Any value | |
468 | higher than this will be ignored. If possible log statements below | |
469 | this level will be discarded at build time. Levels: | |
470 | ||
471 | 0 - emergency | |
472 | 1 - alert | |
473 | 2 - critical | |
474 | 3 - error | |
475 | 4 - warning | |
476 | 5 - note | |
477 | 6 - info | |
478 | 7 - debug | |
479 | 8 - debug content | |
480 | 9 - debug hardware I/O | |
481 | ||
482 | config VPL_LOG_CONSOLE | |
483 | bool "Allow log output to the console in VPL" | |
484 | default y | |
485 | help | |
486 | Enables a log driver which writes log records to the console. | |
487 | Generally the console is the serial port or LCD display. Only the | |
488 | log message is shown - other details like level, category, file and | |
489 | line number are omitted. | |
490 | ||
491 | endif | |
492 | ||
3707c6ee SG |
493 | config LOG_ERROR_RETURN |
494 | bool "Log all functions which return an error" | |
3707c6ee SG |
495 | help |
496 | When an error is returned in U-Boot it is sometimes difficult to | |
f7597730 | 497 | figure out the root cause. For example, reading from SPI flash may |
3707c6ee SG |
498 | fail due to a problem in the SPI controller or due to the flash part |
499 | not returning the expected information. This option changes | |
500 | log_ret() to log any errors it sees. With this option disabled, | |
501 | log_ret() is a nop. | |
502 | ||
503 | You can add log_ret() to all functions which return an error code. | |
504 | ||
7b6c34cb HS |
505 | config LOG_TEST |
506 | bool "Provide a test for logging" | |
507 | depends on UNIT_TEST | |
508 | default y if SANDBOX | |
509 | help | |
510 | This enables a 'log test' command to test logging. It is normally | |
511 | executed from a pytest and simply outputs logging information | |
512 | in various different ways to test that the logging system works | |
513 | correctly with various settings. | |
514 | ||
515 | endif | |
516 | ||
e9c8d49d SG |
517 | endmenu |
518 | ||
7df39e5b SG |
519 | menu "Init options" |
520 | ||
a4c4ecf4 SG |
521 | config BOARD_TYPES |
522 | bool "Call get_board_type() to get and display the board type" | |
523 | help | |
524 | If this option is enabled, checkboard() will call get_board_type() | |
525 | to get a string containing the board type and this will be | |
526 | displayed immediately after the model is shown on the console | |
527 | early in boot. | |
528 | ||
19a97475 LV |
529 | config DISPLAY_CPUINFO |
530 | bool "Display information about the CPU during start up" | |
f31414a0 | 531 | default y if ARC|| ARM || NIOS2 || X86 || XTENSA || M68K |
19a97475 LV |
532 | help |
533 | Display information about the CPU that U-Boot is running on | |
534 | when U-Boot starts up. The function print_cpuinfo() is called | |
535 | to do this. | |
536 | ||
84351792 | 537 | config DISPLAY_BOARDINFO |
78eba69d | 538 | bool "Display information about the board during early start up" |
f31414a0 | 539 | default y if ARC || ARM || M68K || MIPS || PPC || SANDBOX || XTENSA |
84351792 LV |
540 | help |
541 | Display information about the board that U-Boot is running on | |
542 | when U-Boot starts up. The board function checkboard() is called | |
543 | to do this. | |
544 | ||
78eba69d MS |
545 | config DISPLAY_BOARDINFO_LATE |
546 | bool "Display information about the board during late start up" | |
547 | help | |
548 | Display information about the board that U-Boot is running on after | |
549 | the relocation phase. The board function checkboard() is called to do | |
550 | this. | |
551 | ||
a421192f SG |
552 | menu "Start-up hooks" |
553 | ||
c2c69718 SR |
554 | config CYCLIC |
555 | bool "General-purpose cyclic execution mechanism" | |
556 | help | |
557 | This enables a general-purpose cyclic execution infrastructure, | |
558 | to allow "small" (run-time wise) functions to be executed at | |
559 | a specified frequency. Things like LED blinking or watchdog | |
560 | triggering are examples for such tasks. | |
561 | ||
562 | if CYCLIC | |
563 | ||
564 | config CYCLIC_MAX_CPU_TIME_US | |
565 | int "Sets the max allowed time for a cyclic function in us" | |
566 | default 1000 | |
567 | help | |
568 | The max allowed time for a cyclic function in us. If a functions | |
569 | takes longer than this duration this function will get unregistered | |
570 | automatically. | |
571 | ||
572 | endif # CYCLIC | |
573 | ||
87a5d1b5 SG |
574 | config EVENT |
575 | bool "General-purpose event-handling mechanism" | |
576 | default y if SANDBOX | |
577 | help | |
578 | This enables sending and processing of events, to allow interested | |
579 | parties to be alerted when something happens. This is an attempt to | |
f39e5b80 | 580 | stem the flow of weak functions, hooks, functions in board_f.c |
87a5d1b5 SG |
581 | and board_r.c and the Kconfig options below. |
582 | ||
583 | See doc/develop/event.rst for more information. | |
584 | ||
585 | if EVENT | |
586 | ||
587 | config EVENT_DYNAMIC | |
588 | bool "Support event registration at runtime" | |
589 | default y if SANDBOX | |
590 | help | |
591 | Enable this to support adding an event spy at runtime, without adding | |
592 | it to the EVENT_SPy() linker list. This increases code size slightly | |
593 | but provides more flexibility for boards and subsystems that need it. | |
594 | ||
595 | config EVENT_DEBUG | |
596 | bool "Enable event debugging assistance" | |
597 | default y if SANDBOX | |
598 | help | |
599 | Enable this get usefui features for seeing what is happening with | |
600 | events, such as event-type names. This adds to the code size of | |
601 | U-Boot so can be turned off for production builds. | |
602 | ||
603 | endif # EVENT | |
604 | ||
a421192f SG |
605 | config ARCH_EARLY_INIT_R |
606 | bool "Call arch-specific init soon after relocation" | |
a421192f SG |
607 | help |
608 | With this option U-Boot will call arch_early_init_r() soon after | |
609 | relocation. Driver model is running by this point, and the cache | |
610 | is on. Note that board_early_init_r() is called first, if | |
611 | enabled. This can be used to set up architecture-specific devices. | |
612 | ||
4585601a SG |
613 | config ARCH_MISC_INIT |
614 | bool "Call arch-specific init after relocation, when console is ready" | |
615 | help | |
616 | With this option U-Boot will call arch_misc_init() after | |
617 | relocation to allow miscellaneous arch-dependent initialisation | |
618 | to be performed. This function should be defined by the board | |
f7597730 | 619 | and will be called after the console is set up, after relocation. |
4585601a | 620 | |
a5d67547 SG |
621 | config BOARD_EARLY_INIT_F |
622 | bool "Call board-specific init before relocation" | |
a5d67547 SG |
623 | help |
624 | Some boards need to perform initialisation as soon as possible | |
625 | after boot. With this option, U-Boot calls board_early_init_f() | |
626 | after driver model is ready in the pre-relocation init sequence. | |
627 | Note that the normal serial console is not yet set up, but the | |
628 | debug UART will be available if enabled. | |
629 | ||
02ddc147 MS |
630 | config BOARD_EARLY_INIT_R |
631 | bool "Call board-specific init after relocation" | |
632 | help | |
633 | Some boards need to perform initialisation as directly after | |
634 | relocation. With this option, U-Boot calls board_early_init_r() | |
635 | in the post-relocation init sequence. | |
636 | ||
6d21dd31 TR |
637 | config BOARD_POSTCLK_INIT |
638 | bool "Call board_postclk_init" | |
639 | help | |
640 | Some boards need this to initialize select items, after clocks / | |
641 | timebase and before env / serial. | |
642 | ||
7e349e96 SG |
643 | config BOARD_LATE_INIT |
644 | bool "Execute Board late init" | |
645 | help | |
646 | Sometimes board require some initialization code that might | |
647 | require once the actual init done, example saving board specific env, | |
648 | boot-modes etc. which eventually done at late. | |
649 | ||
650 | So this config enable the late init code with the help of board_late_init | |
651 | function which should defined on respective boards. | |
652 | ||
15b4aed4 TR |
653 | config CLOCKS |
654 | bool "Call set_cpu_clk_info" | |
655 | depends on ARM | |
656 | ||
ada261f1 TR |
657 | config SYS_FSL_CLK |
658 | bool | |
659 | depends on ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3 || \ | |
660 | (FSL_ESDHC_IMX && (ARCH_MX5 || ARCH_MX6 || ARCH_MX7)) | |
661 | default y | |
662 | help | |
663 | Enable to call get_clocks() in board_init_f() for platforms other | |
664 | than PowerPC or M68k. This is a legacy option. If not TARGET_BRPPT2 | |
665 | ||
2aeb22d9 MS |
666 | config LAST_STAGE_INIT |
667 | bool "Call board-specific as last setup step" | |
668 | help | |
669 | Some boards need to perform initialisation immediately before control | |
670 | is passed to the command-line interpreter (e.g. for initializations | |
671 | that depend on later phases in the init sequence). With this option, | |
672 | U-Boot calls last_stage_init() before the command-line interpreter is | |
673 | started. | |
674 | ||
7e349e96 SG |
675 | config MISC_INIT_R |
676 | bool "Execute Misc Init" | |
677 | default y if ARCH_KEYSTONE || ARCH_SUNXI || MPC85xx | |
678 | default y if ARCH_OMAP2PLUS && !AM33XX | |
679 | help | |
680 | Enabling this option calls 'misc_init_r' function | |
681 | ||
167f699b TR |
682 | config SYS_MALLOC_BOOTPARAMS |
683 | bool "Malloc a buffer to use for bootparams" | |
684 | help | |
685 | In some cases rather than using a known location to store the | |
686 | bi_boot_params portion of gd we need to allocate it from our malloc pool. | |
687 | ||
688 | config SYS_BOOTPARAMS_LEN | |
689 | hex "Size of the bootparam buffer to malloc in bytes" | |
690 | depends on SYS_MALLOC_BOOTPARAMS | |
691 | default 0x20000 if MIPS || RCAR_GEN3 | |
692 | default 0x10000 | |
693 | ||
d7d40f61 TR |
694 | config ID_EEPROM |
695 | bool "Enable I2C connected system identifier EEPROM" | |
696 | help | |
697 | A number of different systems and vendors enable a vendor-specified | |
698 | EEPROM that contains various identifying features. | |
699 | ||
adf13bcc TR |
700 | config SYS_EEPROM_BUS_NUM |
701 | int "I2C bus number of the system identifier EEPROM" | |
702 | depends on ID_EEPROM | |
703 | default 0 | |
704 | ||
705 | choice | |
706 | prompt "EEPROM starts with 'CCID' or 'NXID'" | |
707 | depends on ID_EEPROM && (PPC || ARCH_LS1021A || FSL_LAYERSCAPE) | |
708 | default SYS_I2C_EEPROM_NXID | |
709 | help | |
710 | Specify if the Freescale / NXP ID EEPROM starts with 'CCID' or 'NXID' | |
711 | ASCII literal string. | |
712 | ||
713 | config SYS_I2C_EEPROM_CCID | |
714 | bool "EEPROM starts with 'CCID'" | |
715 | ||
716 | config SYS_I2C_EEPROM_NXID | |
717 | bool "EEPROM starts with 'NXID'" | |
718 | ||
719 | endchoice | |
720 | ||
98bf46f7 OP |
721 | config PCI_INIT_R |
722 | bool "Enumerate PCI buses during init" | |
723 | depends on PCI | |
98bf46f7 OP |
724 | help |
725 | With this option U-Boot will call pci_init() soon after relocation, | |
726 | which will enumerate PCI buses. This is needed, for instance, in the | |
727 | case of DM PCI-based Ethernet devices, which will not be detected | |
728 | without having the enumeration performed earlier. | |
729 | ||
29cc2b54 TR |
730 | config RESET_PHY_R |
731 | bool "Reset ethernet PHY during init" | |
732 | help | |
733 | Implement reset_phy() in board code if required to reset the ethernet | |
734 | PHY. | |
735 | ||
a421192f SG |
736 | endmenu |
737 | ||
38663136 SG |
738 | endmenu # Init options |
739 | ||
d70f919e SG |
740 | menu "Security support" |
741 | ||
742 | config HASH | |
743 | bool # "Support hashing API (SHA1, SHA256, etc.)" | |
744 | help | |
745 | This provides a way to hash data in memory using various supported | |
746 | algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h | |
747 | and the algorithms it supports are defined in common/hash.c. See | |
748 | also CMD_HASH for command-line access. | |
749 | ||
b0aa74a2 IO |
750 | config AVB_VERIFY |
751 | bool "Build Android Verified Boot operations" | |
e61b4151 | 752 | depends on LIBAVB |
9c3808de | 753 | depends on MMC |
87c814d4 | 754 | depends on PARTITION_UUIDS |
b0aa74a2 IO |
755 | help |
756 | This option enables compilation of bootloader-dependent operations, | |
757 | used by Android Verified Boot 2.0 library (libavb). Includes: | |
758 | * Helpers to process strings in order to build OS bootargs. | |
759 | * Helpers to access MMC, similar to drivers/fastboot/fb_mmc.c. | |
760 | * Helpers to alloc/init/free avb ops. | |
761 | ||
e61b4151 UA |
762 | if AVB_VERIFY |
763 | ||
764 | config AVB_BUF_ADDR | |
765 | hex "Define AVB buffer address" | |
766 | default FASTBOOT_BUF_ADDR | |
767 | help | |
768 | AVB requires a buffer for memory transactions. This variable defines the | |
769 | buffer address. | |
770 | ||
771 | config AVB_BUF_SIZE | |
772 | hex "Define AVB buffer SIZE" | |
773 | default FASTBOOT_BUF_SIZE | |
774 | help | |
775 | AVB requires a buffer for memory transactions. This variable defines the | |
776 | buffer size. | |
777 | ||
778 | endif # AVB_VERIFY | |
779 | ||
166363f2 JRO |
780 | config SCP03 |
781 | bool "Build SCP03 - Secure Channel Protocol O3 - controls" | |
782 | depends on OPTEE || SANDBOX | |
783 | depends on TEE | |
784 | help | |
785 | This option allows U-Boot to enable and or provision SCP03 on an OPTEE | |
786 | controlled Secured Element. | |
787 | ||
c0126bd8 SG |
788 | config SPL_HASH |
789 | bool # "Support hashing API (SHA1, SHA256, etc.)" | |
790 | help | |
791 | This provides a way to hash data in memory using various supported | |
792 | algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h | |
793 | and the algorithms it supports are defined in common/hash.c. See | |
794 | also CMD_HASH for command-line access. | |
795 | ||
796 | config TPL_HASH | |
797 | bool # "Support hashing API (SHA1, SHA256, etc.)" | |
798 | help | |
799 | This provides a way to hash data in memory using various supported | |
800 | algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h | |
801 | and the algorithms it supports are defined in common/hash.c. See | |
802 | also CMD_HASH for command-line access. | |
803 | ||
4e9bce12 JP |
804 | config STACKPROTECTOR |
805 | bool "Stack Protector buffer overflow detection" | |
4e9bce12 JP |
806 | help |
807 | Enable stack smash detection through compiler's stack-protector | |
808 | canary logic | |
809 | ||
810 | config SPL_STACKPROTECTOR | |
811 | bool "Stack Protector buffer overflow detection for SPL" | |
812 | depends on STACKPROTECTOR && SPL | |
4e9bce12 JP |
813 | |
814 | config TPL_STACKPROTECTOR | |
815 | bool "Stack Protector buffer overflow detection for TPL" | |
816 | depends on STACKPROTECTOR && TPL | |
4e9bce12 | 817 | |
6dca1d9a RV |
818 | config BOARD_RNG_SEED |
819 | bool "Provide /chosen/rng-seed property to the linux kernel" | |
820 | help | |
821 | Selecting this option requires the board to define a | |
822 | board_rng_seed() function, which should return a buffer | |
823 | which will be used to populate the /chosen/rng-seed property | |
824 | in the device tree for the OS being booted. | |
825 | ||
826 | It is up to the board code (and more generally the whole | |
827 | BSP) where and how to store (or generate) such a seed, how | |
828 | to ensure a given seed is only used once, how to create a | |
829 | new seed for use on subsequent boots, and whether or not the | |
830 | kernel should account any entropy from the given seed. | |
831 | ||
d70f919e SG |
832 | endmenu |
833 | ||
b254c529 MV |
834 | menu "Update support" |
835 | ||
3149e524 AT |
836 | config UPDATE_COMMON |
837 | bool | |
3149e524 AT |
838 | select DFU_WRITE_ALT |
839 | ||
b254c529 MV |
840 | config UPDATE_TFTP |
841 | bool "Auto-update using fitImage via TFTP" | |
842 | depends on FIT | |
3149e524 | 843 | select UPDATE_COMMON |
b254c529 MV |
844 | help |
845 | This option allows performing update of NOR with data in fitImage | |
846 | sent via TFTP boot. | |
847 | ||
848 | config UPDATE_TFTP_CNT_MAX | |
849 | int "The number of connection retries during auto-update" | |
850 | default 0 | |
851 | depends on UPDATE_TFTP | |
852 | ||
853 | config UPDATE_TFTP_MSEC_MAX | |
854 | int "Delay in mSec to wait for the TFTP server during auto-update" | |
855 | default 100 | |
856 | depends on UPDATE_TFTP | |
857 | ||
3149e524 AT |
858 | config UPDATE_FIT |
859 | bool "Firmware update using fitImage" | |
860 | depends on FIT | |
861 | depends on DFU | |
862 | select UPDATE_COMMON | |
863 | help | |
864 | This option allows performing update of DFU-capable storage with | |
865 | data in fitImage. | |
866 | ||
d65e8da9 RT |
867 | config ANDROID_AB |
868 | bool "Android A/B updates" | |
d65e8da9 RT |
869 | help |
870 | If enabled, adds support for the new Android A/B update model. This | |
871 | allows the bootloader to select which slot to boot from based on the | |
872 | information provided by userspace via the Android boot_ctrl HAL. This | |
873 | allows a bootloader to try a new version of the system but roll back | |
874 | to previous version if the new one didn't boot all the way. | |
875 | ||
b254c529 MV |
876 | endmenu |
877 | ||
9f407d4e SG |
878 | menu "Blob list" |
879 | ||
880 | config BLOBLIST | |
881 | bool "Support for a bloblist" | |
882 | help | |
883 | This enables support for a bloblist in U-Boot, which can be passed | |
884 | from TPL to SPL to U-Boot proper (and potentially to Linux). The | |
885 | blob list supports multiple binary blobs of data, each with a tag, | |
886 | so that different U-Boot components can store data which can survive | |
5938d654 | 887 | through to the next phase of the boot. |
9f407d4e SG |
888 | |
889 | config SPL_BLOBLIST | |
890 | bool "Support for a bloblist in SPL" | |
3c0d5ea0 | 891 | depends on BLOBLIST && SPL_LIBGENERIC_SUPPORT && SPL_LIBCOMMON_SUPPORT |
9f407d4e SG |
892 | default y if SPL |
893 | help | |
894 | This enables a bloblist in SPL. If this is the first part of U-Boot | |
895 | to run, then the bloblist is set up in SPL and passed to U-Boot | |
896 | proper. If TPL also has a bloblist, then SPL uses the one from there. | |
897 | ||
898 | config TPL_BLOBLIST | |
899 | bool "Support for a bloblist in TPL" | |
3c0d5ea0 | 900 | depends on BLOBLIST && TPL_LIBGENERIC_SUPPORT && TPL_LIBCOMMON_SUPPORT |
9f407d4e SG |
901 | default y if TPL |
902 | help | |
903 | This enables a bloblist in TPL. The bloblist is set up in TPL and | |
904 | passed to SPL and U-Boot proper. | |
747093dd SG |
905 | |
906 | config VPL_BLOBLIST | |
907 | bool "Support for a bloblist in VPL" | |
908 | depends on BLOBLIST && VPL_LIBGENERIC_SUPPORT && VPL_LIBCOMMON_SUPPORT | |
909 | default y if VPL | |
910 | help | |
911 | This enables a bloblist in VPL. The bloblist is set up in VPL and | |
912 | passed to SPL and U-Boot proper. | |
9f407d4e | 913 | |
d5b6e91b SG |
914 | if BLOBLIST |
915 | ||
99047f5d SG |
916 | choice |
917 | prompt "Bloblist location" | |
9f407d4e | 918 | help |
99047f5d SG |
919 | Select the location of the bloblist, via various means. |
920 | ||
921 | config BLOBLIST_FIXED | |
922 | bool "Place bloblist at a fixed address in memory" | |
923 | help | |
924 | Select this to used a fixed memory address for the bloblist. If the | |
925 | bloblist exists at this address from a previous phase, it used as is. | |
926 | If not it is created at this address in U-Boot. | |
9f407d4e | 927 | |
d5b6e91b SG |
928 | config BLOBLIST_ALLOC |
929 | bool "Allocate bloblist" | |
930 | help | |
931 | Allocate the bloblist using malloc(). This avoids the need to | |
932 | specify a fixed address on systems where this is unknown or can | |
933 | change at runtime. | |
934 | ||
99047f5d SG |
935 | endchoice |
936 | ||
9f407d4e SG |
937 | config BLOBLIST_ADDR |
938 | hex "Address of bloblist" | |
ecc1ed91 | 939 | default 0xc000 if SANDBOX |
99047f5d | 940 | depends on BLOBLIST_FIXED |
9f407d4e SG |
941 | help |
942 | Sets the address of the bloblist, set up by the first part of U-Boot | |
5938d654 | 943 | which runs. Subsequent U-Boot phases typically use the same address. |
9f407d4e | 944 | |
d5b6e91b SG |
945 | This is not used if BLOBLIST_ALLOC is selected. |
946 | ||
99047f5d SG |
947 | config BLOBLIST_SIZE |
948 | hex "Size of bloblist" | |
949 | default 0x400 | |
950 | help | |
951 | Sets the size of the bloblist in bytes. This must include all | |
952 | overhead (alignment, bloblist header, record header). The bloblist | |
953 | is set up in the first part of U-Boot to run (TPL, SPL or U-Boot | |
954 | proper), and this sane bloblist is used for subsequent phases. | |
955 | ||
9fe06464 SG |
956 | config BLOBLIST_SIZE_RELOC |
957 | hex "Size of bloblist after relocation" | |
99047f5d SG |
958 | default BLOBLIST_SIZE if BLOBLIST_FIXED || BLOBLIST_ALLOC |
959 | default 0 if BLOBLIST_PASSAGE | |
9fe06464 SG |
960 | help |
961 | Sets the size of the bloblist in bytes after relocation. Since U-Boot | |
962 | has a lot more memory available then, it is possible to use a larger | |
963 | size than the one set up by SPL. This bloblist is set up during the | |
964 | relocation process. | |
965 | ||
d5b6e91b SG |
966 | endif # BLOBLIST |
967 | ||
99047f5d SG |
968 | if SPL_BLOBLIST |
969 | ||
970 | choice | |
971 | prompt "Bloblist location in SPL" | |
972 | help | |
973 | Select the location of the bloblist, via various means. Typically | |
974 | you should use the same value for SPL as for U-Boot, since they need | |
975 | to look in the same place. But if BLOBLIST_ALLOC is used, then a | |
976 | fresh bloblist will be created each time, since there is no shared | |
977 | address (between phases) for the bloblist. | |
978 | ||
979 | config SPL_BLOBLIST_FIXED | |
980 | bool "Place bloblist at a fixed address in memory" | |
981 | help | |
982 | Select this to used a fixed memory address for the bloblist. If the | |
983 | bloblist exists at this address from a previous phase, it used as is. | |
984 | If not it is created at this address in SPL. | |
985 | ||
986 | config SPL_BLOBLIST_ALLOC | |
987 | bool "Allocate bloblist" | |
988 | help | |
989 | Allocate the bloblist using malloc(). This avoids the need to | |
990 | specify a fixed address on systems where this is unknown or can | |
991 | change at runtime. | |
992 | ||
993 | endchoice | |
994 | ||
995 | endif # SPL_BLOBLIST | |
996 | ||
997 | if TPL_BLOBLIST | |
998 | ||
999 | choice | |
1000 | prompt "Bloblist location in TPL" | |
1001 | help | |
1002 | Select the location of the bloblist, via various means. Typically | |
1003 | you should use the same value for SPL as for U-Boot, since they need | |
1004 | to look in the same place. But if BLOBLIST_ALLOC is used, then a | |
1005 | fresh bloblist will be created each time, since there is no shared | |
1006 | address (between phases) for the bloblist. | |
1007 | ||
1008 | config TPL_BLOBLIST_FIXED | |
1009 | bool "Place bloblist at a fixed address in memory" | |
1010 | help | |
1011 | Select this to used a fixed memory address for the bloblist. If the | |
1012 | bloblist exists at this address from a previous phase, it used as is. | |
1013 | If not it is created at this address in TPL. | |
1014 | ||
1015 | config TPL_BLOBLIST_ALLOC | |
1016 | bool "Allocate bloblist" | |
1017 | help | |
1018 | Allocate the bloblist using malloc(). This avoids the need to | |
1019 | specify a fixed address on systems where this is unknown or can | |
1020 | change at runtime. | |
1021 | ||
1022 | endchoice | |
1023 | ||
1024 | endif # TPL_BLOBLIST | |
1025 | ||
9f407d4e SG |
1026 | endmenu |
1027 | ||
c2ae7d82 | 1028 | source "common/spl/Kconfig" |
b983cc2d AT |
1029 | |
1030 | config IMAGE_SIGN_INFO | |
1031 | bool | |
1032 | select SHA1 | |
1033 | select SHA256 | |
1034 | help | |
1035 | Enable image_sign_info helper functions. | |
6441164d HS |
1036 | |
1037 | if IMAGE_SIGN_INFO | |
1038 | ||
1039 | config SPL_IMAGE_SIGN_INFO | |
1040 | bool | |
1041 | select SHA1 | |
1042 | select SHA256 | |
1043 | help | |
1044 | Enable image_sign_info helper functions in SPL. | |
1045 | ||
1046 | endif | |
d71587c2 PD |
1047 | |
1048 | config FDT_SIMPLEFB | |
1049 | bool "FDT tools for simplefb support" | |
1050 | depends on OF_LIBFDT | |
1051 | help | |
1052 | Enable the fdt tools to manage the simple fb nodes in device tree. | |
1053 | These functions can be used by board to indicate to the OS | |
1054 | the presence of the simple frame buffer with associated reserved | |
1055 | memory |