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