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