]>
Commit | Line | Data |
---|---|---|
cf298167 SG |
1 | source "common/Kconfig.boot" |
2 | ||
98af8799 SG |
3 | menu "Console" |
4 | ||
4880b026 TR |
5 | config MENU |
6 | bool | |
7 | help | |
8 | This is the library functionality to provide a text-based menu of | |
9 | choices for the user to make choices with. | |
10 | ||
9854a874 SG |
11 | config CONSOLE_RECORD |
12 | bool "Console recording" | |
13 | help | |
14 | This provides a way to record console output (and provide console | |
57247d9c | 15 | input) through circular buffers. This is mostly useful for testing. |
9854a874 SG |
16 | Console output is recorded even when the console is silent. |
17 | To enable console recording, call console_record_reset_enable() | |
18 | from your code. | |
19 | ||
4e81920b OP |
20 | config CONSOLE_RECORD_INIT_F |
21 | bool "Enable console recording during pre-relocation init" | |
22 | depends on CONSOLE_RECORD && SYS_MALLOC_F | |
23 | default y | |
24 | help | |
25 | This option enables console recording during pre-relocation init. | |
26 | CONFIG_SYS_MALLOC_F must be enabled to use this feature. | |
27 | ||
9854a874 SG |
28 | config CONSOLE_RECORD_OUT_SIZE |
29 | hex "Output buffer size" | |
30 | depends on CONSOLE_RECORD | |
31 | default 0x400 if CONSOLE_RECORD | |
32 | help | |
33 | Set the size of the console output buffer. When this fills up, no | |
34 | more data will be recorded until some is removed. The buffer is | |
35 | allocated immediately after the malloc() region is ready. | |
36 | ||
37 | config CONSOLE_RECORD_IN_SIZE | |
38 | hex "Input buffer size" | |
39 | depends on CONSOLE_RECORD | |
40 | default 0x100 if CONSOLE_RECORD | |
41 | help | |
42 | Set the size of the console input buffer. When this contains data, | |
43 | tstc() and getc() will use this in preference to real device input. | |
44 | The buffer is allocated immediately after the malloc() region is | |
45 | ready. | |
4d25507f | 46 | |
83f6f608 CG |
47 | config DISABLE_CONSOLE |
48 | bool "Add functionality to disable console completely" | |
49 | help | |
50 | Disable console (in & out). | |
51 | ||
a4d88920 SDPP |
52 | config IDENT_STRING |
53 | string "Board specific string to be added to uboot version string" | |
54 | help | |
55 | This options adds the board specific name to u-boot version. | |
56 | ||
b44b3026 MY |
57 | config LOGLEVEL |
58 | int "loglevel" | |
6a3e65de | 59 | default 4 |
2aa69c9b | 60 | range 0 10 |
b44b3026 MY |
61 | help |
62 | All Messages with a loglevel smaller than the console loglevel will | |
63 | be compiled in. The loglevels are defined as follows: | |
64 | ||
6fc7e938 SG |
65 | 0 - emergency |
66 | 1 - alert | |
67 | 2 - critical | |
68 | 3 - error | |
69 | 4 - warning | |
70 | 5 - note | |
71 | 6 - info | |
72 | 7 - debug | |
73 | 8 - debug content | |
74 | 9 - debug hardware I/O | |
b44b3026 MY |
75 | |
76 | config SPL_LOGLEVEL | |
77 | int | |
78 | default LOGLEVEL | |
79 | ||
4d8d3056 SG |
80 | config TPL_LOGLEVEL |
81 | int | |
82 | default LOGLEVEL | |
83 | ||
98af8799 SG |
84 | config SILENT_CONSOLE |
85 | bool "Support a silent console" | |
86 | help | |
87 | This option allows the console to be silenced, meaning that no | |
88 | output will appear on the console devices. This is controlled by | |
f7597730 | 89 | setting the environment variable 'silent' to a non-empty value. |
98af8799 SG |
90 | Note this also silences the console when booting Linux. |
91 | ||
92 | When the console is set up, the variable is checked, and the | |
93 | GD_FLG_SILENT flag is set. Changing the environment variable later | |
94 | will update the flag. | |
95 | ||
96 | config SILENT_U_BOOT_ONLY | |
97 | bool "Only silence the U-Boot console" | |
98 | depends on SILENT_CONSOLE | |
99 | help | |
100 | Normally when the U-Boot console is silenced, Linux's console is | |
101 | also silenced (assuming the board boots into Linux). This option | |
102 | allows the linux console to operate normally, even if U-Boot's | |
103 | is silenced. | |
104 | ||
105 | config SILENT_CONSOLE_UPDATE_ON_SET | |
106 | bool "Changes to the 'silent' environment variable update immediately" | |
107 | depends on SILENT_CONSOLE | |
108 | default y if SILENT_CONSOLE | |
109 | help | |
110 | When the 'silent' environment variable is changed, update the | |
111 | console silence flag immediately. This allows 'setenv' to be used | |
112 | to silence or un-silence the console. | |
113 | ||
114 | The effect is that any change to the variable will affect the | |
115 | GD_FLG_SILENT flag. | |
116 | ||
117 | config SILENT_CONSOLE_UPDATE_ON_RELOC | |
118 | bool "Allow flags to take effect on relocation" | |
119 | depends on SILENT_CONSOLE | |
120 | help | |
121 | In some cases the environment is not available until relocation | |
122 | (e.g. NAND). This option makes the value of the 'silent' | |
123 | environment variable take effect at relocation. | |
124 | ||
8f925584 SG |
125 | config PRE_CONSOLE_BUFFER |
126 | bool "Buffer characters before the console is available" | |
127 | help | |
128 | Prior to the console being initialised (i.e. serial UART | |
129 | initialised etc) all console output is silently discarded. | |
130 | Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to | |
131 | buffer any console messages prior to the console being | |
132 | initialised to a buffer. The buffer is a circular buffer, so | |
133 | if it overflows, earlier output is discarded. | |
134 | ||
135 | Note that this is not currently supported in SPL. It would be | |
136 | useful to be able to share the pre-console buffer with SPL. | |
137 | ||
138 | config PRE_CON_BUF_SZ | |
139 | int "Sets the size of the pre-console buffer" | |
140 | depends on PRE_CONSOLE_BUFFER | |
141 | default 4096 | |
142 | help | |
143 | The size of the pre-console buffer affects how much console output | |
144 | can be held before it overflows and starts discarding earlier | |
145 | output. Normally there is very little output at this early stage, | |
146 | unless debugging is enabled, so allow enough for ~10 lines of | |
147 | text. | |
148 | ||
149 | This is a useful feature if you are using a video console and | |
150 | want to see the full boot output on the console. Without this | |
151 | option only the post-relocation output will be displayed. | |
152 | ||
153 | config PRE_CON_BUF_ADDR | |
154 | hex "Address of the pre-console buffer" | |
155 | depends on PRE_CONSOLE_BUFFER | |
156 | default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I | |
157 | default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I | |
38070170 | 158 | default 0x0f000000 if ROCKCHIP_RK3288 |
61853a7a | 159 | default 0x0f200000 if ROCKCHIP_RK3399 |
8f925584 SG |
160 | help |
161 | This sets the start address of the pre-console buffer. This must | |
162 | be in available memory and is accessed before relocation and | |
163 | possibly before DRAM is set up. Therefore choose an address | |
164 | carefully. | |
165 | ||
166 | We should consider removing this option and allocating the memory | |
167 | in board_init_f_init_reserve() instead. | |
168 | ||
ef26d603 SG |
169 | config CONSOLE_MUX |
170 | bool "Enable console multiplexing" | |
171 | default y if DM_VIDEO || VIDEO || LCD | |
172 | help | |
173 | This allows multiple devices to be used for each console 'file'. | |
174 | For example, stdout can be set to go to serial and video. | |
175 | Similarly, stdin can be set to come from serial and keyboard. | |
176 | Input can be provided from either source. Console multiplexing | |
177 | adds a small amount of size to U-Boot. Changes to the environment | |
178 | variables stdout, stdin and stderr will take effect immediately. | |
179 | ||
180 | config SYS_CONSOLE_IS_IN_ENV | |
181 | bool "Select console devices from the environment" | |
182 | default y if CONSOLE_MUX | |
183 | help | |
184 | This allows multiple input/output devices to be set at boot time. | |
185 | For example, if stdout is set to "serial,video" then output will | |
186 | be sent to both the serial and video devices on boot. The | |
187 | environment variables can be updated after boot to change the | |
188 | input/output devices. | |
189 | ||
84f2a5d0 SG |
190 | config SYS_CONSOLE_OVERWRITE_ROUTINE |
191 | bool "Allow board control over console overwriting" | |
192 | help | |
193 | If this is enabled, and the board-specific function | |
194 | overwrite_console() returns 1, the stdin, stderr and stdout are | |
195 | switched to the serial port, else the settings in the environment | |
196 | are used. If this is not enabled, the console will not be switched | |
197 | to serial. | |
198 | ||
3505bc55 SG |
199 | config SYS_CONSOLE_ENV_OVERWRITE |
200 | bool "Update environment variables during console init" | |
201 | help | |
202 | The console environment variables (stdout, stdin, stderr) can be | |
203 | used to determine the correct console devices on start-up. This | |
204 | option writes the console devices to these variables on console | |
205 | start-up (after relocation). This causes the environment to be | |
206 | updated to match the console devices actually chosen. | |
207 | ||
f3f3efff SG |
208 | config SYS_CONSOLE_INFO_QUIET |
209 | bool "Don't display the console devices on boot" | |
210 | help | |
211 | Normally U-Boot displays the current settings for stdout, stdin | |
212 | and stderr on boot when the post-relocation console is set up. | |
f7597730 | 213 | Enable this option to suppress this output. It can be obtained by |
f3f3efff SG |
214 | calling stdio_print_current_devices() from board code. |
215 | ||
869588de SG |
216 | config SYS_STDIO_DEREGISTER |
217 | bool "Allow deregistering stdio devices" | |
218 | default y if USB_KEYBOARD | |
219 | help | |
220 | Generally there is no need to deregister stdio devices since they | |
221 | are never deactivated. But if a stdio device is used which can be | |
222 | removed (for example a USB keyboard) then this option can be | |
223 | enabled to ensure this is handled correctly. | |
224 | ||
7e15638d SG |
225 | config SPL_SYS_STDIO_DEREGISTER |
226 | bool "Allow deregistering stdio devices in SPL" | |
227 | help | |
228 | Generally there is no need to deregister stdio devices since they | |
229 | are never deactivated. But if a stdio device is used which can be | |
230 | removed (for example a USB keyboard) then this option can be | |
231 | enabled to ensure this is handled correctly. This is very rarely | |
232 | needed in SPL. | |
233 | ||
234 | config SYS_DEVICE_NULLDEV | |
235 | bool "Enable a null device for stdio" | |
3ca0609a | 236 | default y if SPLASH_SCREEN || SYS_STDIO_DEREGISTER |
7e15638d SG |
237 | help |
238 | Enable creation of a "nulldev" stdio device. This allows silent | |
239 | operation of the console by setting stdout to "nulldev". Enable | |
240 | this to use a serial console under board control. | |
241 | ||
98af8799 SG |
242 | endmenu |
243 | ||
e9c8d49d SG |
244 | menu "Logging" |
245 | ||
246 | config LOG | |
247 | bool "Enable logging support" | |
563273df | 248 | depends on DM |
e9c8d49d SG |
249 | help |
250 | This enables support for logging of status and debug messages. These | |
251 | can be displayed on the console, recorded in a memory buffer, or | |
252 | discarded if not needed. Logging supports various categories and | |
253 | levels of severity. | |
254 | ||
7b6c34cb | 255 | if LOG |
e9c8d49d SG |
256 | |
257 | config LOG_MAX_LEVEL | |
258 | int "Maximum log level to record" | |
7b6c34cb HS |
259 | default 6 |
260 | range 0 9 | |
e9c8d49d SG |
261 | help |
262 | This selects the maximum log level that will be recorded. Any value | |
263 | higher than this will be ignored. If possible log statements below | |
264 | this level will be discarded at build time. Levels: | |
265 | ||
6fc7e938 SG |
266 | 0 - emergency |
267 | 1 - alert | |
268 | 2 - critical | |
269 | 3 - error | |
270 | 4 - warning | |
271 | 5 - note | |
272 | 6 - info | |
e9c8d49d | 273 | 7 - debug |
6fc7e938 SG |
274 | 8 - debug content |
275 | 9 - debug hardware I/O | |
e9c8d49d | 276 | |
7b6c34cb HS |
277 | config LOG_DEFAULT_LEVEL |
278 | int "Default logging level to display" | |
279 | default LOG_MAX_LEVEL | |
280 | range 0 LOG_MAX_LEVEL | |
e9c8d49d | 281 | help |
7b6c34cb HS |
282 | This is the default logging level set when U-Boot starts. It can |
283 | be adjusted later using the 'log level' command. Note that setting | |
284 | this to a value above LOG_MAX_LEVEL will be ineffective, since the | |
285 | higher levels are not compiled in to U-Boot. | |
e9c8d49d | 286 | |
6fc7e938 SG |
287 | 0 - emergency |
288 | 1 - alert | |
289 | 2 - critical | |
290 | 3 - error | |
291 | 4 - warning | |
292 | 5 - note | |
293 | 6 - info | |
e9c8d49d | 294 | 7 - debug |
6fc7e938 SG |
295 | 8 - debug content |
296 | 9 - debug hardware I/O | |
e9c8d49d | 297 | |
7b6c34cb HS |
298 | config LOG_CONSOLE |
299 | bool "Allow log output to the console" | |
300 | default y | |
301 | help | |
302 | Enables a log driver which writes log records to the console. | |
303 | Generally the console is the serial port or LCD display. Only the | |
304 | log message is shown - other details like level, category, file and | |
305 | line number are omitted. | |
306 | ||
3c21d773 HS |
307 | config LOGF_FILE |
308 | bool "Show source file name in log messages by default" | |
309 | help | |
310 | Show the source file name in log messages by default. This value | |
311 | can be overridden using the 'log format' command. | |
312 | ||
313 | config LOGF_LINE | |
314 | bool "Show source line number in log messages by default" | |
315 | help | |
316 | Show the source line number in log messages by default. This value | |
317 | can be overridden using the 'log format' command. | |
318 | ||
319 | config LOGF_FUNC | |
320 | bool "Show function name in log messages by default" | |
321 | help | |
322 | Show the function name in log messages by default. This value can | |
323 | be overridden using the 'log format' command. | |
324 | ||
72fa1ad8 SG |
325 | config LOGF_FUNC_PAD |
326 | int "Number of characters to use for function" | |
327 | default 20 | |
328 | help | |
329 | Sets the field width to use when showing the function. Set this to | |
330 | a larger value if you have lots of long function names, and want | |
331 | things to line up. | |
332 | ||
7b6c34cb HS |
333 | config LOG_SYSLOG |
334 | bool "Log output to syslog server" | |
335 | depends on NET | |
336 | help | |
337 | Enables a log driver which broadcasts log records via UDP port 514 | |
338 | to syslog servers. | |
339 | ||
340 | config SPL_LOG | |
341 | bool "Enable logging support in SPL" | |
342 | depends on LOG | |
343 | help | |
344 | This enables support for logging of status and debug messages. These | |
345 | can be displayed on the console, recorded in a memory buffer, or | |
346 | discarded if not needed. Logging supports various categories and | |
347 | levels of severity. | |
348 | ||
349 | if SPL_LOG | |
350 | ||
351 | config SPL_LOG_MAX_LEVEL | |
352 | int "Maximum log level to record in SPL" | |
353 | depends on SPL_LOG | |
4d8d3056 | 354 | default 3 |
7b6c34cb | 355 | range 0 9 |
4d8d3056 SG |
356 | help |
357 | This selects the maximum log level that will be recorded. Any value | |
358 | higher than this will be ignored. If possible log statements below | |
359 | this level will be discarded at build time. Levels: | |
360 | ||
6fc7e938 SG |
361 | 0 - emergency |
362 | 1 - alert | |
363 | 2 - critical | |
364 | 3 - error | |
365 | 4 - warning | |
366 | 5 - note | |
367 | 6 - info | |
4d8d3056 | 368 | 7 - debug |
6fc7e938 SG |
369 | 8 - debug content |
370 | 9 - debug hardware I/O | |
4d8d3056 | 371 | |
7b6c34cb HS |
372 | config SPL_LOG_CONSOLE |
373 | bool "Allow log output to the console in SPL" | |
374 | default y | |
f0b05c95 | 375 | help |
7b6c34cb HS |
376 | Enables a log driver which writes log records to the console. |
377 | Generally the console is the serial port or LCD display. Only the | |
378 | log message is shown - other details like level, category, file and | |
379 | line number are omitted. | |
380 | ||
381 | endif | |
382 | ||
383 | config TPL_LOG | |
384 | bool "Enable logging support in TPL" | |
385 | depends on LOG | |
386 | help | |
387 | This enables support for logging of status and debug messages. These | |
388 | can be displayed on the console, recorded in a memory buffer, or | |
389 | discarded if not needed. Logging supports various categories and | |
390 | levels of severity. | |
391 | ||
392 | if TPL_LOG | |
393 | ||
394 | config TPL_LOG_MAX_LEVEL | |
395 | int "Maximum log level to record in TPL" | |
396 | depends on TPL_LOG | |
397 | default 3 | |
398 | range 0 9 | |
399 | help | |
400 | This selects the maximum log level that will be recorded. Any value | |
401 | higher than this will be ignored. If possible log statements below | |
402 | this level will be discarded at build time. Levels: | |
f0b05c95 SG |
403 | |
404 | 0 - emergency | |
405 | 1 - alert | |
406 | 2 - critical | |
407 | 3 - error | |
408 | 4 - warning | |
409 | 5 - note | |
410 | 6 - info | |
411 | 7 - debug | |
412 | 8 - debug content | |
413 | 9 - debug hardware I/O | |
414 | ||
4d8d3056 | 415 | config TPL_LOG_CONSOLE |
54b6abae | 416 | bool "Allow log output to the console in TPL" |
c6d47535 SG |
417 | default y |
418 | help | |
419 | Enables a log driver which writes log records to the console. | |
420 | Generally the console is the serial port or LCD display. Only the | |
421 | log message is shown - other details like level, category, file and | |
422 | line number are omitted. | |
423 | ||
7b6c34cb | 424 | endif |
ef11ed82 | 425 | |
3707c6ee SG |
426 | config LOG_ERROR_RETURN |
427 | bool "Log all functions which return an error" | |
3707c6ee SG |
428 | help |
429 | When an error is returned in U-Boot it is sometimes difficult to | |
f7597730 | 430 | figure out the root cause. For example, reading from SPI flash may |
3707c6ee SG |
431 | fail due to a problem in the SPI controller or due to the flash part |
432 | not returning the expected information. This option changes | |
433 | log_ret() to log any errors it sees. With this option disabled, | |
434 | log_ret() is a nop. | |
435 | ||
436 | You can add log_ret() to all functions which return an error code. | |
437 | ||
7b6c34cb HS |
438 | config LOG_TEST |
439 | bool "Provide a test for logging" | |
440 | depends on UNIT_TEST | |
441 | default y if SANDBOX | |
442 | help | |
443 | This enables a 'log test' command to test logging. It is normally | |
444 | executed from a pytest and simply outputs logging information | |
445 | in various different ways to test that the logging system works | |
446 | correctly with various settings. | |
447 | ||
448 | endif | |
449 | ||
e9c8d49d SG |
450 | endmenu |
451 | ||
7df39e5b SG |
452 | menu "Init options" |
453 | ||
a4c4ecf4 SG |
454 | config BOARD_TYPES |
455 | bool "Call get_board_type() to get and display the board type" | |
456 | help | |
457 | If this option is enabled, checkboard() will call get_board_type() | |
458 | to get a string containing the board type and this will be | |
459 | displayed immediately after the model is shown on the console | |
460 | early in boot. | |
461 | ||
19a97475 LV |
462 | config DISPLAY_CPUINFO |
463 | bool "Display information about the CPU during start up" | |
f31414a0 | 464 | default y if ARC|| ARM || NIOS2 || X86 || XTENSA || M68K |
19a97475 LV |
465 | help |
466 | Display information about the CPU that U-Boot is running on | |
467 | when U-Boot starts up. The function print_cpuinfo() is called | |
468 | to do this. | |
469 | ||
84351792 | 470 | config DISPLAY_BOARDINFO |
78eba69d | 471 | bool "Display information about the board during early start up" |
f31414a0 | 472 | default y if ARC || ARM || M68K || MIPS || PPC || SANDBOX || XTENSA |
84351792 LV |
473 | help |
474 | Display information about the board that U-Boot is running on | |
475 | when U-Boot starts up. The board function checkboard() is called | |
476 | to do this. | |
477 | ||
78eba69d MS |
478 | config DISPLAY_BOARDINFO_LATE |
479 | bool "Display information about the board during late start up" | |
480 | help | |
481 | Display information about the board that U-Boot is running on after | |
482 | the relocation phase. The board function checkboard() is called to do | |
483 | this. | |
484 | ||
a421192f SG |
485 | menu "Start-up hooks" |
486 | ||
487 | config ARCH_EARLY_INIT_R | |
488 | bool "Call arch-specific init soon after relocation" | |
a421192f SG |
489 | help |
490 | With this option U-Boot will call arch_early_init_r() soon after | |
491 | relocation. Driver model is running by this point, and the cache | |
492 | is on. Note that board_early_init_r() is called first, if | |
493 | enabled. This can be used to set up architecture-specific devices. | |
494 | ||
4585601a SG |
495 | config ARCH_MISC_INIT |
496 | bool "Call arch-specific init after relocation, when console is ready" | |
497 | help | |
498 | With this option U-Boot will call arch_misc_init() after | |
499 | relocation to allow miscellaneous arch-dependent initialisation | |
500 | to be performed. This function should be defined by the board | |
f7597730 | 501 | and will be called after the console is set up, after relocation. |
4585601a | 502 | |
a5d67547 SG |
503 | config BOARD_EARLY_INIT_F |
504 | bool "Call board-specific init before relocation" | |
a5d67547 SG |
505 | help |
506 | Some boards need to perform initialisation as soon as possible | |
507 | after boot. With this option, U-Boot calls board_early_init_f() | |
508 | after driver model is ready in the pre-relocation init sequence. | |
509 | Note that the normal serial console is not yet set up, but the | |
510 | debug UART will be available if enabled. | |
511 | ||
02ddc147 MS |
512 | config BOARD_EARLY_INIT_R |
513 | bool "Call board-specific init after relocation" | |
514 | help | |
515 | Some boards need to perform initialisation as directly after | |
516 | relocation. With this option, U-Boot calls board_early_init_r() | |
517 | in the post-relocation init sequence. | |
518 | ||
7e349e96 SG |
519 | config BOARD_LATE_INIT |
520 | bool "Execute Board late init" | |
521 | help | |
522 | Sometimes board require some initialization code that might | |
523 | require once the actual init done, example saving board specific env, | |
524 | boot-modes etc. which eventually done at late. | |
525 | ||
526 | So this config enable the late init code with the help of board_late_init | |
527 | function which should defined on respective boards. | |
528 | ||
2aeb22d9 MS |
529 | config LAST_STAGE_INIT |
530 | bool "Call board-specific as last setup step" | |
531 | help | |
532 | Some boards need to perform initialisation immediately before control | |
533 | is passed to the command-line interpreter (e.g. for initializations | |
534 | that depend on later phases in the init sequence). With this option, | |
535 | U-Boot calls last_stage_init() before the command-line interpreter is | |
536 | started. | |
537 | ||
48f45455 SG |
538 | config MISC_INIT_F |
539 | bool "Execute pre-relocation misc init" | |
540 | help | |
541 | Enabling this option calls the 'misc_init_f' function in the init | |
542 | sequence just before DRAM is inited. | |
543 | ||
7e349e96 SG |
544 | config MISC_INIT_R |
545 | bool "Execute Misc Init" | |
546 | default y if ARCH_KEYSTONE || ARCH_SUNXI || MPC85xx | |
547 | default y if ARCH_OMAP2PLUS && !AM33XX | |
548 | help | |
549 | Enabling this option calls 'misc_init_r' function | |
550 | ||
d7d40f61 TR |
551 | config ID_EEPROM |
552 | bool "Enable I2C connected system identifier EEPROM" | |
553 | help | |
554 | A number of different systems and vendors enable a vendor-specified | |
555 | EEPROM that contains various identifying features. | |
556 | ||
98bf46f7 OP |
557 | config PCI_INIT_R |
558 | bool "Enumerate PCI buses during init" | |
559 | depends on PCI | |
98bf46f7 OP |
560 | help |
561 | With this option U-Boot will call pci_init() soon after relocation, | |
562 | which will enumerate PCI buses. This is needed, for instance, in the | |
563 | case of DM PCI-based Ethernet devices, which will not be detected | |
564 | without having the enumeration performed earlier. | |
565 | ||
a421192f SG |
566 | endmenu |
567 | ||
38663136 SG |
568 | endmenu # Init options |
569 | ||
d70f919e SG |
570 | menu "Security support" |
571 | ||
572 | config HASH | |
573 | bool # "Support hashing API (SHA1, SHA256, etc.)" | |
574 | help | |
575 | This provides a way to hash data in memory using various supported | |
576 | algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h | |
577 | and the algorithms it supports are defined in common/hash.c. See | |
578 | also CMD_HASH for command-line access. | |
579 | ||
b0aa74a2 IO |
580 | config AVB_VERIFY |
581 | bool "Build Android Verified Boot operations" | |
e61b4151 | 582 | depends on LIBAVB |
9c3808de | 583 | depends on MMC |
87c814d4 | 584 | depends on PARTITION_UUIDS |
b0aa74a2 IO |
585 | help |
586 | This option enables compilation of bootloader-dependent operations, | |
587 | used by Android Verified Boot 2.0 library (libavb). Includes: | |
588 | * Helpers to process strings in order to build OS bootargs. | |
589 | * Helpers to access MMC, similar to drivers/fastboot/fb_mmc.c. | |
590 | * Helpers to alloc/init/free avb ops. | |
591 | ||
e61b4151 UA |
592 | if AVB_VERIFY |
593 | ||
594 | config AVB_BUF_ADDR | |
595 | hex "Define AVB buffer address" | |
596 | default FASTBOOT_BUF_ADDR | |
597 | help | |
598 | AVB requires a buffer for memory transactions. This variable defines the | |
599 | buffer address. | |
600 | ||
601 | config AVB_BUF_SIZE | |
602 | hex "Define AVB buffer SIZE" | |
603 | default FASTBOOT_BUF_SIZE | |
604 | help | |
605 | AVB requires a buffer for memory transactions. This variable defines the | |
606 | buffer size. | |
607 | ||
608 | endif # AVB_VERIFY | |
609 | ||
166363f2 JRO |
610 | config SCP03 |
611 | bool "Build SCP03 - Secure Channel Protocol O3 - controls" | |
612 | depends on OPTEE || SANDBOX | |
613 | depends on TEE | |
614 | help | |
615 | This option allows U-Boot to enable and or provision SCP03 on an OPTEE | |
616 | controlled Secured Element. | |
617 | ||
c0126bd8 SG |
618 | config SPL_HASH |
619 | bool # "Support hashing API (SHA1, SHA256, etc.)" | |
620 | help | |
621 | This provides a way to hash data in memory using various supported | |
622 | algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h | |
623 | and the algorithms it supports are defined in common/hash.c. See | |
624 | also CMD_HASH for command-line access. | |
625 | ||
626 | config TPL_HASH | |
627 | bool # "Support hashing API (SHA1, SHA256, etc.)" | |
628 | help | |
629 | This provides a way to hash data in memory using various supported | |
630 | algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h | |
631 | and the algorithms it supports are defined in common/hash.c. See | |
632 | also CMD_HASH for command-line access. | |
633 | ||
4e9bce12 JP |
634 | config STACKPROTECTOR |
635 | bool "Stack Protector buffer overflow detection" | |
4e9bce12 JP |
636 | help |
637 | Enable stack smash detection through compiler's stack-protector | |
638 | canary logic | |
639 | ||
640 | config SPL_STACKPROTECTOR | |
641 | bool "Stack Protector buffer overflow detection for SPL" | |
642 | depends on STACKPROTECTOR && SPL | |
4e9bce12 JP |
643 | |
644 | config TPL_STACKPROTECTOR | |
645 | bool "Stack Protector buffer overflow detection for TPL" | |
646 | depends on STACKPROTECTOR && TPL | |
4e9bce12 | 647 | |
d70f919e SG |
648 | endmenu |
649 | ||
b254c529 MV |
650 | menu "Update support" |
651 | ||
3149e524 AT |
652 | config UPDATE_COMMON |
653 | bool | |
3149e524 AT |
654 | select DFU_WRITE_ALT |
655 | ||
b254c529 MV |
656 | config UPDATE_TFTP |
657 | bool "Auto-update using fitImage via TFTP" | |
658 | depends on FIT | |
3149e524 | 659 | select UPDATE_COMMON |
b254c529 MV |
660 | help |
661 | This option allows performing update of NOR with data in fitImage | |
662 | sent via TFTP boot. | |
663 | ||
664 | config UPDATE_TFTP_CNT_MAX | |
665 | int "The number of connection retries during auto-update" | |
666 | default 0 | |
667 | depends on UPDATE_TFTP | |
668 | ||
669 | config UPDATE_TFTP_MSEC_MAX | |
670 | int "Delay in mSec to wait for the TFTP server during auto-update" | |
671 | default 100 | |
672 | depends on UPDATE_TFTP | |
673 | ||
3149e524 AT |
674 | config UPDATE_FIT |
675 | bool "Firmware update using fitImage" | |
676 | depends on FIT | |
677 | depends on DFU | |
678 | select UPDATE_COMMON | |
679 | help | |
680 | This option allows performing update of DFU-capable storage with | |
681 | data in fitImage. | |
682 | ||
d65e8da9 RT |
683 | config ANDROID_AB |
684 | bool "Android A/B updates" | |
d65e8da9 RT |
685 | help |
686 | If enabled, adds support for the new Android A/B update model. This | |
687 | allows the bootloader to select which slot to boot from based on the | |
688 | information provided by userspace via the Android boot_ctrl HAL. This | |
689 | allows a bootloader to try a new version of the system but roll back | |
690 | to previous version if the new one didn't boot all the way. | |
691 | ||
b254c529 MV |
692 | endmenu |
693 | ||
9f407d4e SG |
694 | menu "Blob list" |
695 | ||
696 | config BLOBLIST | |
697 | bool "Support for a bloblist" | |
698 | help | |
699 | This enables support for a bloblist in U-Boot, which can be passed | |
700 | from TPL to SPL to U-Boot proper (and potentially to Linux). The | |
701 | blob list supports multiple binary blobs of data, each with a tag, | |
702 | so that different U-Boot components can store data which can survive | |
703 | through to the next stage of the boot. | |
704 | ||
705 | config SPL_BLOBLIST | |
706 | bool "Support for a bloblist in SPL" | |
707 | depends on BLOBLIST | |
708 | default y if SPL | |
709 | help | |
710 | This enables a bloblist in SPL. If this is the first part of U-Boot | |
711 | to run, then the bloblist is set up in SPL and passed to U-Boot | |
712 | proper. If TPL also has a bloblist, then SPL uses the one from there. | |
713 | ||
714 | config TPL_BLOBLIST | |
715 | bool "Support for a bloblist in TPL" | |
716 | depends on BLOBLIST | |
717 | default y if TPL | |
718 | help | |
719 | This enables a bloblist in TPL. The bloblist is set up in TPL and | |
720 | passed to SPL and U-Boot proper. | |
721 | ||
722 | config BLOBLIST_SIZE | |
723 | hex "Size of bloblist" | |
724 | depends on BLOBLIST | |
725 | default 0x400 | |
726 | help | |
727 | Sets the size of the bloblist in bytes. This must include all | |
728 | overhead (alignment, bloblist header, record header). The bloblist | |
729 | is set up in the first part of U-Boot to run (TPL, SPL or U-Boot | |
730 | proper), and this sane bloblist is used for subsequent stages. | |
731 | ||
732 | config BLOBLIST_ADDR | |
733 | hex "Address of bloblist" | |
734 | depends on BLOBLIST | |
ecc1ed91 | 735 | default 0xc000 if SANDBOX |
9f407d4e SG |
736 | help |
737 | Sets the address of the bloblist, set up by the first part of U-Boot | |
738 | which runs. Subsequent U-Boot stages typically use the same address. | |
739 | ||
9fe06464 SG |
740 | config BLOBLIST_SIZE_RELOC |
741 | hex "Size of bloblist after relocation" | |
742 | depends on BLOBLIST | |
743 | default BLOBLIST_SIZE | |
744 | help | |
745 | Sets the size of the bloblist in bytes after relocation. Since U-Boot | |
746 | has a lot more memory available then, it is possible to use a larger | |
747 | size than the one set up by SPL. This bloblist is set up during the | |
748 | relocation process. | |
749 | ||
9f407d4e SG |
750 | endmenu |
751 | ||
c2ae7d82 | 752 | source "common/spl/Kconfig" |
b983cc2d AT |
753 | |
754 | config IMAGE_SIGN_INFO | |
755 | bool | |
756 | select SHA1 | |
757 | select SHA256 | |
758 | help | |
759 | Enable image_sign_info helper functions. | |
6441164d HS |
760 | |
761 | if IMAGE_SIGN_INFO | |
762 | ||
763 | config SPL_IMAGE_SIGN_INFO | |
764 | bool | |
765 | select SHA1 | |
766 | select SHA256 | |
767 | help | |
768 | Enable image_sign_info helper functions in SPL. | |
769 | ||
770 | endif |