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