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