blob: 73e3fe36573da9c9de334b0a98e45af0267f5e67 [file] [log] [blame]
Simon Glass98af8792016-10-17 20:12:35 -06001menu "Console"
2
Tom Rini4880b022016-11-29 09:14:56 -05003config 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
Simon Glass9854a872015-11-08 23:47:48 -07009config CONSOLE_RECORD
10 bool "Console recording"
11 help
12 This provides a way to record console output (and provide console
Robert P. J. Day57247d92016-08-31 12:49:13 -040013 input) through circular buffers. This is mostly useful for testing.
Simon Glass9854a872015-11-08 23:47:48 -070014 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
Ovidiu Panait4e819202020-11-28 10:43:03 +020018config 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
Simon Glass9854a872015-11-08 23:47:48 -070026config 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
Simon Glass8ce465e2021-10-23 17:26:03 -060035config 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
Simon Glass9854a872015-11-08 23:47:48 -070045config 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.
Siva Durga Prasad Paladugu4d255072016-07-19 10:42:22 +053054
Christian Gmeiner83f6f602018-09-10 12:43:16 +020055config DISABLE_CONSOLE
56 bool "Add functionality to disable console completely"
57 help
58 Disable console (in & out).
59
Siva Durga Prasad Paladugua4d88922016-07-29 15:31:47 +053060config 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
Masahiro Yamadab44b3022017-09-16 14:10:40 +090065config LOGLEVEL
66 int "loglevel"
Tom Rini6a3e65d2017-10-04 16:44:30 -040067 default 4
Marek Bykowski2aa69c92020-02-03 11:43:32 +010068 range 0 10
Masahiro Yamadab44b3022017-09-16 14:10:40 +090069 help
70 All Messages with a loglevel smaller than the console loglevel will
71 be compiled in. The loglevels are defined as follows:
72
Simon Glass6fc7e932019-02-16 20:24:34 -070073 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
Masahiro Yamadab44b3022017-09-16 14:10:40 +090083
84config SPL_LOGLEVEL
85 int
Tom Rinib3401992022-06-10 23:03:09 -040086 depends on SPL
Masahiro Yamadab44b3022017-09-16 14:10:40 +090087 default LOGLEVEL
88
Simon Glass4d8d3052018-11-15 18:43:49 -070089config TPL_LOGLEVEL
90 int
Tom Rini8bea4bf2022-06-08 08:24:39 -040091 depends on TPL
Simon Glass4d8d3052018-11-15 18:43:49 -070092 default LOGLEVEL
93
Simon Glass747093d2022-04-30 00:56:53 -060094config VPL_LOGLEVEL
95 int "loglevel for VPL"
Tom Rini13ce3512022-06-08 08:24:40 -040096 depends on VPL
Simon Glass747093d2022-04-30 00:56:53 -060097 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
Simon Glass98af8792016-10-17 20:12:35 -0600104config 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
Chris Packhamf7597732019-01-11 15:30:50 +1300109 setting the environment variable 'silent' to a non-empty value.
Simon Glass98af8792016-10-17 20:12:35 -0600110 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
Simon Glass6e55b112022-10-20 18:22:43 -0600116config SPL_SILENT_CONSOLE
117 bool "Use a silent console in SPL"
118 default y if SILENT_CONSOLE && !SANDBOX
119 help
120 This selects a silent console in SPL. When enabled it drops some
121 output messages. The GD_FLG_SILENT flag is not used in SPL so there
122 is no run-time control of console messages in SPL.
123
124 Future work may allow the SPL console to be silenced completely using
125 this option.
126
127config TPL_SILENT_CONSOLE
128 bool "Use a silent console in TPL"
129 default y if SILENT_CONSOLE && !SANDBOX
130 help
131 This selects a silent console in TPL. When enabled it drops some
132 output messages. The GD_FLG_SILENT flag is not used in TPL so there
133 is no run-time control of console messages in TPL.
134
135 Future work may allow the TPL console to be silenced completely using
136 this option.
137
Simon Glass98af8792016-10-17 20:12:35 -0600138config SILENT_U_BOOT_ONLY
139 bool "Only silence the U-Boot console"
140 depends on SILENT_CONSOLE
141 help
142 Normally when the U-Boot console is silenced, Linux's console is
143 also silenced (assuming the board boots into Linux). This option
144 allows the linux console to operate normally, even if U-Boot's
145 is silenced.
146
147config SILENT_CONSOLE_UPDATE_ON_SET
148 bool "Changes to the 'silent' environment variable update immediately"
149 depends on SILENT_CONSOLE
150 default y if SILENT_CONSOLE
151 help
152 When the 'silent' environment variable is changed, update the
153 console silence flag immediately. This allows 'setenv' to be used
154 to silence or un-silence the console.
155
156 The effect is that any change to the variable will affect the
157 GD_FLG_SILENT flag.
158
159config SILENT_CONSOLE_UPDATE_ON_RELOC
160 bool "Allow flags to take effect on relocation"
161 depends on SILENT_CONSOLE
162 help
163 In some cases the environment is not available until relocation
164 (e.g. NAND). This option makes the value of the 'silent'
165 environment variable take effect at relocation.
166
Harald Seiler33965c72022-07-06 13:19:10 +0200167config SILENT_CONSOLE_UNTIL_ENV
168 bool "Keep console silent until environment is loaded"
169 depends on SILENT_CONSOLE
170 help
171 This option makes sure U-Boot will never use the console unless the
172 environment from flash does not contain the 'silent' variable. If
173 set, the console is kept silent until after the environment was
174 loaded. Use this in combination with PRE_CONSOLE_BUFFER to print out
175 earlier messages after loading the environment when allowed.
176
Simon Glass8f925582016-10-17 20:12:36 -0600177config PRE_CONSOLE_BUFFER
178 bool "Buffer characters before the console is available"
179 help
180 Prior to the console being initialised (i.e. serial UART
181 initialised etc) all console output is silently discarded.
182 Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to
183 buffer any console messages prior to the console being
184 initialised to a buffer. The buffer is a circular buffer, so
185 if it overflows, earlier output is discarded.
186
187 Note that this is not currently supported in SPL. It would be
188 useful to be able to share the pre-console buffer with SPL.
189
190config PRE_CON_BUF_SZ
191 int "Sets the size of the pre-console buffer"
192 depends on PRE_CONSOLE_BUFFER
193 default 4096
194 help
195 The size of the pre-console buffer affects how much console output
196 can be held before it overflows and starts discarding earlier
197 output. Normally there is very little output at this early stage,
198 unless debugging is enabled, so allow enough for ~10 lines of
199 text.
200
201 This is a useful feature if you are using a video console and
202 want to see the full boot output on the console. Without this
203 option only the post-relocation output will be displayed.
204
205config PRE_CON_BUF_ADDR
206 hex "Address of the pre-console buffer"
207 depends on PRE_CONSOLE_BUFFER
208 default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I
209 default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I
Jagan Teki38070172020-01-23 19:42:19 +0530210 default 0x0f000000 if ROCKCHIP_RK3288
Jagan Teki61853a72020-04-02 17:11:23 +0530211 default 0x0f200000 if ROCKCHIP_RK3399
Simon Glass8f925582016-10-17 20:12:36 -0600212 help
213 This sets the start address of the pre-console buffer. This must
214 be in available memory and is accessed before relocation and
215 possibly before DRAM is set up. Therefore choose an address
216 carefully.
217
218 We should consider removing this option and allocating the memory
219 in board_init_f_init_reserve() instead.
220
Pali Rohár974f4832022-09-05 11:31:17 +0200221config CONSOLE_FLUSH_SUPPORT
222 bool "Enable console flush support"
223 default y
224 help
225 This enables compilation of flush() function for console flush support.
226
Simon Glassef26d602016-10-17 20:12:37 -0600227config CONSOLE_MUX
228 bool "Enable console multiplexing"
Simon Glassb86986c2022-10-18 07:46:31 -0600229 default y if VIDEO || VIDEO || LCD
Simon Glassef26d602016-10-17 20:12:37 -0600230 help
231 This allows multiple devices to be used for each console 'file'.
232 For example, stdout can be set to go to serial and video.
233 Similarly, stdin can be set to come from serial and keyboard.
234 Input can be provided from either source. Console multiplexing
235 adds a small amount of size to U-Boot. Changes to the environment
236 variables stdout, stdin and stderr will take effect immediately.
237
238config SYS_CONSOLE_IS_IN_ENV
239 bool "Select console devices from the environment"
240 default y if CONSOLE_MUX
241 help
242 This allows multiple input/output devices to be set at boot time.
Anatolij Gustschinde99e772021-10-04 16:04:32 +0200243 For example, if stdout is set to "serial,vidconsole" then output
244 will be sent to both the serial and video devices on boot. The
Simon Glassef26d602016-10-17 20:12:37 -0600245 environment variables can be updated after boot to change the
246 input/output devices.
247
Simon Glass84f2a5d2016-10-17 20:12:59 -0600248config SYS_CONSOLE_OVERWRITE_ROUTINE
249 bool "Allow board control over console overwriting"
250 help
251 If this is enabled, and the board-specific function
252 overwrite_console() returns 1, the stdin, stderr and stdout are
253 switched to the serial port, else the settings in the environment
254 are used. If this is not enabled, the console will not be switched
255 to serial.
256
Simon Glass3505bc52016-10-17 20:12:58 -0600257config SYS_CONSOLE_ENV_OVERWRITE
258 bool "Update environment variables during console init"
259 help
260 The console environment variables (stdout, stdin, stderr) can be
261 used to determine the correct console devices on start-up. This
262 option writes the console devices to these variables on console
263 start-up (after relocation). This causes the environment to be
264 updated to match the console devices actually chosen.
265
Simon Glassf3f3eff2016-10-17 20:13:00 -0600266config SYS_CONSOLE_INFO_QUIET
267 bool "Don't display the console devices on boot"
268 help
269 Normally U-Boot displays the current settings for stdout, stdin
270 and stderr on boot when the post-relocation console is set up.
Chris Packhamf7597732019-01-11 15:30:50 +1300271 Enable this option to suppress this output. It can be obtained by
Simon Glassf3f3eff2016-10-17 20:13:00 -0600272 calling stdio_print_current_devices() from board code.
273
Simon Glass869588d2016-10-17 20:13:02 -0600274config SYS_STDIO_DEREGISTER
275 bool "Allow deregistering stdio devices"
276 default y if USB_KEYBOARD
277 help
278 Generally there is no need to deregister stdio devices since they
279 are never deactivated. But if a stdio device is used which can be
280 removed (for example a USB keyboard) then this option can be
281 enabled to ensure this is handled correctly.
282
Simon Glass7e156382020-08-11 11:23:36 -0600283config SPL_SYS_STDIO_DEREGISTER
284 bool "Allow deregistering stdio devices in SPL"
285 help
286 Generally there is no need to deregister stdio devices since they
287 are never deactivated. But if a stdio device is used which can be
288 removed (for example a USB keyboard) then this option can be
289 enabled to ensure this is handled correctly. This is very rarely
290 needed in SPL.
291
292config SYS_DEVICE_NULLDEV
293 bool "Enable a null device for stdio"
Simon Glass3ca06092020-08-11 11:23:37 -0600294 default y if SPLASH_SCREEN || SYS_STDIO_DEREGISTER
Simon Glass7e156382020-08-11 11:23:36 -0600295 help
296 Enable creation of a "nulldev" stdio device. This allows silent
297 operation of the console by setting stdout to "nulldev". Enable
298 this to use a serial console under board control.
299
Simon Glass98af8792016-10-17 20:12:35 -0600300endmenu
301
Simon Glasse9c8d492017-12-04 13:48:24 -0700302menu "Logging"
303
304config LOG
305 bool "Enable logging support"
Michal Simek563273d2018-07-23 15:55:11 +0200306 depends on DM
Simon Glasse9c8d492017-12-04 13:48:24 -0700307 help
308 This enables support for logging of status and debug messages. These
309 can be displayed on the console, recorded in a memory buffer, or
310 discarded if not needed. Logging supports various categories and
311 levels of severity.
312
Heinrich Schuchardt7b6c34c2020-05-31 15:34:22 +0200313if LOG
Simon Glasse9c8d492017-12-04 13:48:24 -0700314
315config LOG_MAX_LEVEL
316 int "Maximum log level to record"
Heinrich Schuchardt7b6c34c2020-05-31 15:34:22 +0200317 default 6
318 range 0 9
Simon Glass4d8d3052018-11-15 18:43:49 -0700319 help
320 This selects the maximum log level that will be recorded. Any value
321 higher than this will be ignored. If possible log statements below
322 this level will be discarded at build time. Levels:
323
Simon Glass6fc7e932019-02-16 20:24:34 -0700324 0 - emergency
325 1 - alert
326 2 - critical
327 3 - error
328 4 - warning
329 5 - note
330 6 - info
Simon Glass4d8d3052018-11-15 18:43:49 -0700331 7 - debug
Simon Glass6fc7e932019-02-16 20:24:34 -0700332 8 - debug content
333 9 - debug hardware I/O
Simon Glass4d8d3052018-11-15 18:43:49 -0700334
Simon Glassf0b05c92019-02-16 20:24:35 -0700335config LOG_DEFAULT_LEVEL
336 int "Default logging level to display"
Heinrich Schuchardt7b6c34c2020-05-31 15:34:22 +0200337 default LOG_MAX_LEVEL
338 range 0 LOG_MAX_LEVEL
Simon Glassf0b05c92019-02-16 20:24:35 -0700339 help
340 This is the default logging level set when U-Boot starts. It can
341 be adjusted later using the 'log level' command. Note that setting
Andy Shevchenko69264f42019-06-12 15:35:24 +0300342 this to a value above LOG_MAX_LEVEL will be ineffective, since the
Simon Glassf0b05c92019-02-16 20:24:35 -0700343 higher levels are not compiled in to U-Boot.
344
345 0 - emergency
346 1 - alert
347 2 - critical
348 3 - error
349 4 - warning
350 5 - note
351 6 - info
352 7 - debug
353 8 - debug content
354 9 - debug hardware I/O
355
Simon Glassc6d47532017-12-04 13:48:25 -0700356config LOG_CONSOLE
357 bool "Allow log output to the console"
Simon Glassc6d47532017-12-04 13:48:25 -0700358 default y
359 help
360 Enables a log driver which writes log records to the console.
361 Generally the console is the serial port or LCD display. Only the
362 log message is shown - other details like level, category, file and
363 line number are omitted.
364
Heinrich Schuchardt3c21d772020-06-17 21:52:44 +0200365config LOGF_FILE
366 bool "Show source file name in log messages by default"
367 help
368 Show the source file name in log messages by default. This value
369 can be overridden using the 'log format' command.
370
371config LOGF_LINE
372 bool "Show source line number in log messages by default"
373 help
374 Show the source line number in log messages by default. This value
375 can be overridden using the 'log format' command.
376
377config LOGF_FUNC
378 bool "Show function name in log messages by default"
379 help
380 Show the function name in log messages by default. This value can
381 be overridden using the 'log format' command.
382
Simon Glass72fa1ad2021-07-05 16:33:00 -0600383config LOGF_FUNC_PAD
384 int "Number of characters to use for function"
385 default 20
386 help
387 Sets the field width to use when showing the function. Set this to
388 a larger value if you have lots of long function names, and want
389 things to line up.
390
Heinrich Schuchardtbefadde2020-02-26 21:48:16 +0100391config LOG_SYSLOG
392 bool "Log output to syslog server"
Heinrich Schuchardt7b6c34c2020-05-31 15:34:22 +0200393 depends on NET
Heinrich Schuchardtbefadde2020-02-26 21:48:16 +0100394 help
395 Enables a log driver which broadcasts log records via UDP port 514
396 to syslog servers.
397
Heinrich Schuchardt7b6c34c2020-05-31 15:34:22 +0200398config SPL_LOG
399 bool "Enable logging support in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400400 depends on LOG && SPL
Simon Glassef11ed82017-12-04 13:48:27 -0700401 help
Heinrich Schuchardt7b6c34c2020-05-31 15:34:22 +0200402 This enables support for logging of status and debug messages. These
403 can be displayed on the console, recorded in a memory buffer, or
404 discarded if not needed. Logging supports various categories and
405 levels of severity.
406
407if SPL_LOG
408
409config SPL_LOG_MAX_LEVEL
410 int "Maximum log level to record in SPL"
411 depends on SPL_LOG
412 default 3
413 range 0 9
414 help
415 This selects the maximum log level that will be recorded. Any value
416 higher than this will be ignored. If possible log statements below
417 this level will be discarded at build time. Levels:
418
419 0 - emergency
420 1 - alert
421 2 - critical
422 3 - error
423 4 - warning
424 5 - note
425 6 - info
426 7 - debug
427 8 - debug content
428 9 - debug hardware I/O
429
430config SPL_LOG_CONSOLE
431 bool "Allow log output to the console in SPL"
432 default y
433 help
434 Enables a log driver which writes log records to the console.
435 Generally the console is the serial port or LCD display. Only the
436 log message is shown - other details like level, category, file and
437 line number are omitted.
438
439endif
440
441config TPL_LOG
442 bool "Enable logging support in TPL"
Tom Rini8bea4bf2022-06-08 08:24:39 -0400443 depends on LOG && TPL
Heinrich Schuchardt7b6c34c2020-05-31 15:34:22 +0200444 help
445 This enables support for logging of status and debug messages. These
446 can be displayed on the console, recorded in a memory buffer, or
447 discarded if not needed. Logging supports various categories and
448 levels of severity.
449
450if TPL_LOG
451
452config TPL_LOG_MAX_LEVEL
453 int "Maximum log level to record in TPL"
454 depends on TPL_LOG
455 default 3
456 range 0 9
457 help
458 This selects the maximum log level that will be recorded. Any value
459 higher than this will be ignored. If possible log statements below
460 this level will be discarded at build time. Levels:
461
462 0 - emergency
463 1 - alert
464 2 - critical
465 3 - error
466 4 - warning
467 5 - note
468 6 - info
469 7 - debug
470 8 - debug content
471 9 - debug hardware I/O
472
473config TPL_LOG_CONSOLE
474 bool "Allow log output to the console in TPL"
475 default y
476 help
477 Enables a log driver which writes log records to the console.
478 Generally the console is the serial port or LCD display. Only the
479 log message is shown - other details like level, category, file and
480 line number are omitted.
481
482endif
Simon Glassef11ed82017-12-04 13:48:27 -0700483
Simon Glass747093d2022-04-30 00:56:53 -0600484config VPL_LOG
485 bool "Enable logging support in VPL"
Tom Rini13ce3512022-06-08 08:24:40 -0400486 depends on LOG && VPL
Simon Glass747093d2022-04-30 00:56:53 -0600487 help
488 This enables support for logging of status and debug messages. These
489 can be displayed on the console, recorded in a memory buffer, or
490 discarded if not needed. Logging supports various categories and
491 levels of severity.
492
493if VPL_LOG
494
495config VPL_LOG_MAX_LEVEL
496 int "Maximum log level to record in VPL"
497 default 3
498 help
499 This selects the maximum log level that will be recorded. Any value
500 higher than this will be ignored. If possible log statements below
501 this level will be discarded at build time. Levels:
502
503 0 - emergency
504 1 - alert
505 2 - critical
506 3 - error
507 4 - warning
508 5 - note
509 6 - info
510 7 - debug
511 8 - debug content
512 9 - debug hardware I/O
513
514config VPL_LOG_CONSOLE
515 bool "Allow log output to the console in VPL"
516 default y
517 help
518 Enables a log driver which writes log records to the console.
519 Generally the console is the serial port or LCD display. Only the
520 log message is shown - other details like level, category, file and
521 line number are omitted.
522
523endif
524
Simon Glass3707c6e2017-12-28 13:14:23 -0700525config LOG_ERROR_RETURN
526 bool "Log all functions which return an error"
Simon Glass3707c6e2017-12-28 13:14:23 -0700527 help
528 When an error is returned in U-Boot it is sometimes difficult to
Chris Packhamf7597732019-01-11 15:30:50 +1300529 figure out the root cause. For example, reading from SPI flash may
Simon Glass3707c6e2017-12-28 13:14:23 -0700530 fail due to a problem in the SPI controller or due to the flash part
531 not returning the expected information. This option changes
532 log_ret() to log any errors it sees. With this option disabled,
533 log_ret() is a nop.
534
535 You can add log_ret() to all functions which return an error code.
536
Heinrich Schuchardt7b6c34c2020-05-31 15:34:22 +0200537config LOG_TEST
538 bool "Provide a test for logging"
539 depends on UNIT_TEST
540 default y if SANDBOX
541 help
542 This enables a 'log test' command to test logging. It is normally
543 executed from a pytest and simply outputs logging information
544 in various different ways to test that the logging system works
545 correctly with various settings.
546
547endif
548
Simon Glasse9c8d492017-12-04 13:48:24 -0700549endmenu
550
Simon Glass7df39e52020-09-10 20:21:21 -0600551menu "Init options"
552
Simon Glassa4c4ecf2020-09-10 20:21:26 -0600553config BOARD_TYPES
554 bool "Call get_board_type() to get and display the board type"
555 help
556 If this option is enabled, checkboard() will call get_board_type()
557 to get a string containing the board type and this will be
558 displayed immediately after the model is shown on the console
559 early in boot.
560
Lokesh Vutla19a97472016-10-08 14:41:44 -0400561config DISPLAY_CPUINFO
562 bool "Display information about the CPU during start up"
Alexey Brodkinf31414a2018-10-02 11:43:28 +0300563 default y if ARC|| ARM || NIOS2 || X86 || XTENSA || M68K
Lokesh Vutla19a97472016-10-08 14:41:44 -0400564 help
565 Display information about the CPU that U-Boot is running on
566 when U-Boot starts up. The function print_cpuinfo() is called
567 to do this.
568
Lokesh Vutla84351792016-10-11 21:33:46 -0400569config DISPLAY_BOARDINFO
Mario Six78eba692018-03-28 14:38:17 +0200570 bool "Display information about the board during early start up"
Alexey Brodkinf31414a2018-10-02 11:43:28 +0300571 default y if ARC || ARM || M68K || MIPS || PPC || SANDBOX || XTENSA
Lokesh Vutla84351792016-10-11 21:33:46 -0400572 help
573 Display information about the board that U-Boot is running on
574 when U-Boot starts up. The board function checkboard() is called
575 to do this.
576
Mario Six78eba692018-03-28 14:38:17 +0200577config DISPLAY_BOARDINFO_LATE
578 bool "Display information about the board during late start up"
579 help
580 Display information about the board that U-Boot is running on after
581 the relocation phase. The board function checkboard() is called to do
582 this.
583
Simon Glassa4211922017-01-23 13:31:19 -0700584menu "Start-up hooks"
585
Stefan Roesec2c69712022-09-02 13:57:48 +0200586config CYCLIC
587 bool "General-purpose cyclic execution mechanism"
588 help
589 This enables a general-purpose cyclic execution infrastructure,
590 to allow "small" (run-time wise) functions to be executed at
591 a specified frequency. Things like LED blinking or watchdog
592 triggering are examples for such tasks.
593
594if CYCLIC
595
596config CYCLIC_MAX_CPU_TIME_US
597 int "Sets the max allowed time for a cyclic function in us"
598 default 1000
599 help
600 The max allowed time for a cyclic function in us. If a functions
601 takes longer than this duration this function will get unregistered
602 automatically.
603
604endif # CYCLIC
605
Simon Glass87a5d1b2022-03-04 08:43:00 -0700606config EVENT
607 bool "General-purpose event-handling mechanism"
608 default y if SANDBOX
609 help
610 This enables sending and processing of events, to allow interested
611 parties to be alerted when something happens. This is an attempt to
Simon Glassf39e5b82022-09-06 20:26:55 -0600612 stem the flow of weak functions, hooks, functions in board_f.c
Simon Glass87a5d1b2022-03-04 08:43:00 -0700613 and board_r.c and the Kconfig options below.
614
615 See doc/develop/event.rst for more information.
616
617if EVENT
618
619config EVENT_DYNAMIC
620 bool "Support event registration at runtime"
621 default y if SANDBOX
622 help
623 Enable this to support adding an event spy at runtime, without adding
624 it to the EVENT_SPy() linker list. This increases code size slightly
625 but provides more flexibility for boards and subsystems that need it.
626
627config EVENT_DEBUG
628 bool "Enable event debugging assistance"
629 default y if SANDBOX
630 help
631 Enable this get usefui features for seeing what is happening with
632 events, such as event-type names. This adds to the code size of
633 U-Boot so can be turned off for production builds.
634
635endif # EVENT
636
Simon Glassa4211922017-01-23 13:31:19 -0700637config ARCH_EARLY_INIT_R
638 bool "Call arch-specific init soon after relocation"
Simon Glassa4211922017-01-23 13:31:19 -0700639 help
640 With this option U-Boot will call arch_early_init_r() soon after
641 relocation. Driver model is running by this point, and the cache
642 is on. Note that board_early_init_r() is called first, if
643 enabled. This can be used to set up architecture-specific devices.
644
Simon Glass45856012017-01-23 13:31:21 -0700645config ARCH_MISC_INIT
646 bool "Call arch-specific init after relocation, when console is ready"
647 help
648 With this option U-Boot will call arch_misc_init() after
649 relocation to allow miscellaneous arch-dependent initialisation
650 to be performed. This function should be defined by the board
Chris Packhamf7597732019-01-11 15:30:50 +1300651 and will be called after the console is set up, after relocation.
Simon Glass45856012017-01-23 13:31:21 -0700652
Simon Glassa5d67542017-01-23 13:31:20 -0700653config BOARD_EARLY_INIT_F
654 bool "Call board-specific init before relocation"
Simon Glassa5d67542017-01-23 13:31:20 -0700655 help
656 Some boards need to perform initialisation as soon as possible
657 after boot. With this option, U-Boot calls board_early_init_f()
658 after driver model is ready in the pre-relocation init sequence.
659 Note that the normal serial console is not yet set up, but the
660 debug UART will be available if enabled.
661
Mario Six02ddc142018-03-28 14:38:15 +0200662config BOARD_EARLY_INIT_R
663 bool "Call board-specific init after relocation"
664 help
665 Some boards need to perform initialisation as directly after
666 relocation. With this option, U-Boot calls board_early_init_r()
667 in the post-relocation init sequence.
668
Tom Rini6d21dd32022-02-25 11:19:47 -0500669config BOARD_POSTCLK_INIT
670 bool "Call board_postclk_init"
671 help
672 Some boards need this to initialize select items, after clocks /
673 timebase and before env / serial.
674
Simon Glass7e349e92020-09-10 20:21:23 -0600675config BOARD_LATE_INIT
676 bool "Execute Board late init"
677 help
678 Sometimes board require some initialization code that might
679 require once the actual init done, example saving board specific env,
680 boot-modes etc. which eventually done at late.
681
682 So this config enable the late init code with the help of board_late_init
683 function which should defined on respective boards.
684
Tom Rini15b4aed2022-03-23 17:20:08 -0400685config CLOCKS
686 bool "Call set_cpu_clk_info"
687 depends on ARM
688
Tom Rini19b40402022-11-19 18:45:16 -0500689config HWCONFIG
690 bool "hwconfig infrastructure"
691 default y if PPC || ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3
692
Tom Riniada261f2021-12-12 22:12:34 -0500693config SYS_FSL_CLK
694 bool
695 depends on ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3 || \
696 (FSL_ESDHC_IMX && (ARCH_MX5 || ARCH_MX6 || ARCH_MX7))
697 default y
698 help
699 Enable to call get_clocks() in board_init_f() for platforms other
700 than PowerPC or M68k. This is a legacy option. If not TARGET_BRPPT2
701
Mario Six2aeb22d2018-03-28 14:38:16 +0200702config LAST_STAGE_INIT
703 bool "Call board-specific as last setup step"
704 help
705 Some boards need to perform initialisation immediately before control
706 is passed to the command-line interpreter (e.g. for initializations
707 that depend on later phases in the init sequence). With this option,
708 U-Boot calls last_stage_init() before the command-line interpreter is
709 started.
710
Simon Glass7e349e92020-09-10 20:21:23 -0600711config MISC_INIT_R
712 bool "Execute Misc Init"
713 default y if ARCH_KEYSTONE || ARCH_SUNXI || MPC85xx
714 default y if ARCH_OMAP2PLUS && !AM33XX
715 help
716 Enabling this option calls 'misc_init_r' function
717
Tom Rini167f6992022-05-12 16:45:08 -0400718config SYS_MALLOC_BOOTPARAMS
719 bool "Malloc a buffer to use for bootparams"
720 help
721 In some cases rather than using a known location to store the
722 bi_boot_params portion of gd we need to allocate it from our malloc pool.
723
724config SYS_BOOTPARAMS_LEN
725 hex "Size of the bootparam buffer to malloc in bytes"
726 depends on SYS_MALLOC_BOOTPARAMS
727 default 0x20000 if MIPS || RCAR_GEN3
728 default 0x10000
729
Tom Rinid7d40f62021-08-17 17:59:41 -0400730config ID_EEPROM
731 bool "Enable I2C connected system identifier EEPROM"
732 help
733 A number of different systems and vendors enable a vendor-specified
734 EEPROM that contains various identifying features.
735
Tom Riniadf13bc2022-08-10 10:29:27 -0400736config SYS_EEPROM_BUS_NUM
737 int "I2C bus number of the system identifier EEPROM"
738 depends on ID_EEPROM
739 default 0
740
741choice
742 prompt "EEPROM starts with 'CCID' or 'NXID'"
743 depends on ID_EEPROM && (PPC || ARCH_LS1021A || FSL_LAYERSCAPE)
744 default SYS_I2C_EEPROM_NXID
745 help
746 Specify if the Freescale / NXP ID EEPROM starts with 'CCID' or 'NXID'
747 ASCII literal string.
748
749config SYS_I2C_EEPROM_CCID
750 bool "EEPROM starts with 'CCID'"
751
752config SYS_I2C_EEPROM_NXID
753 bool "EEPROM starts with 'NXID'"
754
755endchoice
756
Ovidiu Panait98bf46f2020-05-06 20:38:44 +0300757config PCI_INIT_R
758 bool "Enumerate PCI buses during init"
759 depends on PCI
Ovidiu Panait98bf46f2020-05-06 20:38:44 +0300760 help
761 With this option U-Boot will call pci_init() soon after relocation,
762 which will enumerate PCI buses. This is needed, for instance, in the
763 case of DM PCI-based Ethernet devices, which will not be detected
764 without having the enumeration performed earlier.
765
Tom Rini29cc2b52022-03-18 08:38:20 -0400766config RESET_PHY_R
767 bool "Reset ethernet PHY during init"
768 help
769 Implement reset_phy() in board code if required to reset the ethernet
770 PHY.
771
Simon Glassa4211922017-01-23 13:31:19 -0700772endmenu
773
Simon Glass38663132020-09-10 20:21:22 -0600774endmenu # Init options
775
Simon Glassd70f9192017-05-17 09:05:34 -0600776menu "Security support"
777
778config HASH
779 bool # "Support hashing API (SHA1, SHA256, etc.)"
780 help
781 This provides a way to hash data in memory using various supported
782 algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
783 and the algorithms it supports are defined in common/hash.c. See
784 also CMD_HASH for command-line access.
785
Igor Opaniukb0aa74a2018-07-17 14:33:25 +0300786config AVB_VERIFY
787 bool "Build Android Verified Boot operations"
Usama Arife61b4152020-08-11 15:46:03 +0100788 depends on LIBAVB
Heinrich Schuchardt9c3808d2021-01-25 12:17:57 +0100789 depends on MMC
Eugeniu Rosca87c814d2018-08-14 02:43:05 +0200790 depends on PARTITION_UUIDS
Igor Opaniukb0aa74a2018-07-17 14:33:25 +0300791 help
792 This option enables compilation of bootloader-dependent operations,
793 used by Android Verified Boot 2.0 library (libavb). Includes:
794 * Helpers to process strings in order to build OS bootargs.
795 * Helpers to access MMC, similar to drivers/fastboot/fb_mmc.c.
796 * Helpers to alloc/init/free avb ops.
797
Usama Arife61b4152020-08-11 15:46:03 +0100798if AVB_VERIFY
799
800config AVB_BUF_ADDR
801 hex "Define AVB buffer address"
802 default FASTBOOT_BUF_ADDR
803 help
804 AVB requires a buffer for memory transactions. This variable defines the
805 buffer address.
806
807config AVB_BUF_SIZE
808 hex "Define AVB buffer SIZE"
809 default FASTBOOT_BUF_SIZE
810 help
811 AVB requires a buffer for memory transactions. This variable defines the
812 buffer size.
813
814endif # AVB_VERIFY
815
Jorge Ramirez-Ortiz166363f2021-02-14 16:27:23 +0100816config SCP03
817 bool "Build SCP03 - Secure Channel Protocol O3 - controls"
818 depends on OPTEE || SANDBOX
819 depends on TEE
820 help
821 This option allows U-Boot to enable and or provision SCP03 on an OPTEE
822 controlled Secured Element.
823
Simon Glassc0126bd2018-11-06 15:21:28 -0700824config SPL_HASH
825 bool # "Support hashing API (SHA1, SHA256, etc.)"
826 help
827 This provides a way to hash data in memory using various supported
828 algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
829 and the algorithms it supports are defined in common/hash.c. See
830 also CMD_HASH for command-line access.
831
832config TPL_HASH
833 bool # "Support hashing API (SHA1, SHA256, etc.)"
834 help
835 This provides a way to hash data in memory using various supported
836 algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
837 and the algorithms it supports are defined in common/hash.c. See
838 also CMD_HASH for command-line access.
839
Joel Peshkin4e9bce12021-04-11 11:21:58 +0200840config STACKPROTECTOR
841 bool "Stack Protector buffer overflow detection"
Joel Peshkin4e9bce12021-04-11 11:21:58 +0200842 help
843 Enable stack smash detection through compiler's stack-protector
844 canary logic
845
846config SPL_STACKPROTECTOR
847 bool "Stack Protector buffer overflow detection for SPL"
848 depends on STACKPROTECTOR && SPL
Joel Peshkin4e9bce12021-04-11 11:21:58 +0200849
850config TPL_STACKPROTECTOR
851 bool "Stack Protector buffer overflow detection for TPL"
852 depends on STACKPROTECTOR && TPL
Joel Peshkin4e9bce12021-04-11 11:21:58 +0200853
Rasmus Villemoes6dca1d92022-08-22 09:34:23 +0200854config BOARD_RNG_SEED
855 bool "Provide /chosen/rng-seed property to the linux kernel"
856 help
857 Selecting this option requires the board to define a
858 board_rng_seed() function, which should return a buffer
859 which will be used to populate the /chosen/rng-seed property
860 in the device tree for the OS being booted.
861
862 It is up to the board code (and more generally the whole
863 BSP) where and how to store (or generate) such a seed, how
864 to ensure a given seed is only used once, how to create a
865 new seed for use on subsequent boots, and whether or not the
866 kernel should account any entropy from the given seed.
867
Simon Glassd70f9192017-05-17 09:05:34 -0600868endmenu
869
Marek Vasutb254c522018-02-10 16:22:06 +0100870menu "Update support"
871
AKASHI Takahiro3149e522020-10-29 13:47:43 +0900872config UPDATE_COMMON
873 bool
AKASHI Takahiro3149e522020-10-29 13:47:43 +0900874 select DFU_WRITE_ALT
875
Marek Vasutb254c522018-02-10 16:22:06 +0100876config UPDATE_TFTP
877 bool "Auto-update using fitImage via TFTP"
878 depends on FIT
AKASHI Takahiro3149e522020-10-29 13:47:43 +0900879 select UPDATE_COMMON
Marek Vasutb254c522018-02-10 16:22:06 +0100880 help
881 This option allows performing update of NOR with data in fitImage
882 sent via TFTP boot.
883
884config UPDATE_TFTP_CNT_MAX
885 int "The number of connection retries during auto-update"
886 default 0
887 depends on UPDATE_TFTP
888
889config UPDATE_TFTP_MSEC_MAX
890 int "Delay in mSec to wait for the TFTP server during auto-update"
891 default 100
892 depends on UPDATE_TFTP
893
AKASHI Takahiro3149e522020-10-29 13:47:43 +0900894config UPDATE_FIT
895 bool "Firmware update using fitImage"
896 depends on FIT
897 depends on DFU
898 select UPDATE_COMMON
899 help
900 This option allows performing update of DFU-capable storage with
901 data in fitImage.
902
Ruslan Trofymenkod65e8da2019-07-05 15:37:32 +0300903config ANDROID_AB
904 bool "Android A/B updates"
Ruslan Trofymenkod65e8da2019-07-05 15:37:32 +0300905 help
906 If enabled, adds support for the new Android A/B update model. This
907 allows the bootloader to select which slot to boot from based on the
908 information provided by userspace via the Android boot_ctrl HAL. This
909 allows a bootloader to try a new version of the system but roll back
910 to previous version if the new one didn't boot all the way.
911
Marek Vasutb254c522018-02-10 16:22:06 +0100912endmenu
913
Simon Glass9f407d42018-11-15 18:43:50 -0700914menu "Blob list"
915
916config BLOBLIST
917 bool "Support for a bloblist"
918 help
919 This enables support for a bloblist in U-Boot, which can be passed
920 from TPL to SPL to U-Boot proper (and potentially to Linux). The
921 blob list supports multiple binary blobs of data, each with a tag,
922 so that different U-Boot components can store data which can survive
Simon Glass5938d652022-01-12 19:26:21 -0700923 through to the next phase of the boot.
Simon Glass9f407d42018-11-15 18:43:50 -0700924
925config SPL_BLOBLIST
926 bool "Support for a bloblist in SPL"
Simon Glass3c0d5ea2022-04-30 00:56:48 -0600927 depends on BLOBLIST && SPL_LIBGENERIC_SUPPORT && SPL_LIBCOMMON_SUPPORT
Simon Glass9f407d42018-11-15 18:43:50 -0700928 default y if SPL
929 help
930 This enables a bloblist in SPL. If this is the first part of U-Boot
931 to run, then the bloblist is set up in SPL and passed to U-Boot
932 proper. If TPL also has a bloblist, then SPL uses the one from there.
933
934config TPL_BLOBLIST
935 bool "Support for a bloblist in TPL"
Simon Glass3c0d5ea2022-04-30 00:56:48 -0600936 depends on BLOBLIST && TPL_LIBGENERIC_SUPPORT && TPL_LIBCOMMON_SUPPORT
Simon Glass9f407d42018-11-15 18:43:50 -0700937 default y if TPL
938 help
939 This enables a bloblist in TPL. The bloblist is set up in TPL and
940 passed to SPL and U-Boot proper.
941
Simon Glass747093d2022-04-30 00:56:53 -0600942config VPL_BLOBLIST
943 bool "Support for a bloblist in VPL"
944 depends on BLOBLIST && VPL_LIBGENERIC_SUPPORT && VPL_LIBCOMMON_SUPPORT
945 default y if VPL
946 help
947 This enables a bloblist in VPL. The bloblist is set up in VPL and
948 passed to SPL and U-Boot proper.
949
Simon Glassd5b6e912021-11-03 21:09:20 -0600950if BLOBLIST
951
Simon Glass99047f52022-01-12 19:26:22 -0700952choice
953 prompt "Bloblist location"
Simon Glass9f407d42018-11-15 18:43:50 -0700954 help
Simon Glass99047f52022-01-12 19:26:22 -0700955 Select the location of the bloblist, via various means.
956
957config BLOBLIST_FIXED
958 bool "Place bloblist at a fixed address in memory"
959 help
960 Select this to used a fixed memory address for the bloblist. If the
961 bloblist exists at this address from a previous phase, it used as is.
962 If not it is created at this address in U-Boot.
Simon Glass9f407d42018-11-15 18:43:50 -0700963
Simon Glassd5b6e912021-11-03 21:09:20 -0600964config BLOBLIST_ALLOC
965 bool "Allocate bloblist"
966 help
967 Allocate the bloblist using malloc(). This avoids the need to
968 specify a fixed address on systems where this is unknown or can
969 change at runtime.
970
Simon Glass99047f52022-01-12 19:26:22 -0700971endchoice
972
Simon Glass9f407d42018-11-15 18:43:50 -0700973config BLOBLIST_ADDR
974 hex "Address of bloblist"
Simon Glassecc1ed92021-07-05 16:32:48 -0600975 default 0xc000 if SANDBOX
Simon Glass99047f52022-01-12 19:26:22 -0700976 depends on BLOBLIST_FIXED
Simon Glass9f407d42018-11-15 18:43:50 -0700977 help
978 Sets the address of the bloblist, set up by the first part of U-Boot
Simon Glass5938d652022-01-12 19:26:21 -0700979 which runs. Subsequent U-Boot phases typically use the same address.
Simon Glass9f407d42018-11-15 18:43:50 -0700980
Simon Glassd5b6e912021-11-03 21:09:20 -0600981 This is not used if BLOBLIST_ALLOC is selected.
982
Simon Glass99047f52022-01-12 19:26:22 -0700983config BLOBLIST_SIZE
984 hex "Size of bloblist"
985 default 0x400
986 help
987 Sets the size of the bloblist in bytes. This must include all
988 overhead (alignment, bloblist header, record header). The bloblist
989 is set up in the first part of U-Boot to run (TPL, SPL or U-Boot
990 proper), and this sane bloblist is used for subsequent phases.
991
Simon Glass9fe06462021-01-13 20:29:43 -0700992config BLOBLIST_SIZE_RELOC
993 hex "Size of bloblist after relocation"
Simon Glass99047f52022-01-12 19:26:22 -0700994 default BLOBLIST_SIZE if BLOBLIST_FIXED || BLOBLIST_ALLOC
995 default 0 if BLOBLIST_PASSAGE
Simon Glass9fe06462021-01-13 20:29:43 -0700996 help
997 Sets the size of the bloblist in bytes after relocation. Since U-Boot
998 has a lot more memory available then, it is possible to use a larger
999 size than the one set up by SPL. This bloblist is set up during the
1000 relocation process.
1001
Simon Glassd5b6e912021-11-03 21:09:20 -06001002endif # BLOBLIST
1003
Simon Glass99047f52022-01-12 19:26:22 -07001004if SPL_BLOBLIST
1005
1006choice
1007 prompt "Bloblist location in SPL"
1008 help
1009 Select the location of the bloblist, via various means. Typically
1010 you should use the same value for SPL as for U-Boot, since they need
1011 to look in the same place. But if BLOBLIST_ALLOC is used, then a
1012 fresh bloblist will be created each time, since there is no shared
1013 address (between phases) for the bloblist.
1014
1015config SPL_BLOBLIST_FIXED
1016 bool "Place bloblist at a fixed address in memory"
1017 help
1018 Select this to used a fixed memory address for the bloblist. If the
1019 bloblist exists at this address from a previous phase, it used as is.
1020 If not it is created at this address in SPL.
1021
1022config SPL_BLOBLIST_ALLOC
1023 bool "Allocate bloblist"
1024 help
1025 Allocate the bloblist using malloc(). This avoids the need to
1026 specify a fixed address on systems where this is unknown or can
1027 change at runtime.
1028
1029endchoice
1030
1031endif # SPL_BLOBLIST
1032
1033if TPL_BLOBLIST
1034
1035choice
1036 prompt "Bloblist location in TPL"
1037 help
1038 Select the location of the bloblist, via various means. Typically
1039 you should use the same value for SPL as for U-Boot, since they need
1040 to look in the same place. But if BLOBLIST_ALLOC is used, then a
1041 fresh bloblist will be created each time, since there is no shared
1042 address (between phases) for the bloblist.
1043
1044config TPL_BLOBLIST_FIXED
1045 bool "Place bloblist at a fixed address in memory"
1046 help
1047 Select this to used a fixed memory address for the bloblist. If the
1048 bloblist exists at this address from a previous phase, it used as is.
1049 If not it is created at this address in TPL.
1050
1051config TPL_BLOBLIST_ALLOC
1052 bool "Allocate bloblist"
1053 help
1054 Allocate the bloblist using malloc(). This avoids the need to
1055 specify a fixed address on systems where this is unknown or can
1056 change at runtime.
1057
1058endchoice
1059
1060endif # TPL_BLOBLIST
1061
Simon Glass9f407d42018-11-15 18:43:50 -07001062endmenu
1063
Simon Glassc2ae7d82016-09-12 23:18:22 -06001064source "common/spl/Kconfig"
AKASHI Takahirob983cc22020-02-21 15:12:55 +09001065
1066config IMAGE_SIGN_INFO
1067 bool
1068 select SHA1
1069 select SHA256
1070 help
1071 Enable image_sign_info helper functions.
Heinrich Schuchardt64411642020-04-15 18:46:21 +02001072
1073if IMAGE_SIGN_INFO
1074
1075config SPL_IMAGE_SIGN_INFO
1076 bool
1077 select SHA1
1078 select SHA256
1079 help
1080 Enable image_sign_info helper functions in SPL.
1081
Simon Glass5981d612022-10-20 18:23:16 -06001082config VPL_IMAGE_SIGN_INFO
1083 bool
1084 select SHA1
1085 select SHA256
1086 help
1087 Enable image_sign_info helper functions in SPL.
1088
Heinrich Schuchardt64411642020-04-15 18:46:21 +02001089endif
Patrick Delaunayd71587c2021-11-15 16:32:17 +01001090
1091config FDT_SIMPLEFB
1092 bool "FDT tools for simplefb support"
1093 depends on OF_LIBFDT
1094 help
1095 Enable the fdt tools to manage the simple fb nodes in device tree.
1096 These functions can be used by board to indicate to the OS
1097 the presence of the simple frame buffer with associated reserved
1098 memory
Tom Rini68e54042022-11-19 18:45:23 -05001099
1100config IO_TRACE
1101 bool