5 config ANDROID_BOOT_IMAGE
6 bool "Enable support for Android Boot Images"
9 This enables support for booting images which use the Android
13 bool "Support Flattened Image Tree"
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).
30 config FIT_EXTERNAL_OFFSET
31 hex "FIT external data offset"
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.
41 bool "Do a full check of the FIT before using it"
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.
50 bool "Enable signature verification of FIT uImages"
55 select IMAGE_SIGN_INFO
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.
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.
70 config FIT_SIGNATURE_MAX_SIZE
71 hex "Max size of signed FIT structures"
72 depends on FIT_SIGNATURE
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
81 bool "Support rsassa-pss signature scheme of FIT image contents"
82 depends on FIT_SIGNATURE
85 Enable this to support the pss padding algorithm as described
86 in the rfc8017 (https://tools.ietf.org/html/rfc8017).
89 bool "Enable ciphering data in a FIT uImages"
93 Enable the feature of data ciphering/unciphering in the tool mkimage
94 and in the u-boot support of the FIT image.
97 bool "Show verbose messages when FIT images fail"
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
104 config FIT_BEST_MATCH
105 bool "Select the best match for the kernel device tree"
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.
113 config 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
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).
128 bool "Support FIT printing"
131 Support printing the content of the fitImage in a verbose manner.
136 bool "Support Flattened Image Tree within SPL"
142 bool "Support FIT printing within SPL"
145 Support printing the content of the fitImage in a verbose manner in SPL.
147 config SPL_FIT_FULL_CHECK
148 bool "Do a full check of the FIT before using it"
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.
156 config SPL_FIT_SIGNATURE
157 bool "Enable signature verification of FIT firmware within SPL"
159 depends on SPL_LOAD_FIT || SPL_LOAD_FIT_FULL
166 select SPL_IMAGE_SIGN_INFO
167 select SPL_FIT_FULL_CHECK
170 bool "Enable SPL loading U-Boot as a FIT (basic fitImage features)"
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.
180 This path has the following limitations:
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.
190 config SPL_LOAD_FIT_ADDRESS
191 hex "load address of fit image"
192 depends on SPL_LOAD_FIT
195 Specify the load address of the fit image that will be loaded
198 config 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
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.
207 config SPL_LOAD_FIT_APPLY_OVERLAY_BUF_SZ
208 depends on SPL_LOAD_FIT_APPLY_OVERLAY
210 hex "size of temporary buffer used to load the overlays"
212 The size of the area where the overlays will be loaded and
213 uncompress. Must be at least as large as biggest overlay
216 config SPL_LOAD_FIT_FULL
217 bool "Enable SPL loading U-Boot as a FIT (full fitImage features)"
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.
227 config SPL_FIT_IMAGE_POST_PROCESS
228 bool "Enable post-processing of FIT artifacts after loading by the SPL"
229 depends on SPL_LOAD_FIT
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).
241 config SPL_FIT_SOURCE
242 string ".its source file for U-Boot FIT image"
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
249 config USE_SPL_FIT_GENERATOR
250 bool "Use a script to generate the .its script"
251 default y if SPL_FIT && (!ARCH_SUNXI && !RISCV)
253 config 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
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.
268 config LEGACY_IMAGE_FORMAT
269 bool "Enable support for the legacy image format"
270 default y if !FIT_SIGNATURE
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.
278 config SUPPORT_RAW_INITRD
279 bool "Enable raw initrd images"
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>".
286 config OF_BOARD_SETUP
287 bool "Set up board-specific details in device tree before boot"
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.
295 config OF_SYSTEM_SETUP
296 bool "Set up system-specific details in device tree before boot"
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.
304 config OF_STDOUT_VIA_ALIAS
305 bool "Update the device-tree stdout alias from U-Boot"
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.
315 config SYS_EXTRA_OPTIONS
316 string "Extra Options (DEPRECATED)"
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
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.
328 config HAVE_SYS_TEXT_BASE
330 depends on !NIOS2 && !XTENSA
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
343 The address in memory that U-Boot will be running from, initially.
346 depends on ARC || ARCH_SUNXI || MPC83xx
347 int "CPU clock frequency"
349 TODO: Move CONFIG_SYS_CLK_FREQ for all the architecture
351 config ARCH_FIXUP_FDT_MEMORY
352 bool "Enable arch_fixup_memory_banks() call"
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.
360 bool "Support booting Chrome OS"
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
367 config CHROMEOS_VBOOT
368 bool "Support Chrome OS verified boot"
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.
376 endmenu # Boot images
381 bool "Boot timing and reporting"
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.
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
395 Calls to show_boot_progress() will also result in log entries but
396 these will not have names.
399 bool "Boot timing and reported in SPL"
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
408 bool "Boot timing and reported in TPL"
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
416 config BOOTSTAGE_REPORT
417 bool "Display a detailed boot timing report before booting the OS"
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:
424 Timer summary in microseconds:
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
435 config BOOTSTAGE_RECORD_COUNT
436 int "Number of boot stage records to store"
440 This is the size of the bootstage record list and is the maximum
441 number of bootstage records that can be recorded.
443 config SPL_BOOTSTAGE_RECORD_COUNT
444 int "Number of boot stage records to store for SPL"
445 depends on SPL_BOOTSTAGE
448 This is the size of the bootstage record list and is the maximum
449 number of bootstage records that can be recorded.
451 config TPL_BOOTSTAGE_RECORD_COUNT
452 int "Number of boot stage records to store for TPL"
453 depends on TPL_BOOTSTAGE
456 This is the size of the bootstage record list and is the maximum
457 number of bootstage records that can be recorded.
460 bool "Store boot timing information in the OS device tree"
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.
472 name = "board_init_f";
481 Code in the Linux kernel can find this in /proc/devicetree.
483 config BOOTSTAGE_STASH
484 bool "Stash the boot timing information in memory before booting OS"
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
494 config BOOTSTAGE_STASH_ADDR
495 hex "Address to stash boot timing information"
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.
501 config BOOTSTAGE_STASH_SIZE
502 hex "Size of boot timing stash region"
505 This should be large enough to hold the bootstage stash. A value of
506 4096 (4KiB) is normally plenty.
508 config SHOW_BOOT_PROGRESS
509 bool "Show boot progress in a board-specific manner"
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
517 Legacy uImage format:
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)
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.
548 15 arch/<arch>/lib/bootm.c All preparation done, transferring control to OS
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()
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
602 -60 common/env_common.c Environment has a bad CRC, using default
604 64 net/eth.c starting with Ethernet configuration.
605 -64 net/eth.c no Ethernet found.
606 65 net/eth.c Ethernet found.
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
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
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
661 -130 common/cmd_doc.c Incorrect FIT image format
662 131 common/cmd_doc.c FIT image format OK
664 -140 common/cmd_ide.c Incorrect FIT image format
665 141 common/cmd_ide.c FIT image format OK
667 -150 common/cmd_nand.c Incorrect FIT image format
668 151 common/cmd_nand.c FIT image format OK
675 bool "Support for booting from NOR flash"
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
684 bool "Support for booting from NAND flash"
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,
693 bool "Support for booting from ONENAND"
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,
702 bool "Support for booting from QSPI flash"
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,
710 bool "Support for booting from SATA"
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,
718 bool "Support for booting from SD/EMMC"
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,
726 bool "Support for booting from SPI flash"
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,
735 menu "Autoboot options"
741 This enables the autoboot. See doc/README.autoboot for detail.
744 int "delay in seconds before automatically booting"
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
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.
757 See doc/README.autoboot for details.
759 config AUTOBOOT_KEYED
760 bool "Stop autobooting via specific input key / string"
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.
769 config AUTOBOOT_FLUSH_STDIN
770 bool "Enable flushing stdin before starting to read the password"
771 depends on AUTOBOOT_KEYED && !SANDBOX
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.
778 config AUTOBOOT_PROMPT
779 string "Autoboot stop prompt"
780 depends on AUTOBOOT_KEYED
781 default "Autoboot in %d seconds\\n"
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.
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.
794 config AUTOBOOT_ENCRYPTION
795 bool "Enable encryption in autoboot stopping"
796 depends on AUTOBOOT_KEYED
798 This option allows a string to be entered into U-Boot to stop the
800 The behavior depends whether CONFIG_CRYPT_PW from lib is enabled
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
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.
813 config AUTOBOOT_SHA256_FALLBACK
814 bool "Allow fallback from crypt-hashed password to sha256"
815 depends on AUTOBOOT_ENCRYPTION && CRYPT_PW
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'.
821 config AUTOBOOT_DELAY_STR
822 string "Delay autobooting via specific input key / string"
823 depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION
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.
833 config AUTOBOOT_STOP_STR
834 string "Stop autobooting via specific input key / string"
835 depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION
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.
845 config AUTOBOOT_KEYED_CTRLC
846 bool "Enable Ctrl-C autoboot interruption"
847 depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION
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.
855 config AUTOBOOT_NEVER_TIMEOUT
856 bool "Make the password entry never time-out"
857 depends on AUTOBOOT_KEYED && AUTOBOOT_ENCRYPTION && CRYPT_PW
859 This option removes the timeout from the password entry
860 when the user first presses the <Enter> key before entering
863 config AUTOBOOT_STOP_STR_ENABLE
864 bool "Enable fixed string to stop autobooting"
865 depends on AUTOBOOT_KEYED && AUTOBOOT_ENCRYPTION
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.
874 config AUTOBOOT_STOP_STR_CRYPT
875 string "Stop autobooting via crypt-hashed password"
876 depends on AUTOBOOT_STOP_STR_ENABLE && CRYPT_PW
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".
884 config AUTOBOOT_STOP_STR_SHA256
885 string "Stop autobooting via SHA256 hashed password"
886 depends on AUTOBOOT_STOP_STR_ENABLE
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
896 config AUTOBOOT_USE_MENUKEY
897 bool "Allow a specify key to run a menu from the environment"
898 depends on !AUTOBOOT_KEYED
900 If a specific key is pressed to stop autoboot, then the commands in
901 the environment variable 'menucmd' are executed before boot starts.
903 config AUTOBOOT_MENUKEY
904 int "ASCII value of boot key to show a menu"
906 depends on AUTOBOOT_USE_MENUKEY
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
913 config AUTOBOOT_MENU_SHOW
914 bool "Show a menu on boot"
915 depends on CMD_BOOTMENU
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.
925 bool "Enable boot arguments"
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.
933 string "Boot arguments"
934 depends on USE_BOOTARGS && !USE_DEFAULT_ENV_FILE
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.
940 config BOOTARGS_SUBST
941 bool "Support substituting strings in boot arguments"
943 This allows substituting string values in the boot arguments. These
944 are applied after the commandline has been built.
946 One use for this is to insert the root-disk UUID into the command
947 line where bootargs contains "root=${uuid}"
949 setenv bootargs "console= root=${uuid}"
950 # Set the 'uuid' environment variable
951 part uuid mmc 2:2 uuid
953 # Command-line substitution will put the real uuid into the
954 # kernel command line
957 config USE_BOOTCOMMAND
958 bool "Enable a default value for bootcmd"
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.
967 string "bootcmd value"
968 depends on USE_BOOTCOMMAND && !USE_DEFAULT_ENV_FILE
969 default "run distro_bootcmd" if DISTRO_DEFAULTS
971 This is the string of commands that will be used as bootcmd and if
972 AUTOBOOT is set, automatically run.
975 bool "Enable preboot"
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.
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.
987 string "preboot default value"
988 depends on USE_PREBOOT && !USE_DEFAULT_ENV_FILE
989 default "usb start" if USB_KEYBOARD
992 This is the default of "preboot" environment variable.
994 config DEFAULT_FDT_FILE
995 string "Default fdt file"
997 This option is used to set the default fdt file to boot OS.