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