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 TPL_BOOTSTAGE 31 bool "Boot timing and reported in TPL" 32 depends on BOOTSTAGE 33 help 34 Enable recording of boot time in SPL. To make this visible to U-Boot 35 proper, enable BOOTSTAGE_STASH as well. This will stash the timing 36 information when TPL finishes and load it when U-Boot proper starts 37 up. 38 39config BOOTSTAGE_REPORT 40 bool "Display a detailed boot timing report before booting the OS" 41 depends on BOOTSTAGE 42 help 43 Enable output of a boot time report just before the OS is booted. 44 This shows how long it took U-Boot to go through each stage of the 45 boot process. The report looks something like this: 46 47 Timer summary in microseconds: 48 Mark Elapsed Stage 49 0 0 reset 50 3,575,678 3,575,678 board_init_f start 51 3,575,695 17 arch_cpu_init A9 52 3,575,777 82 arch_cpu_init done 53 3,659,598 83,821 board_init_r start 54 3,910,375 250,777 main_loop 55 29,916,167 26,005,792 bootm_start 56 30,361,327 445,160 start_kernel 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 SPL_BOOTSTAGE_RECORD_COUNT 66 int "Number of boot stage records to store for SPL" 67 default 5 68 help 69 This is the size of the bootstage record list and is the maximum 70 number of bootstage records that can be recorded. 71 72config BOOTSTAGE_FDT 73 bool "Store boot timing information in the OS device tree" 74 depends on BOOTSTAGE 75 help 76 Stash the bootstage information in the FDT. A root 'bootstage' 77 node is created with each bootstage id as a child. Each child 78 has a 'name' property and either 'mark' containing the 79 mark time in microseconds, or 'accum' containing the 80 accumulated time for that bootstage id in microseconds. 81 For example: 82 83 bootstage { 84 154 { 85 name = "board_init_f"; 86 mark = <3575678>; 87 }; 88 170 { 89 name = "lcd"; 90 accum = <33482>; 91 }; 92 }; 93 94 Code in the Linux kernel can find this in /proc/devicetree. 95 96config BOOTSTAGE_STASH 97 bool "Stash the boot timing information in memory before booting OS" 98 depends on BOOTSTAGE 99 help 100 Some OSes do not support device tree. Bootstage can instead write 101 the boot timing information in a binary format at a given address. 102 This happens through a call to bootstage_stash(), typically in 103 the CPU's cleanup_before_linux() function. You can use the 104 'bootstage stash' and 'bootstage unstash' commands to do this on 105 the command line. 106 107config BOOTSTAGE_STASH_ADDR 108 hex "Address to stash boot timing information" 109 default 0 110 help 111 Provide an address which will not be overwritten by the OS when it 112 starts, so that it can read this information when ready. 113 114config BOOTSTAGE_STASH_SIZE 115 hex "Size of boot timing stash region" 116 default 0x1000 117 help 118 This should be large enough to hold the bootstage stash. A value of 119 4096 (4KiB) is normally plenty. 120 121endmenu 122 123menu "Boot media" 124 125config NOR_BOOT 126 bool "Support for booting from NOR flash" 127 depends on NOR 128 help 129 Enabling this will make a U-Boot binary that is capable of being 130 booted via NOR. In this case we will enable certain pinmux early 131 as the ROM only partially sets up pinmux. We also default to using 132 NOR for environment. 133 134config NAND_BOOT 135 bool "Support for booting from NAND flash" 136 default n 137 imply NAND 138 help 139 Enabling this will make a U-Boot binary that is capable of being 140 booted via NAND flash. This is not a must, some SoCs need this, 141 some not. 142 143config ONENAND_BOOT 144 bool "Support for booting from ONENAND" 145 default n 146 imply NAND 147 help 148 Enabling this will make a U-Boot binary that is capable of being 149 booted via ONENAND. This is not a must, some SoCs need this, 150 some not. 151 152config QSPI_BOOT 153 bool "Support for booting from QSPI flash" 154 default n 155 help 156 Enabling this will make a U-Boot binary that is capable of being 157 booted via QSPI flash. This is not a must, some SoCs need this, 158 some not. 159 160config SATA_BOOT 161 bool "Support for booting from SATA" 162 default n 163 help 164 Enabling this will make a U-Boot binary that is capable of being 165 booted via SATA. This is not a must, some SoCs need this, 166 some not. 167 168config SD_BOOT 169 bool "Support for booting from SD/EMMC" 170 default n 171 help 172 Enabling this will make a U-Boot binary that is capable of being 173 booted via SD/EMMC. This is not a must, some SoCs need this, 174 some not. 175 176config SPI_BOOT 177 bool "Support for booting from SPI flash" 178 default n 179 help 180 Enabling this will make a U-Boot binary that is capable of being 181 booted via SPI flash. This is not a must, some SoCs need this, 182 some not. 183 184endmenu 185 186config BOOTDELAY 187 int "delay in seconds before automatically booting" 188 default 2 189 depends on AUTOBOOT 190 help 191 Delay before automatically running bootcmd; 192 set to 0 to autoboot with no delay, but you can stop it by key input. 193 set to -1 to disable autoboot. 194 set to -2 to autoboot with no delay and not check for abort 195 196 If this value is >= 0 then it is also used for the default delay 197 before starting the default entry in bootmenu. If it is < 0 then 198 a default value of 10s is used. 199 200 See doc/README.autoboot for details. 201 202config USE_BOOTARGS 203 bool "Enable boot arguments" 204 help 205 Provide boot arguments to bootm command. Boot arguments are specified 206 in CONFIG_BOOTARGS option. Enable this option to be able to specify 207 CONFIG_BOOTARGS string. If this option is disabled, CONFIG_BOOTARGS 208 will be undefined and won't take any space in U-Boot image. 209 210config BOOTARGS 211 string "Boot arguments" 212 depends on USE_BOOTARGS 213 help 214 This can be used to pass arguments to the bootm command. The value of 215 CONFIG_BOOTARGS goes into the environment value "bootargs". Note that 216 this value will also override the "chosen" node in FDT blob. 217 218config USE_BOOTCOMMAND 219 bool "Enable a default value for bootcmd" 220 help 221 Provide a default value for the bootcmd entry in the environment. If 222 autoboot is enabled this is what will be run automatically. Enable 223 this option to be able to specify CONFIG_BOOTCOMMAND as a string. If 224 this option is disabled, CONFIG_BOOTCOMMAND will be undefined and 225 won't take any space in U-Boot image. 226 227config BOOTCOMMAND 228 string "bootcmd value" 229 depends on USE_BOOTCOMMAND 230 default "run distro_bootcmd" if DISTRO_DEFAULTS 231 help 232 This is the string of commands that will be used as bootcmd and if 233 AUTOBOOT is set, automatically run. 234 235config USE_PREBOOT 236 bool "Enable preboot" 237 help 238 When this option is enabled, the existence of the environment 239 variable "preboot" will be checked immediately before starting the 240 CONFIG_BOOTDELAY countdown and/or running the auto-boot command resp. 241 entering interactive mode. 242 243 This feature is especially useful when "preboot" is automatically 244 generated or modified. For example, the boot code can modify the 245 "preboot" when a user holds down a certain combination of keys. 246 247config PREBOOT 248 string "preboot default value" 249 depends on USE_PREBOOT 250 help 251 This is the default of "preboot" environment variable. 252 253menu "Console" 254 255config MENU 256 bool 257 help 258 This is the library functionality to provide a text-based menu of 259 choices for the user to make choices with. 260 261config CONSOLE_RECORD 262 bool "Console recording" 263 help 264 This provides a way to record console output (and provide console 265 input) through circular buffers. This is mostly useful for testing. 266 Console output is recorded even when the console is silent. 267 To enable console recording, call console_record_reset_enable() 268 from your code. 269 270config CONSOLE_RECORD_OUT_SIZE 271 hex "Output buffer size" 272 depends on CONSOLE_RECORD 273 default 0x400 if CONSOLE_RECORD 274 help 275 Set the size of the console output buffer. When this fills up, no 276 more data will be recorded until some is removed. The buffer is 277 allocated immediately after the malloc() region is ready. 278 279config CONSOLE_RECORD_IN_SIZE 280 hex "Input buffer size" 281 depends on CONSOLE_RECORD 282 default 0x100 if CONSOLE_RECORD 283 help 284 Set the size of the console input buffer. When this contains data, 285 tstc() and getc() will use this in preference to real device input. 286 The buffer is allocated immediately after the malloc() region is 287 ready. 288 289config DISABLE_CONSOLE 290 bool "Add functionality to disable console completely" 291 help 292 Disable console (in & out). 293 294config IDENT_STRING 295 string "Board specific string to be added to uboot version string" 296 help 297 This options adds the board specific name to u-boot version. 298 299config LOGLEVEL 300 int "loglevel" 301 default 4 302 range 0 8 303 help 304 All Messages with a loglevel smaller than the console loglevel will 305 be compiled in. The loglevels are defined as follows: 306 307 0 - emergency 308 1 - alert 309 2 - critical 310 3 - error 311 4 - warning 312 5 - note 313 6 - info 314 7 - debug 315 8 - debug content 316 9 - debug hardware I/O 317 318config SPL_LOGLEVEL 319 int 320 default LOGLEVEL 321 322config TPL_LOGLEVEL 323 int 324 default LOGLEVEL 325 326config SILENT_CONSOLE 327 bool "Support a silent console" 328 help 329 This option allows the console to be silenced, meaning that no 330 output will appear on the console devices. This is controlled by 331 setting the environment variable 'silent' to a non-empty value. 332 Note this also silences the console when booting Linux. 333 334 When the console is set up, the variable is checked, and the 335 GD_FLG_SILENT flag is set. Changing the environment variable later 336 will update the flag. 337 338config SILENT_U_BOOT_ONLY 339 bool "Only silence the U-Boot console" 340 depends on SILENT_CONSOLE 341 help 342 Normally when the U-Boot console is silenced, Linux's console is 343 also silenced (assuming the board boots into Linux). This option 344 allows the linux console to operate normally, even if U-Boot's 345 is silenced. 346 347config SILENT_CONSOLE_UPDATE_ON_SET 348 bool "Changes to the 'silent' environment variable update immediately" 349 depends on SILENT_CONSOLE 350 default y if SILENT_CONSOLE 351 help 352 When the 'silent' environment variable is changed, update the 353 console silence flag immediately. This allows 'setenv' to be used 354 to silence or un-silence the console. 355 356 The effect is that any change to the variable will affect the 357 GD_FLG_SILENT flag. 358 359config SILENT_CONSOLE_UPDATE_ON_RELOC 360 bool "Allow flags to take effect on relocation" 361 depends on SILENT_CONSOLE 362 help 363 In some cases the environment is not available until relocation 364 (e.g. NAND). This option makes the value of the 'silent' 365 environment variable take effect at relocation. 366 367config PRE_CONSOLE_BUFFER 368 bool "Buffer characters before the console is available" 369 help 370 Prior to the console being initialised (i.e. serial UART 371 initialised etc) all console output is silently discarded. 372 Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to 373 buffer any console messages prior to the console being 374 initialised to a buffer. The buffer is a circular buffer, so 375 if it overflows, earlier output is discarded. 376 377 Note that this is not currently supported in SPL. It would be 378 useful to be able to share the pre-console buffer with SPL. 379 380config PRE_CON_BUF_SZ 381 int "Sets the size of the pre-console buffer" 382 depends on PRE_CONSOLE_BUFFER 383 default 4096 384 help 385 The size of the pre-console buffer affects how much console output 386 can be held before it overflows and starts discarding earlier 387 output. Normally there is very little output at this early stage, 388 unless debugging is enabled, so allow enough for ~10 lines of 389 text. 390 391 This is a useful feature if you are using a video console and 392 want to see the full boot output on the console. Without this 393 option only the post-relocation output will be displayed. 394 395config PRE_CON_BUF_ADDR 396 hex "Address of the pre-console buffer" 397 depends on PRE_CONSOLE_BUFFER 398 default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I 399 default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I 400 help 401 This sets the start address of the pre-console buffer. This must 402 be in available memory and is accessed before relocation and 403 possibly before DRAM is set up. Therefore choose an address 404 carefully. 405 406 We should consider removing this option and allocating the memory 407 in board_init_f_init_reserve() instead. 408 409config CONSOLE_MUX 410 bool "Enable console multiplexing" 411 default y if DM_VIDEO || VIDEO || LCD 412 help 413 This allows multiple devices to be used for each console 'file'. 414 For example, stdout can be set to go to serial and video. 415 Similarly, stdin can be set to come from serial and keyboard. 416 Input can be provided from either source. Console multiplexing 417 adds a small amount of size to U-Boot. Changes to the environment 418 variables stdout, stdin and stderr will take effect immediately. 419 420config SYS_CONSOLE_IS_IN_ENV 421 bool "Select console devices from the environment" 422 default y if CONSOLE_MUX 423 help 424 This allows multiple input/output devices to be set at boot time. 425 For example, if stdout is set to "serial,video" then output will 426 be sent to both the serial and video devices on boot. The 427 environment variables can be updated after boot to change the 428 input/output devices. 429 430config SYS_CONSOLE_OVERWRITE_ROUTINE 431 bool "Allow board control over console overwriting" 432 help 433 If this is enabled, and the board-specific function 434 overwrite_console() returns 1, the stdin, stderr and stdout are 435 switched to the serial port, else the settings in the environment 436 are used. If this is not enabled, the console will not be switched 437 to serial. 438 439config SYS_CONSOLE_ENV_OVERWRITE 440 bool "Update environment variables during console init" 441 help 442 The console environment variables (stdout, stdin, stderr) can be 443 used to determine the correct console devices on start-up. This 444 option writes the console devices to these variables on console 445 start-up (after relocation). This causes the environment to be 446 updated to match the console devices actually chosen. 447 448config SYS_CONSOLE_INFO_QUIET 449 bool "Don't display the console devices on boot" 450 help 451 Normally U-Boot displays the current settings for stdout, stdin 452 and stderr on boot when the post-relocation console is set up. 453 Enable this option to suppress this output. It can be obtained by 454 calling stdio_print_current_devices() from board code. 455 456config SYS_STDIO_DEREGISTER 457 bool "Allow deregistering stdio devices" 458 default y if USB_KEYBOARD 459 help 460 Generally there is no need to deregister stdio devices since they 461 are never deactivated. But if a stdio device is used which can be 462 removed (for example a USB keyboard) then this option can be 463 enabled to ensure this is handled correctly. 464 465endmenu 466 467menu "Logging" 468 469config LOG 470 bool "Enable logging support" 471 depends on DM 472 help 473 This enables support for logging of status and debug messages. These 474 can be displayed on the console, recorded in a memory buffer, or 475 discarded if not needed. Logging supports various categories and 476 levels of severity. 477 478config SPL_LOG 479 bool "Enable logging support in SPL" 480 depends on LOG 481 help 482 This enables support for logging of status and debug messages. These 483 can be displayed on the console, recorded in a memory buffer, or 484 discarded if not needed. Logging supports various categories and 485 levels of severity. 486 487config TPL_LOG 488 bool "Enable logging support in TPL" 489 depends on LOG 490 help 491 This enables support for logging of status and debug messages. These 492 can be displayed on the console, recorded in a memory buffer, or 493 discarded if not needed. Logging supports various categories and 494 levels of severity. 495 496config LOG_MAX_LEVEL 497 int "Maximum log level to record" 498 depends on LOG 499 default 5 500 help 501 This selects the maximum log level that will be recorded. Any value 502 higher than this will be ignored. If possible log statements below 503 this level will be discarded at build time. Levels: 504 505 0 - emergency 506 1 - alert 507 2 - critical 508 3 - error 509 4 - warning 510 5 - note 511 6 - info 512 7 - debug 513 8 - debug content 514 9 - debug hardware I/O 515 516config SPL_LOG_MAX_LEVEL 517 int "Maximum log level to record in SPL" 518 depends on SPL_LOG 519 default 3 520 help 521 This selects the maximum log level that will be recorded. Any value 522 higher than this will be ignored. If possible log statements below 523 this level will be discarded at build time. Levels: 524 525 0 - emergency 526 1 - alert 527 2 - critical 528 3 - error 529 4 - warning 530 5 - note 531 6 - info 532 7 - debug 533 8 - debug content 534 9 - debug hardware I/O 535 536config TPL_LOG_MAX_LEVEL 537 int "Maximum log level to record in TPL" 538 depends on TPL_LOG 539 default 3 540 help 541 This selects the maximum log level that will be recorded. Any value 542 higher than this will be ignored. If possible log statements below 543 this level will be discarded at build time. Levels: 544 545 0 - emergency 546 1 - alert 547 2 - critical 548 3 - error 549 4 - warning 550 5 - note 551 6 - info 552 7 - debug 553 8 - debug content 554 9 - debug hardware I/O 555 556config LOG_DEFAULT_LEVEL 557 int "Default logging level to display" 558 default 6 559 help 560 This is the default logging level set when U-Boot starts. It can 561 be adjusted later using the 'log level' command. Note that setting 562 this to a value abnove LOG_MAX_LEVEL will be ineffective, since the 563 higher levels are not compiled in to U-Boot. 564 565 0 - emergency 566 1 - alert 567 2 - critical 568 3 - error 569 4 - warning 570 5 - note 571 6 - info 572 7 - debug 573 8 - debug content 574 9 - debug hardware I/O 575 576config LOG_CONSOLE 577 bool "Allow log output to the console" 578 depends on LOG 579 default y 580 help 581 Enables a log driver which writes log records to the console. 582 Generally the console is the serial port or LCD display. Only the 583 log message is shown - other details like level, category, file and 584 line number are omitted. 585 586config SPL_LOG_CONSOLE 587 bool "Allow log output to the console in SPL" 588 depends on SPL_LOG 589 default y 590 help 591 Enables a log driver which writes log records to the console. 592 Generally the console is the serial port or LCD display. Only the 593 log message is shown - other details like level, category, file and 594 line number are omitted. 595 596config TPL_LOG_CONSOLE 597 bool "Allow log output to the console in SPL" 598 depends on TPL_LOG 599 default y 600 help 601 Enables a log driver which writes log records to the console. 602 Generally the console is the serial port or LCD display. Only the 603 log message is shown - other details like level, category, file and 604 line number are omitted. 605 606config LOG_TEST 607 bool "Provide a test for logging" 608 depends on LOG 609 default y if SANDBOX 610 help 611 This enables a 'log test' command to test logging. It is normally 612 executed from a pytest and simply outputs logging information 613 in various different ways to test that the logging system works 614 correctly with various settings. 615 616config LOG_ERROR_RETURN 617 bool "Log all functions which return an error" 618 depends on LOG 619 help 620 When an error is returned in U-Boot it is sometimes difficult to 621 figure out the root cause. For example, reading from SPI flash may 622 fail due to a problem in the SPI controller or due to the flash part 623 not returning the expected information. This option changes 624 log_ret() to log any errors it sees. With this option disabled, 625 log_ret() is a nop. 626 627 You can add log_ret() to all functions which return an error code. 628 629endmenu 630 631config SUPPORT_RAW_INITRD 632 bool "Enable raw initrd images" 633 help 634 Note, defining the SUPPORT_RAW_INITRD allows user to supply 635 kernel with raw initrd images. The syntax is slightly different, the 636 address of the initrd must be augmented by it's size, in the following 637 format: "<initrd address>:<initrd size>". 638 639config DEFAULT_FDT_FILE 640 string "Default fdt file" 641 help 642 This option is used to set the default fdt file to boot OS. 643 644config MISC_INIT_R 645 bool "Execute Misc Init" 646 default y if ARCH_KEYSTONE || ARCH_SUNXI || MPC85xx 647 default y if ARCH_OMAP2PLUS && !AM33XX 648 help 649 Enabling this option calls 'misc_init_r' function 650 651config VERSION_VARIABLE 652 bool "add U-Boot environment variable vers" 653 default n 654 help 655 If this variable is defined, an environment variable 656 named "ver" is created by U-Boot showing the U-Boot 657 version as printed by the "version" command. 658 Any change to this variable will be reverted at the 659 next reset. 660 661config BOARD_LATE_INIT 662 bool "Execute Board late init" 663 help 664 Sometimes board require some initialization code that might 665 require once the actual init done, example saving board specific env, 666 boot-modes etc. which eventually done at late. 667 668 So this config enable the late init code with the help of board_late_init 669 function which should defined on respective boards. 670 671config DISPLAY_CPUINFO 672 bool "Display information about the CPU during start up" 673 default y if ARC|| ARM || NIOS2 || X86 || XTENSA || M68K 674 help 675 Display information about the CPU that U-Boot is running on 676 when U-Boot starts up. The function print_cpuinfo() is called 677 to do this. 678 679config DISPLAY_BOARDINFO 680 bool "Display information about the board during early start up" 681 default y if ARC || ARM || M68K || MIPS || PPC || SANDBOX || XTENSA 682 help 683 Display information about the board that U-Boot is running on 684 when U-Boot starts up. The board function checkboard() is called 685 to do this. 686 687config DISPLAY_BOARDINFO_LATE 688 bool "Display information about the board during late start up" 689 help 690 Display information about the board that U-Boot is running on after 691 the relocation phase. The board function checkboard() is called to do 692 this. 693 694config BOUNCE_BUFFER 695 bool "Include bounce buffer API" 696 help 697 Some peripherals support DMA from a subset of physically 698 addressable memory only. To support such peripherals, the 699 bounce buffer API uses a temporary buffer: it copies data 700 to/from DMA regions while managing cache operations. 701 702 A second possible use of bounce buffers is their ability to 703 provide aligned buffers for DMA operations. 704 705config BOARD_TYPES 706 bool "Call get_board_type() to get and display the board type" 707 help 708 If this option is enabled, checkboard() will call get_board_type() 709 to get a string containing the board type and this will be 710 displayed immediately after the model is shown on the console 711 early in boot. 712 713menu "Start-up hooks" 714 715config ARCH_EARLY_INIT_R 716 bool "Call arch-specific init soon after relocation" 717 help 718 With this option U-Boot will call arch_early_init_r() soon after 719 relocation. Driver model is running by this point, and the cache 720 is on. Note that board_early_init_r() is called first, if 721 enabled. This can be used to set up architecture-specific devices. 722 723config ARCH_MISC_INIT 724 bool "Call arch-specific init after relocation, when console is ready" 725 help 726 With this option U-Boot will call arch_misc_init() after 727 relocation to allow miscellaneous arch-dependent initialisation 728 to be performed. This function should be defined by the board 729 and will be called after the console is set up, after relocation. 730 731config BOARD_EARLY_INIT_F 732 bool "Call board-specific init before relocation" 733 help 734 Some boards need to perform initialisation as soon as possible 735 after boot. With this option, U-Boot calls board_early_init_f() 736 after driver model is ready in the pre-relocation init sequence. 737 Note that the normal serial console is not yet set up, but the 738 debug UART will be available if enabled. 739 740config BOARD_EARLY_INIT_R 741 bool "Call board-specific init after relocation" 742 help 743 Some boards need to perform initialisation as directly after 744 relocation. With this option, U-Boot calls board_early_init_r() 745 in the post-relocation init sequence. 746 747config LAST_STAGE_INIT 748 bool "Call board-specific as last setup step" 749 help 750 Some boards need to perform initialisation immediately before control 751 is passed to the command-line interpreter (e.g. for initializations 752 that depend on later phases in the init sequence). With this option, 753 U-Boot calls last_stage_init() before the command-line interpreter is 754 started. 755 756endmenu 757 758menu "Security support" 759 760config MEASURED_BOOT 761 bool "Measure boot images and configuration to TPM and event log" 762 depends on HASH && TPM_V2 763 help 764 This option enables measurement of the boot process. Measurement 765 involves creating cryptographic hashes of the binary images that 766 are booting and storing them in the TPM. In addition, a log of 767 these hashes is stored in memory for the OS to verify the booted 768 images and configuration. Enable this if the OS has configured 769 some memory area for the event log and you intend to use some 770 attestation tools on your system. 771 772if MEASURED_BOOT 773 config MEASURE_DEVICETREE 774 bool "Measure the devicetree image" 775 default y if MEASURED_BOOT 776 help 777 On some platforms, the devicetree is not static as it may contain 778 random MAC addresses or other such data that changes each boot. 779 Therefore, it should not be measured into the TPM. In that case, 780 disable the measurement here. 781 782 config MEASURE_IGNORE_LOG 783 bool "Ignore the existing event log" 784 default n 785 help 786 On platforms that use an event log memory region that persists 787 through system resets and are the first stage bootloader, then 788 this option should be enabled to ignore any existing data in the 789 event log memory region. 790endif # MEASURED_BOOT 791 792config HASH 793 bool # "Support hashing API (SHA1, SHA256, etc.)" 794 help 795 This provides a way to hash data in memory using various supported 796 algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h 797 and the algorithms it supports are defined in common/hash.c. See 798 also CMD_HASH for command-line access. 799 800config AVB_VERIFY 801 bool "Build Android Verified Boot operations" 802 depends on LIBAVB && FASTBOOT 803 depends on PARTITION_UUIDS 804 help 805 This option enables compilation of bootloader-dependent operations, 806 used by Android Verified Boot 2.0 library (libavb). Includes: 807 * Helpers to process strings in order to build OS bootargs. 808 * Helpers to access MMC, similar to drivers/fastboot/fb_mmc.c. 809 * Helpers to alloc/init/free avb ops. 810 811config SPL_HASH 812 bool # "Support hashing API (SHA1, SHA256, etc.)" 813 help 814 This provides a way to hash data in memory using various supported 815 algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h 816 and the algorithms it supports are defined in common/hash.c. See 817 also CMD_HASH for command-line access. 818 819config TPL_HASH 820 bool # "Support hashing API (SHA1, SHA256, etc.)" 821 help 822 This provides a way to hash data in memory using various supported 823 algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h 824 and the algorithms it supports are defined in common/hash.c. See 825 also CMD_HASH for command-line access. 826 827endmenu 828 829menu "Update support" 830 831config UPDATE_TFTP 832 bool "Auto-update using fitImage via TFTP" 833 depends on FIT 834 help 835 This option allows performing update of NOR with data in fitImage 836 sent via TFTP boot. 837 838config UPDATE_TFTP_CNT_MAX 839 int "The number of connection retries during auto-update" 840 default 0 841 depends on UPDATE_TFTP 842 843config UPDATE_TFTP_MSEC_MAX 844 int "Delay in mSec to wait for the TFTP server during auto-update" 845 default 100 846 depends on UPDATE_TFTP 847 848endmenu 849 850menu "Blob list" 851 852config BLOBLIST 853 bool "Support for a bloblist" 854 help 855 This enables support for a bloblist in U-Boot, which can be passed 856 from TPL to SPL to U-Boot proper (and potentially to Linux). The 857 blob list supports multiple binary blobs of data, each with a tag, 858 so that different U-Boot components can store data which can survive 859 through to the next stage of the boot. 860 861config SPL_BLOBLIST 862 bool "Support for a bloblist in SPL" 863 depends on BLOBLIST 864 default y if SPL 865 help 866 This enables a bloblist in SPL. If this is the first part of U-Boot 867 to run, then the bloblist is set up in SPL and passed to U-Boot 868 proper. If TPL also has a bloblist, then SPL uses the one from there. 869 870config TPL_BLOBLIST 871 bool "Support for a bloblist in TPL" 872 depends on BLOBLIST 873 default y if TPL 874 help 875 This enables a bloblist in TPL. The bloblist is set up in TPL and 876 passed to SPL and U-Boot proper. 877 878config BLOBLIST_SIZE 879 hex "Size of bloblist" 880 depends on BLOBLIST 881 default 0x400 882 help 883 Sets the size of the bloblist in bytes. This must include all 884 overhead (alignment, bloblist header, record header). The bloblist 885 is set up in the first part of U-Boot to run (TPL, SPL or U-Boot 886 proper), and this sane bloblist is used for subsequent stages. 887 888config BLOBLIST_ADDR 889 hex "Address of bloblist" 890 depends on BLOBLIST 891 default 0xe000 if SANDBOX 892 help 893 Sets the address of the bloblist, set up by the first part of U-Boot 894 which runs. Subsequent U-Boot stages typically use the same address. 895 896endmenu 897 898source "common/spl/Kconfig" 899