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