1menu "Boot options" 2 3menu "Boot images" 4 5config ANDROID_BOOT_IMAGE 6 bool "Enable support for Android Boot Images" 7 default y if FASTBOOT 8 help 9 This enables support for booting images which use the Android 10 image format header. 11 12config FIT 13 bool "Support Flattened Image Tree" 14 select HASH 15 select MD5 16 select SHA1 17 imply SHA256 18 help 19 This option allows you to boot the new uImage structure, 20 Flattened Image Tree. FIT is formally a FDT, which can include 21 images of various types (kernel, FDT blob, ramdisk, etc.) 22 in a single blob. To boot this new uImage structure, 23 pass the address of the blob to the "bootm" command. 24 FIT is very flexible, supporting compression, multiple images, 25 multiple configurations, verification through hashing and also 26 verified boot (secure boot using RSA). 27 28if FIT 29 30config FIT_EXTERNAL_OFFSET 31 hex "FIT external data offset" 32 default 0x0 33 help 34 This specifies a data offset in fit image. 35 The offset is from data payload offset to the beginning of 36 fit image header. When specifies a offset, specific data 37 could be put in the hole between data payload and fit image 38 header, such as CSF data on i.MX platform. 39 40config FIT_FULL_CHECK 41 bool "Do a full check of the FIT before using it" 42 default y 43 help 44 Enable this do a full check of the FIT to make sure it is valid. This 45 helps to protect against carefully crafted FITs which take advantage 46 of bugs or omissions in the code. This includes a bad structure, 47 multiple root nodes and the like. 48 49config FIT_SIGNATURE 50 bool "Enable signature verification of FIT uImages" 51 depends on DM 52 select HASH 53 imply RSA 54 imply RSA_VERIFY 55 select IMAGE_SIGN_INFO 56 select FIT_FULL_CHECK 57 help 58 This option enables signature verification of FIT uImages, 59 using a hash signed and verified using RSA. If 60 CONFIG_SHA_PROG_HW_ACCEL is defined, i.e support for progressive 61 hashing is available using hardware, then the RSA library will use 62 it. See doc/uImage.FIT/signature.txt for more details. 63 64 WARNING: When relying on signed FIT images with a required signature 65 check the legacy image format is disabled by default, so that 66 unsigned images cannot be loaded. If a board needs the legacy image 67 format support in this case, enable it using 68 CONFIG_LEGACY_IMAGE_FORMAT. 69 70config FIT_SIGNATURE_MAX_SIZE 71 hex "Max size of signed FIT structures" 72 depends on FIT_SIGNATURE 73 default 0x10000000 74 help 75 This option sets a max size in bytes for verified FIT uImages. 76 A sane value of 256MB protects corrupted DTB structures from overlapping 77 device memory. Assure this size does not extend past expected storage 78 space. 79 80config FIT_RSASSA_PSS 81 bool "Support rsassa-pss signature scheme of FIT image contents" 82 depends on FIT_SIGNATURE 83 default n 84 help 85 Enable this to support the pss padding algorithm as described 86 in the rfc8017 (https://tools.ietf.org/html/rfc8017). 87 88config FIT_CIPHER 89 bool "Enable ciphering data in a FIT uImages" 90 depends on DM 91 select AES 92 help 93 Enable the feature of data ciphering/unciphering in the tool mkimage 94 and in the u-boot support of the FIT image. 95 96config FIT_VERBOSE 97 bool "Show verbose messages when FIT images fail" 98 help 99 Generally a system will have valid FIT images so debug messages 100 are a waste of code space. If you are debugging your images then 101 you can enable this option to get more verbose information about 102 failures. 103 104config FIT_BEST_MATCH 105 bool "Select the best match for the kernel device tree" 106 help 107 When no configuration is explicitly selected, default to the 108 one whose fdt's compatibility field best matches that of 109 U-Boot itself. A match is considered "best" if it matches the 110 most specific compatibility entry of U-Boot's fdt's root node. 111 The order of entries in the configuration's fdt is ignored. 112 113config FIT_IMAGE_POST_PROCESS 114 bool "Enable post-processing of FIT artifacts after loading by U-Boot" 115 depends on TI_SECURE_DEVICE || SOCFPGA_SECURE_VAB_AUTH 116 help 117 Allows doing any sort of manipulation to blobs after they got extracted 118 from FIT images like stripping off headers or modifying the size of the 119 blob, verification, authentication, decryption etc. in a platform or 120 board specific way. In order to use this feature a platform or board- 121 specific implementation of board_fit_image_post_process() must be 122 provided. Also, anything done during this post-processing step would 123 need to be comprehended in how the images were prepared before being 124 injected into the FIT creation (i.e. the blobs would have been pre- 125 processed before being added to the FIT image). 126 127config FIT_PRINT 128 bool "Support FIT printing" 129 default y 130 help 131 Support printing the content of the fitImage in a verbose manner. 132 133if SPL 134 135config SPL_FIT 136 bool "Support Flattened Image Tree within SPL" 137 depends on SPL 138 select SPL_HASH 139 select SPL_OF_LIBFDT 140 141config SPL_FIT_PRINT 142 bool "Support FIT printing within SPL" 143 depends on SPL_FIT 144 help 145 Support printing the content of the fitImage in a verbose manner in SPL. 146 147config SPL_FIT_FULL_CHECK 148 bool "Do a full check of the FIT before using it" 149 help 150 Enable this do a full check of the FIT to make sure it is valid. This 151 helps to protect against carefully crafted FITs which take advantage 152 of bugs or omissions in the code. This includes a bad structure, 153 multiple root nodes and the like. 154 155 156config SPL_FIT_SIGNATURE 157 bool "Enable signature verification of FIT firmware within SPL" 158 depends on SPL_DM 159 depends on SPL_LOAD_FIT || SPL_LOAD_FIT_FULL 160 select FIT_SIGNATURE 161 select SPL_FIT 162 select SPL_CRYPTO 163 select SPL_HASH 164 imply SPL_RSA 165 imply SPL_RSA_VERIFY 166 select SPL_IMAGE_SIGN_INFO 167 select SPL_FIT_FULL_CHECK 168 169config SPL_LOAD_FIT 170 bool "Enable SPL loading U-Boot as a FIT (basic fitImage features)" 171 select SPL_FIT 172 help 173 Normally with the SPL framework a legacy image is generated as part 174 of the build. This contains U-Boot along with information as to 175 where it should be loaded. This option instead enables generation 176 of a FIT (Flat Image Tree) which provides more flexibility. In 177 particular it can handle selecting from multiple device tree 178 and passing the correct one to U-Boot. 179 180 This path has the following limitations: 181 182 1. "loadables" images, other than FDTs, which do not have a "load" 183 property will not be loaded. This limitation also applies to FPGA 184 images with the correct "compatible" string. 185 2. For FPGA images, only the "compatible" = "u-boot,fpga-legacy" 186 loading method is supported. 187 3. FDTs are only loaded for images with an "os" property of "u-boot". 188 "linux" images are also supported with Falcon boot mode. 189 190config SPL_LOAD_FIT_ADDRESS 191 hex "load address of fit image" 192 depends on SPL_LOAD_FIT 193 default 0x0 194 help 195 Specify the load address of the fit image that will be loaded 196 by SPL. 197 198config SPL_LOAD_FIT_APPLY_OVERLAY 199 bool "Enable SPL applying DT overlays from FIT" 200 depends on SPL_LOAD_FIT 201 select OF_LIBFDT_OVERLAY 202 help 203 The device tree is loaded from the FIT image. Allow the SPL is to 204 also load device-tree overlays from the FIT image an apply them 205 over the device tree. 206 207config SPL_LOAD_FIT_APPLY_OVERLAY_BUF_SZ 208 depends on SPL_LOAD_FIT_APPLY_OVERLAY 209 default 0x10000 210 hex "size of temporary buffer used to load the overlays" 211 help 212 The size of the area where the overlays will be loaded and 213 uncompress. Must be at least as large as biggest overlay 214 (uncompressed) 215 216config SPL_LOAD_FIT_FULL 217 bool "Enable SPL loading U-Boot as a FIT (full fitImage features)" 218 select SPL_FIT 219 help 220 Normally with the SPL framework a legacy image is generated as part 221 of the build. This contains U-Boot along with information as to 222 where it should be loaded. This option instead enables generation 223 of a FIT (Flat Image Tree) which provides more flexibility. In 224 particular it can handle selecting from multiple device tree 225 and passing the correct one to U-Boot. 226 227config SPL_FIT_IMAGE_POST_PROCESS 228 bool "Enable post-processing of FIT artifacts after loading by the SPL" 229 depends on SPL_LOAD_FIT 230 help 231 Allows doing any sort of manipulation to blobs after they got extracted 232 from the U-Boot FIT image like stripping off headers or modifying the 233 size of the blob, verification, authentication, decryption etc. in a 234 platform or board specific way. In order to use this feature a platform 235 or board-specific implementation of board_fit_image_post_process() must 236 be provided. Also, anything done during this post-processing step would 237 need to be comprehended in how the images were prepared before being 238 injected into the FIT creation (i.e. the blobs would have been pre- 239 processed before being added to the FIT image). 240 241config SPL_FIT_SOURCE 242 string ".its source file for U-Boot FIT image" 243 depends on SPL_FIT 244 help 245 Specifies a (platform specific) FIT source file to generate the 246 U-Boot FIT image. This could specify further image to load and/or 247 execute. 248 249config USE_SPL_FIT_GENERATOR 250 bool "Use a script to generate the .its script" 251 default y if SPL_FIT && (!ARCH_SUNXI && !RISCV) 252 253config SPL_FIT_GENERATOR 254 string ".its file generator script for U-Boot FIT image" 255 depends on USE_SPL_FIT_GENERATOR 256 default "arch/arm/mach-rockchip/make_fit_atf.py" if SPL_LOAD_FIT && ARCH_ROCKCHIP 257 default "arch/arm/mach-zynqmp/mkimage_fit_atf.sh" if SPL_LOAD_FIT && ARCH_ZYNQMP 258 help 259 Specifies a (platform specific) script file to generate the FIT 260 source file used to build the U-Boot FIT image file. This gets 261 passed a list of supported device tree file stub names to 262 include in the generated image. 263 264endif # SPL 265 266endif # FIT 267 268config LEGACY_IMAGE_FORMAT 269 bool "Enable support for the legacy image format" 270 default y if !FIT_SIGNATURE 271 help 272 This option enables the legacy image format. It is enabled by 273 default for backward compatibility, unless FIT_SIGNATURE is 274 set where it is disabled so that unsigned images cannot be 275 loaded. If a board needs the legacy image format support in this 276 case, enable it here. 277 278config SUPPORT_RAW_INITRD 279 bool "Enable raw initrd images" 280 help 281 Note, defining the SUPPORT_RAW_INITRD allows user to supply 282 kernel with raw initrd images. The syntax is slightly different, the 283 address of the initrd must be augmented by it's size, in the following 284 format: "<initrd address>:<initrd size>". 285 286config OF_BOARD_SETUP 287 bool "Set up board-specific details in device tree before boot" 288 depends on OF_LIBFDT 289 help 290 This causes U-Boot to call ft_board_setup() before booting into 291 the Operating System. This function can set up various 292 board-specific information in the device tree for use by the OS. 293 The device tree is then passed to the OS. 294 295config OF_SYSTEM_SETUP 296 bool "Set up system-specific details in device tree before boot" 297 depends on OF_LIBFDT 298 help 299 This causes U-Boot to call ft_system_setup() before booting into 300 the Operating System. This function can set up various 301 system-specific information in the device tree for use by the OS. 302 The device tree is then passed to the OS. 303 304config OF_STDOUT_VIA_ALIAS 305 bool "Update the device-tree stdout alias from U-Boot" 306 depends on OF_LIBFDT 307 help 308 This uses U-Boot's serial alias from the aliases node to update 309 the device tree passed to the OS. The "linux,stdout-path" property 310 in the chosen node is set to point to the correct serial node. 311 This option currently references CONFIG_CONS_INDEX, which is 312 incorrect when used with device tree as this option does not 313 exist / should not be used. 314 315config SYS_EXTRA_OPTIONS 316 string "Extra Options (DEPRECATED)" 317 help 318 The old configuration infrastructure (= mkconfig + boards.cfg) 319 provided the extra options field. If you have something like 320 "HAS_BAR,BAZ=64", the optional options 321 #define CONFIG_HAS 322 #define CONFIG_BAZ 64 323 will be defined in include/config.h. 324 This option was prepared for the smooth migration from the old 325 configuration to Kconfig. Since this option will be removed sometime, 326 new boards should not use this option. 327 328config HAVE_SYS_TEXT_BASE 329 bool 330 depends on !NIOS2 && !XTENSA 331 depends on !EFI_APP 332 default y 333 334config SYS_TEXT_BASE 335 depends on HAVE_SYS_TEXT_BASE 336 default 0x0 if POSITION_INDEPENDENT 337 default 0x80800000 if ARCH_OMAP2PLUS || ARCH_K3 338 default 0x4a000000 if ARCH_SUNXI && !MACH_SUN9I && !MACH_SUN8I_V3S 339 default 0x2a000000 if ARCH_SUNXI && MACH_SUN9I 340 default 0x42e00000 if ARCH_SUNXI && MACH_SUN8I_V3S 341 hex "Text Base" 342 help 343 The address in memory that U-Boot will be running from, initially. 344 345config SYS_CLK_FREQ 346 depends on ARC || ARCH_SUNXI || MPC83xx 347 int "CPU clock frequency" 348 help 349 TODO: Move CONFIG_SYS_CLK_FREQ for all the architecture 350 351config ARCH_FIXUP_FDT_MEMORY 352 bool "Enable arch_fixup_memory_banks() call" 353 default y 354 help 355 Enable FDT memory map syncup before OS boot. This feature can be 356 used for booting OS with different memory setup where the part of 357 the memory location should be used for different purpose. 358 359config CHROMEOS 360 bool "Support booting Chrome OS" 361 help 362 Chrome OS requires U-Boot to set up a table indicating the boot mode 363 (e.g. Developer mode) and a few other things. Enable this if you are 364 booting on a Chromebook to avoid getting an error about an invalid 365 firmware ID. 366 367config CHROMEOS_VBOOT 368 bool "Support Chrome OS verified boot" 369 help 370 This is intended to enable the full Chrome OS verified boot support 371 in U-Boot. It is not actually implemented in the U-Boot source code 372 at present, so this option is always set to 'n'. It allows 373 distinguishing between booting Chrome OS in a basic way (developer 374 mode) and a full boot. 375 376endmenu # Boot images 377 378menu "Boot timing" 379 380config BOOTSTAGE 381 bool "Boot timing and reporting" 382 help 383 Enable recording of boot time while booting. To use it, insert 384 calls to bootstage_mark() with a suitable BOOTSTAGE_ID from 385 bootstage.h. Only a single entry is recorded for each ID. You can 386 give the entry a name with bootstage_mark_name(). You can also 387 record elapsed time in a particular stage using bootstage_start() 388 before starting and bootstage_accum() when finished. Bootstage will 389 add up all the accumulated time and report it. 390 391 Normally, IDs are defined in bootstage.h but a small number of 392 additional 'user' IDs can be used by passing BOOTSTAGE_ID_ALLOC 393 as the ID. 394 395 Calls to show_boot_progress() will also result in log entries but 396 these will not have names. 397 398config SPL_BOOTSTAGE 399 bool "Boot timing and reported in SPL" 400 depends on BOOTSTAGE 401 help 402 Enable recording of boot time in SPL. To make this visible to U-Boot 403 proper, enable BOOTSTAGE_STASH as well. This will stash the timing 404 information when SPL finishes and load it when U-Boot proper starts 405 up. 406 407config TPL_BOOTSTAGE 408 bool "Boot timing and reported in TPL" 409 depends on BOOTSTAGE 410 help 411 Enable recording of boot time in SPL. To make this visible to U-Boot 412 proper, enable BOOTSTAGE_STASH as well. This will stash the timing 413 information when TPL finishes and load it when U-Boot proper starts 414 up. 415 416config BOOTSTAGE_REPORT 417 bool "Display a detailed boot timing report before booting the OS" 418 depends on BOOTSTAGE 419 help 420 Enable output of a boot time report just before the OS is booted. 421 This shows how long it took U-Boot to go through each stage of the 422 boot process. The report looks something like this: 423 424 Timer summary in microseconds: 425 Mark Elapsed Stage 426 0 0 reset 427 3,575,678 3,575,678 board_init_f start 428 3,575,695 17 arch_cpu_init A9 429 3,575,777 82 arch_cpu_init done 430 3,659,598 83,821 board_init_r start 431 3,910,375 250,777 main_loop 432 29,916,167 26,005,792 bootm_start 433 30,361,327 445,160 start_kernel 434 435config BOOTSTAGE_RECORD_COUNT 436 int "Number of boot stage records to store" 437 depends on BOOTSTAGE 438 default 30 439 help 440 This is the size of the bootstage record list and is the maximum 441 number of bootstage records that can be recorded. 442 443config SPL_BOOTSTAGE_RECORD_COUNT 444 int "Number of boot stage records to store for SPL" 445 depends on SPL_BOOTSTAGE 446 default 5 447 help 448 This is the size of the bootstage record list and is the maximum 449 number of bootstage records that can be recorded. 450 451config TPL_BOOTSTAGE_RECORD_COUNT 452 int "Number of boot stage records to store for TPL" 453 depends on TPL_BOOTSTAGE 454 default 5 455 help 456 This is the size of the bootstage record list and is the maximum 457 number of bootstage records that can be recorded. 458 459config BOOTSTAGE_FDT 460 bool "Store boot timing information in the OS device tree" 461 depends on BOOTSTAGE 462 help 463 Stash the bootstage information in the FDT. A root 'bootstage' 464 node is created with each bootstage id as a child. Each child 465 has a 'name' property and either 'mark' containing the 466 mark time in microseconds, or 'accum' containing the 467 accumulated time for that bootstage id in microseconds. 468 For example: 469 470 bootstage { 471 154 { 472 name = "board_init_f"; 473 mark = <3575678>; 474 }; 475 170 { 476 name = "lcd"; 477 accum = <33482>; 478 }; 479 }; 480 481 Code in the Linux kernel can find this in /proc/devicetree. 482 483config BOOTSTAGE_STASH 484 bool "Stash the boot timing information in memory before booting OS" 485 depends on BOOTSTAGE 486 help 487 Some OSes do not support device tree. Bootstage can instead write 488 the boot timing information in a binary format at a given address. 489 This happens through a call to bootstage_stash(), typically in 490 the CPU's cleanup_before_linux() function. You can use the 491 'bootstage stash' and 'bootstage unstash' commands to do this on 492 the command line. 493 494config BOOTSTAGE_STASH_ADDR 495 hex "Address to stash boot timing information" 496 default 0 497 help 498 Provide an address which will not be overwritten by the OS when it 499 starts, so that it can read this information when ready. 500 501config BOOTSTAGE_STASH_SIZE 502 hex "Size of boot timing stash region" 503 default 0x1000 504 help 505 This should be large enough to hold the bootstage stash. A value of 506 4096 (4KiB) is normally plenty. 507 508config SHOW_BOOT_PROGRESS 509 bool "Show boot progress in a board-specific manner" 510 help 511 Defining this option allows to add some board-specific code (calling 512 a user-provided function show_boot_progress(int) that enables you to 513 show the system's boot progress on some display (for example, some 514 LEDs) on your board. At the moment, the following checkpoints are 515 implemented: 516 517 Legacy uImage format: 518 519 Arg Where When 520 1 common/cmd_bootm.c before attempting to boot an image 521 -1 common/cmd_bootm.c Image header has bad magic number 522 2 common/cmd_bootm.c Image header has correct magic number 523 -2 common/cmd_bootm.c Image header has bad checksum 524 3 common/cmd_bootm.c Image header has correct checksum 525 -3 common/cmd_bootm.c Image data has bad checksum 526 4 common/cmd_bootm.c Image data has correct checksum 527 -4 common/cmd_bootm.c Image is for unsupported architecture 528 5 common/cmd_bootm.c Architecture check OK 529 -5 common/cmd_bootm.c Wrong Image Type (not kernel, multi) 530 6 common/cmd_bootm.c Image Type check OK 531 -6 common/cmd_bootm.c gunzip uncompression error 532 -7 common/cmd_bootm.c Unimplemented compression type 533 7 common/cmd_bootm.c Uncompression OK 534 8 common/cmd_bootm.c No uncompress/copy overwrite error 535 -9 common/cmd_bootm.c Unsupported OS (not Linux, BSD, VxWorks, QNX) 536 537 9 common/image.c Start initial ramdisk verification 538 -10 common/image.c Ramdisk header has bad magic number 539 -11 common/image.c Ramdisk header has bad checksum 540 10 common/image.c Ramdisk header is OK 541 -12 common/image.c Ramdisk data has bad checksum 542 11 common/image.c Ramdisk data has correct checksum 543 12 common/image.c Ramdisk verification complete, start loading 544 -13 common/image.c Wrong Image Type (not PPC Linux ramdisk) 545 13 common/image.c Start multifile image verification 546 14 common/image.c No initial ramdisk, no multifile, continue. 547 548 15 arch/<arch>/lib/bootm.c All preparation done, transferring control to OS 549 550 -30 arch/powerpc/lib/board.c Fatal error, hang the system 551 -31 post/post.c POST test failed, detected by post_output_backlog() 552 -32 post/post.c POST test failed, detected by post_run_single() 553 554 34 common/cmd_doc.c before loading a Image from a DOC device 555 -35 common/cmd_doc.c Bad usage of "doc" command 556 35 common/cmd_doc.c correct usage of "doc" command 557 -36 common/cmd_doc.c No boot device 558 36 common/cmd_doc.c correct boot device 559 -37 common/cmd_doc.c Unknown Chip ID on boot device 560 37 common/cmd_doc.c correct chip ID found, device available 561 -38 common/cmd_doc.c Read Error on boot device 562 38 common/cmd_doc.c reading Image header from DOC device OK 563 -39 common/cmd_doc.c Image header has bad magic number 564 39 common/cmd_doc.c Image header has correct magic number 565 -40 common/cmd_doc.c Error reading Image from DOC device 566 40 common/cmd_doc.c Image header has correct magic number 567 41 common/cmd_ide.c before loading a Image from a IDE device 568 -42 common/cmd_ide.c Bad usage of "ide" command 569 42 common/cmd_ide.c correct usage of "ide" command 570 -43 common/cmd_ide.c No boot device 571 43 common/cmd_ide.c boot device found 572 -44 common/cmd_ide.c Device not available 573 44 common/cmd_ide.c Device available 574 -45 common/cmd_ide.c wrong partition selected 575 45 common/cmd_ide.c partition selected 576 -46 common/cmd_ide.c Unknown partition table 577 46 common/cmd_ide.c valid partition table found 578 -47 common/cmd_ide.c Invalid partition type 579 47 common/cmd_ide.c correct partition type 580 -48 common/cmd_ide.c Error reading Image Header on boot device 581 48 common/cmd_ide.c reading Image Header from IDE device OK 582 -49 common/cmd_ide.c Image header has bad magic number 583 49 common/cmd_ide.c Image header has correct magic number 584 -50 common/cmd_ide.c Image header has bad checksum 585 50 common/cmd_ide.c Image header has correct checksum 586 -51 common/cmd_ide.c Error reading Image from IDE device 587 51 common/cmd_ide.c reading Image from IDE device OK 588 52 common/cmd_nand.c before loading a Image from a NAND device 589 -53 common/cmd_nand.c Bad usage of "nand" command 590 53 common/cmd_nand.c correct usage of "nand" command 591 -54 common/cmd_nand.c No boot device 592 54 common/cmd_nand.c boot device found 593 -55 common/cmd_nand.c Unknown Chip ID on boot device 594 55 common/cmd_nand.c correct chip ID found, device available 595 -56 common/cmd_nand.c Error reading Image Header on boot device 596 56 common/cmd_nand.c reading Image Header from NAND device OK 597 -57 common/cmd_nand.c Image header has bad magic number 598 57 common/cmd_nand.c Image header has correct magic number 599 -58 common/cmd_nand.c Error reading Image from NAND device 600 58 common/cmd_nand.c reading Image from NAND device OK 601 602 -60 common/env_common.c Environment has a bad CRC, using default 603 604 64 net/eth.c starting with Ethernet configuration. 605 -64 net/eth.c no Ethernet found. 606 65 net/eth.c Ethernet found. 607 608 -80 common/cmd_net.c usage wrong 609 80 common/cmd_net.c before calling net_loop() 610 -81 common/cmd_net.c some error in net_loop() occurred 611 81 common/cmd_net.c net_loop() back without error 612 -82 common/cmd_net.c size == 0 (File with size 0 loaded) 613 82 common/cmd_net.c trying automatic boot 614 83 common/cmd_net.c running "source" command 615 -83 common/cmd_net.c some error in automatic boot or "source" command 616 84 common/cmd_net.c end without errors 617 618 FIT uImage format: 619 620 Arg Where When 621 100 common/cmd_bootm.c Kernel FIT Image has correct format 622 -100 common/cmd_bootm.c Kernel FIT Image has incorrect format 623 101 common/cmd_bootm.c No Kernel subimage unit name, using configuration 624 -101 common/cmd_bootm.c Can't get configuration for kernel subimage 625 102 common/cmd_bootm.c Kernel unit name specified 626 -103 common/cmd_bootm.c Can't get kernel subimage node offset 627 103 common/cmd_bootm.c Found configuration node 628 104 common/cmd_bootm.c Got kernel subimage node offset 629 -104 common/cmd_bootm.c Kernel subimage hash verification failed 630 105 common/cmd_bootm.c Kernel subimage hash verification OK 631 -105 common/cmd_bootm.c Kernel subimage is for unsupported architecture 632 106 common/cmd_bootm.c Architecture check OK 633 -106 common/cmd_bootm.c Kernel subimage has wrong type 634 107 common/cmd_bootm.c Kernel subimage type OK 635 -107 common/cmd_bootm.c Can't get kernel subimage data/size 636 108 common/cmd_bootm.c Got kernel subimage data/size 637 -108 common/cmd_bootm.c Wrong image type (not legacy, FIT) 638 -109 common/cmd_bootm.c Can't get kernel subimage type 639 -110 common/cmd_bootm.c Can't get kernel subimage comp 640 -111 common/cmd_bootm.c Can't get kernel subimage os 641 -112 common/cmd_bootm.c Can't get kernel subimage load address 642 -113 common/cmd_bootm.c Image uncompress/copy overwrite error 643 644 120 common/image.c Start initial ramdisk verification 645 -120 common/image.c Ramdisk FIT image has incorrect format 646 121 common/image.c Ramdisk FIT image has correct format 647 122 common/image.c No ramdisk subimage unit name, using configuration 648 -122 common/image.c Can't get configuration for ramdisk subimage 649 123 common/image.c Ramdisk unit name specified 650 -124 common/image.c Can't get ramdisk subimage node offset 651 125 common/image.c Got ramdisk subimage node offset 652 -125 common/image.c Ramdisk subimage hash verification failed 653 126 common/image.c Ramdisk subimage hash verification OK 654 -126 common/image.c Ramdisk subimage for unsupported architecture 655 127 common/image.c Architecture check OK 656 -127 common/image.c Can't get ramdisk subimage data/size 657 128 common/image.c Got ramdisk subimage data/size 658 129 common/image.c Can't get ramdisk load address 659 -129 common/image.c Got ramdisk load address 660 661 -130 common/cmd_doc.c Incorrect FIT image format 662 131 common/cmd_doc.c FIT image format OK 663 664 -140 common/cmd_ide.c Incorrect FIT image format 665 141 common/cmd_ide.c FIT image format OK 666 667 -150 common/cmd_nand.c Incorrect FIT image format 668 151 common/cmd_nand.c FIT image format OK 669 670endmenu 671 672menu "Boot media" 673 674config NOR_BOOT 675 bool "Support for booting from NOR flash" 676 depends on NOR 677 help 678 Enabling this will make a U-Boot binary that is capable of being 679 booted via NOR. In this case we will enable certain pinmux early 680 as the ROM only partially sets up pinmux. We also default to using 681 NOR for environment. 682 683config NAND_BOOT 684 bool "Support for booting from NAND flash" 685 default n 686 imply MTD_RAW_NAND 687 help 688 Enabling this will make a U-Boot binary that is capable of being 689 booted via NAND flash. This is not a must, some SoCs need this, 690 some not. 691 692config ONENAND_BOOT 693 bool "Support for booting from ONENAND" 694 default n 695 imply MTD_RAW_NAND 696 help 697 Enabling this will make a U-Boot binary that is capable of being 698 booted via ONENAND. This is not a must, some SoCs need this, 699 some not. 700 701config QSPI_BOOT 702 bool "Support for booting from QSPI flash" 703 default n 704 help 705 Enabling this will make a U-Boot binary that is capable of being 706 booted via QSPI flash. This is not a must, some SoCs need this, 707 some not. 708 709config SATA_BOOT 710 bool "Support for booting from SATA" 711 default n 712 help 713 Enabling this will make a U-Boot binary that is capable of being 714 booted via SATA. This is not a must, some SoCs need this, 715 some not. 716 717config SD_BOOT 718 bool "Support for booting from SD/EMMC" 719 default n 720 help 721 Enabling this will make a U-Boot binary that is capable of being 722 booted via SD/EMMC. This is not a must, some SoCs need this, 723 some not. 724 725config SPI_BOOT 726 bool "Support for booting from SPI flash" 727 default n 728 help 729 Enabling this will make a U-Boot binary that is capable of being 730 booted via SPI flash. This is not a must, some SoCs need this, 731 some not. 732 733endmenu 734 735menu "Autoboot options" 736 737config AUTOBOOT 738 bool "Autoboot" 739 default y 740 help 741 This enables the autoboot. See doc/README.autoboot for detail. 742 743config BOOTDELAY 744 int "delay in seconds before automatically booting" 745 default 2 746 depends on AUTOBOOT 747 help 748 Delay before automatically running bootcmd; 749 set to 0 to autoboot with no delay, but you can stop it by key input. 750 set to -1 to disable autoboot. 751 set to -2 to autoboot with no delay and not check for abort 752 753 If this value is >= 0 then it is also used for the default delay 754 before starting the default entry in bootmenu. If it is < 0 then 755 a default value of 10s is used. 756 757 See doc/README.autoboot for details. 758 759config AUTOBOOT_KEYED 760 bool "Stop autobooting via specific input key / string" 761 default n 762 help 763 This option enables stopping (aborting) of the automatic 764 boot feature only by issuing a specific input key or 765 string. If not enabled, any input key will abort the 766 U-Boot automatic booting process and bring the device 767 to the U-Boot prompt for user input. 768 769config AUTOBOOT_FLUSH_STDIN 770 bool "Enable flushing stdin before starting to read the password" 771 depends on AUTOBOOT_KEYED && !SANDBOX 772 help 773 When this option is enabled stdin buffer will be flushed before 774 starting to read the password. 775 This can't be enabled for the sandbox as flushing stdin would 776 break the autoboot unit tests. 777 778config AUTOBOOT_PROMPT 779 string "Autoboot stop prompt" 780 depends on AUTOBOOT_KEYED 781 default "Autoboot in %d seconds\\n" 782 help 783 This string is displayed before the boot delay selected by 784 CONFIG_BOOTDELAY starts. If it is not defined there is no 785 output indicating that autoboot is in progress. 786 787 Note that this define is used as the (only) argument to a 788 printf() call, so it may contain '%' format specifications, 789 provided that it also includes, sepearated by commas exactly 790 like in a printf statement, the required arguments. It is 791 the responsibility of the user to select only such arguments 792 that are valid in the given context. 793 794config AUTOBOOT_ENCRYPTION 795 bool "Enable encryption in autoboot stopping" 796 depends on AUTOBOOT_KEYED 797 help 798 This option allows a string to be entered into U-Boot to stop the 799 autoboot. 800 The behavior depends whether CONFIG_CRYPT_PW from lib is enabled 801 or not. 802 In case CONFIG_CRYPT_PW is enabled, the string will be forwarded 803 to the crypt-based functionality and be compared against the 804 string in the environment variable 'bootstopkeycrypt'. 805 In case CONFIG_CRYPT_PW is disabled the string itself is hashed 806 and compared against the hash in the environment variable 807 'bootstopkeysha256'. 808 If it matches in either case then boot stops and 809 a command-line prompt is presented. 810 This provides a way to ship a secure production device which can also 811 be accessed at the U-Boot command line. 812 813config AUTOBOOT_SHA256_FALLBACK 814 bool "Allow fallback from crypt-hashed password to sha256" 815 depends on AUTOBOOT_ENCRYPTION && CRYPT_PW 816 help 817 This option adds support to fall back from crypt-hashed 818 passwords to checking a SHA256 hashed password in case the 819 'bootstopusesha256' environment variable is set to 'true'. 820 821config AUTOBOOT_DELAY_STR 822 string "Delay autobooting via specific input key / string" 823 depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION 824 help 825 This option delays the automatic boot feature by issuing 826 a specific input key or string. If CONFIG_AUTOBOOT_DELAY_STR 827 or the environment variable "bootdelaykey" is specified 828 and this string is received from console input before 829 autoboot starts booting, U-Boot gives a command prompt. The 830 U-Boot prompt will time out if CONFIG_BOOT_RETRY_TIME is 831 used, otherwise it never times out. 832 833config AUTOBOOT_STOP_STR 834 string "Stop autobooting via specific input key / string" 835 depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION 836 help 837 This option enables stopping (aborting) of the automatic 838 boot feature only by issuing a specific input key or 839 string. If CONFIG_AUTOBOOT_STOP_STR or the environment 840 variable "bootstopkey" is specified and this string is 841 received from console input before autoboot starts booting, 842 U-Boot gives a command prompt. The U-Boot prompt never 843 times out, even if CONFIG_BOOT_RETRY_TIME is used. 844 845config AUTOBOOT_KEYED_CTRLC 846 bool "Enable Ctrl-C autoboot interruption" 847 depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION 848 default n 849 help 850 This option allows for the boot sequence to be interrupted 851 by ctrl-c, in addition to the "bootdelaykey" and "bootstopkey". 852 Setting this variable provides an escape sequence from the 853 limited "password" strings. 854 855config AUTOBOOT_NEVER_TIMEOUT 856 bool "Make the password entry never time-out" 857 depends on AUTOBOOT_KEYED && AUTOBOOT_ENCRYPTION && CRYPT_PW 858 help 859 This option removes the timeout from the password entry 860 when the user first presses the <Enter> key before entering 861 any other character. 862 863config AUTOBOOT_STOP_STR_ENABLE 864 bool "Enable fixed string to stop autobooting" 865 depends on AUTOBOOT_KEYED && AUTOBOOT_ENCRYPTION 866 help 867 This option enables the feature to add a fixed stop 868 string that is defined at compile time. 869 In every case it will be tried to load the stop 870 string from the environment. 871 In case this is enabled and there is no stop string 872 in the environment, this will be used as default value. 873 874config AUTOBOOT_STOP_STR_CRYPT 875 string "Stop autobooting via crypt-hashed password" 876 depends on AUTOBOOT_STOP_STR_ENABLE && CRYPT_PW 877 help 878 This option adds the feature to only stop the autobooting, 879 and therefore boot into the U-Boot prompt, when the input 880 string / password matches a values that is hashed via 881 one of the supported crypt-style password hashing options 882 and saved in the environment variable "bootstopkeycrypt". 883 884config AUTOBOOT_STOP_STR_SHA256 885 string "Stop autobooting via SHA256 hashed password" 886 depends on AUTOBOOT_STOP_STR_ENABLE 887 help 888 This option adds the feature to only stop the autobooting, 889 and therefore boot into the U-Boot prompt, when the input 890 string / password matches a values that is encypted via 891 a SHA256 hash and saved in the environment variable 892 "bootstopkeysha256". If the value in that variable 893 includes a ":", the portion prior to the ":" will be treated 894 as a salt value. 895 896config AUTOBOOT_USE_MENUKEY 897 bool "Allow a specify key to run a menu from the environment" 898 depends on !AUTOBOOT_KEYED 899 help 900 If a specific key is pressed to stop autoboot, then the commands in 901 the environment variable 'menucmd' are executed before boot starts. 902 903config AUTOBOOT_MENUKEY 904 int "ASCII value of boot key to show a menu" 905 default 0 906 depends on AUTOBOOT_USE_MENUKEY 907 help 908 If this key is pressed to stop autoboot, then the commands in the 909 environment variable 'menucmd' will be executed before boot starts. 910 For example, 33 means "!" in ASCII, so pressing ! at boot would take 911 this action. 912 913config AUTOBOOT_MENU_SHOW 914 bool "Show a menu on boot" 915 depends on CMD_BOOTMENU 916 help 917 This enables the boot menu, controlled by environment variables 918 defined by the board. The menu starts after running the 'preboot' 919 environmnent variable (if enabled) and before handling the boot delay. 920 See README.bootmenu for more details. 921 922endmenu 923 924config USE_BOOTARGS 925 bool "Enable boot arguments" 926 help 927 Provide boot arguments to bootm command. Boot arguments are specified 928 in CONFIG_BOOTARGS option. Enable this option to be able to specify 929 CONFIG_BOOTARGS string. If this option is disabled, CONFIG_BOOTARGS 930 will be undefined and won't take any space in U-Boot image. 931 932config BOOTARGS 933 string "Boot arguments" 934 depends on USE_BOOTARGS && !USE_DEFAULT_ENV_FILE 935 help 936 This can be used to pass arguments to the bootm command. The value of 937 CONFIG_BOOTARGS goes into the environment value "bootargs". Note that 938 this value will also override the "chosen" node in FDT blob. 939 940config BOOTARGS_SUBST 941 bool "Support substituting strings in boot arguments" 942 help 943 This allows substituting string values in the boot arguments. These 944 are applied after the commandline has been built. 945 946 One use for this is to insert the root-disk UUID into the command 947 line where bootargs contains "root=${uuid}" 948 949 setenv bootargs "console= root=${uuid}" 950 # Set the 'uuid' environment variable 951 part uuid mmc 2:2 uuid 952 953 # Command-line substitution will put the real uuid into the 954 # kernel command line 955 bootm 956 957config USE_BOOTCOMMAND 958 bool "Enable a default value for bootcmd" 959 help 960 Provide a default value for the bootcmd entry in the environment. If 961 autoboot is enabled this is what will be run automatically. Enable 962 this option to be able to specify CONFIG_BOOTCOMMAND as a string. If 963 this option is disabled, CONFIG_BOOTCOMMAND will be undefined and 964 won't take any space in U-Boot image. 965 966config BOOTCOMMAND 967 string "bootcmd value" 968 depends on USE_BOOTCOMMAND && !USE_DEFAULT_ENV_FILE 969 default "run distro_bootcmd" if DISTRO_DEFAULTS 970 help 971 This is the string of commands that will be used as bootcmd and if 972 AUTOBOOT is set, automatically run. 973 974config USE_PREBOOT 975 bool "Enable preboot" 976 help 977 When this option is enabled, the existence of the environment 978 variable "preboot" will be checked immediately before starting the 979 CONFIG_BOOTDELAY countdown and/or running the auto-boot command resp. 980 entering interactive mode. 981 982 This feature is especially useful when "preboot" is automatically 983 generated or modified. For example, the boot code can modify the 984 "preboot" when a user holds down a certain combination of keys. 985 986config PREBOOT 987 string "preboot default value" 988 depends on USE_PREBOOT && !USE_DEFAULT_ENV_FILE 989 default "usb start" if USB_KEYBOARD 990 default "" 991 help 992 This is the default of "preboot" environment variable. 993 994config DEFAULT_FDT_FILE 995 string "Default fdt file" 996 help 997 This option is used to set the default fdt file to boot OS. 998 999endmenu # Booting 1000