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