1menu "Boot timing" 2 3config BOOTSTAGE 4 bool "Boot timing and reporting" 5 help 6 Enable recording of boot time while booting. To use it, insert 7 calls to bootstage_mark() with a suitable BOOTSTAGE_ID from 8 bootstage.h. Only a single entry is recorded for each ID. You can 9 give the entry a name with bootstage_mark_name(). You can also 10 record elapsed time in a particular stage using bootstage_start() 11 before starting and bootstage_accum() when finished. Bootstage will 12 add up all the accumulated time and report it. 13 14 Normally, IDs are defined in bootstage.h but a small number of 15 additional 'user' IDs can be used by passing BOOTSTAGE_ID_ALLOC 16 as the ID. 17 18 Calls to show_boot_progress() will also result in log entries but 19 these will not have names. 20 21config SPL_BOOTSTAGE 22 bool "Boot timing and reported in SPL" 23 depends on BOOTSTAGE 24 help 25 Enable recording of boot time in SPL. To make this visible to U-Boot 26 proper, enable BOOTSTAGE_STASH as well. This will stash the timing 27 information when SPL finishes and load it when U-Boot proper starts 28 up. 29 30config BOOTSTAGE_REPORT 31 bool "Display a detailed boot timing report before booting the OS" 32 depends on BOOTSTAGE 33 help 34 Enable output of a boot time report just before the OS is booted. 35 This shows how long it took U-Boot to go through each stage of the 36 boot process. The report looks something like this: 37 38 Timer summary in microseconds: 39 Mark Elapsed Stage 40 0 0 reset 41 3,575,678 3,575,678 board_init_f start 42 3,575,695 17 arch_cpu_init A9 43 3,575,777 82 arch_cpu_init done 44 3,659,598 83,821 board_init_r start 45 3,910,375 250,777 main_loop 46 29,916,167 26,005,792 bootm_start 47 30,361,327 445,160 start_kernel 48 49config BOOTSTAGE_USER_COUNT 50 int "Number of boot ID numbers available for user use" 51 default 20 52 help 53 This is the number of available user bootstage records. 54 Each time you call bootstage_mark(BOOTSTAGE_ID_ALLOC, ...) 55 a new ID will be allocated from this stash. If you exceed 56 the limit, recording will stop. 57 58config BOOTSTAGE_RECORD_COUNT 59 int "Number of boot stage records to store" 60 default 30 61 help 62 This is the size of the bootstage record list and is the maximum 63 number of bootstage records that can be recorded. 64 65config BOOTSTAGE_FDT 66 bool "Store boot timing information in the OS device tree" 67 depends on BOOTSTAGE 68 help 69 Stash the bootstage information in the FDT. A root 'bootstage' 70 node is created with each bootstage id as a child. Each child 71 has a 'name' property and either 'mark' containing the 72 mark time in microseconds, or 'accum' containing the 73 accumulated time for that bootstage id in microseconds. 74 For example: 75 76 bootstage { 77 154 { 78 name = "board_init_f"; 79 mark = <3575678>; 80 }; 81 170 { 82 name = "lcd"; 83 accum = <33482>; 84 }; 85 }; 86 87 Code in the Linux kernel can find this in /proc/devicetree. 88 89config BOOTSTAGE_STASH 90 bool "Stash the boot timing information in memory before booting OS" 91 depends on BOOTSTAGE 92 help 93 Some OSes do not support device tree. Bootstage can instead write 94 the boot timing information in a binary format at a given address. 95 This happens through a call to bootstage_stash(), typically in 96 the CPU's cleanup_before_linux() function. You can use the 97 'bootstage stash' and 'bootstage unstash' commands to do this on 98 the command line. 99 100config BOOTSTAGE_STASH_ADDR 101 hex "Address to stash boot timing information" 102 default 0 103 help 104 Provide an address which will not be overwritten by the OS when it 105 starts, so that it can read this information when ready. 106 107config BOOTSTAGE_STASH_SIZE 108 hex "Size of boot timing stash region" 109 default 0x1000 110 help 111 This should be large enough to hold the bootstage stash. A value of 112 4096 (4KiB) is normally plenty. 113 114config BOOTSTAGE_PRINTF_TIMESTAMP 115 bool "Support printf timestamp" 116 help 117 Enabling this will support printf timestamp. 118endmenu 119 120menu "Boot media" 121 122config NOR_BOOT 123 bool "Support for booting from NOR flash" 124 depends on NOR 125 help 126 Enabling this will make a U-Boot binary that is capable of being 127 booted via NOR. In this case we will enable certain pinmux early 128 as the ROM only partially sets up pinmux. We also default to using 129 NOR for environment. 130 131config NAND_BOOT 132 bool "Support for booting from NAND flash" 133 default n 134 help 135 Enabling this will make a U-Boot binary that is capable of being 136 booted via NAND flash. This is not a must, some SoCs need this, 137 some not. 138 139config ONENAND_BOOT 140 bool "Support for booting from ONENAND" 141 default n 142 help 143 Enabling this will make a U-Boot binary that is capable of being 144 booted via ONENAND. This is not a must, some SoCs need this, 145 some not. 146 147config QSPI_BOOT 148 bool "Support for booting from QSPI flash" 149 default n 150 help 151 Enabling this will make a U-Boot binary that is capable of being 152 booted via QSPI flash. This is not a must, some SoCs need this, 153 some not. 154 155config SATA_BOOT 156 bool "Support for booting from SATA" 157 default n 158 help 159 Enabling this will make a U-Boot binary that is capable of being 160 booted via SATA. This is not a must, some SoCs need this, 161 some not. 162 163config SD_BOOT 164 bool "Support for booting from SD/EMMC" 165 default n 166 help 167 Enabling this will make a U-Boot binary that is capable of being 168 booted via SD/EMMC. This is not a must, some SoCs need this, 169 some not. 170 171config SPI_BOOT 172 bool "Support for booting from SPI flash" 173 default n 174 help 175 Enabling this will make a U-Boot binary that is capable of being 176 booted via SPI flash. This is not a must, some SoCs need this, 177 some not. 178 179endmenu 180 181config PASS_DEVICE_SERIAL_BY_FDT 182 bool "Pass the device serial number to kernel through devicetree" 183 default y 184 help 185 Enabling this will pass a device serial number to kernel by devicetree 186 "serial-number" properties. 187 188config BOOTDELAY 189 int "delay in seconds before automatically booting" 190 default 2 191 depends on AUTOBOOT 192 help 193 Delay before automatically running bootcmd; 194 set to 0 to autoboot with no delay, but you can stop it by key input. 195 set to -1 to disable autoboot. 196 set to -2 to autoboot with no delay and not check for abort 197 198 See doc/README.autoboot for details. 199 200config USE_BOOTARGS 201 bool "Enable boot arguments" 202 help 203 Provide boot arguments to bootm command. Boot arguments are specified 204 in CONFIG_BOOTARGS option. Enable this option to be able to specify 205 CONFIG_BOOTARGS string. If this option is disabled, CONFIG_BOOTARGS 206 will be undefined and won't take any space in U-Boot image. 207 208config BOOTARGS 209 string "Boot arguments" 210 depends on USE_BOOTARGS 211 help 212 This can be used to pass arguments to the bootm command. The value of 213 CONFIG_BOOTARGS goes into the environment value "bootargs". Note that 214 this value will also override the "chosen" node in FDT blob. 215 216menu "Console" 217 218config MENU 219 bool 220 help 221 This is the library functionality to provide a text-based menu of 222 choices for the user to make choices with. 223 224config CONSOLE_RECORD 225 bool "Console recording" 226 help 227 This provides a way to record console output (and provide console 228 input) through circular buffers. This is mostly useful for testing. 229 Console output is recorded even when the console is silent. 230 To enable console recording, call console_record_reset_enable() 231 from your code. 232 233config CONSOLE_RECORD_OUT_SIZE 234 hex "Output buffer size" 235 depends on CONSOLE_RECORD 236 default 0x400 if CONSOLE_RECORD && !ARCH_ROCKCHIP 237 default 0x2000 if CONSOLE_RECORD && ARCH_ROCKCHIP 238 help 239 Set the size of the console output buffer. When this fills up, no 240 more data will be recorded until some is removed. The buffer is 241 allocated immediately after the malloc() region is ready. 242 243config CONSOLE_RECORD_IN_SIZE 244 hex "Input buffer size" 245 depends on CONSOLE_RECORD 246 default 0x100 if CONSOLE_RECORD 247 help 248 Set the size of the console input buffer. When this contains data, 249 tstc() and getc() will use this in preference to real device input. 250 The buffer is allocated immediately after the malloc() region is 251 ready. 252 253config CONSOLE_DISABLE_CTRLC 254 bool "disable ctrlc" 255 help 256 This disable ctrl+c when CONFIG_BOOTDELAY is 0. 257 258config DISABLE_CONSOLE 259 bool "disable console in & out" 260 help 261 This disable console in & out. 262 263config IDENT_STRING 264 string "Board specific string to be added to uboot version string" 265 help 266 This options adds the board specific name to u-boot version. 267 268config LOGLEVEL 269 int "loglevel" 270 default 4 271 range 0 8 272 help 273 All Messages with a loglevel smaller than the console loglevel will 274 be compiled in. The loglevels are defined as follows: 275 276 0 (KERN_EMERG) system is unusable 277 1 (KERN_ALERT) action must be taken immediately 278 2 (KERN_CRIT) critical conditions 279 3 (KERN_ERR) error conditions 280 4 (KERN_WARNING) warning conditions 281 5 (KERN_NOTICE) normal but significant condition 282 6 (KERN_INFO) informational 283 7 (KERN_DEBUG) debug-level messages 284 285config SPL_LOGLEVEL 286 int 287 default LOGLEVEL 288 289config SILENT_CONSOLE 290 bool "Support a silent console" 291 help 292 This option allows the console to be silenced, meaning that no 293 output will appear on the console devices. This is controlled by 294 setting the environment vaariable 'silent' to a non-empty value. 295 Note this also silences the console when booting Linux. 296 297 When the console is set up, the variable is checked, and the 298 GD_FLG_SILENT flag is set. Changing the environment variable later 299 will update the flag. 300 301config SILENT_U_BOOT_ONLY 302 bool "Only silence the U-Boot console" 303 depends on SILENT_CONSOLE 304 help 305 Normally when the U-Boot console is silenced, Linux's console is 306 also silenced (assuming the board boots into Linux). This option 307 allows the linux console to operate normally, even if U-Boot's 308 is silenced. 309 310config SILENT_CONSOLE_UPDATE_ON_SET 311 bool "Changes to the 'silent' environment variable update immediately" 312 depends on SILENT_CONSOLE 313 default y if SILENT_CONSOLE 314 help 315 When the 'silent' environment variable is changed, update the 316 console silence flag immediately. This allows 'setenv' to be used 317 to silence or un-silence the console. 318 319 The effect is that any change to the variable will affect the 320 GD_FLG_SILENT flag. 321 322config SILENT_CONSOLE_UPDATE_ON_RELOC 323 bool "Allow flags to take effect on relocation" 324 depends on SILENT_CONSOLE 325 help 326 In some cases the environment is not available until relocation 327 (e.g. NAND). This option makes the value of the 'silent' 328 environment variable take effect at relocation. 329 330config PRE_CONSOLE_BUFFER 331 bool "Buffer characters before the console is available" 332 help 333 Prior to the console being initialised (i.e. serial UART 334 initialised etc) all console output is silently discarded. 335 Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to 336 buffer any console messages prior to the console being 337 initialised to a buffer. The buffer is a circular buffer, so 338 if it overflows, earlier output is discarded. 339 340 Note that this is not currently supported in SPL. It would be 341 useful to be able to share the pre-console buffer with SPL. 342 343config PRE_CON_BUF_SZ 344 int "Sets the size of the pre-console buffer" 345 depends on PRE_CONSOLE_BUFFER 346 default 4096 347 help 348 The size of the pre-console buffer affects how much console output 349 can be held before it overflows and starts discarding earlier 350 output. Normally there is very little output at this early stage, 351 unless debugging is enabled, so allow enough for ~10 lines of 352 text. 353 354 This is a useful feature if you are using a video console and 355 want to see the full boot output on the console. Without this 356 option only the post-relocation output will be displayed. 357 358config PRE_CON_BUF_ADDR 359 hex "Address of the pre-console buffer" 360 depends on PRE_CONSOLE_BUFFER 361 default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I 362 default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I 363 help 364 This sets the start address of the pre-console buffer. This must 365 be in available memory and is accessed before relocation and 366 possibly before DRAM is set up. Therefore choose an address 367 carefully. 368 369 We should consider removing this option and allocating the memory 370 in board_init_f_init_reserve() instead. 371 372config CONSOLE_MUX 373 bool "Enable console multiplexing" 374 default y if DM_VIDEO || VIDEO || LCD 375 help 376 This allows multiple devices to be used for each console 'file'. 377 For example, stdout can be set to go to serial and video. 378 Similarly, stdin can be set to come from serial and keyboard. 379 Input can be provided from either source. Console multiplexing 380 adds a small amount of size to U-Boot. Changes to the environment 381 variables stdout, stdin and stderr will take effect immediately. 382 383config SYS_CONSOLE_IS_IN_ENV 384 bool "Select console devices from the environment" 385 default y if CONSOLE_MUX 386 help 387 This allows multiple input/output devices to be set at boot time. 388 For example, if stdout is set to "serial,video" then output will 389 be sent to both the serial and video devices on boot. The 390 environment variables can be updated after boot to change the 391 input/output devices. 392 393config SYS_CONSOLE_OVERWRITE_ROUTINE 394 bool "Allow board control over console overwriting" 395 help 396 If this is enabled, and the board-specific function 397 overwrite_console() returns 1, the stdin, stderr and stdout are 398 switched to the serial port, else the settings in the environment 399 are used. If this is not enabled, the console will not be switched 400 to serial. 401 402config SYS_CONSOLE_ENV_OVERWRITE 403 bool "Update environment variables during console init" 404 help 405 The console environment variables (stdout, stdin, stderr) can be 406 used to determine the correct console devices on start-up. This 407 option writes the console devices to these variables on console 408 start-up (after relocation). This causes the environment to be 409 updated to match the console devices actually chosen. 410 411config SYS_CONSOLE_INFO_QUIET 412 bool "Don't display the console devices on boot" 413 help 414 Normally U-Boot displays the current settings for stdout, stdin 415 and stderr on boot when the post-relocation console is set up. 416 Enable this option to supress this output. It can be obtained by 417 calling stdio_print_current_devices() from board code. 418 419config SYS_STDIO_DEREGISTER 420 bool "Allow deregistering stdio devices" 421 default y if USB_KEYBOARD 422 help 423 Generally there is no need to deregister stdio devices since they 424 are never deactivated. But if a stdio device is used which can be 425 removed (for example a USB keyboard) then this option can be 426 enabled to ensure this is handled correctly. 427 428endmenu 429 430menu "Logging" 431 432config LOG 433 bool "Enable logging support" 434 help 435 This enables support for logging of status and debug messages. These 436 can be displayed on the console, recorded in a memory buffer, or 437 discarded if not needed. Logging supports various categories and 438 levels of severity. 439 440config SPL_LOG 441 bool "Enable logging support in SPL" 442 help 443 This enables support for logging of status and debug messages. These 444 can be displayed on the console, recorded in a memory buffer, or 445 discarded if not needed. Logging supports various categories and 446 levels of severity. 447 448config LOG_MAX_LEVEL 449 int "Maximum log level to record" 450 depends on LOG 451 default 5 452 help 453 This selects the maximum log level that will be recorded. Any value 454 higher than this will be ignored. If possible log statements below 455 this level will be discarded at build time. Levels: 456 457 0 - panic 458 1 - critical 459 2 - error 460 3 - warning 461 4 - note 462 5 - info 463 6 - detail 464 7 - debug 465 466config SPL_LOG_MAX_LEVEL 467 int "Maximum log level to record in SPL" 468 depends on SPL_LOG 469 default 3 470 help 471 This selects the maximum log level that will be recorded. Any value 472 higher than this will be ignored. If possible log statements below 473 this level will be discarded at build time. Levels: 474 475 0 - panic 476 1 - critical 477 2 - error 478 3 - warning 479 4 - note 480 5 - info 481 6 - detail 482 7 - debug 483 484config LOG_CONSOLE 485 bool "Allow log output to the console" 486 depends on LOG 487 default y 488 help 489 Enables a log driver which writes log records to the console. 490 Generally the console is the serial port or LCD display. Only the 491 log message is shown - other details like level, category, file and 492 line number are omitted. 493 494config LOG_SPL_CONSOLE 495 bool "Allow log output to the console in SPL" 496 depends on LOG_SPL 497 default y 498 help 499 Enables a log driver which writes log records to the console. 500 Generally the console is the serial port or LCD display. Only the 501 log message is shown - other details like level, category, file and 502 line number are omitted. 503 504config LOG_TEST 505 bool "Provide a test for logging" 506 depends on LOG 507 default y if SANDBOX 508 help 509 This enables a 'log test' command to test logging. It is normally 510 executed from a pytest and simply outputs logging information 511 in various different ways to test that the logging system works 512 correctly with varoius settings. 513 514endmenu 515 516config DEFAULT_FDT_FILE 517 string "Default fdt file" 518 help 519 This option is used to set the default fdt file to boot OS. 520 521config VERSION_VARIABLE 522 bool "add U-Boot environment variable vers" 523 default n 524 help 525 If this variable is defined, an environment variable 526 named "ver" is created by U-Boot showing the U-Boot 527 version as printed by the "version" command. 528 Any change to this variable will be reverted at the 529 next reset. 530 531config BOARD_LATE_INIT 532 bool 533 help 534 Sometimes board require some initialization code that might 535 require once the actual init done, example saving board specific env, 536 boot-modes etc. which eventually done at late. 537 538 So this config enable the late init code with the help of board_late_init 539 function which should defined on respective boards. 540 541config DISPLAY_CPUINFO 542 bool "Display information about the CPU during start up" 543 default y if ARM || NIOS2 || X86 || XTENSA 544 help 545 Display information about the CPU that U-Boot is running on 546 when U-Boot starts up. The function print_cpuinfo() is called 547 to do this. 548 549config DISPLAY_BOARDINFO 550 bool "Display information about the board during start up" 551 default y if ARM || M68K || MIPS || PPC || SANDBOX || XTENSA 552 help 553 Display information about the board that U-Boot is running on 554 when U-Boot starts up. The board function checkboard() is called 555 to do this. 556 557menu "Start-up hooks" 558 559config ARCH_EARLY_INIT_R 560 bool "Call arch-specific init soon after relocation" 561 help 562 With this option U-Boot will call arch_early_init_r() soon after 563 relocation. Driver model is running by this point, and the cache 564 is on. Note that board_early_init_r() is called first, if 565 enabled. This can be used to set up architecture-specific devices. 566 567config ARCH_MISC_INIT 568 bool "Call arch-specific init after relocation, when console is ready" 569 help 570 With this option U-Boot will call arch_misc_init() after 571 relocation to allow miscellaneous arch-dependent initialisation 572 to be performed. This function should be defined by the board 573 and will be called after the console is set up, after relocaiton. 574 575config BOARD_EARLY_INIT_F 576 bool "Call board-specific init before relocation" 577 help 578 Some boards need to perform initialisation as soon as possible 579 after boot. With this option, U-Boot calls board_early_init_f() 580 after driver model is ready in the pre-relocation init sequence. 581 Note that the normal serial console is not yet set up, but the 582 debug UART will be available if enabled. 583 584config BOARD_EARLY_INIT_R 585 bool "Call board-specific init after relocation" 586 help 587 Some boards need to perform initialisation as directly after 588 relocation. With this option, U-Boot calls board_early_init_r() 589 in the post-relocation init sequence. 590 591endmenu 592config ANDROID_BOOTLOADER 593 bool "Support for Android Bootloader boot flow" 594 default n 595 depends on ANDROID_BOOT_IMAGE 596 help 597 If enabled, adds support to boot an Android device following the 598 Android Bootloader boot flow. This flow requires an Android Bootloader 599 to handle the Android Bootloader Message stored in the Boot Control 600 Block (BCB), normally in the "misc" partition of an Android device. 601 The BCB is used to determine the boot mode of the device (normal mode, 602 recovery mode or bootloader mode) and, if enabled, the slot to boot 603 from in devices with multiple boot slots (A/B devices). 604 605config ANDROID_AB 606 bool "Support for Android A/B updates" 607 default n 608 help 609 If enabled, adds support for the new Android A/B update model. This 610 allows the bootloader to select which slot to boot from based on the 611 information provided by userspace via the Android boot_ctrl HAL. This 612 allows a bootloader to try a new version of the system but roll back 613 to previous version if the new one didn't boot all the way. 614 615config ANDROID_WRITE_KEYBOX 616 bool "Support Write Keybox" 617 default y 618 depends on OPTEE_CLIENT 619 help 620 This enable support write keybox to secure storage. 621 622config ANDROID_AVB 623 bool"Support Android Verified Boot" 624 default n 625 help 626 If enabled, adds support the android verified boot. The avb get the 627 digital signature and key from vemeta. Then use the RSA2048 and sha256 628 to verify the boot images. The vbmeta must be matched with images, 629 if not, verify failed. 630 631config ANDROID_KEYMASTER_CA 632 bool "Support Keymaster CA" 633 default y 634 depends on OPTEE_CLIENT 635 help 636 This enable support read/write data in keymaster. 637 638config ANDROID_BOOT_IMAGE 639 bool "Enable support for Android Boot Images" 640 help 641 This enables support for booting images which use the Android 642 image format header. 643 644config ANDROID_BOOT_IMAGE_HASH 645 bool "Enable support for Android image hash verify" 646 depends on ANDROID_BOOT_IMAGE 647 select SHA1 if !DM_CRYPTO 648 help 649 This enables support for Android image hash verify, the mkbootimg always use 650 SHA1 for images. 651 652config SKIP_RELOCATE_UBOOT 653 bool "Skip U-Boot relocation" 654 help 655 This enable support for skipping U-Boot relocation. 656 657menu "Security support" 658 659config HASH 660 bool # "Support hashing API (SHA1, SHA256, etc.)" 661 help 662 This provides a way to hash data in memory using various supported 663 algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h 664 and the algorithms it supports are defined in common/hash.c. See 665 also CMD_HASH for command-line access. 666 667endmenu 668 669source "common/spl/Kconfig" 670