blob: 8b32a51f7e7cbcd67192671459f99d6356b4ac67 [file] [log] [blame]
Simon Glasscf298162020-09-10 20:21:13 -06001menu "Boot options"
2
3menu "Boot images"
4
Simon Glass12a7ea02023-09-14 10:55:49 -06005menuconfig FIT
6 bool "Flattened Image Tree (FIT)"
Alexandru Gagniuc92055e12021-09-02 19:54:21 -05007 select HASH
Simon Glasscf298162020-09-10 20:21:13 -06008 select MD5
9 select SHA1
Alexandru Gagniuceb5171d2021-09-02 19:54:17 -050010 imply SHA256
Simon Glasscf298162020-09-10 20:21:13 -060011 help
12 This option allows you to boot the new uImage structure,
13 Flattened Image Tree. FIT is formally a FDT, which can include
14 images of various types (kernel, FDT blob, ramdisk, etc.)
15 in a single blob. To boot this new uImage structure,
16 pass the address of the blob to the "bootm" command.
17 FIT is very flexible, supporting compression, multiple images,
18 multiple configurations, verification through hashing and also
19 verified boot (secure boot using RSA).
20
Simon Glass12a7ea02023-09-14 10:55:49 -060021if FIT
Simon Glassd6b318d2021-12-18 11:27:50 -070022
Simon Glasscf298162020-09-10 20:21:13 -060023config FIT_EXTERNAL_OFFSET
24 hex "FIT external data offset"
25 default 0x0
26 help
27 This specifies a data offset in fit image.
28 The offset is from data payload offset to the beginning of
29 fit image header. When specifies a offset, specific data
30 could be put in the hole between data payload and fit image
31 header, such as CSF data on i.MX platform.
32
Simon Glass6f3c2d82021-02-15 17:08:10 -070033config FIT_FULL_CHECK
34 bool "Do a full check of the FIT before using it"
35 default y
36 help
37 Enable this do a full check of the FIT to make sure it is valid. This
38 helps to protect against carefully crafted FITs which take advantage
39 of bugs or omissions in the code. This includes a bad structure,
40 multiple root nodes and the like.
41
Simon Glasscf298162020-09-10 20:21:13 -060042config FIT_SIGNATURE
43 bool "Enable signature verification of FIT uImages"
Simon Glass12a7ea02023-09-14 10:55:49 -060044 depends on DM
Simon Glasscf298162020-09-10 20:21:13 -060045 select HASH
Alexandru Gagniuc61416fe2021-07-29 11:47:18 -050046 imply RSA
47 imply RSA_VERIFY
Simon Glasscf298162020-09-10 20:21:13 -060048 select IMAGE_SIGN_INFO
Simon Glass6f3c2d82021-02-15 17:08:10 -070049 select FIT_FULL_CHECK
Simon Glasscf298162020-09-10 20:21:13 -060050 help
51 This option enables signature verification of FIT uImages,
52 using a hash signed and verified using RSA. If
53 CONFIG_SHA_PROG_HW_ACCEL is defined, i.e support for progressive
54 hashing is available using hardware, then the RSA library will use
55 it. See doc/uImage.FIT/signature.txt for more details.
56
57 WARNING: When relying on signed FIT images with a required signature
58 check the legacy image format is disabled by default, so that
59 unsigned images cannot be loaded. If a board needs the legacy image
60 format support in this case, enable it using
61 CONFIG_LEGACY_IMAGE_FORMAT.
62
63config FIT_SIGNATURE_MAX_SIZE
64 hex "Max size of signed FIT structures"
65 depends on FIT_SIGNATURE
66 default 0x10000000
67 help
68 This option sets a max size in bytes for verified FIT uImages.
69 A sane value of 256MB protects corrupted DTB structures from overlapping
70 device memory. Assure this size does not extend past expected storage
71 space.
72
Simon Glassad74aed2021-07-14 17:05:31 -050073config FIT_RSASSA_PSS
Simon Glasscf298162020-09-10 20:21:13 -060074 bool "Support rsassa-pss signature scheme of FIT image contents"
75 depends on FIT_SIGNATURE
Simon Glasscf298162020-09-10 20:21:13 -060076 help
77 Enable this to support the pss padding algorithm as described
78 in the rfc8017 (https://tools.ietf.org/html/rfc8017).
79
80config FIT_CIPHER
81 bool "Enable ciphering data in a FIT uImages"
Simon Glass12a7ea02023-09-14 10:55:49 -060082 depends on DM
Simon Glasscf298162020-09-10 20:21:13 -060083 select AES
84 help
85 Enable the feature of data ciphering/unciphering in the tool mkimage
86 and in the u-boot support of the FIT image.
87
88config FIT_VERBOSE
89 bool "Show verbose messages when FIT images fail"
90 help
91 Generally a system will have valid FIT images so debug messages
92 are a waste of code space. If you are debugging your images then
93 you can enable this option to get more verbose information about
94 failures.
95
96config FIT_BEST_MATCH
97 bool "Select the best match for the kernel device tree"
98 help
99 When no configuration is explicitly selected, default to the
100 one whose fdt's compatibility field best matches that of
101 U-Boot itself. A match is considered "best" if it matches the
102 most specific compatibility entry of U-Boot's fdt's root node.
103 The order of entries in the configuration's fdt is ignored.
104
105config FIT_IMAGE_POST_PROCESS
106 bool "Enable post-processing of FIT artifacts after loading by U-Boot"
Manorit Chawdhry86fab112023-07-14 11:22:40 +0530107 depends on SOCFPGA_SECURE_VAB_AUTH
Simon Glasscf298162020-09-10 20:21:13 -0600108 help
109 Allows doing any sort of manipulation to blobs after they got extracted
110 from FIT images like stripping off headers or modifying the size of the
111 blob, verification, authentication, decryption etc. in a platform or
112 board specific way. In order to use this feature a platform or board-
113 specific implementation of board_fit_image_post_process() must be
114 provided. Also, anything done during this post-processing step would
115 need to be comprehended in how the images were prepared before being
116 injected into the FIT creation (i.e. the blobs would have been pre-
117 processed before being added to the FIT image).
118
Ravik Hasija7a018822021-01-27 14:01:48 -0800119config FIT_PRINT
120 bool "Support FIT printing"
121 default y
122 help
123 Support printing the content of the fitImage in a verbose manner.
124
Simon Glasscf298162020-09-10 20:21:13 -0600125config SPL_FIT
126 bool "Support Flattened Image Tree within SPL"
Simon Glass4d8ea262023-09-14 10:55:52 -0600127 depends on SPL
Alexandru Gagniuc92055e12021-09-02 19:54:21 -0500128 select SPL_HASH
Simon Glasscf298162020-09-10 20:21:13 -0600129 select SPL_OF_LIBFDT
130
131config SPL_FIT_PRINT
132 bool "Support FIT printing within SPL"
133 depends on SPL_FIT
134 help
135 Support printing the content of the fitImage in a verbose manner in SPL.
136
Simon Glass6f3c2d82021-02-15 17:08:10 -0700137config SPL_FIT_FULL_CHECK
138 bool "Do a full check of the FIT before using it"
Tom Rini90c78882022-12-04 10:14:20 -0500139 depends on SPL_FIT
Simon Glass6f3c2d82021-02-15 17:08:10 -0700140 help
141 Enable this do a full check of the FIT to make sure it is valid. This
142 helps to protect against carefully crafted FITs which take advantage
143 of bugs or omissions in the code. This includes a bad structure,
144 multiple root nodes and the like.
145
Simon Glasscf298162020-09-10 20:21:13 -0600146config SPL_FIT_SIGNATURE
147 bool "Enable signature verification of FIT firmware within SPL"
148 depends on SPL_DM
Klaus Heinrich Kiwibdb7f262021-02-09 15:41:54 -0300149 depends on SPL_LOAD_FIT || SPL_LOAD_FIT_FULL
Klaus Heinrich Kiwi6ce28132021-02-09 15:41:53 -0300150 select FIT_SIGNATURE
Simon Glasscf298162020-09-10 20:21:13 -0600151 select SPL_FIT
Simon Glass0c6bdbb2021-07-10 21:14:25 -0600152 select SPL_CRYPTO
Alexandru Gagniuc07212092021-09-02 19:54:19 -0500153 select SPL_HASH
Alexandru Gagniuc61416fe2021-07-29 11:47:18 -0500154 imply SPL_RSA
155 imply SPL_RSA_VERIFY
Simon Glasscf298162020-09-10 20:21:13 -0600156 select SPL_IMAGE_SIGN_INFO
Simon Glass6f3c2d82021-02-15 17:08:10 -0700157 select SPL_FIT_FULL_CHECK
Simon Glasscf298162020-09-10 20:21:13 -0600158
Simon Glassb53541f2021-09-25 19:43:39 -0600159config SPL_FIT_SIGNATURE_MAX_SIZE
160 hex "Max size of signed FIT structures in SPL"
161 depends on SPL_FIT_SIGNATURE
162 default 0x10000000
163 help
164 This option sets a max size in bytes for verified FIT uImages.
165 A sane value of 256MB protects corrupted DTB structures from overlapping
166 device memory. Assure this size does not extend past expected storage
167 space.
168
Philippe Reynes5d39c932021-10-15 11:35:03 +0200169config SPL_FIT_RSASSA_PSS
170 bool "Support rsassa-pss signature scheme of FIT image contents in SPL"
171 depends on SPL_FIT_SIGNATURE
172 help
173 Enable this to support the pss padding algorithm as described
174 in the rfc8017 (https://tools.ietf.org/html/rfc8017) in SPL.
175
Simon Glasscf298162020-09-10 20:21:13 -0600176config SPL_LOAD_FIT
177 bool "Enable SPL loading U-Boot as a FIT (basic fitImage features)"
Simon Glass4d8ea262023-09-14 10:55:52 -0600178 depends on SPL
Simon Glasscf298162020-09-10 20:21:13 -0600179 select SPL_FIT
180 help
181 Normally with the SPL framework a legacy image is generated as part
182 of the build. This contains U-Boot along with information as to
183 where it should be loaded. This option instead enables generation
184 of a FIT (Flat Image Tree) which provides more flexibility. In
185 particular it can handle selecting from multiple device tree
186 and passing the correct one to U-Boot.
187
Alexandru Gagniucdf51ae72021-03-29 12:05:15 -0500188 This path has the following limitations:
189
Bin Meng6e847f62021-05-10 20:23:29 +0800190 1. "loadables" images, other than FDTs, which do not have a "load"
Alexandru Gagniucdf51ae72021-03-29 12:05:15 -0500191 property will not be loaded. This limitation also applies to FPGA
192 images with the correct "compatible" string.
Oleksandr Suvorova3a1afb2022-07-22 17:16:13 +0300193 2. For FPGA images, the supported "compatible" list is in the
194 doc/uImage.FIT/source_file_format.txt.
Alexandru Gagniucdf51ae72021-03-29 12:05:15 -0500195 3. FDTs are only loaded for images with an "os" property of "u-boot".
196 "linux" images are also supported with Falcon boot mode.
197
Simon Glasscf298162020-09-10 20:21:13 -0600198config SPL_LOAD_FIT_ADDRESS
199 hex "load address of fit image"
Simon Glass815f8d32023-09-14 10:55:51 -0600200 depends on SPL_LOAD_FIT
Simon Glasscf298162020-09-10 20:21:13 -0600201 default 0x0
202 help
203 Specify the load address of the fit image that will be loaded
204 by SPL.
205
206config SPL_LOAD_FIT_APPLY_OVERLAY
207 bool "Enable SPL applying DT overlays from FIT"
208 depends on SPL_LOAD_FIT
209 select OF_LIBFDT_OVERLAY
210 help
Hugo Villeneuveb4230372023-04-24 16:51:12 -0400211 The device tree is loaded from the FIT image. Allow the SPL to
Simon Glasscf298162020-09-10 20:21:13 -0600212 also load device-tree overlays from the FIT image an apply them
213 over the device tree.
214
215config SPL_LOAD_FIT_APPLY_OVERLAY_BUF_SZ
216 depends on SPL_LOAD_FIT_APPLY_OVERLAY
217 default 0x10000
218 hex "size of temporary buffer used to load the overlays"
219 help
220 The size of the area where the overlays will be loaded and
221 uncompress. Must be at least as large as biggest overlay
222 (uncompressed)
223
224config SPL_LOAD_FIT_FULL
225 bool "Enable SPL loading U-Boot as a FIT (full fitImage features)"
226 select SPL_FIT
227 help
228 Normally with the SPL framework a legacy image is generated as part
229 of the build. This contains U-Boot along with information as to
230 where it should be loaded. This option instead enables generation
231 of a FIT (Flat Image Tree) which provides more flexibility. In
232 particular it can handle selecting from multiple device tree
233 and passing the correct one to U-Boot.
234
235config SPL_FIT_IMAGE_POST_PROCESS
236 bool "Enable post-processing of FIT artifacts after loading by the SPL"
237 depends on SPL_LOAD_FIT
Andrew Davis042e87e2022-05-04 15:52:28 -0500238 default y if TI_SECURE_DEVICE
Simon Glasscf298162020-09-10 20:21:13 -0600239 help
240 Allows doing any sort of manipulation to blobs after they got extracted
241 from the U-Boot FIT image like stripping off headers or modifying the
242 size of the blob, verification, authentication, decryption etc. in a
243 platform or board specific way. In order to use this feature a platform
244 or board-specific implementation of board_fit_image_post_process() must
245 be provided. Also, anything done during this post-processing step would
246 need to be comprehended in how the images were prepared before being
247 injected into the FIT creation (i.e. the blobs would have been pre-
248 processed before being added to the FIT image).
249
250config SPL_FIT_SOURCE
251 string ".its source file for U-Boot FIT image"
252 depends on SPL_FIT
253 help
254 Specifies a (platform specific) FIT source file to generate the
255 U-Boot FIT image. This could specify further image to load and/or
256 execute.
257
258config USE_SPL_FIT_GENERATOR
259 bool "Use a script to generate the .its script"
Tom Rini90c78882022-12-04 10:14:20 -0500260 depends on SPL_FIT
Simon Glass31f35e82023-01-07 14:07:19 -0700261 default y if SPL_FIT && ARCH_ZYNQMP
Simon Glasscf298162020-09-10 20:21:13 -0600262
263config SPL_FIT_GENERATOR
264 string ".its file generator script for U-Boot FIT image"
265 depends on USE_SPL_FIT_GENERATOR
Simon Glasscf298162020-09-10 20:21:13 -0600266 default "arch/arm/mach-zynqmp/mkimage_fit_atf.sh" if SPL_LOAD_FIT && ARCH_ZYNQMP
Simon Glasscf298162020-09-10 20:21:13 -0600267 help
268 Specifies a (platform specific) script file to generate the FIT
269 source file used to build the U-Boot FIT image file. This gets
270 passed a list of supported device tree file stub names to
271 include in the generated image.
272
Simon Glass42184562022-10-20 18:23:13 -0600273if VPL
274
275config VPL_FIT
276 bool "Support Flattened Image Tree within VPL"
277 depends on VPL
278 default y
279 select VPL_HASH
280 select VPL_OF_LIBFDT
281
282config VPL_FIT_PRINT
283 bool "Support FIT printing within VPL"
284 depends on VPL_FIT
285 default y
286 help
287 Support printing the content of the fitImage in a verbose manner in VPL.
288
289config VPL_FIT_FULL_CHECK
290 bool "Do a full check of the FIT before using it"
291 default y
292 help
293 Enable this do a full check of the FIT to make sure it is valid. This
294 helps to protect against carefully crafted FITs which take advantage
295 of bugs or omissions in the code. This includes a bad structure,
296 multiple root nodes and the like.
297
298config VPL_FIT_SIGNATURE
299 bool "Enable signature verification of FIT firmware within VPL"
300 depends on VPL_DM
Simon Glass42184562022-10-20 18:23:13 -0600301 default y
302 select FIT_SIGNATURE
303 select VPL_FIT
304 select VPL_CRYPTO
305 select VPL_HASH
306 imply VPL_RSA
307 imply VPL_RSA_VERIFY
308 select VPL_IMAGE_SIGN_INFO
309 select VPL_FIT_FULL_CHECK
310
311config VPL_FIT_SIGNATURE_MAX_SIZE
312 hex "Max size of signed FIT structures in VPL"
313 depends on VPL_FIT_SIGNATURE
314 default 0x10000000
315 help
316 This option sets a max size in bytes for verified FIT uImages.
317 A sane value of 256MB protects corrupted DTB structures from overlapping
318 device memory. Assure this size does not extend past expected storage
319 space.
320
321endif # VPL
322
Simon Glass4d8ea262023-09-14 10:55:52 -0600323endif # FIT
324
John Keepingbe43a352022-07-28 11:19:15 +0100325config PXE_UTILS
326 bool
327 select MENU
328 help
329 Utilities for parsing PXE file formats.
330
Tom Rini2180a452023-10-26 14:31:24 -0400331config BOOT_DEFAULTS_FEATURES
332 bool
333 select SUPPORT_RAW_INITRD
334 select ENV_VARS_UBOOT_CONFIG
335 imply USB_STORAGE
336 imply EFI_PARTITION
337 imply ISO_PARTITION
338
339config BOOT_DEFAULTS_CMDS
340 bool
Simon Glassa0c739c2023-03-24 16:58:13 -0400341 imply USE_BOOTCOMMAND
342 select CMD_ENV_EXISTS
343 select CMD_EXT2
344 select CMD_EXT4
345 select CMD_FAT
346 select CMD_FS_GENERIC
347 select CMD_PART if PARTITIONS
348 select CMD_DHCP if CMD_NET
349 select CMD_PING if CMD_NET
350 select CMD_PXE if CMD_NET
Simon Glassa0c739c2023-03-24 16:58:13 -0400351 select CMD_BOOTI if ARM64
352 select CMD_BOOTZ if ARM && !ARM64
353 imply CMD_MII if NET
Tom Rini2180a452023-10-26 14:31:24 -0400354
355config BOOT_DEFAULTS
356 bool # Common defaults for standard boot and distroboot
357 select BOOT_DEFAULTS_FEATURES
358 select BOOT_DEFAULTS_CMDS if CMDLINE
Simon Glassa0c739c2023-03-24 16:58:13 -0400359 help
360 These are not required but are commonly needed to support a good
361 selection of booting methods. Enable this to improve the capability
362 of U-Boot to boot various images. Currently much functionality is
363 tied to enabling the command that exercises it.
364
Simon Glass4a8fcb62023-09-14 10:55:53 -0600365menuconfig BOOTSTD
366 bool "Standard boot"
Simon Glassef5e3892022-04-24 23:31:06 -0600367 default y
368 depends on DM && OF_CONTROL && BLK
369 help
370 U-Boot supports a standard way of locating something to boot,
371 typically an Operating System such as Linux, provided by a distro such
372 as Arch Linux or Debian. Enable this to support iterating through
373 available bootdevs and using bootmeths to find bootflows suitable for
374 booting.
375
376 Standard boot is not a standard way of booting, just a framework
377 within U-Boot for supporting all the different ways that exist.
378
379 Terminology:
380
381 - bootdev - a device which can hold a distro (e.g. MMC)
382 - bootmeth - a method to scan a bootdev to find bootflows (owned by
383 U-Boot)
384 - bootflow - a description of how to boot (owned by the distro)
385
Simon Glass4a8fcb62023-09-14 10:55:53 -0600386if BOOTSTD
387
Simon Glass42184562022-10-20 18:23:13 -0600388config SPL_BOOTSTD
Simon Glass1c419582023-02-22 09:33:58 -0700389 bool "Standard boot support in SPL"
Simon Glass42184562022-10-20 18:23:13 -0600390 depends on SPL && SPL_DM && SPL_OF_CONTROL && SPL_BLK
391 default y if VPL
392 help
393 This enables standard boot in SPL. This is neeeded so that VBE
394 (Verified Boot for Embedded) can be used, since it depends on standard
395 boot. It is enabled by default since the main purpose of VPL is to
396 handle the firmware part of VBE.
397
398config VPL_BOOTSTD
399 bool "Standard boot support in VPL"
400 depends on VPL && VPL_DM && VPL_OF_CONTROL && VPL_BLK
401 default y
402 help
403 This enables standard boot in SPL. This is neeeded so that VBE
404 (Verified Boot for Embedded) can be used, since it depends on standard
405 boot. It is enabled by default since the main purpose of VPL is to
406 handle the firmware part of VBE.
407
Simon Glassbcb1d262023-02-22 14:06:23 -0700408config BOOTSTD_FULL
409 bool "Enhanced features for standard boot"
410 default y if SANDBOX
411 help
412 This enables various useful features for standard boot, which are not
413 essential for operation:
414
415 - bootdev, bootmeth commands
416 - extra features in the bootflow command
417 - support for selecting the ordering of bootmeths ("bootmeth order")
418 - support for selecting the ordering of bootdevs using the devicetree
419 as well as the "boot_targets" environment variable
420
Simon Glass22353fa2023-01-28 15:00:21 -0700421config BOOTSTD_DEFAULTS
422 bool "Select some common defaults for standard boot"
423 depends on BOOTSTD
Simon Glassa0c739c2023-03-24 16:58:13 -0400424 select BOOT_DEFAULTS
Simon Glassfba0e732023-05-10 16:34:47 -0600425 select BOOTMETH_DISTRO
Simon Glass22353fa2023-01-28 15:00:21 -0700426 help
427 These are not required but are commonly needed to support a good
428 selection of booting methods. Enable this to improve the capability
429 of U-Boot to boot various images.
430
Simon Glassa91492b2022-04-24 23:31:27 -0600431config BOOTSTD_BOOTCOMMAND
432 bool "Use bootstd to boot"
433 default y if !DISTRO_DEFAULTS
434 help
435 Enable this to select a default boot-command suitable for booting
436 with standard boot. This can be overridden by the board if needed,
437 but the default command should be enough for most boards which use
438 standard boot.
439
440 For now this is only selected if distro boot is NOT used, since
441 standard boot does not support all of the features of distro boot
442 yet.
443
Simon Glass1047b532023-11-18 14:05:19 -0700444config BOOTSTD_PROG
445 bool "Use programmatic boot"
446 depends on !CMDLINE
447 default y
448 help
449 Enable this to provide a board_run_command() function which can boot
450 a systen without using commands. If the boot fails, then U-Boot will
451 panic.
452
453 Note: This currently has many limitations and is not a useful booting
454 solution. Future work will eventually make this a viable option.
455
Simon Glassbc06aa02022-07-30 15:52:21 -0600456config BOOTMETH_GLOBAL
457 bool
458 help
459 Add support for global bootmeths. This feature is used by VBE and
460 EFI bootmgr, since they take full control over which bootdevs are
461 selected to boot.
462
Simon Glassc88d67d2023-07-12 09:04:45 -0600463config BOOTMETH_CROS
464 bool "Bootdev support for Chromium OS"
Simon Glassdaffb0b2023-07-30 11:17:02 -0600465 depends on X86 || ARM || SANDBOX
466 default y if !ARM
Simon Glass71f634b2023-08-24 13:55:45 -0600467 select EFI_PARTITION
468 select PARTITION_TYPE_GUID
469 select PARTITION_UUIDS
Simon Glassc88d67d2023-07-12 09:04:45 -0600470 help
471 Enables support for booting Chromium OS using bootdevs. This uses the
472 kernel A slot and obtains the kernel command line from the parameters
473 provided there.
474
475 Note that only x86 devices are supported at present.
476
Simon Glass79f66352023-05-10 16:34:46 -0600477config BOOTMETH_EXTLINUX
478 bool "Bootdev support for extlinux boot"
John Keepingbe43a352022-07-28 11:19:15 +0100479 select PXE_UTILS
Simon Glass31aefaf2022-04-24 23:31:13 -0600480 default y
481 help
Simon Glass79f66352023-05-10 16:34:46 -0600482 Enables support for extlinux boot using bootdevs. This makes the
Simon Glass31aefaf2022-04-24 23:31:13 -0600483 bootdevs look for a 'extlinux/extlinux.conf' on each filesystem
484 they scan.
485
Simon Glass79f66352023-05-10 16:34:46 -0600486 The specification for this filed is here:
487
488 https://uapi-group.org/specifications/specs/boot_loader_specification/
489
Simon Glass31aefaf2022-04-24 23:31:13 -0600490 This provides a way to try out standard boot on an existing boot flow.
491
Simon Glass79f66352023-05-10 16:34:46 -0600492config BOOTMETH_EXTLINUX_PXE
493 bool "Bootdev support for extlinux boot over network"
Simon Glassdab2c282022-04-24 23:31:16 -0600494 depends on CMD_PXE && CMD_NET && DM_ETH
495 default y
496 help
Simon Glass79f66352023-05-10 16:34:46 -0600497 Enables support for extlinux boot using bootdevs. This makes the
Simon Glassdab2c282022-04-24 23:31:16 -0600498 bootdevs look for a 'extlinux/extlinux.conf' on the tftp server.
499
Simon Glass79f66352023-05-10 16:34:46 -0600500 The specification for this file is here:
501
502 https://uapi-group.org/specifications/specs/boot_loader_specification/
503
Simon Glassdab2c282022-04-24 23:31:16 -0600504 This provides a way to try out standard boot on an existing boot flow.
505
Simon Glassacfa9bd2022-04-24 23:31:17 -0600506config BOOTMETH_EFILOADER
507 bool "Bootdev support for EFI boot"
Tom Rini0bb4abd2023-10-26 14:31:21 -0400508 depends on CMD_BOOTEFI
Simon Glassacfa9bd2022-04-24 23:31:17 -0600509 default y
510 help
511 Enables support for EFI boot using bootdevs. This makes the
512 bootdevs look for a 'boot<arch>.efi' on each filesystem
513 they scan. The resulting file is booted after enabling U-Boot's
514 EFI loader support.
515
516 The <arch> depends on the architecture of the board:
517
518 aa64 - aarch64 (ARM 64-bit)
519 arm - ARM 32-bit
520 ia32 - x86 32-bit
521 x64 - x86 64-bit
522 riscv32 - RISC-V 32-bit
523 riscv64 - RISC-V 64-bit
524
525 This provides a way to try out standard boot on an existing boot flow.
526
Simon Glass4c7418f2022-07-30 15:52:32 -0600527config BOOTMETH_VBE
528 bool "Bootdev support for Verified Boot for Embedded"
529 depends on FIT
530 default y
531 select BOOTMETH_GLOBAL
Tom Rini448e2b62023-01-16 15:46:49 -0500532 select EVENT
Simon Glass4c7418f2022-07-30 15:52:32 -0600533 help
534 Enables support for VBE boot. This is a standard boot method which
535 supports selection of various firmware components, seleciton of an OS to
536 boot as well as updating these using fwupd.
537
Simon Glassfba0e732023-05-10 16:34:47 -0600538config BOOTMETH_DISTRO
539 bool # Options needed to boot any distro
Tom Rini558787f2023-10-26 14:31:27 -0400540 select BOOTMETH_SCRIPT if CMDLINE # E.g. Armbian uses scripts
Simon Glassfba0e732023-05-10 16:34:47 -0600541 select BOOTMETH_EXTLINUX # E.g. Debian uses these
542 select BOOTMETH_EXTLINUX_PXE if CMD_PXE && CMD_NET && DM_ETH
Tom Rini0bb4abd2023-10-26 14:31:21 -0400543 select BOOTMETH_EFILOADER if CMD_BOOTEFI # E.g. Ubuntu uses this
Simon Glassfba0e732023-05-10 16:34:47 -0600544
Simon Glass42184562022-10-20 18:23:13 -0600545config SPL_BOOTMETH_VBE
546 bool "Bootdev support for Verified Boot for Embedded (SPL)"
547 depends on SPL && FIT
Tom Rini448e2b62023-01-16 15:46:49 -0500548 select EVENT
Simon Glass42184562022-10-20 18:23:13 -0600549 default y if VPL
550 help
551 Enables support for VBE boot. This is a standard boot method which
552 supports selection of various firmware components, seleciton of an OS to
553 boot as well as updating these using fwupd.
554
555config VPL_BOOTMETH_VBE
556 bool "Bootdev support for Verified Boot for Embedded (VPL)"
557 depends on VPL && FIT
Tom Rini448e2b62023-01-16 15:46:49 -0500558 select EVENT
Simon Glass42184562022-10-20 18:23:13 -0600559 default y
560 help
561 Enables support for VBE boot. This is a standard boot method which
562 supports selection of various firmware components, seleciton of an OS to
563 boot as well as updating these using fwupd.
564
Simon Glasscb47e212022-07-30 15:52:33 -0600565if BOOTMETH_VBE
566
Simon Glassda900e52023-02-22 09:33:52 -0700567config BOOTMETH_VBE_REQUEST
568 bool "Support for serving VBE OS requests"
569 default y
570 help
571 Enables support for looking that the requests made by the
572 Operating System being booted. These requests result in additions to
573 the device tree /chosen node, added during the device tree fixup
574 phase.
575
576config SPL_BOOTMETH_VBE_REQUEST
577 bool "Support for serving VBE OS requests (SPL)"
578 depends on SPL
579 help
580 Enables support for looking that the requests made by the
581 Operating System being booted. These requests result in additions to
582 the device tree /chosen node, added during the device tree fixup
583 phase.
584
585 This is only useful if you are booting an OS direct from SPL.
586
Simon Glasscb47e212022-07-30 15:52:33 -0600587config BOOTMETH_VBE_SIMPLE
588 bool "Bootdev support for VBE 'simple' method"
589 default y
590 help
591 Enables support for VBE 'simple' boot. This allows updating a single
592 firmware image in boot media such as MMC. It does not support any sort
593 of rollback, recovery or A/B boot.
594
Simon Glass42184562022-10-20 18:23:13 -0600595config BOOTMETH_VBE_SIMPLE_OS
596 bool "Bootdev support for VBE 'simple' method OS phase"
597 default y
598 help
599 Enables support for the OS parts of VBE 'simple' boot. This includes
600 fixing up the device tree with the required VBE information, ready
601 for booting into the OS. This option is only enabled for U-Boot
602 proper, since it is the phase where device tree fixups happen.
603
604config SPL_BOOTMETH_VBE_SIMPLE
605 bool "Bootdev support for VBE 'simple' method (SPL)"
606 depends on SPL
607 default y if VPL
608 help
609 Enables support for VBE 'simple' boot. This allows updating a single
610 firmware image in boot media such as MMC. It does not support any sort
611 of rollback, recovery or A/B boot.
612
613config VPL_BOOTMETH_VBE_SIMPLE
614 bool "Bootdev support for VBE 'simple' method (VPL)"
615 depends on VPL
616 default y
617 help
618 Enables support for VBE 'simple' boot. This allows updating a single
619 firmware image in boot media such as MMC. It does not support any sort
620 of rollback, recovery or A/B boot.
621
622config SPL_BOOTMETH_VBE_SIMPLE_FW
623 bool "Bootdev support for VBE 'simple' method firmware phase (SPL)"
624 depends on VPL
625 default y
626 help
627 Enables support for the firmware parts of VBE 'simple' boot. This
628 includes an SPL loader which locates the correct U-Boot to boot into.
629 This option should really only be enabled for VPL, since it is the
630 phase where the SPL + U-Boot decision should be made. But for now,
631 SPL does its own FIT-configuration selection.
632
633config VPL_BOOTMETH_VBE_SIMPLE_FW
634 bool "Bootdev support for VBE 'simple' method firmware phase (VPL)"
635 depends on VPL
636 default y
637 help
638 Enables support for the firmware parts of VBE 'simple' boot. This
639 includes an SPL loader which locates the correct SPL to boot into.
640 This option enabled for VPL, since it is the phase where the SPL
641 decision is made.
642
Simon Glasscb47e212022-07-30 15:52:33 -0600643endif # BOOTMETH_VBE
644
Simon Glass87c6f8a2023-01-06 08:52:36 -0600645config EXPO
646 bool "Support for expos - groups of scenes displaying a UI"
Simon Glass0041b1c2023-01-28 15:00:18 -0700647 depends on VIDEO
Simon Glass87c6f8a2023-01-06 08:52:36 -0600648 default y if BOOTMETH_VBE
649 help
650 An expo is a way of presenting and collecting information from the
651 user. It consists of a collection of 'scenes' of which only one is
652 presented at a time. An expo is typically used to show a boot menu
653 and allow settings to be changed.
654
655 The expo can be presented in graphics form using a vidconsole, or in
656 text form on a serial console.
657
Simon Glass126947b2022-04-24 23:31:20 -0600658config BOOTMETH_SANDBOX
659 def_bool y
660 depends on SANDBOX
661 help
662 This is a sandbox bootmeth driver used for testing. It always returns
663 -ENOTSUPP when attempting to boot.
664
Simon Glassd9409242022-04-24 23:31:22 -0600665config BOOTMETH_SCRIPT
666 bool "Bootdev support for U-Boot scripts"
667 default y if BOOTSTD_FULL
Tom Rini558787f2023-10-26 14:31:27 -0400668 depends on CMDLINE
Simon Glassab16a3d2023-05-05 20:03:05 -0600669 select HUSH_PARSER
Simon Glassd9409242022-04-24 23:31:22 -0600670 help
671 Enables support for booting a distro via a U-Boot script. This makes
672 the bootdevs look for a 'boot/boot.scr' file which can be used to
673 boot the distro.
674
675 This provides a way to try out standard boot on an existing boot flow.
676 It is not enabled by default to save space.
677
Simon Glass4a8fcb62023-09-14 10:55:53 -0600678endif # BOOTSTD
Simon Glass31aefaf2022-04-24 23:31:13 -0600679
Simon Glass6e558e32023-12-14 21:19:00 -0700680config BOOTM
681 bool "Support booting an application image from memory"
682 default y
683 help
684 This is the main boot implementation in U-Boot, supporting a wide
685 variety of features including FIT and legacy-image boot, kernel and
686 FDT selection, setting up of the command line for the OS and many
687 other features.
688
689 This option should normally be enabled. It is used to implement the
690 'bootm' command.
691
Simon Glass52b3c472023-12-14 21:18:59 -0700692config ANDROID_BOOT_IMAGE
693 bool "Android Boot Images"
694 default y if FASTBOOT
695 help
696 This enables support for booting images which use the Android
697 image format header.
698
699config TIMESTAMP
700 bool "Show image date and time when displaying image information"
701 default y if CMD_DATE
702 help
703 When CONFIG_TIMESTAMP is selected, the timestamp (date and time) of
704 an image is printed by image commands like bootm or iminfo. This
705 is shown as 'Timestamp: xxx' and 'Created: xxx'. If this option is
706 enabled, then U-Boot requires FITs to have a timestamp. If a FIT is
707 loaded that does not, the message 'Wrong FIT format: no timestamp'
708 is shown.
709
Simon Glasscf298162020-09-10 20:21:13 -0600710config LEGACY_IMAGE_FORMAT
711 bool "Enable support for the legacy image format"
Andrew Davis52dc3342022-05-04 15:52:27 -0500712 default y if !FIT_SIGNATURE && !TI_SECURE_DEVICE
Simon Glasscf298162020-09-10 20:21:13 -0600713 help
714 This option enables the legacy image format. It is enabled by
715 default for backward compatibility, unless FIT_SIGNATURE is
716 set where it is disabled so that unsigned images cannot be
717 loaded. If a board needs the legacy image format support in this
718 case, enable it here.
719
Eddie Jamesdec166d2023-10-24 10:43:50 -0500720config MEASURED_BOOT
721 bool "Measure boot images and configuration when booting without EFI"
722 depends on HASH && TPM_V2
723 help
724 This option enables measurement of the boot process when booting
725 without UEFI . Measurement involves creating cryptographic hashes
726 of the binary images that are booting and storing them in the TPM.
727 In addition, a log of these hashes is stored in memory for the OS
728 to verify the booted images and configuration. Enable this if the
729 OS has configured some memory area for the event log and you intend
730 to use some attestation tools on your system.
731
732if MEASURED_BOOT
733 config MEASURE_DEVICETREE
734 bool "Measure the devicetree image"
735 default y if MEASURED_BOOT
736 help
737 On some platforms, the devicetree is not static as it may contain
738 random MAC addresses or other such data that changes each boot.
739 Therefore, it should not be measured into the TPM. In that case,
740 disable the measurement here.
741
742 config MEASURE_IGNORE_LOG
743 bool "Ignore the existing event log"
744 default n
745 help
746 On platforms that use an event log memory region that persists
747 through system resets and are the first stage bootloader, then
748 this option should be enabled to ignore any existing data in the
749 event log memory region.
750endif # MEASURED_BOOT
751
Tom Rini9d298c92023-10-26 14:31:25 -0400752config SYS_BOOTM_LEN
753 hex "Maximum size of a decompresed OS image"
754 depends on CMD_BOOTM || CMD_BOOTI || CMD_BOOTZ || \
755 LEGACY_IMAGE_FORMAT || SPL_LEGACY_IMAGE_FORMAT
756 default 0x4000000 if PPC || ARM64
757 default 0x1000000 if X86 || ARCH_MX6 || ARCH_MX7
758 default 0x800000
759 help
760 This is the maximum size of the buffer that is used to decompress the OS
761 image in to if attempting to boot a compressed image.
762
Simon Glassaefa34f2020-09-10 20:21:19 -0600763config SUPPORT_RAW_INITRD
764 bool "Enable raw initrd images"
765 help
766 Note, defining the SUPPORT_RAW_INITRD allows user to supply
767 kernel with raw initrd images. The syntax is slightly different, the
768 address of the initrd must be augmented by it's size, in the following
769 format: "<initrd address>:<initrd size>".
770
Simon Glass96d0aa92020-11-04 09:57:35 -0700771config CHROMEOS
772 bool "Support booting Chrome OS"
773 help
774 Chrome OS requires U-Boot to set up a table indicating the boot mode
775 (e.g. Developer mode) and a few other things. Enable this if you are
776 booting on a Chromebook to avoid getting an error about an invalid
777 firmware ID.
778
779config CHROMEOS_VBOOT
780 bool "Support Chrome OS verified boot"
781 help
782 This is intended to enable the full Chrome OS verified boot support
783 in U-Boot. It is not actually implemented in the U-Boot source code
784 at present, so this option is always set to 'n'. It allows
785 distinguishing between booting Chrome OS in a basic way (developer
786 mode) and a full boot.
787
Tom Rini5a446182022-06-25 11:02:44 -0400788config SYS_RAMBOOT
789 bool
790
Tom Rinid8ef01e2021-08-24 23:11:49 -0400791config RAMBOOT_PBL
792 bool "Freescale PBL(pre-boot loader) image format support"
Tom Rini5a446182022-06-25 11:02:44 -0400793 select SYS_RAMBOOT if PPC
Tom Rinid8ef01e2021-08-24 23:11:49 -0400794 help
795 Some SoCs use PBL to load RCW and/or pre-initialization instructions.
796 For more details refer to doc/README.pblimage
797
Tom Rinid433c742022-03-23 17:20:03 -0400798choice
Tom Riniec9efcf2022-12-28 10:52:51 -0500799 prompt "Freescale PBL (or predecessor) load location"
Tom Rinid433c742022-03-23 17:20:03 -0400800 depends on RAMBOOT_PBL || ((TARGET_P1010RDB_PA || TARGET_P1010RDB_PB \
801 || TARGET_P1020RDB_PC || TARGET_P1020RDB_PD || TARGET_P2020RDB) \
802 && !CMD_NAND)
803
804config SDCARD
Tom Riniec9efcf2022-12-28 10:52:51 -0500805 bool "Freescale PBL (or similar) is found on SD card"
Tom Rinid433c742022-03-23 17:20:03 -0400806
807config SPIFLASH
Tom Riniec9efcf2022-12-28 10:52:51 -0500808 bool "Freescale PBL (or similar) is found on SPI flash"
809
810config NO_PBL
811 bool "Freescale PBL (or similar) is not used in this case"
Tom Rinid433c742022-03-23 17:20:03 -0400812
813endchoice
814
Tom Rinid8e84612022-06-20 08:07:42 -0400815config FSL_FIXED_MMC_LOCATION
816 bool "PBL MMC is at a fixed location"
817 depends on SDCARD && !RAMBOOT_PBL
818
819config ESDHC_HC_BLK_ADDR
820 def_bool y
821 depends on FSL_FIXED_MMC_LOCATION && (ARCH_BSC9131 || ARCH_BSC9132 || ARCH_P1010)
822 help
823 In High Capacity SD Cards (> 2 GBytes), the 32-bit source address and
824 code length of these soc specify the memory address in block address
825 format. Block length is fixed to 512 bytes as per the SD High
826 Capacity specification.
827
Tom Rinid8ef01e2021-08-24 23:11:49 -0400828config SYS_FSL_PBL_PBI
829 string "PBI(pre-boot instructions) commands for the PBL image"
830 depends on RAMBOOT_PBL
831 help
832 PBI commands can be used to configure SoC before it starts the execution.
833 Please refer doc/README.pblimage for more details.
834
835config SYS_FSL_PBL_RCW
836 string "Aadditional RCW (Power on reset configuration) for the PBL image"
837 depends on RAMBOOT_PBL
838 help
839 Enables addition of RCW (Power on reset configuration) in built image.
840 Please refer doc/README.pblimage for more details.
841
Tom Rinibb20a102022-06-25 11:02:46 -0400842config SYS_BOOT_RAMDISK_HIGH
843 depends on CMD_BOOTM || CMD_BOOTI || CMD_BOOTZ
844 depends on !(NIOS2 || SANDBOX || SH || XTENSA)
845 def_bool y
Simon Glassfebb9852023-03-24 16:58:12 -0400846 select LMB
Tom Rinibb20a102022-06-25 11:02:46 -0400847 help
848 Enable initrd_high functionality. If defined then the initrd_high
849 feature is enabled and the boot* ramdisk subcommand is enabled.
850
Simon Glasscf298162020-09-10 20:21:13 -0600851endmenu # Boot images
852
Simon Glassc9d4abe2023-03-24 16:58:11 -0400853config DISTRO_DEFAULTS
Simon Glass3b58de42023-09-14 10:55:55 -0600854 bool "(deprecated) Script-based booting of Linux distributions"
Tom Rinifc97d932023-10-26 14:31:23 -0400855 select CMDLINE
Simon Glassa0c739c2023-03-24 16:58:13 -0400856 select BOOT_DEFAULTS
Simon Glassc9d4abe2023-03-24 16:58:11 -0400857 select AUTO_COMPLETE
858 select CMDLINE_EDITING
Simon Glassc9d4abe2023-03-24 16:58:11 -0400859 select CMD_SYSBOOT
Simon Glassc9d4abe2023-03-24 16:58:11 -0400860 select HUSH_PARSER
Simon Glassc9d4abe2023-03-24 16:58:11 -0400861 select SYS_LONGHELP
Simon Glassc9d4abe2023-03-24 16:58:11 -0400862 help
Simon Glass3b58de42023-09-14 10:55:55 -0600863 Note: These scripts have been replaced by Standard Boot. Do not use
864 them on new boards. See 'Migrating from distro_boot' at
865 doc/develop/bootstd.rst
866
Simon Glassc9d4abe2023-03-24 16:58:11 -0400867 Select this to enable various options and commands which are suitable
868 for building u-boot for booting general purpose Linux distributions.
869
Simon Glass75e65cc2020-09-10 20:21:14 -0600870menu "Boot timing"
871
872config BOOTSTAGE
873 bool "Boot timing and reporting"
874 help
875 Enable recording of boot time while booting. To use it, insert
876 calls to bootstage_mark() with a suitable BOOTSTAGE_ID from
877 bootstage.h. Only a single entry is recorded for each ID. You can
878 give the entry a name with bootstage_mark_name(). You can also
879 record elapsed time in a particular stage using bootstage_start()
880 before starting and bootstage_accum() when finished. Bootstage will
881 add up all the accumulated time and report it.
882
883 Normally, IDs are defined in bootstage.h but a small number of
884 additional 'user' IDs can be used by passing BOOTSTAGE_ID_ALLOC
885 as the ID.
886
887 Calls to show_boot_progress() will also result in log entries but
888 these will not have names.
889
890config SPL_BOOTSTAGE
891 bool "Boot timing and reported in SPL"
Tom Rinib3401992022-06-10 23:03:09 -0400892 depends on BOOTSTAGE && SPL
Simon Glass75e65cc2020-09-10 20:21:14 -0600893 help
894 Enable recording of boot time in SPL. To make this visible to U-Boot
895 proper, enable BOOTSTAGE_STASH as well. This will stash the timing
896 information when SPL finishes and load it when U-Boot proper starts
897 up.
898
899config TPL_BOOTSTAGE
900 bool "Boot timing and reported in TPL"
Tom Rini8bea4bf2022-06-08 08:24:39 -0400901 depends on BOOTSTAGE && TPL
Simon Glass75e65cc2020-09-10 20:21:14 -0600902 help
903 Enable recording of boot time in SPL. To make this visible to U-Boot
904 proper, enable BOOTSTAGE_STASH as well. This will stash the timing
905 information when TPL finishes and load it when U-Boot proper starts
906 up.
907
908config BOOTSTAGE_REPORT
909 bool "Display a detailed boot timing report before booting the OS"
910 depends on BOOTSTAGE
911 help
912 Enable output of a boot time report just before the OS is booted.
913 This shows how long it took U-Boot to go through each stage of the
914 boot process. The report looks something like this:
915
916 Timer summary in microseconds:
917 Mark Elapsed Stage
918 0 0 reset
919 3,575,678 3,575,678 board_init_f start
920 3,575,695 17 arch_cpu_init A9
921 3,575,777 82 arch_cpu_init done
922 3,659,598 83,821 board_init_r start
923 3,910,375 250,777 main_loop
924 29,916,167 26,005,792 bootm_start
925 30,361,327 445,160 start_kernel
926
927config BOOTSTAGE_RECORD_COUNT
928 int "Number of boot stage records to store"
Simon Glass939b04e2021-02-03 06:00:49 -0700929 depends on BOOTSTAGE
Simon Glass75e65cc2020-09-10 20:21:14 -0600930 default 30
931 help
932 This is the size of the bootstage record list and is the maximum
933 number of bootstage records that can be recorded.
934
935config SPL_BOOTSTAGE_RECORD_COUNT
936 int "Number of boot stage records to store for SPL"
Simon Glass939b04e2021-02-03 06:00:49 -0700937 depends on SPL_BOOTSTAGE
Simon Glass75e65cc2020-09-10 20:21:14 -0600938 default 5
939 help
940 This is the size of the bootstage record list and is the maximum
941 number of bootstage records that can be recorded.
942
943config TPL_BOOTSTAGE_RECORD_COUNT
944 int "Number of boot stage records to store for TPL"
Simon Glass939b04e2021-02-03 06:00:49 -0700945 depends on TPL_BOOTSTAGE
Simon Glass75e65cc2020-09-10 20:21:14 -0600946 default 5
947 help
948 This is the size of the bootstage record list and is the maximum
949 number of bootstage records that can be recorded.
950
951config BOOTSTAGE_FDT
952 bool "Store boot timing information in the OS device tree"
953 depends on BOOTSTAGE
954 help
955 Stash the bootstage information in the FDT. A root 'bootstage'
956 node is created with each bootstage id as a child. Each child
957 has a 'name' property and either 'mark' containing the
958 mark time in microseconds, or 'accum' containing the
959 accumulated time for that bootstage id in microseconds.
960 For example:
961
962 bootstage {
963 154 {
964 name = "board_init_f";
965 mark = <3575678>;
966 };
967 170 {
968 name = "lcd";
969 accum = <33482>;
970 };
971 };
972
973 Code in the Linux kernel can find this in /proc/devicetree.
974
975config BOOTSTAGE_STASH
976 bool "Stash the boot timing information in memory before booting OS"
977 depends on BOOTSTAGE
978 help
979 Some OSes do not support device tree. Bootstage can instead write
980 the boot timing information in a binary format at a given address.
981 This happens through a call to bootstage_stash(), typically in
982 the CPU's cleanup_before_linux() function. You can use the
983 'bootstage stash' and 'bootstage unstash' commands to do this on
984 the command line.
985
986config BOOTSTAGE_STASH_ADDR
987 hex "Address to stash boot timing information"
Tom Rinia077ac12023-08-02 11:09:43 -0400988 default 0x0
Simon Glass75e65cc2020-09-10 20:21:14 -0600989 help
990 Provide an address which will not be overwritten by the OS when it
991 starts, so that it can read this information when ready.
992
993config BOOTSTAGE_STASH_SIZE
994 hex "Size of boot timing stash region"
995 default 0x1000
996 help
997 This should be large enough to hold the bootstage stash. A value of
998 4096 (4KiB) is normally plenty.
999
1000config SHOW_BOOT_PROGRESS
1001 bool "Show boot progress in a board-specific manner"
1002 help
1003 Defining this option allows to add some board-specific code (calling
1004 a user-provided function show_boot_progress(int) that enables you to
1005 show the system's boot progress on some display (for example, some
1006 LEDs) on your board. At the moment, the following checkpoints are
1007 implemented:
1008
1009 Legacy uImage format:
1010
1011 Arg Where When
1012 1 common/cmd_bootm.c before attempting to boot an image
1013 -1 common/cmd_bootm.c Image header has bad magic number
1014 2 common/cmd_bootm.c Image header has correct magic number
1015 -2 common/cmd_bootm.c Image header has bad checksum
1016 3 common/cmd_bootm.c Image header has correct checksum
1017 -3 common/cmd_bootm.c Image data has bad checksum
1018 4 common/cmd_bootm.c Image data has correct checksum
1019 -4 common/cmd_bootm.c Image is for unsupported architecture
1020 5 common/cmd_bootm.c Architecture check OK
1021 -5 common/cmd_bootm.c Wrong Image Type (not kernel, multi)
1022 6 common/cmd_bootm.c Image Type check OK
1023 -6 common/cmd_bootm.c gunzip uncompression error
1024 -7 common/cmd_bootm.c Unimplemented compression type
1025 7 common/cmd_bootm.c Uncompression OK
1026 8 common/cmd_bootm.c No uncompress/copy overwrite error
1027 -9 common/cmd_bootm.c Unsupported OS (not Linux, BSD, VxWorks, QNX)
1028
1029 9 common/image.c Start initial ramdisk verification
1030 -10 common/image.c Ramdisk header has bad magic number
1031 -11 common/image.c Ramdisk header has bad checksum
1032 10 common/image.c Ramdisk header is OK
1033 -12 common/image.c Ramdisk data has bad checksum
1034 11 common/image.c Ramdisk data has correct checksum
1035 12 common/image.c Ramdisk verification complete, start loading
1036 -13 common/image.c Wrong Image Type (not PPC Linux ramdisk)
1037 13 common/image.c Start multifile image verification
1038 14 common/image.c No initial ramdisk, no multifile, continue.
1039
1040 15 arch/<arch>/lib/bootm.c All preparation done, transferring control to OS
1041
1042 -30 arch/powerpc/lib/board.c Fatal error, hang the system
1043 -31 post/post.c POST test failed, detected by post_output_backlog()
1044 -32 post/post.c POST test failed, detected by post_run_single()
1045
1046 34 common/cmd_doc.c before loading a Image from a DOC device
1047 -35 common/cmd_doc.c Bad usage of "doc" command
1048 35 common/cmd_doc.c correct usage of "doc" command
1049 -36 common/cmd_doc.c No boot device
1050 36 common/cmd_doc.c correct boot device
1051 -37 common/cmd_doc.c Unknown Chip ID on boot device
1052 37 common/cmd_doc.c correct chip ID found, device available
1053 -38 common/cmd_doc.c Read Error on boot device
1054 38 common/cmd_doc.c reading Image header from DOC device OK
1055 -39 common/cmd_doc.c Image header has bad magic number
1056 39 common/cmd_doc.c Image header has correct magic number
1057 -40 common/cmd_doc.c Error reading Image from DOC device
1058 40 common/cmd_doc.c Image header has correct magic number
1059 41 common/cmd_ide.c before loading a Image from a IDE device
1060 -42 common/cmd_ide.c Bad usage of "ide" command
1061 42 common/cmd_ide.c correct usage of "ide" command
1062 -43 common/cmd_ide.c No boot device
1063 43 common/cmd_ide.c boot device found
1064 -44 common/cmd_ide.c Device not available
1065 44 common/cmd_ide.c Device available
1066 -45 common/cmd_ide.c wrong partition selected
1067 45 common/cmd_ide.c partition selected
1068 -46 common/cmd_ide.c Unknown partition table
1069 46 common/cmd_ide.c valid partition table found
1070 -47 common/cmd_ide.c Invalid partition type
1071 47 common/cmd_ide.c correct partition type
1072 -48 common/cmd_ide.c Error reading Image Header on boot device
1073 48 common/cmd_ide.c reading Image Header from IDE device OK
1074 -49 common/cmd_ide.c Image header has bad magic number
1075 49 common/cmd_ide.c Image header has correct magic number
1076 -50 common/cmd_ide.c Image header has bad checksum
1077 50 common/cmd_ide.c Image header has correct checksum
1078 -51 common/cmd_ide.c Error reading Image from IDE device
1079 51 common/cmd_ide.c reading Image from IDE device OK
1080 52 common/cmd_nand.c before loading a Image from a NAND device
1081 -53 common/cmd_nand.c Bad usage of "nand" command
1082 53 common/cmd_nand.c correct usage of "nand" command
1083 -54 common/cmd_nand.c No boot device
1084 54 common/cmd_nand.c boot device found
1085 -55 common/cmd_nand.c Unknown Chip ID on boot device
1086 55 common/cmd_nand.c correct chip ID found, device available
1087 -56 common/cmd_nand.c Error reading Image Header on boot device
1088 56 common/cmd_nand.c reading Image Header from NAND device OK
1089 -57 common/cmd_nand.c Image header has bad magic number
1090 57 common/cmd_nand.c Image header has correct magic number
1091 -58 common/cmd_nand.c Error reading Image from NAND device
1092 58 common/cmd_nand.c reading Image from NAND device OK
1093
1094 -60 common/env_common.c Environment has a bad CRC, using default
1095
1096 64 net/eth.c starting with Ethernet configuration.
1097 -64 net/eth.c no Ethernet found.
1098 65 net/eth.c Ethernet found.
1099
1100 -80 common/cmd_net.c usage wrong
1101 80 common/cmd_net.c before calling net_loop()
1102 -81 common/cmd_net.c some error in net_loop() occurred
1103 81 common/cmd_net.c net_loop() back without error
1104 -82 common/cmd_net.c size == 0 (File with size 0 loaded)
1105 82 common/cmd_net.c trying automatic boot
1106 83 common/cmd_net.c running "source" command
1107 -83 common/cmd_net.c some error in automatic boot or "source" command
1108 84 common/cmd_net.c end without errors
1109
1110 FIT uImage format:
1111
1112 Arg Where When
1113 100 common/cmd_bootm.c Kernel FIT Image has correct format
1114 -100 common/cmd_bootm.c Kernel FIT Image has incorrect format
1115 101 common/cmd_bootm.c No Kernel subimage unit name, using configuration
1116 -101 common/cmd_bootm.c Can't get configuration for kernel subimage
1117 102 common/cmd_bootm.c Kernel unit name specified
1118 -103 common/cmd_bootm.c Can't get kernel subimage node offset
1119 103 common/cmd_bootm.c Found configuration node
1120 104 common/cmd_bootm.c Got kernel subimage node offset
1121 -104 common/cmd_bootm.c Kernel subimage hash verification failed
1122 105 common/cmd_bootm.c Kernel subimage hash verification OK
1123 -105 common/cmd_bootm.c Kernel subimage is for unsupported architecture
1124 106 common/cmd_bootm.c Architecture check OK
1125 -106 common/cmd_bootm.c Kernel subimage has wrong type
1126 107 common/cmd_bootm.c Kernel subimage type OK
1127 -107 common/cmd_bootm.c Can't get kernel subimage data/size
1128 108 common/cmd_bootm.c Got kernel subimage data/size
1129 -108 common/cmd_bootm.c Wrong image type (not legacy, FIT)
1130 -109 common/cmd_bootm.c Can't get kernel subimage type
1131 -110 common/cmd_bootm.c Can't get kernel subimage comp
1132 -111 common/cmd_bootm.c Can't get kernel subimage os
1133 -112 common/cmd_bootm.c Can't get kernel subimage load address
1134 -113 common/cmd_bootm.c Image uncompress/copy overwrite error
1135
1136 120 common/image.c Start initial ramdisk verification
1137 -120 common/image.c Ramdisk FIT image has incorrect format
1138 121 common/image.c Ramdisk FIT image has correct format
1139 122 common/image.c No ramdisk subimage unit name, using configuration
1140 -122 common/image.c Can't get configuration for ramdisk subimage
1141 123 common/image.c Ramdisk unit name specified
1142 -124 common/image.c Can't get ramdisk subimage node offset
1143 125 common/image.c Got ramdisk subimage node offset
1144 -125 common/image.c Ramdisk subimage hash verification failed
1145 126 common/image.c Ramdisk subimage hash verification OK
1146 -126 common/image.c Ramdisk subimage for unsupported architecture
1147 127 common/image.c Architecture check OK
1148 -127 common/image.c Can't get ramdisk subimage data/size
1149 128 common/image.c Got ramdisk subimage data/size
1150 129 common/image.c Can't get ramdisk load address
1151 -129 common/image.c Got ramdisk load address
1152
1153 -130 common/cmd_doc.c Incorrect FIT image format
1154 131 common/cmd_doc.c FIT image format OK
1155
1156 -140 common/cmd_ide.c Incorrect FIT image format
1157 141 common/cmd_ide.c FIT image format OK
1158
1159 -150 common/cmd_nand.c Incorrect FIT image format
1160 151 common/cmd_nand.c FIT image format OK
1161
Marek Vasutb55881d2021-10-23 03:06:03 +02001162config SPL_SHOW_BOOT_PROGRESS
Jan Kiszkac1df3d52021-11-03 15:09:36 +01001163 bool "Show boot progress in a board-specific manner in SPL"
Marek Vasutb55881d2021-10-23 03:06:03 +02001164 depends on SPL
1165 help
1166 Defining this option allows to add some board-specific code (calling
1167 a user-provided function show_boot_progress(int) that enables you to
1168 show the system's boot progress on some display (for example, some
1169 LEDs) on your board. For details see SHOW_BOOT_PROGRESS.
1170
Simon Glass75e65cc2020-09-10 20:21:14 -06001171endmenu
1172
Simon Glass7b6baa32020-09-10 20:21:15 -06001173menu "Boot media"
1174
1175config NOR_BOOT
1176 bool "Support for booting from NOR flash"
1177 depends on NOR
1178 help
1179 Enabling this will make a U-Boot binary that is capable of being
1180 booted via NOR. In this case we will enable certain pinmux early
1181 as the ROM only partially sets up pinmux. We also default to using
1182 NOR for environment.
1183
1184config NAND_BOOT
1185 bool "Support for booting from NAND flash"
Simon Glass7b6baa32020-09-10 20:21:15 -06001186 imply MTD_RAW_NAND
1187 help
1188 Enabling this will make a U-Boot binary that is capable of being
1189 booted via NAND flash. This is not a must, some SoCs need this,
1190 some not.
1191
1192config ONENAND_BOOT
1193 bool "Support for booting from ONENAND"
Simon Glass7b6baa32020-09-10 20:21:15 -06001194 imply MTD_RAW_NAND
1195 help
1196 Enabling this will make a U-Boot binary that is capable of being
1197 booted via ONENAND. This is not a must, some SoCs need this,
1198 some not.
1199
1200config QSPI_BOOT
1201 bool "Support for booting from QSPI flash"
Simon Glass7b6baa32020-09-10 20:21:15 -06001202 help
1203 Enabling this will make a U-Boot binary that is capable of being
1204 booted via QSPI flash. This is not a must, some SoCs need this,
1205 some not.
1206
1207config SATA_BOOT
1208 bool "Support for booting from SATA"
Simon Glass7b6baa32020-09-10 20:21:15 -06001209 help
1210 Enabling this will make a U-Boot binary that is capable of being
1211 booted via SATA. This is not a must, some SoCs need this,
1212 some not.
1213
1214config SD_BOOT
1215 bool "Support for booting from SD/EMMC"
Simon Glass7b6baa32020-09-10 20:21:15 -06001216 help
1217 Enabling this will make a U-Boot binary that is capable of being
1218 booted via SD/EMMC. This is not a must, some SoCs need this,
1219 some not.
1220
Tom Rini66e0e2b2021-12-11 14:55:50 -05001221config SD_BOOT_QSPI
1222 bool "Support for booting from SD/EMMC and enable QSPI"
1223 help
1224 Enabling this will make a U-Boot binary that is capable of being
1225 booted via SD/EMMC while enabling QSPI on the platform as well. This
1226 is not a must, some SoCs need this, some not.
1227
Simon Glass7b6baa32020-09-10 20:21:15 -06001228config SPI_BOOT
1229 bool "Support for booting from SPI flash"
Simon Glass7b6baa32020-09-10 20:21:15 -06001230 help
1231 Enabling this will make a U-Boot binary that is capable of being
1232 booted via SPI flash. This is not a must, some SoCs need this,
1233 some not.
1234
1235endmenu
1236
Simon Glass98eed0d2020-09-10 20:21:16 -06001237menu "Autoboot options"
1238
1239config AUTOBOOT
1240 bool "Autoboot"
Simon Glass5bcfc7a2023-10-26 14:31:22 -04001241 depends on CMDLINE
Simon Glass98eed0d2020-09-10 20:21:16 -06001242 default y
1243 help
1244 This enables the autoboot. See doc/README.autoboot for detail.
1245
Simon Glass5bcfc7a2023-10-26 14:31:22 -04001246if AUTOBOOT
1247
Simon Glass95fd4f32020-09-10 20:21:17 -06001248config BOOTDELAY
1249 int "delay in seconds before automatically booting"
1250 default 2
Simon Glass95fd4f32020-09-10 20:21:17 -06001251 help
1252 Delay before automatically running bootcmd;
1253 set to 0 to autoboot with no delay, but you can stop it by key input.
1254 set to -1 to disable autoboot.
1255 set to -2 to autoboot with no delay and not check for abort
1256
1257 If this value is >= 0 then it is also used for the default delay
1258 before starting the default entry in bootmenu. If it is < 0 then
1259 a default value of 10s is used.
1260
1261 See doc/README.autoboot for details.
1262
Simon Glass98eed0d2020-09-10 20:21:16 -06001263config AUTOBOOT_KEYED
1264 bool "Stop autobooting via specific input key / string"
Simon Glass98eed0d2020-09-10 20:21:16 -06001265 help
1266 This option enables stopping (aborting) of the automatic
1267 boot feature only by issuing a specific input key or
1268 string. If not enabled, any input key will abort the
1269 U-Boot automatic booting process and bring the device
1270 to the U-Boot prompt for user input.
1271
Simon Glass5bcfc7a2023-10-26 14:31:22 -04001272if AUTOBOOT_KEYED
1273
Steffen Jaeckeld199c3a2021-07-08 15:57:38 +02001274config AUTOBOOT_FLUSH_STDIN
1275 bool "Enable flushing stdin before starting to read the password"
Simon Glass5bcfc7a2023-10-26 14:31:22 -04001276 depends on !SANDBOX
Steffen Jaeckeld199c3a2021-07-08 15:57:38 +02001277 help
1278 When this option is enabled stdin buffer will be flushed before
1279 starting to read the password.
1280 This can't be enabled for the sandbox as flushing stdin would
1281 break the autoboot unit tests.
1282
Simon Glass98eed0d2020-09-10 20:21:16 -06001283config AUTOBOOT_PROMPT
1284 string "Autoboot stop prompt"
Simon Glass98eed0d2020-09-10 20:21:16 -06001285 default "Autoboot in %d seconds\\n"
1286 help
1287 This string is displayed before the boot delay selected by
1288 CONFIG_BOOTDELAY starts. If it is not defined there is no
1289 output indicating that autoboot is in progress.
1290
1291 Note that this define is used as the (only) argument to a
1292 printf() call, so it may contain '%' format specifications,
1293 provided that it also includes, sepearated by commas exactly
1294 like in a printf statement, the required arguments. It is
1295 the responsibility of the user to select only such arguments
1296 that are valid in the given context.
1297
1298config AUTOBOOT_ENCRYPTION
1299 bool "Enable encryption in autoboot stopping"
Simon Glass98eed0d2020-09-10 20:21:16 -06001300 help
1301 This option allows a string to be entered into U-Boot to stop the
Steffen Jaeckel1a4a7782021-07-08 15:57:35 +02001302 autoboot.
1303 The behavior depends whether CONFIG_CRYPT_PW from lib is enabled
1304 or not.
1305 In case CONFIG_CRYPT_PW is enabled, the string will be forwarded
1306 to the crypt-based functionality and be compared against the
1307 string in the environment variable 'bootstopkeycrypt'.
1308 In case CONFIG_CRYPT_PW is disabled the string itself is hashed
1309 and compared against the hash in the environment variable
1310 'bootstopkeysha256'.
1311 If it matches in either case then boot stops and
1312 a command-line prompt is presented.
Simon Glass98eed0d2020-09-10 20:21:16 -06001313 This provides a way to ship a secure production device which can also
1314 be accessed at the U-Boot command line.
1315
Steffen Jaeckel33198742021-07-08 15:57:39 +02001316config AUTOBOOT_SHA256_FALLBACK
1317 bool "Allow fallback from crypt-hashed password to sha256"
1318 depends on AUTOBOOT_ENCRYPTION && CRYPT_PW
1319 help
1320 This option adds support to fall back from crypt-hashed
1321 passwords to checking a SHA256 hashed password in case the
1322 'bootstopusesha256' environment variable is set to 'true'.
1323
Simon Glass98eed0d2020-09-10 20:21:16 -06001324config AUTOBOOT_DELAY_STR
1325 string "Delay autobooting via specific input key / string"
Simon Glass5bcfc7a2023-10-26 14:31:22 -04001326 depends on !AUTOBOOT_ENCRYPTION
Simon Glass98eed0d2020-09-10 20:21:16 -06001327 help
1328 This option delays the automatic boot feature by issuing
1329 a specific input key or string. If CONFIG_AUTOBOOT_DELAY_STR
1330 or the environment variable "bootdelaykey" is specified
1331 and this string is received from console input before
1332 autoboot starts booting, U-Boot gives a command prompt. The
1333 U-Boot prompt will time out if CONFIG_BOOT_RETRY_TIME is
1334 used, otherwise it never times out.
1335
1336config AUTOBOOT_STOP_STR
1337 string "Stop autobooting via specific input key / string"
Simon Glass5bcfc7a2023-10-26 14:31:22 -04001338 depends on !AUTOBOOT_ENCRYPTION
Simon Glass98eed0d2020-09-10 20:21:16 -06001339 help
1340 This option enables stopping (aborting) of the automatic
1341 boot feature only by issuing a specific input key or
1342 string. If CONFIG_AUTOBOOT_STOP_STR or the environment
1343 variable "bootstopkey" is specified and this string is
1344 received from console input before autoboot starts booting,
1345 U-Boot gives a command prompt. The U-Boot prompt never
1346 times out, even if CONFIG_BOOT_RETRY_TIME is used.
1347
1348config AUTOBOOT_KEYED_CTRLC
1349 bool "Enable Ctrl-C autoboot interruption"
Simon Glass5bcfc7a2023-10-26 14:31:22 -04001350 depends on !AUTOBOOT_ENCRYPTION
Simon Glass98eed0d2020-09-10 20:21:16 -06001351 help
1352 This option allows for the boot sequence to be interrupted
1353 by ctrl-c, in addition to the "bootdelaykey" and "bootstopkey".
1354 Setting this variable provides an escape sequence from the
1355 limited "password" strings.
1356
Steffen Jaeckel6c0ce6d2021-07-08 15:57:37 +02001357config AUTOBOOT_NEVER_TIMEOUT
1358 bool "Make the password entry never time-out"
Simon Glass5bcfc7a2023-10-26 14:31:22 -04001359 depends on AUTOBOOT_ENCRYPTION && CRYPT_PW
Steffen Jaeckel6c0ce6d2021-07-08 15:57:37 +02001360 help
1361 This option removes the timeout from the password entry
1362 when the user first presses the <Enter> key before entering
1363 any other character.
1364
Steffen Jaeckel1a4a7782021-07-08 15:57:35 +02001365config AUTOBOOT_STOP_STR_ENABLE
1366 bool "Enable fixed string to stop autobooting"
Simon Glass5bcfc7a2023-10-26 14:31:22 -04001367 depends on AUTOBOOT_ENCRYPTION
Steffen Jaeckel1a4a7782021-07-08 15:57:35 +02001368 help
1369 This option enables the feature to add a fixed stop
1370 string that is defined at compile time.
1371 In every case it will be tried to load the stop
1372 string from the environment.
1373 In case this is enabled and there is no stop string
1374 in the environment, this will be used as default value.
1375
1376config AUTOBOOT_STOP_STR_CRYPT
1377 string "Stop autobooting via crypt-hashed password"
1378 depends on AUTOBOOT_STOP_STR_ENABLE && CRYPT_PW
1379 help
1380 This option adds the feature to only stop the autobooting,
1381 and therefore boot into the U-Boot prompt, when the input
1382 string / password matches a values that is hashed via
1383 one of the supported crypt-style password hashing options
1384 and saved in the environment variable "bootstopkeycrypt".
1385
Simon Glass98eed0d2020-09-10 20:21:16 -06001386config AUTOBOOT_STOP_STR_SHA256
Steffen Jaeckel25c8b9f2021-07-08 15:57:40 +02001387 string "Stop autobooting via SHA256 hashed password"
Steffen Jaeckel1a4a7782021-07-08 15:57:35 +02001388 depends on AUTOBOOT_STOP_STR_ENABLE
Simon Glass98eed0d2020-09-10 20:21:16 -06001389 help
1390 This option adds the feature to only stop the autobooting,
1391 and therefore boot into the U-Boot prompt, when the input
1392 string / password matches a values that is encypted via
Joel Peshkin652b5042020-11-21 17:18:59 -08001393 a SHA256 hash and saved in the environment variable
1394 "bootstopkeysha256". If the value in that variable
1395 includes a ":", the portion prior to the ":" will be treated
1396 as a salt value.
Simon Glass98eed0d2020-09-10 20:21:16 -06001397
Simon Glass5bcfc7a2023-10-26 14:31:22 -04001398endif # AUTOBOOT_KEYED
1399
1400if !AUTOBOOT_KEYED
1401
Simon Glass98eed0d2020-09-10 20:21:16 -06001402config AUTOBOOT_USE_MENUKEY
1403 bool "Allow a specify key to run a menu from the environment"
Simon Glass98eed0d2020-09-10 20:21:16 -06001404 help
1405 If a specific key is pressed to stop autoboot, then the commands in
1406 the environment variable 'menucmd' are executed before boot starts.
1407
1408config AUTOBOOT_MENUKEY
1409 int "ASCII value of boot key to show a menu"
1410 default 0
1411 depends on AUTOBOOT_USE_MENUKEY
1412 help
1413 If this key is pressed to stop autoboot, then the commands in the
1414 environment variable 'menucmd' will be executed before boot starts.
1415 For example, 33 means "!" in ASCII, so pressing ! at boot would take
1416 this action.
1417
Simon Glass5bcfc7a2023-10-26 14:31:22 -04001418endif
1419
1420endif # AUTOBOOT
1421
Simon Glass98eed0d2020-09-10 20:21:16 -06001422config AUTOBOOT_MENU_SHOW
1423 bool "Show a menu on boot"
1424 depends on CMD_BOOTMENU
1425 help
1426 This enables the boot menu, controlled by environment variables
1427 defined by the board. The menu starts after running the 'preboot'
1428 environmnent variable (if enabled) and before handling the boot delay.
Peter Robinsond1670622023-08-18 15:54:10 +01001429 See doc/usage/cmd/bootmenu.rst for more details.
Simon Glass98eed0d2020-09-10 20:21:16 -06001430
Masahisa Kojima83f73632022-05-26 19:09:38 +09001431config BOOTMENU_DISABLE_UBOOT_CONSOLE
1432 bool "Disallow bootmenu to enter the U-Boot console"
1433 depends on AUTOBOOT_MENU_SHOW
1434 help
1435 If this option is enabled, user can not enter the U-Boot console from
1436 bootmenu. It increases the system security.
1437
Tom Rini69c8a812022-03-11 09:12:04 -05001438config BOOT_RETRY
1439 bool "Boot retry feature"
1440 help
1441 Allow for having the U-Boot command prompt time out and attempt
1442 to boot again. If the environment variable "bootretry" is found then
1443 its value is used, otherwise the retry timeout is
1444 CONFIG_BOOT_RETRY_TIME. CONFIG_BOOT_RETRY_MIN is optional and
1445 defaults to CONFIG_BOOT_RETRY_TIME. All times are in seconds.
1446
1447config BOOT_RETRY_TIME
1448 int "Timeout in seconds before attempting to boot again"
1449 depends on BOOT_RETRY
1450 help
1451 Time in seconds before the U-Boot prompt will timeout and boot will
1452 be attempted again.
1453
1454config BOOT_RETRY_MIN
1455 int "Minimum timeout in seconds for 'bootretry'"
1456 depends on BOOT_RETRY
1457 default BOOT_RETRY_TIME
1458 help
1459 The minimum time in seconds that "bootretry" can be set to.
1460
1461config RESET_TO_RETRY
1462 bool "Reset the board to retry autoboot"
1463 depends on BOOT_RETRY
1464 help
1465 After the countdown timed out, the board will be reset to restart
1466 again.
1467
Simon Glass98eed0d2020-09-10 20:21:16 -06001468endmenu
1469
Philippe Reynes98220742022-03-28 22:56:59 +02001470menu "Image support"
1471
1472config IMAGE_PRE_LOAD
1473 bool "Image pre-load support"
1474 help
1475 Enable an image pre-load stage in the SPL.
1476 This pre-load stage allows to do some manipulation
1477 or check (for example signature check) on an image
1478 before launching it.
1479
1480config SPL_IMAGE_PRE_LOAD
1481 bool "Image pre-load support within SPL"
1482 depends on SPL && IMAGE_PRE_LOAD
1483 help
1484 Enable an image pre-load stage in the SPL.
1485 This pre-load stage allows to do some manipulation
1486 or check (for example signature check) on an image
1487 before launching it.
1488
1489config IMAGE_PRE_LOAD_SIG
1490 bool "Image pre-load signature support"
1491 depends on IMAGE_PRE_LOAD
1492 select FIT_SIGNATURE
1493 select RSA
1494 select RSA_VERIFY_WITH_PKEY
1495 help
1496 Enable signature check support in the pre-load stage.
1497 For this feature a very simple header is added before
1498 the image with few fields:
1499 - a magic
1500 - the image size
1501 - the signature
1502 All other information (header size, type of signature,
1503 ...) are provided in the node /image/pre-load/sig of
1504 u-boot.
1505
1506config SPL_IMAGE_PRE_LOAD_SIG
1507 bool "Image pre-load signature support witin SPL"
1508 depends on SPL_IMAGE_PRE_LOAD && IMAGE_PRE_LOAD_SIG
1509 select SPL_FIT_SIGNATURE
1510 select SPL_RSA
1511 select SPL_RSA_VERIFY_WITH_PKEY
1512 help
1513 Enable signature check support in the pre-load stage in the SPL.
1514 For this feature a very simple header is added before
1515 the image with few fields:
1516 - a magic
1517 - the image size
1518 - the signature
1519 All other information (header size, type of signature,
1520 ...) are provided in the node /image/pre-load/sig of
1521 u-boot.
1522
1523endmenu
1524
Simon Glassddc5f9b2023-09-14 10:55:46 -06001525if OF_LIBFDT
1526
1527menu "Devicetree fixup"
1528
Simon Glass96095e12023-09-14 10:55:47 -06001529config OF_BOARD_SETUP
1530 bool "Set up board-specific details in device tree before boot"
1531 help
1532 This causes U-Boot to call ft_board_setup() before booting into
1533 the Operating System. This function can set up various
1534 board-specific information in the device tree for use by the OS.
1535 The device tree is then passed to the OS.
1536
1537config OF_SYSTEM_SETUP
1538 bool "Set up system-specific details in device tree before boot"
1539 help
1540 This causes U-Boot to call ft_system_setup() before booting into
1541 the Operating System. This function can set up various
1542 system-specific information in the device tree for use by the OS.
1543 The device tree is then passed to the OS.
1544
1545config OF_STDOUT_VIA_ALIAS
1546 bool "Update the device-tree stdout alias from U-Boot"
1547 help
1548 This uses U-Boot's serial alias from the aliases node to update
1549 the device tree passed to the OS. The "linux,stdout-path" property
1550 in the chosen node is set to point to the correct serial node.
1551 This option currently references CONFIG_CONS_INDEX, which is
1552 incorrect when used with device tree as this option does not
1553 exist / should not be used.
1554
Simon Glass040a6042023-09-14 10:55:57 -06001555config FDT_FIXUP_PARTITIONS
Simon Glass400a6a32023-09-14 10:55:58 -06001556 bool "Overwrite MTD partitions in DTS through defined in 'mtdparts'"
Simon Glass040a6042023-09-14 10:55:57 -06001557 help
1558 Allow overwriting defined partitions in the device tree blob
1559 using partition info defined in the 'mtdparts' environment
1560 variable.
1561
Simon Glassddc5f9b2023-09-14 10:55:46 -06001562config FDT_SIMPLEFB
1563 bool "FDT tools for simplefb support"
1564 help
1565 Enable the fdt tools to manage the simple fb nodes in device tree.
1566 These functions can be used by board to indicate to the OS
1567 the presence of the simple frame buffer with associated reserved
1568 memory
1569
Simon Glassc0e5b0e2023-09-14 10:55:59 -06001570config ARCH_FIXUP_FDT_MEMORY
1571 bool "Enable arch_fixup_memory_banks() call"
1572 default y
1573 help
1574 Enable FDT memory map syncup before OS boot. This feature can be
1575 used for booting OS with different memory setup where the part of
1576 the memory location should be used for different purpose.
1577
Simon Glassddc5f9b2023-09-14 10:55:46 -06001578endmenu
1579
1580endif # OF_LIBFDT
1581
Simon Glassfe5db252020-09-10 20:21:18 -06001582config USE_BOOTARGS
1583 bool "Enable boot arguments"
1584 help
1585 Provide boot arguments to bootm command. Boot arguments are specified
1586 in CONFIG_BOOTARGS option. Enable this option to be able to specify
1587 CONFIG_BOOTARGS string. If this option is disabled, CONFIG_BOOTARGS
1588 will be undefined and won't take any space in U-Boot image.
1589
1590config BOOTARGS
1591 string "Boot arguments"
1592 depends on USE_BOOTARGS && !USE_DEFAULT_ENV_FILE
1593 help
1594 This can be used to pass arguments to the bootm command. The value of
1595 CONFIG_BOOTARGS goes into the environment value "bootargs". Note that
1596 this value will also override the "chosen" node in FDT blob.
1597
Simon Glass51bb3382020-11-05 10:33:48 -07001598config BOOTARGS_SUBST
1599 bool "Support substituting strings in boot arguments"
1600 help
1601 This allows substituting string values in the boot arguments. These
1602 are applied after the commandline has been built.
1603
1604 One use for this is to insert the root-disk UUID into the command
1605 line where bootargs contains "root=${uuid}"
1606
1607 setenv bootargs "console= root=${uuid}"
1608 # Set the 'uuid' environment variable
1609 part uuid mmc 2:2 uuid
1610
1611 # Command-line substitution will put the real uuid into the
1612 # kernel command line
1613 bootm
1614
Simon Glassfe5db252020-09-10 20:21:18 -06001615config USE_BOOTCOMMAND
1616 bool "Enable a default value for bootcmd"
Tom Rinidbdb4b32023-10-26 14:31:28 -04001617 depends on CMDLINE
Simon Glassfe5db252020-09-10 20:21:18 -06001618 help
1619 Provide a default value for the bootcmd entry in the environment. If
1620 autoboot is enabled this is what will be run automatically. Enable
1621 this option to be able to specify CONFIG_BOOTCOMMAND as a string. If
1622 this option is disabled, CONFIG_BOOTCOMMAND will be undefined and
1623 won't take any space in U-Boot image.
1624
1625config BOOTCOMMAND
1626 string "bootcmd value"
1627 depends on USE_BOOTCOMMAND && !USE_DEFAULT_ENV_FILE
Simon Glassd8d40bc2023-05-06 08:27:09 -06001628 default "bootflow scan -lb" if BOOTSTD_DEFAULTS && CMD_BOOTFLOW_FULL
1629 default "bootflow scan" if BOOTSTD_DEFAULTS && !CMD_BOOTFLOW_FULL
Simon Glassa91492b2022-04-24 23:31:27 -06001630 default "run distro_bootcmd" if !BOOTSTD_BOOTCOMMAND && DISTRO_DEFAULTS
Simon Glassfe5db252020-09-10 20:21:18 -06001631 help
1632 This is the string of commands that will be used as bootcmd and if
1633 AUTOBOOT is set, automatically run.
1634
1635config USE_PREBOOT
1636 bool "Enable preboot"
Tom Rinidbdb4b32023-10-26 14:31:28 -04001637 depends on CMDLINE
Simon Glassfe5db252020-09-10 20:21:18 -06001638 help
1639 When this option is enabled, the existence of the environment
1640 variable "preboot" will be checked immediately before starting the
1641 CONFIG_BOOTDELAY countdown and/or running the auto-boot command resp.
1642 entering interactive mode.
1643
1644 This feature is especially useful when "preboot" is automatically
1645 generated or modified. For example, the boot code can modify the
1646 "preboot" when a user holds down a certain combination of keys.
1647
1648config PREBOOT
1649 string "preboot default value"
1650 depends on USE_PREBOOT && !USE_DEFAULT_ENV_FILE
Patrick Delaunay87459da2020-10-12 09:47:50 +02001651 default "usb start" if USB_KEYBOARD
Simon Glassfe5db252020-09-10 20:21:18 -06001652 default ""
1653 help
1654 This is the default of "preboot" environment variable.
1655
Pali Rohár2827c2f2022-07-10 13:42:55 +02001656config PREBOOT_DEFINED
1657 bool
1658 default y if PREBOOT != ""
1659
Simon Glass832876a2020-09-10 20:21:20 -06001660config DEFAULT_FDT_FILE
1661 string "Default fdt file"
1662 help
1663 This option is used to set the default fdt file to boot OS.
1664
Dzmitry Sankouski12a3e1a2022-02-22 21:49:52 +03001665config SAVE_PREV_BL_FDT_ADDR
1666 depends on ARM
1667 bool "Saves fdt address, passed by the previous bootloader, to env var"
1668 help
1669 When u-boot is used as a chain-loaded bootloader (replacing OS kernel),
1670 enable this option to save fdt address, passed by the
1671 previous bootloader for future use.
1672 Address is saved to `prevbl_fdt_addr` environment variable.
1673
1674 If no fdt was provided by previous bootloader, no env variables
1675 will be created.
1676
1677config SAVE_PREV_BL_INITRAMFS_START_ADDR
1678 depends on ARM
1679 bool "Saves initramfs address, passed by the previous bootloader, to env var"
1680 help
1681 When u-boot is used as a chain-loaded bootloader(replacing OS kernel),
1682 enable this option to save initramfs address, passed by the
1683 previous bootloader for future use.
1684 Address is saved to `prevbl_initrd_start_addr` environment variable.
1685
1686 If no initramfs was provided by previous bootloader, no env variables
1687 will be created.
1688
Simon Glassa0874dc2023-06-01 10:23:02 -06001689menu "Configuration editor"
1690
1691config CEDIT
1692 bool "Configuration editor"
1693 depends on BOOTSTD
1694 help
1695 Provides a way to deal with board configuration and present it to
1696 the user for adjustment.
1697
1698 This is intended to provide both graphical and text-based user
1699 interfaces, but only graphical is support at present.
1700
1701endmenu # Configuration editor
1702
Simon Glasscf298162020-09-10 20:21:13 -06001703endmenu # Booting