]> Git Repo - J-u-boot.git/blob - boot/Kconfig
boot: Allow use of FIT in TPL and VPL
[J-u-boot.git] / boot / Kconfig
1 menu "Boot options"
2
3 source "lib/efi_loader/Kconfig"
4
5 menu "Boot images"
6
7 config ANDROID_BOOT_IMAGE
8         bool "Android Boot Images"
9         default y if FASTBOOT
10         help
11           This enables support for booting images which use the Android
12           image format header.
13
14 config TIMESTAMP
15         bool "Show image date and time when displaying image information"
16         default y if CMD_DATE
17         help
18           When CONFIG_TIMESTAMP is selected, the timestamp (date and time) of
19           an image is printed by image commands like bootm or iminfo. This
20           is shown as 'Timestamp: xxx' and 'Created: xxx'. If this option is
21           enabled, then U-Boot requires FITs to have a timestamp. If a FIT is
22           loaded that does not, the message 'Wrong FIT format: no timestamp'
23           is shown.
24
25 config BUTTON_CMD
26         bool "Support for running a command if a button is held during boot"
27         depends on CMDLINE
28         depends on BUTTON
29         help
30           For many embedded devices it's useful to enter a special flashing mode
31           such as fastboot mode when a button is held during boot. This option
32           allows arbitrary commands to be assigned to specific buttons. These will
33           be run after "preboot" if the button is held. Configuration is done via
34           the environment variables "button_cmd_N_name" and "button_cmd_N" where n is
35           the button number (starting from 0). e.g:
36
37             "button_cmd_0_name=vol_down"
38             "button_cmd_0=fastboot usb 0"
39
40 menuconfig FIT
41         bool "Flattened Image Tree (FIT)"
42         select HASH
43         select MD5
44         select SHA1
45         imply SHA256
46         help
47           This option allows you to boot the new uImage structure,
48           Flattened Image Tree.  FIT is formally a FDT, which can include
49           images of various types (kernel, FDT blob, ramdisk, etc.)
50           in a single blob.  To boot this new uImage structure,
51           pass the address of the blob to the "bootm" command.
52           FIT is very flexible, supporting compression, multiple images,
53           multiple configurations, verification through hashing and also
54           verified boot (secure boot using RSA).
55
56 if FIT
57
58 config FIT_EXTERNAL_OFFSET
59         hex "FIT external data offset"
60         default 0x0
61         help
62           This specifies a data offset in fit image.
63           The offset is from data payload offset to the beginning of
64           fit image header. When specifies a offset, specific data
65           could be put in the hole between data payload and fit image
66           header, such as CSF data on i.MX platform.
67
68 config FIT_FULL_CHECK
69         bool "Do a full check of the FIT before using it"
70         default y
71         help
72           Enable this do a full check of the FIT to make sure it is valid. This
73           helps to protect against carefully crafted FITs which take advantage
74           of bugs or omissions in the code. This includes a bad structure,
75           multiple root nodes and the like.
76
77 config FIT_SIGNATURE
78         bool "Enable signature verification of FIT uImages"
79         depends on DM
80         select HASH
81         imply RSA
82         imply RSA_VERIFY
83         select IMAGE_SIGN_INFO
84         select FIT_FULL_CHECK
85         help
86           This option enables signature verification of FIT uImages,
87           using a hash signed and verified using RSA. If
88           CONFIG_SHA_PROG_HW_ACCEL is defined, i.e support for progressive
89           hashing is available using hardware, then the RSA library will use
90           it. See doc/usage/fit/signature.rst for more details.
91
92           WARNING: When relying on signed FIT images with a required signature
93           check the legacy image format is disabled by default, so that
94           unsigned images cannot be loaded. If a board needs the legacy image
95           format support in this case, enable it using
96           CONFIG_LEGACY_IMAGE_FORMAT.
97
98 config FIT_SIGNATURE_MAX_SIZE
99         hex "Max size of signed FIT structures"
100         depends on FIT_SIGNATURE
101         default 0x10000000
102         help
103           This option sets a max size in bytes for verified FIT uImages.
104           A sane value of 256MB protects corrupted DTB structures from overlapping
105           device memory. Assure this size does not extend past expected storage
106           space.
107
108 config FIT_RSASSA_PSS
109         bool "Support rsassa-pss signature scheme of FIT image contents"
110         depends on FIT_SIGNATURE
111         help
112           Enable this to support the pss padding algorithm as described
113           in the rfc8017 (https://tools.ietf.org/html/rfc8017).
114
115 config FIT_CIPHER
116         bool "Enable ciphering data in a FIT uImages"
117         depends on DM
118         select AES
119         help
120           Enable the feature of data ciphering/unciphering in the tool mkimage
121           and in the u-boot support of the FIT image.
122
123 config FIT_VERBOSE
124         bool "Show verbose messages when FIT images fail"
125         help
126           Generally a system will have valid FIT images so debug messages
127           are a waste of code space. If you are debugging your images then
128           you can enable this option to get more verbose information about
129           failures.
130
131 config FIT_BEST_MATCH
132         bool "Select the best match for the kernel device tree"
133         help
134           When no configuration is explicitly selected, default to the
135           one whose fdt's compatibility field best matches that of
136           U-Boot itself. A match is considered "best" if it matches the
137           most specific compatibility entry of U-Boot's fdt's root node.
138           The order of entries in the configuration's fdt is ignored.
139
140 config FIT_IMAGE_POST_PROCESS
141         bool "Enable post-processing of FIT artifacts after loading by U-Boot"
142         depends on SOCFPGA_SECURE_VAB_AUTH
143         help
144           Allows doing any sort of manipulation to blobs after they got extracted
145           from FIT images like stripping off headers or modifying the size of the
146           blob, verification, authentication, decryption etc. in a platform or
147           board specific way. In order to use this feature a platform or board-
148           specific implementation of board_fit_image_post_process() must be
149           provided. Also, anything done during this post-processing step would
150           need to be comprehended in how the images were prepared before being
151           injected into the FIT creation (i.e. the blobs would have been pre-
152           processed before being added to the FIT image).
153
154 config FIT_PRINT
155         bool "Support FIT printing"
156         default y
157         help
158           Support printing the content of the fitImage in a verbose manner.
159
160 config SPL_FIT
161         bool "Support Flattened Image Tree within SPL"
162         depends on SPL
163         select SPL_HASH
164         select SPL_OF_LIBFDT
165
166 config VPL_FIT
167         bool "Support Flattened Image Tree within VPL"
168         depends on VPL
169         select VPL_HASH
170         select VPL_OF_LIBFDT
171
172 config TPL_FIT
173         bool "Support Flattened Image Tree within TPL"
174         depends on TPL
175         select TPL_HASH
176         select TPL_OF_LIBFDT
177
178 config SPL_FIT_PRINT
179         bool "Support FIT printing within SPL"
180         depends on SPL_FIT
181         help
182           Support printing the content of the fitImage in a verbose manner in SPL.
183
184 config SPL_FIT_FULL_CHECK
185         bool "Do a full check of the FIT before using it"
186         depends on SPL_FIT
187         help
188           Enable this do a full check of the FIT to make sure it is valid. This
189           helps to protect against carefully crafted FITs which take advantage
190           of bugs or omissions in the code. This includes a bad structure,
191           multiple root nodes and the like.
192
193 config SPL_FIT_SIGNATURE
194         bool "Enable signature verification of FIT firmware within SPL"
195         depends on SPL_DM
196         depends on SPL_LOAD_FIT || SPL_LOAD_FIT_FULL
197         select FIT_SIGNATURE
198         select SPL_FIT
199         select SPL_CRYPTO
200         select SPL_HASH
201         imply SPL_RSA
202         imply SPL_RSA_VERIFY
203         select SPL_IMAGE_SIGN_INFO
204         select SPL_FIT_FULL_CHECK
205
206 config SPL_FIT_SIGNATURE_MAX_SIZE
207         hex "Max size of signed FIT structures in SPL"
208         depends on SPL_FIT_SIGNATURE
209         default 0x10000000
210         help
211           This option sets a max size in bytes for verified FIT uImages.
212           A sane value of 256MB protects corrupted DTB structures from overlapping
213           device memory. Assure this size does not extend past expected storage
214           space.
215
216 config SPL_FIT_RSASSA_PSS
217         bool "Support rsassa-pss signature scheme of FIT image contents in SPL"
218         depends on SPL_FIT_SIGNATURE
219         help
220           Enable this to support the pss padding algorithm as described
221           in the rfc8017 (https://tools.ietf.org/html/rfc8017) in SPL.
222
223 config SPL_LOAD_FIT
224         bool "Enable SPL loading U-Boot as a FIT (basic fitImage features)"
225         depends on SPL
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
235           This path has the following limitations:
236
237           1. "loadables" images, other than FDTs, which do not have a "load"
238              property will not be loaded. This limitation also applies to FPGA
239              images with the correct "compatible" string.
240           2. For FPGA images, the supported "compatible" list may be found in
241              https://fitspec.osfw.foundation/.
242           3. FDTs are only loaded for images with an "os" property of "u-boot".
243              "linux" images are also supported with Falcon boot mode.
244
245 config SPL_LOAD_FIT_ADDRESS
246         hex "load address of fit image"
247         depends on SPL_LOAD_FIT
248         default 0x44000000 if ARCH_IMX8M
249         default 0x0
250         help
251           Specify the load address of the fit image that will be loaded
252           by SPL.
253
254 config SPL_LOAD_FIT_APPLY_OVERLAY
255         bool "Enable SPL applying DT overlays from FIT"
256         depends on SPL_LOAD_FIT
257         select OF_LIBFDT_OVERLAY
258         help
259           The device tree is loaded from the FIT image. Allow the SPL to
260           also load device-tree overlays from the FIT image an apply them
261           over the device tree.
262
263 config SPL_LOAD_FIT_APPLY_OVERLAY_BUF_SZ
264         depends on SPL_LOAD_FIT_APPLY_OVERLAY
265         default 0x10000
266         hex "size of temporary buffer used to load the overlays"
267         help
268           The size of the area where the overlays will be loaded and
269           uncompress. Must be at least as large as biggest overlay
270           (uncompressed)
271
272 config SPL_LOAD_FIT_FULL
273         bool "Enable SPL loading U-Boot as a FIT (full fitImage features)"
274         select SPL_FIT
275         help
276           Normally with the SPL framework a legacy image is generated as part
277           of the build. This contains U-Boot along with information as to
278           where it should be loaded. This option instead enables generation
279           of a FIT (Flat Image Tree) which provides more flexibility. In
280           particular it can handle selecting from multiple device tree
281           and passing the correct one to U-Boot.
282
283 config TPL_LOAD_FIT
284         bool "Enable TPL loading U-Boot as a FIT (basic fitImage features)"
285         depends on TPL
286         select TPL_FIT
287         help
288           Normally with the SPL framework a legacy image is generated as part
289           of the build. This contains U-Boot along with information as to
290           where it should be loaded. This option instead enables generation
291           of a FIT (Flat Image Tree) which provides more flexibility. In
292           particular it can handle selecting from multiple device tree
293           and passing the correct one to U-Boot.
294
295           This path has the following limitations:
296
297           1. "loadables" images, other than FDTs, which do not have a "load"
298              property will not be loaded. This limitation also applies to FPGA
299              images with the correct "compatible" string.
300           2. For FPGA images, the supported "compatible" list is in the
301              doc/uImage.FIT/source_file_format.txt.
302           3. FDTs are only loaded for images with an "os" property of "u-boot".
303              "linux" images are also supported with Falcon boot mode.
304
305 config SPL_FIT_IMAGE_POST_PROCESS
306         bool "Enable post-processing of FIT artifacts after loading by the SPL"
307         depends on SPL_LOAD_FIT
308         default y if TI_SECURE_DEVICE
309         help
310           Allows doing any sort of manipulation to blobs after they got extracted
311           from the U-Boot FIT image like stripping off headers or modifying the
312           size of the blob, verification, authentication, decryption etc. in a
313           platform or board specific way. In order to use this feature a platform
314           or board-specific implementation of board_fit_image_post_process() must
315           be provided. Also, anything done during this post-processing step would
316           need to be comprehended in how the images were prepared before being
317           injected into the FIT creation (i.e. the blobs would have been pre-
318           processed before being added to the FIT image).
319
320 config USE_SPL_FIT_GENERATOR
321         bool "Use a script to generate the .its script"
322         depends on SPL_FIT
323         default y if SPL_FIT && ARCH_ZYNQMP
324
325 config SPL_FIT_GENERATOR
326         string ".its file generator script for U-Boot FIT image"
327         depends on USE_SPL_FIT_GENERATOR
328         default "arch/arm/mach-zynqmp/mkimage_fit_atf.sh" if SPL_LOAD_FIT && ARCH_ZYNQMP
329         help
330           Specifies a (platform specific) script file to generate the FIT
331           source file used to build the U-Boot FIT image file. This gets
332           passed a list of supported device tree file stub names to
333           include in the generated image.
334
335 if VPL
336
337 config VPL_FIT
338         bool "Support Flattened Image Tree within VPL"
339         depends on VPL
340         default y
341         select VPL_HASH
342         select VPL_OF_LIBFDT
343
344 config VPL_LOAD_FIT
345         bool "Enable VPL loading U-Boot as a FIT (basic fitImage features)"
346         select VPL_FIT
347         default y
348
349 config VPL_LOAD_FIT_FULL
350         bool "Enable SPL loading U-Boot as a FIT (full fitImage features)"
351         select VPL_FIT
352         help
353           Normally with the SPL framework a legacy image is generated as part
354           of the build. This contains U-Boot along with information as to
355           where it should be loaded. This option instead enables generation
356           of a FIT (Flat Image Tree) which provides more flexibility. In
357           particular it can handle selecting from multiple device tree
358           and passing the correct one to U-Boot.
359
360 config VPL_FIT_PRINT
361         bool "Support FIT printing within VPL"
362         depends on VPL_FIT
363         default y
364         help
365           Support printing the content of the fitImage in a verbose manner in VPL.
366
367 config VPL_FIT_FULL_CHECK
368         bool "Do a full check of the FIT before using it"
369         default y
370         help
371           Enable this do a full check of the FIT to make sure it is valid. This
372           helps to protect against carefully crafted FITs which take advantage
373           of bugs or omissions in the code. This includes a bad structure,
374           multiple root nodes and the like.
375
376 config VPL_FIT_SIGNATURE
377         bool "Enable signature verification of FIT firmware within VPL"
378         depends on VPL_DM
379         default y
380         select FIT_SIGNATURE
381         select VPL_FIT
382         select VPL_CRYPTO
383         select VPL_HASH
384         imply VPL_RSA
385         imply VPL_RSA_VERIFY
386         select VPL_IMAGE_SIGN_INFO
387         select VPL_FIT_FULL_CHECK
388
389 config VPL_FIT_SIGNATURE_MAX_SIZE
390         hex "Max size of signed FIT structures in VPL"
391         depends on VPL_FIT_SIGNATURE
392         default 0x10000000
393         help
394           This option sets a max size in bytes for verified FIT uImages.
395           A sane value of 256MB protects corrupted DTB structures from overlapping
396           device memory. Assure this size does not extend past expected storage
397           space.
398
399 endif # VPL
400
401 endif # FIT
402
403 config PXE_UTILS
404         bool
405         select MENU
406         help
407           Utilities for parsing PXE file formats.
408
409 config BOOT_DEFAULTS_FEATURES
410         bool
411         select SUPPORT_RAW_INITRD
412         select ENV_VARS_UBOOT_CONFIG
413         imply USB_STORAGE
414         imply EFI_PARTITION
415         imply ISO_PARTITION
416
417 config BOOT_DEFAULTS_CMDS
418         bool
419         imply USE_BOOTCOMMAND
420         select CMD_ENV_EXISTS
421         select CMD_EXT2
422         select CMD_EXT4
423         select CMD_FAT
424         select CMD_FS_GENERIC
425         select CMD_PART if PARTITIONS
426         select CMD_DHCP if CMD_NET
427         select CMD_PING if CMD_NET
428         select CMD_PXE if CMD_NET
429         select CMD_BOOTI if ARM64
430         select CMD_BOOTZ if ARM && !ARM64
431         imply CMD_MII if NET
432
433 config BOOT_DEFAULTS
434         bool  # Common defaults for standard boot and distroboot
435         select BOOT_DEFAULTS_FEATURES
436         select BOOT_DEFAULTS_CMDS if CMDLINE
437         help
438           These are not required but are commonly needed to support a good
439           selection of booting methods. Enable this to improve the capability
440           of U-Boot to boot various images. Currently much functionality is
441           tied to enabling the command that exercises it.
442
443 menuconfig BOOTSTD
444         bool "Standard boot"
445         default y
446         depends on DM && OF_CONTROL && BLK
447         help
448           U-Boot supports a standard way of locating something to boot,
449           typically an Operating System such as Linux, provided by a distro such
450           as Arch Linux or Debian. Enable this to support iterating through
451           available bootdevs and using bootmeths to find bootflows suitable for
452           booting.
453
454           Standard boot is not a standard way of booting, just a framework
455           within U-Boot for supporting all the different ways that exist.
456
457           Terminology:
458
459             - bootdev - a device which can hold a distro (e.g. MMC)
460             - bootmeth - a method to scan a bootdev to find bootflows (owned by
461                 U-Boot)
462             - bootflow - a description of how to boot (owned by the distro)
463
464 if BOOTSTD
465
466 config SPL_BOOTSTD
467         bool "Standard boot support in SPL"
468         depends on SPL && SPL_DM && SPL_OF_CONTROL && SPL_BLK
469         default y if VPL
470         help
471           This enables standard boot in SPL. This is needed so that VBE
472           (Verified Boot for Embedded) can be used, since it depends on standard
473           boot. It is enabled by default since the main purpose of VPL is to
474           handle the firmware part of VBE.
475
476 config VPL_BOOTSTD
477         bool "Standard boot support in VPL"
478         depends on VPL && VPL_DM && VPL_OF_CONTROL && VPL_BLK
479         default y
480         help
481           This enables standard boot in SPL. This is needed so that VBE
482           (Verified Boot for Embedded) can be used, since it depends on standard
483           boot. It is enabled by default since the main purpose of VPL is to
484           handle the firmware part of VBE.
485
486 config BOOTSTD_FULL
487         bool "Enhanced features for standard boot"
488         default y if SANDBOX
489         imply BOOTSTD_DEFAULTS
490         help
491           This enables various useful features for standard boot, which are not
492           essential for operation:
493
494           - bootdev, bootmeth commands
495           - extra features in the bootflow command
496           - support for selecting the ordering of bootmeths ("bootmeth order")
497           - support for selecting the ordering of bootdevs using the Device Tree
498             as well as the "boot_targets" environment variable
499
500 config BOOTSTD_DEFAULTS
501         bool "Select some common defaults for standard boot"
502         depends on BOOTSTD
503         select BOOT_DEFAULTS
504         select BOOTMETH_DISTRO
505         help
506           These are not required but are commonly needed to support a good
507           selection of booting methods. Enable this to improve the capability
508           of U-Boot to boot various images.
509
510 config BOOTSTD_BOOTCOMMAND
511         bool "Use bootstd to boot"
512         default y if !DISTRO_DEFAULTS
513         help
514           Enable this to select a default boot-command suitable for booting
515           with standard boot. This can be overridden by the board if needed,
516           but the default command should be enough for most boards which use
517           standard boot.
518
519           For now this is only selected if distro boot is NOT used, since
520           standard boot does not support all of the features of distro boot
521           yet.
522
523 config BOOTSTD_MENU
524         bool "Provide a menu of available bootflows for standard boot"
525         depends on BOOTSTD_FULL && EXPO
526         default y
527         help
528           Provide a menu of available bootflows and related options.
529
530 config BOOTSTD_PROG
531         bool "Use programmatic boot"
532         depends on !CMDLINE
533         default y
534         help
535           Enable this to provide a board_run_command() function which can boot
536           a system without using commands. If the boot fails, then U-Boot will
537           panic.
538
539           Note: This currently has many limitations and is not a useful booting
540           solution. Future work will eventually make this a viable option.
541
542 config BOOTMETH_GLOBAL
543         bool
544         help
545           Add support for global bootmeths. This feature is used by VBE and
546           EFI bootmgr, since they take full control over which bootdevs are
547           selected to boot.
548
549 config BOOTMETH_ANDROID
550         bool "Bootdev support for Android"
551         depends on X86 || ARM || SANDBOX
552         depends on CMDLINE
553         select ANDROID_BOOT_IMAGE
554         select CMD_BCB
555         imply CMD_FASTBOOT
556         imply FASTBOOT if !NET_LWIP
557         select PARTITION_TYPE_GUID
558         select PARTITION_UUIDS
559         help
560           Enables support for booting Android using bootstd. Android requires
561           multiple partitions (misc, boot, vbmeta, ...) in storage for booting.
562
563           Note that only MMC bootdevs are supported at present. This is caused
564           by AVB being limited to MMC devices only.
565
566 config BOOTMETH_CROS
567         bool "Bootdev support for Chromium OS"
568         depends on X86 || ARM || SANDBOX
569         default y if !ARM
570         select EFI_PARTITION
571         select PARTITION_TYPE_GUID
572         select PARTITION_UUIDS
573         help
574           Enables support for booting Chromium OS using bootdevs. This uses the
575           kernel A slot and obtains the kernel command line from the parameters
576           provided there.
577
578           Note that only x86 devices are supported at present.
579
580 config BOOTMETH_EXTLINUX
581         bool "Bootdev support for extlinux boot"
582         select PXE_UTILS
583         default y
584         help
585           Enables support for extlinux boot using bootdevs. This makes the
586           bootdevs look for a 'extlinux/extlinux.conf' on each filesystem
587           they scan.
588
589           The specification for this file is here:
590
591             https://uapi-group.org/specifications/specs/boot_loader_specification/
592
593           This provides a way to try out standard boot on an existing boot flow.
594
595 config BOOTMETH_EXTLINUX_PXE
596         bool "Bootdev support for extlinux boot over network"
597         depends on CMD_PXE && CMD_NET && DM_ETH
598         default y
599         help
600           Enables support for extlinux boot using bootdevs. This makes the
601           bootdevs look for a 'extlinux/extlinux.conf' on the tftp server.
602
603           The specification for this file is here:
604
605             https://uapi-group.org/specifications/specs/boot_loader_specification/
606
607           This provides a way to try out standard boot on an existing boot flow.
608
609 config BOOTMETH_EFILOADER
610         bool "Bootdev support for EFI boot"
611         depends on EFI_BINARY_EXEC
612         imply CMD_TFTPBOOT if CMD_NET
613         default y
614         help
615           Enables support for EFI boot using bootdevs. This makes the
616           bootdevs look for a 'boot<arch>.efi' on each filesystem
617           they scan. The resulting file is booted after enabling U-Boot's
618           EFI loader support.
619
620           The <arch> depends on the architecture of the board:
621
622              aa64      - aarch64 (ARM 64-bit)
623              arm       - ARM 32-bit
624              ia32      - x86 32-bit
625              x64       - x86 64-bit
626              riscv32   - RISC-V 32-bit
627              riscv64   - RISC-V 64-bit
628
629           This provides a way to try out standard boot on an existing boot flow.
630
631 config BOOTMETH_EFI_BOOTMGR
632         bool "Bootdev support for EFI boot manager"
633         depends on EFI_BOOTMGR
634         select BOOTMETH_GLOBAL
635         default y
636         help
637           Enable booting via the UEFI boot manager. Based on the EFI variables
638           the EFI binary to be launched is determined. To set the EFI variables
639           use the eficonfig command.
640
641 config BOOTMETH_QFW
642         bool "Boot method using QEMU parameters"
643         depends on QFW
644         default y
645         help
646          Use QEMU parameters -kernel, -initrd, -append to determine the kernel,
647          initial RAM disk, and kernel command line parameters to boot an
648          operating system. U-Boot's control device-tree is passed to the kernel.
649
650 config BOOTMETH_VBE
651         bool "Bootdev support for Verified Boot for Embedded"
652         depends on FIT
653         default y
654         select BOOTMETH_GLOBAL
655         select EVENT
656         help
657           Enables support for VBE boot. This is a standard boot method which
658           supports selection of various firmware components, selection of an OS to
659           boot as well as updating these using fwupd.
660
661 config BOOTMETH_DISTRO
662         bool  # Options needed to boot any distro
663         select BOOTMETH_SCRIPT if CMDLINE # E.g. Armbian uses scripts
664         select BOOTMETH_EXTLINUX  # E.g. Debian uses these
665         select BOOTMETH_EXTLINUX_PXE if CMD_PXE && CMD_NET && DM_ETH
666         select BOOTMETH_EFILOADER if EFI_BINARY_EXEC # E.g. Ubuntu uses this
667
668 config SPL_BOOTMETH_VBE
669         bool "Bootdev support for Verified Boot for Embedded (SPL)"
670         depends on SPL && FIT
671         select EVENT
672         default y if VPL
673         help
674           Enables support for VBE boot. This is a standard boot method which
675           supports selection of various firmware components, selection of an OS to
676           boot as well as updating these using fwupd.
677
678 config VPL_BOOTMETH_VBE
679         bool "Bootdev support for Verified Boot for Embedded (VPL)"
680         depends on VPL && FIT
681         select EVENT
682         default y
683         help
684           Enables support for VBE boot. This is a standard boot method which
685           supports selection of various firmware components, selection of an OS to
686           boot as well as updating these using fwupd.
687
688 config TPL_BOOTMETH_VBE
689         bool "Bootdev support for Verified Boot for Embedded (TPL)"
690         depends on TPL
691         default y
692         help
693           Enables support for VBE boot. This is a standard boot method which
694           supports selection of various firmware components, seleciton of an OS to
695           boot as well as updating these using fwupd.
696
697 if BOOTMETH_VBE
698
699 config BOOTMETH_VBE_REQUEST
700         bool "Support for serving VBE OS requests"
701         default y
702         help
703           Enables support for looking that the requests made by the
704           Operating System being booted. These requests result in additions to
705           the device tree /chosen node, added during the device tree fixup
706           phase.
707
708 config SPL_BOOTMETH_VBE_REQUEST
709         bool "Support for serving VBE OS requests (SPL)"
710         depends on SPL
711         help
712           Enables support for looking that the requests made by the
713           Operating System being booted. These requests result in additions to
714           the device tree /chosen node, added during the device tree fixup
715           phase.
716
717           This is only useful if you are booting an OS direct from SPL.
718
719 config BOOTMETH_VBE_SIMPLE
720         bool "Bootdev support for VBE 'simple' method"
721         default y
722         help
723           Enables support for VBE 'simple' boot. This allows updating a single
724           firmware image in boot media such as MMC. It does not support any sort
725           of rollback, recovery or A/B boot.
726
727 config BOOTMETH_VBE_SIMPLE_OS
728         bool "Bootdev support for VBE 'simple' method OS phase"
729         default y
730         help
731           Enables support for the OS parts of VBE 'simple' boot. This includes
732           fixing up the device tree with the required VBE information, ready
733           for booting into the OS. This option is only enabled for U-Boot
734           proper, since it is the phase where device tree fixups happen.
735
736 config SPL_BOOTMETH_VBE_SIMPLE
737         bool "Bootdev support for VBE 'simple' method (SPL)"
738         depends on SPL
739         default y if VPL
740         help
741           Enables support for VBE 'simple' boot. This allows updating a single
742           firmware image in boot media such as MMC. It does not support any sort
743           of rollback, recovery or A/B boot.
744
745 config VPL_BOOTMETH_VBE_SIMPLE
746         bool "Bootdev support for VBE 'simple' method (VPL)"
747         depends on VPL
748         default y
749         help
750           Enables support for VBE 'simple' boot. This allows updating a single
751           firmware image in boot media such as MMC. It does not support any sort
752           of rollback, recovery or A/B boot.
753
754 config SPL_BOOTMETH_VBE_SIMPLE_FW
755         bool "Bootdev support for VBE 'simple' method firmware phase (SPL)"
756         depends on VPL
757         default y
758         help
759           Enables support for the firmware parts of VBE 'simple' boot. This
760           includes an SPL loader which locates the correct U-Boot to boot into.
761           This option should really only be enabled for VPL, since it is the
762           phase where the SPL + U-Boot decision should be made. But for now,
763           SPL does its own FIT-configuration selection.
764
765 config VPL_BOOTMETH_VBE_SIMPLE_FW
766         bool "Bootdev support for VBE 'simple' method firmware phase (VPL)"
767         depends on VPL
768         default y
769         help
770           Enables support for the firmware parts of VBE 'simple' boot. This
771           includes an SPL loader which locates the correct SPL to boot into.
772           This option enabled for VPL, since it is the phase where the SPL
773           decision is made.
774
775 config TPL_BOOTMETH_VBE_SIMPLE_FW
776         bool "Bootdev support for VBE 'simple' method firmware phase (TPL)"
777         depends on VPL
778         default y
779         help
780           Enables support for the firmware parts of VBE 'simple' boot, in TPL.
781           TPL loads a FIT containing the VPL binary and a suitable devicetree.
782
783 endif # BOOTMETH_VBE_SIMPLE
784
785 config EXPO
786         bool "Support for expos - groups of scenes displaying a UI"
787         depends on VIDEO
788         default y if BOOTMETH_VBE
789         help
790           An expo is a way of presenting and collecting information from the
791           user. It consists of a collection of 'scenes' of which only one is
792           presented at a time. An expo is typically used to show a boot menu
793           and allow settings to be changed.
794
795           The expo can be presented in graphics form using a vidconsole, or in
796           text form on a serial console.
797
798 config BOOTMETH_SANDBOX
799         def_bool y
800         depends on SANDBOX
801         help
802           This is a sandbox bootmeth driver used for testing. It always returns
803           -ENOTSUPP when attempting to boot.
804
805 config BOOTMETH_SCRIPT
806         bool "Bootdev support for U-Boot scripts"
807         default y if BOOTSTD_FULL
808         depends on CMDLINE
809         select HUSH_PARSER
810         help
811           Enables support for booting a distro via a U-Boot script. This makes
812           the bootdevs look for a 'boot/boot.scr' file which can be used to
813           boot the distro.
814
815           This provides a way to try out standard boot on an existing boot flow.
816           It is not enabled by default to save space.
817
818 config UPL
819         bool "upl - Universal Payload Specification"
820         imply CMD_UPL
821         imply UPL_READ
822         imply UPL_WRITE
823         imply SPL_UPL if SPL
824         help
825           Provides support for UPL payloads and handoff information. U-Boot
826           supports generating and accepting handoff information. The mkimage
827           tool will eventually support creating payloads.
828
829 if UPL
830
831 config UPL_READ
832         bool "upl - Support reading a Universal Payload handoff"
833         help
834           Provides support for decoding a UPL-format payload into a C structure
835           which can be used elsewhere in U-Boot. This is just the reading
836           implementation, useful for trying it out. See UPL_IN for how
837           to tell U-Boot to actually read it on startup and use it for memory
838           and device information, etc.
839
840 config UPL_WRITE
841         bool "upl - Support writing a Universal Payload handoff"
842         help
843           Provides support for encoding a UPL-format payload from a C structure
844           so it can be passed to another program. This is just the writing
845           implementation, useful for trying it out. See SPL_UPL_OUT
846           for how to tell U-Boot SPL to actually write it before jumping to
847           the next phase.
848
849 config UPL_IN
850         bool "upl - Read the UPL handoff on startup"
851         select UPL_READ
852         help
853           Read an SPL handoff when U-Boot starts and use it to provide
854           devices, memory layout, etc. required by U-Boot. This allows U-Boot
855           to function as a payload in the meaning of the specification.
856
857 if SPL
858
859 config SPL_UPL
860         bool "Write a UPL handoff in SPL"
861         imply SPL_UPL_OUT
862         help
863           This tells SPL to write a UPL handoff and pass it to the next phase
864           (e.g. to U-Boot or another program which SPL loads and runs). THis
865           provides information to help that program run correctly and
866           efficiently on the machine.
867
868 config SPL_UPL_WRITE
869         bool  # upl - Support writing a Universal Payload handoff in SPL
870         select SPL_BLOBLIST
871         help
872           Provides support for encoding a UPL-format payload from a C structure
873           so it can be passed to another program. This is just the writing
874           implementation, useful for trying it out.
875
876 config SPL_UPL_OUT
877         bool "upl - Support writing a Universal Payload handoff in SPL"
878         select SPL_UPL_WRITE
879         help
880           Provides support for encoding a UPL-format payload and passing it to
881           the next firmware phase. This allows U-Boot SPL to function as
882           Platform Init in the meaning of the specification.
883
884 endif  # SPL
885
886 endif  # UPL
887
888 endif # BOOTSTD
889
890 config LEGACY_IMAGE_FORMAT
891         bool "Enable support for the legacy image format"
892         default y if !FIT_SIGNATURE && !TI_SECURE_DEVICE
893         help
894           This option enables the legacy image format. It is enabled by
895           default for backward compatibility, unless FIT_SIGNATURE is
896           set where it is disabled so that unsigned images cannot be
897           loaded. If a board needs the legacy image format support in this
898           case, enable it here.
899
900 config MEASURED_BOOT
901         bool "Measure boot images and configuration when booting without EFI"
902         depends on HASH && TPM_V2
903         select SHA1
904         select SHA256
905         select SHA384
906         select SHA512
907         help
908           This option enables measurement of the boot process when booting
909           without UEFI . Measurement involves creating cryptographic hashes
910           of the binary images that are booting and storing them in the TPM.
911           In addition, a log of these hashes is stored in memory for the OS
912           to verify the booted images and configuration. Enable this if the
913           OS has configured some memory area for the event log and you intend
914           to use some attestation tools on your system.
915
916 if MEASURED_BOOT
917         config MEASURE_DEVICETREE
918         bool "Measure the devicetree image"
919         default y if MEASURED_BOOT
920         help
921           On some platforms, the Device Tree is not static as it may contain
922           random MAC addresses or other such data that changes each boot.
923           Therefore, it should not be measured into the TPM. In that case,
924           disable the measurement here.
925
926         config MEASURE_IGNORE_LOG
927         bool "Ignore the existing event log"
928         help
929           On platforms that use an event log memory region that persists
930           through system resets and are the first stage bootloader, then
931           this option should be enabled to ignore any existing data in the
932           event log memory region.
933 endif # MEASURED_BOOT
934
935 config SYS_BOOTM_LEN
936         hex "Maximum size of a decompresed OS image"
937         depends on CMD_BOOTM || CMD_BOOTI || CMD_BOOTZ || \
938                 LEGACY_IMAGE_FORMAT || SPL_LEGACY_IMAGE_FORMAT
939         default 0x4000000 if PPC || ARM64
940         default 0x1000000 if X86 || ARCH_MX6 || ARCH_MX7
941         default 0x800000
942         help
943           This is the maximum size of the buffer that is used to decompress the OS
944           image in to if attempting to boot a compressed image.
945
946 config SUPPORT_RAW_INITRD
947         bool "Enable raw initrd images"
948         help
949           Note, defining the SUPPORT_RAW_INITRD allows user to supply
950           kernel with raw initrd images. The syntax is slightly different, the
951           address of the initrd must be augmented by it's size, in the following
952           format: "<initrd address>:<initrd size>".
953
954 config CHROMEOS
955         bool "Support booting Chrome OS"
956         help
957           Chrome OS requires U-Boot to set up a table indicating the boot mode
958           (e.g. Developer mode) and a few other things. Enable this if you are
959           booting on a Chromebook to avoid getting an error about an invalid
960           firmware ID.
961
962 config CHROMEOS_VBOOT
963         bool "Support Chrome OS verified boot"
964         help
965           This is intended to enable the full Chrome OS verified boot support
966           in U-Boot. It is not actually implemented in the U-Boot source code
967           at present, so this option is always set to 'n'. It allows
968           distinguishing between booting Chrome OS in a basic way (developer
969           mode) and a full boot.
970
971 config SYS_RAMBOOT
972         bool
973
974 config RAMBOOT_PBL
975         bool "Freescale PBL(pre-boot loader) image format support"
976         select SYS_RAMBOOT if PPC
977         help
978           Some SoCs use PBL to load RCW and/or pre-initialization instructions.
979           For more details refer to doc/README.pblimage
980
981 choice
982         prompt "Freescale PBL (or predecessor) load location"
983         depends on RAMBOOT_PBL || ((TARGET_P1010RDB_PA || TARGET_P1010RDB_PB \
984                 || TARGET_P1020RDB_PC || TARGET_P1020RDB_PD || TARGET_P2020RDB) \
985                 && !CMD_NAND) || (TARGET_TURRIS_1X && SYS_MPC85XX_NO_RESETVEC)
986
987 config SDCARD
988         bool "Freescale PBL (or similar) is found on SD card"
989
990 config SPIFLASH
991         bool "Freescale PBL (or similar) is found on SPI flash"
992
993 config NO_PBL
994         bool "Freescale PBL (or similar) is not used in this case"
995
996 endchoice
997
998 config FSL_FIXED_MMC_LOCATION
999         bool "PBL MMC is at a fixed location"
1000         depends on SDCARD && !RAMBOOT_PBL
1001
1002 config ESDHC_HC_BLK_ADDR
1003         def_bool y
1004         depends on FSL_FIXED_MMC_LOCATION && (ARCH_BSC9131 || ARCH_BSC9132 || ARCH_P1010)
1005         help
1006           In High Capacity SD Cards (> 2 GBytes), the 32-bit source address and
1007           code length of these soc specify the memory address in block address
1008           format. Block length is fixed to 512 bytes as per the SD High
1009           Capacity specification.
1010
1011 config SYS_FSL_PBL_PBI
1012         string "PBI(pre-boot instructions) commands for the PBL image"
1013         depends on RAMBOOT_PBL
1014         help
1015           PBI commands can be used to configure SoC before it starts the execution.
1016           Please refer doc/README.pblimage for more details.
1017
1018 config SYS_FSL_PBL_RCW
1019         string "Aadditional RCW (Power on reset configuration) for the PBL image"
1020         depends on RAMBOOT_PBL
1021         help
1022           Enables addition of RCW (Power on reset configuration) in built image.
1023           Please refer doc/README.pblimage for more details.
1024
1025 config SYS_BOOT_RAMDISK_HIGH
1026         depends on CMD_BOOTM || CMD_BOOTI || CMD_BOOTZ
1027         depends on !(NIOS2 || SANDBOX || SH || XTENSA)
1028         def_bool y
1029         select LMB
1030         help
1031           Enable initrd_high functionality.  If defined then the initrd_high
1032           feature is enabled and the boot* ramdisk subcommand is enabled.
1033
1034 endmenu         # Boot images
1035
1036 config DISTRO_DEFAULTS
1037         bool "(deprecated) Script-based booting of Linux distributions"
1038         select CMDLINE
1039         select BOOT_DEFAULTS
1040         select AUTO_COMPLETE
1041         select CMDLINE_EDITING
1042         select CMD_SYSBOOT
1043         select HUSH_PARSER
1044         select SYS_LONGHELP
1045         help
1046           Note: These scripts have been replaced by Standard Boot. Do not use
1047           them on new boards. See 'Migrating from distro_boot' at
1048           doc/develop/bootstd.rst
1049
1050           Select this to enable various options and commands which are suitable
1051           for building u-boot for booting general purpose Linux distributions.
1052
1053 menu "Boot timing"
1054
1055 config BOOTSTAGE
1056         bool "Boot timing and reporting"
1057         help
1058           Enable recording of boot time while booting. To use it, insert
1059           calls to bootstage_mark() with a suitable BOOTSTAGE_ID from
1060           bootstage.h. Only a single entry is recorded for each ID. You can
1061           give the entry a name with bootstage_mark_name(). You can also
1062           record elapsed time in a particular stage using bootstage_start()
1063           before starting and bootstage_accum() when finished. Bootstage will
1064           add up all the accumulated time and report it.
1065
1066           Normally, IDs are defined in bootstage.h but a small number of
1067           additional 'user' IDs can be used by passing BOOTSTAGE_ID_ALLOC
1068           as the ID.
1069
1070           Calls to show_boot_progress() will also result in log entries but
1071           these will not have names.
1072
1073 config SPL_BOOTSTAGE
1074         bool "Boot timing and reported in SPL"
1075         depends on BOOTSTAGE && SPL
1076         help
1077           Enable recording of boot time in SPL. To make this visible to U-Boot
1078           proper, enable BOOTSTAGE_STASH as well. This will stash the timing
1079           information when SPL finishes and load it when U-Boot proper starts
1080           up.
1081
1082 config TPL_BOOTSTAGE
1083         bool "Boot timing and reported in TPL"
1084         depends on BOOTSTAGE && TPL
1085         help
1086           Enable recording of boot time in SPL. To make this visible to U-Boot
1087           proper, enable BOOTSTAGE_STASH as well. This will stash the timing
1088           information when TPL finishes and load it when U-Boot proper starts
1089           up.
1090
1091 config BOOTSTAGE_REPORT
1092         bool "Display a detailed boot timing report before booting the OS"
1093         depends on BOOTSTAGE
1094         help
1095           Enable output of a boot time report just before the OS is booted.
1096           This shows how long it took U-Boot to go through each stage of the
1097           boot process. The report looks something like this:
1098
1099                 Timer summary in microseconds:
1100                        Mark    Elapsed  Stage
1101                           0          0  reset
1102                   3,575,678  3,575,678  board_init_f start
1103                   3,575,695         17  arch_cpu_init A9
1104                   3,575,777         82  arch_cpu_init done
1105                   3,659,598     83,821  board_init_r start
1106                   3,910,375    250,777  main_loop
1107                  29,916,167 26,005,792  bootm_start
1108                  30,361,327    445,160  start_kernel
1109
1110 config BOOTSTAGE_RECORD_COUNT
1111         int "Number of boot stage records to store"
1112         depends on BOOTSTAGE
1113         default 30
1114         help
1115           This is the size of the bootstage record list and is the maximum
1116           number of bootstage records that can be recorded.
1117
1118 config SPL_BOOTSTAGE_RECORD_COUNT
1119         int "Number of boot stage records to store for SPL"
1120         depends on SPL_BOOTSTAGE
1121         default 5
1122         help
1123           This is the size of the bootstage record list and is the maximum
1124           number of bootstage records that can be recorded.
1125
1126 config TPL_BOOTSTAGE_RECORD_COUNT
1127         int "Number of boot stage records to store for TPL"
1128         depends on TPL_BOOTSTAGE
1129         default 5
1130         help
1131           This is the size of the bootstage record list and is the maximum
1132           number of bootstage records that can be recorded.
1133
1134 config BOOTSTAGE_FDT
1135         bool "Store boot timing information in the OS device tree"
1136         depends on BOOTSTAGE
1137         help
1138           Stash the bootstage information in the FDT. A root 'bootstage'
1139           node is created with each bootstage id as a child. Each child
1140           has a 'name' property and either 'mark' containing the
1141           mark time in microseconds, or 'accum' containing the
1142           accumulated time for that bootstage id in microseconds.
1143           For example:
1144
1145                 bootstage {
1146                         154 {
1147                                 name = "board_init_f";
1148                                 mark = <3575678>;
1149                         };
1150                         170 {
1151                                 name = "lcd";
1152                                 accum = <33482>;
1153                         };
1154                 };
1155
1156           Code in the Linux kernel can find this in /proc/devicetree.
1157
1158 config BOOTSTAGE_STASH
1159         bool "Stash the boot timing information in memory before booting OS"
1160         depends on BOOTSTAGE
1161         help
1162           Some OSes do not support device tree. Bootstage can instead write
1163           the boot timing information in a binary format at a given address.
1164           This happens through a call to bootstage_stash(), typically in
1165           the CPU's cleanup_before_linux() function. You can use the
1166           'bootstage stash' and 'bootstage unstash' commands to do this on
1167           the command line.
1168
1169 config BOOTSTAGE_STASH_ADDR
1170         hex "Address to stash boot timing information"
1171         depends on BOOTSTAGE_STASH
1172         default 0xC3000000 if STM32MP13X || STM32MP15X
1173         default 0x87000000 if STM32MP25X
1174         default 0x0 if SANDBOX
1175         help
1176           Provide an address which will not be overwritten by the OS when it
1177           starts, so that it can read this information when ready.
1178
1179 config BOOTSTAGE_STASH_SIZE
1180         hex "Size of boot timing stash region"
1181         depends on BOOTSTAGE_STASH
1182         default 0x1000
1183         help
1184           This should be large enough to hold the bootstage stash. A value of
1185           4096 (4KiB) is normally plenty.
1186
1187 config SHOW_BOOT_PROGRESS
1188         bool "Show boot progress in a board-specific manner"
1189         help
1190           Defining this option allows to add some board-specific code (calling
1191           a user-provided function show_boot_progress(int) that enables you to
1192           show the system's boot progress on some display (for example, some
1193           LEDs) on your board. At the moment, the following checkpoints are
1194           implemented:
1195
1196           Legacy uImage format:
1197
1198           Arg   Where                   When
1199             1   common/cmd_bootm.c      before attempting to boot an image
1200            -1   common/cmd_bootm.c      Image header has bad     magic number
1201             2   common/cmd_bootm.c      Image header has correct magic number
1202            -2   common/cmd_bootm.c      Image header has bad     checksum
1203             3   common/cmd_bootm.c      Image header has correct checksum
1204            -3   common/cmd_bootm.c      Image data   has bad     checksum
1205             4   common/cmd_bootm.c      Image data   has correct checksum
1206            -4   common/cmd_bootm.c      Image is for unsupported architecture
1207             5   common/cmd_bootm.c      Architecture check OK
1208            -5   common/cmd_bootm.c      Wrong Image Type (not kernel, multi)
1209             6   common/cmd_bootm.c      Image Type check OK
1210            -6   common/cmd_bootm.c      gunzip uncompression error
1211            -7   common/cmd_bootm.c      Unimplemented compression type
1212             7   common/cmd_bootm.c      Uncompression OK
1213             8   common/cmd_bootm.c      No uncompress/copy overwrite error
1214            -9   common/cmd_bootm.c      Unsupported OS (not Linux, BSD, VxWorks, QNX)
1215
1216             9   common/image.c          Start initial ramdisk verification
1217           -10   common/image.c          Ramdisk header has bad     magic number
1218           -11   common/image.c          Ramdisk header has bad     checksum
1219            10   common/image.c          Ramdisk header is OK
1220           -12   common/image.c          Ramdisk data   has bad     checksum
1221            11   common/image.c          Ramdisk data   has correct checksum
1222            12   common/image.c          Ramdisk verification complete, start loading
1223           -13   common/image.c          Wrong Image Type (not PPC Linux ramdisk)
1224            13   common/image.c          Start multifile image verification
1225            14   common/image.c          No initial ramdisk, no multifile, continue.
1226
1227            15   arch/<arch>/lib/bootm.c All preparation done, transferring control to OS
1228
1229           -30   arch/powerpc/lib/board.c        Fatal error, hang the system
1230           -31   post/post.c             POST test failed, detected by post_output_backlog()
1231           -32   post/post.c             POST test failed, detected by post_run_single()
1232
1233            34   common/cmd_doc.c        before loading a Image from a DOC device
1234           -35   common/cmd_doc.c        Bad usage of "doc" command
1235            35   common/cmd_doc.c        correct usage of "doc" command
1236           -36   common/cmd_doc.c        No boot device
1237            36   common/cmd_doc.c        correct boot device
1238           -37   common/cmd_doc.c        Unknown Chip ID on boot device
1239            37   common/cmd_doc.c        correct chip ID found, device available
1240           -38   common/cmd_doc.c        Read Error on boot device
1241            38   common/cmd_doc.c        reading Image header from DOC device OK
1242           -39   common/cmd_doc.c        Image header has bad magic number
1243            39   common/cmd_doc.c        Image header has correct magic number
1244           -40   common/cmd_doc.c        Error reading Image from DOC device
1245            40   common/cmd_doc.c        Image header has correct magic number
1246            41   common/cmd_ide.c        before loading a Image from a IDE device
1247           -42   common/cmd_ide.c        Bad usage of "ide" command
1248            42   common/cmd_ide.c        correct usage of "ide" command
1249           -43   common/cmd_ide.c        No boot device
1250            43   common/cmd_ide.c        boot device found
1251           -44   common/cmd_ide.c        Device not available
1252            44   common/cmd_ide.c        Device available
1253           -45   common/cmd_ide.c        wrong partition selected
1254            45   common/cmd_ide.c        partition selected
1255           -46   common/cmd_ide.c        Unknown partition table
1256            46   common/cmd_ide.c        valid partition table found
1257           -47   common/cmd_ide.c        Invalid partition type
1258            47   common/cmd_ide.c        correct partition type
1259           -48   common/cmd_ide.c        Error reading Image Header on boot device
1260            48   common/cmd_ide.c        reading Image Header from IDE device OK
1261           -49   common/cmd_ide.c        Image header has bad magic number
1262            49   common/cmd_ide.c        Image header has correct magic number
1263           -50   common/cmd_ide.c        Image header has bad     checksum
1264            50   common/cmd_ide.c        Image header has correct checksum
1265           -51   common/cmd_ide.c        Error reading Image from IDE device
1266            51   common/cmd_ide.c        reading Image from IDE device OK
1267            52   common/cmd_nand.c       before loading a Image from a NAND device
1268           -53   common/cmd_nand.c       Bad usage of "nand" command
1269            53   common/cmd_nand.c       correct usage of "nand" command
1270           -54   common/cmd_nand.c       No boot device
1271            54   common/cmd_nand.c       boot device found
1272           -55   common/cmd_nand.c       Unknown Chip ID on boot device
1273            55   common/cmd_nand.c       correct chip ID found, device available
1274           -56   common/cmd_nand.c       Error reading Image Header on boot device
1275            56   common/cmd_nand.c       reading Image Header from NAND device OK
1276           -57   common/cmd_nand.c       Image header has bad magic number
1277            57   common/cmd_nand.c       Image header has correct magic number
1278           -58   common/cmd_nand.c       Error reading Image from NAND device
1279            58   common/cmd_nand.c       reading Image from NAND device OK
1280
1281           -60   common/env_common.c     Environment has a bad CRC, using default
1282
1283            64   net/eth.c               starting with Ethernet configuration.
1284           -64   net/eth.c               no Ethernet found.
1285            65   net/eth.c               Ethernet found.
1286
1287           -80   common/cmd_net.c        usage wrong
1288            80   common/cmd_net.c        before calling net_loop()
1289           -81   common/cmd_net.c        some error in net_loop() occurred
1290            81   common/cmd_net.c        net_loop() back without error
1291           -82   common/cmd_net.c        size == 0 (File with size 0 loaded)
1292            82   common/cmd_net.c        trying automatic boot
1293            83   common/cmd_net.c        running "source" command
1294           -83   common/cmd_net.c        some error in automatic boot or "source" command
1295            84   common/cmd_net.c        end without errors
1296
1297           FIT uImage format:
1298
1299           Arg   Where                   When
1300           100   common/cmd_bootm.c      Kernel FIT Image has correct format
1301           -100  common/cmd_bootm.c      Kernel FIT Image has incorrect format
1302           101   common/cmd_bootm.c      No Kernel subimage unit name, using configuration
1303           -101  common/cmd_bootm.c      Can't get configuration for kernel subimage
1304           102   common/cmd_bootm.c      Kernel unit name specified
1305           -103  common/cmd_bootm.c      Can't get kernel subimage node offset
1306           103   common/cmd_bootm.c      Found configuration node
1307           104   common/cmd_bootm.c      Got kernel subimage node offset
1308           -104  common/cmd_bootm.c      Kernel subimage hash verification failed
1309           105   common/cmd_bootm.c      Kernel subimage hash verification OK
1310           -105  common/cmd_bootm.c      Kernel subimage is for unsupported architecture
1311           106   common/cmd_bootm.c      Architecture check OK
1312           -106  common/cmd_bootm.c      Kernel subimage has wrong type
1313           107   common/cmd_bootm.c      Kernel subimage type OK
1314           -107  common/cmd_bootm.c      Can't get kernel subimage data/size
1315           108   common/cmd_bootm.c      Got kernel subimage data/size
1316           -108  common/cmd_bootm.c      Wrong image type (not legacy, FIT)
1317           -109  common/cmd_bootm.c      Can't get kernel subimage type
1318           -110  common/cmd_bootm.c      Can't get kernel subimage comp
1319           -111  common/cmd_bootm.c      Can't get kernel subimage os
1320           -112  common/cmd_bootm.c      Can't get kernel subimage load address
1321           -113  common/cmd_bootm.c      Image uncompress/copy overwrite error
1322
1323           120   common/image.c          Start initial ramdisk verification
1324           -120  common/image.c          Ramdisk FIT image has incorrect format
1325           121   common/image.c          Ramdisk FIT image has correct format
1326           122   common/image.c          No ramdisk subimage unit name, using configuration
1327           -122  common/image.c          Can't get configuration for ramdisk subimage
1328           123   common/image.c          Ramdisk unit name specified
1329           -124  common/image.c          Can't get ramdisk subimage node offset
1330           125   common/image.c          Got ramdisk subimage node offset
1331           -125  common/image.c          Ramdisk subimage hash verification failed
1332           126   common/image.c          Ramdisk subimage hash verification OK
1333           -126  common/image.c          Ramdisk subimage for unsupported architecture
1334           127   common/image.c          Architecture check OK
1335           -127  common/image.c          Can't get ramdisk subimage data/size
1336           128   common/image.c          Got ramdisk subimage data/size
1337           129   common/image.c          Can't get ramdisk load address
1338           -129  common/image.c          Got ramdisk load address
1339
1340           -130  common/cmd_doc.c        Incorrect FIT image format
1341           131   common/cmd_doc.c        FIT image format OK
1342
1343           -140  common/cmd_ide.c        Incorrect FIT image format
1344           141   common/cmd_ide.c        FIT image format OK
1345
1346           -150  common/cmd_nand.c       Incorrect FIT image format
1347           151   common/cmd_nand.c       FIT image format OK
1348
1349 config SPL_SHOW_BOOT_PROGRESS
1350         bool "Show boot progress in a board-specific manner in SPL"
1351         depends on SPL
1352         help
1353           Defining this option allows to add some board-specific code (calling
1354           a user-provided function show_boot_progress(int) that enables you to
1355           show the system's boot progress on some display (for example, some
1356           LEDs) on your board. For details see SHOW_BOOT_PROGRESS.
1357
1358 endmenu
1359
1360 menu "Boot media"
1361
1362 config NOR_BOOT
1363         bool "Support for booting from NOR flash"
1364         depends on NOR
1365         help
1366           Enabling this will make a U-Boot binary that is capable of being
1367           booted via NOR.  In this case we will enable certain pinmux early
1368           as the ROM only partially sets up pinmux.  We also default to using
1369           NOR for environment.
1370
1371 config NAND_BOOT
1372         bool "Support for booting from NAND flash"
1373         imply MTD_RAW_NAND
1374         help
1375           Enabling this will make a U-Boot binary that is capable of being
1376           booted via NAND flash. This is not a must, some SoCs need this,
1377           some not.
1378
1379 config ONENAND_BOOT
1380         bool "Support for booting from ONENAND"
1381         imply MTD_RAW_NAND
1382         help
1383           Enabling this will make a U-Boot binary that is capable of being
1384           booted via ONENAND. This is not a must, some SoCs need this,
1385           some not.
1386
1387 config QSPI_BOOT
1388         bool "Support for booting from QSPI flash"
1389         help
1390           Enabling this will make a U-Boot binary that is capable of being
1391           booted via QSPI flash. This is not a must, some SoCs need this,
1392           some not.
1393
1394 config SATA_BOOT
1395         bool "Support for booting from SATA"
1396         help
1397           Enabling this will make a U-Boot binary that is capable of being
1398           booted via SATA. This is not a must, some SoCs need this,
1399           some not.
1400
1401 config SD_BOOT
1402         bool "Support for booting from SD/EMMC"
1403         help
1404           Enabling this will make a U-Boot binary that is capable of being
1405           booted via SD/EMMC. This is not a must, some SoCs need this,
1406           some not.
1407
1408 config SD_BOOT_QSPI
1409         bool "Support for booting from SD/EMMC and enable QSPI"
1410         help
1411           Enabling this will make a U-Boot binary that is capable of being
1412           booted via SD/EMMC while enabling QSPI on the platform as well. This
1413           is not a must, some SoCs need this, some not.
1414
1415 config SPI_BOOT
1416         bool "Support for booting from SPI flash"
1417         help
1418           Enabling this will make a U-Boot binary that is capable of being
1419           booted via SPI flash. This is not a must, some SoCs need this,
1420           some not.
1421
1422 endmenu
1423
1424 menu "Autoboot options"
1425
1426 config AUTOBOOT
1427         bool "Autoboot"
1428         depends on CMDLINE
1429         default y
1430         help
1431           This enables the autoboot.  See doc/README.autoboot for detail.
1432
1433 if AUTOBOOT
1434
1435 config BOOTDELAY
1436         int "delay in seconds before automatically booting"
1437         default 2
1438         help
1439           Delay before automatically running bootcmd;
1440           set to 0 to autoboot with no delay, but you can stop it by key input.
1441           set to -1 to disable autoboot.
1442           set to -2 to autoboot with no delay and not check for abort
1443
1444           If this value is >= 0 then it is also used for the default delay
1445           before starting the default entry in bootmenu. If it is < 0 then
1446           a default value of 10s is used.
1447
1448           See doc/README.autoboot for details.
1449
1450 config AUTOBOOT_KEYED
1451         bool "Stop autobooting via specific input key / string"
1452         help
1453           This option enables stopping (aborting) of the automatic
1454           boot feature only by issuing a specific input key or
1455           string. If not enabled, any input key will abort the
1456           U-Boot automatic booting process and bring the device
1457           to the U-Boot prompt for user input.
1458
1459 if AUTOBOOT_KEYED
1460
1461 config AUTOBOOT_FLUSH_STDIN
1462         bool "Enable flushing stdin before starting to read the password"
1463         depends on !SANDBOX
1464         help
1465           When this option is enabled stdin buffer will be flushed before
1466           starting to read the password.
1467           This can't be enabled for the sandbox as flushing stdin would
1468           break the autoboot unit tests.
1469
1470 config AUTOBOOT_PROMPT
1471         string "Autoboot stop prompt"
1472         default "Autoboot in %d seconds\\n"
1473         help
1474           This string is displayed before the boot delay selected by
1475           CONFIG_BOOTDELAY starts. If it is not defined there is no
1476           output indicating that autoboot is in progress.
1477
1478           Note that this define is used as the (only) argument to a
1479           printf() call, so it may contain '%' format specifications,
1480           provided that it also includes, separated by commas exactly
1481           like in a printf statement, the required arguments. It is
1482           the responsibility of the user to select only such arguments
1483           that are valid in the given context.
1484
1485 config AUTOBOOT_ENCRYPTION
1486         bool "Enable encryption in autoboot stopping"
1487         help
1488           This option allows a string to be entered into U-Boot to stop the
1489           autoboot.
1490           The behavior depends whether CONFIG_CRYPT_PW from lib is enabled
1491           or not.
1492           In case CONFIG_CRYPT_PW is enabled, the string will be forwarded
1493           to the crypt-based functionality and be compared against the
1494           string in the environment variable 'bootstopkeycrypt'.
1495           In case CONFIG_CRYPT_PW is disabled the string itself is hashed
1496           and compared against the hash in the environment variable
1497           'bootstopkeysha256'.
1498           If it matches in either case then boot stops and
1499           a command-line prompt is presented.
1500           This provides a way to ship a secure production device which can also
1501           be accessed at the U-Boot command line.
1502
1503 config AUTOBOOT_SHA256_FALLBACK
1504         bool "Allow fallback from crypt-hashed password to sha256"
1505         depends on AUTOBOOT_ENCRYPTION && CRYPT_PW
1506         help
1507           This option adds support to fall back from crypt-hashed
1508           passwords to checking a SHA256 hashed password in case the
1509           'bootstopusesha256' environment variable is set to 'true'.
1510
1511 config AUTOBOOT_DELAY_STR
1512         string "Delay autobooting via specific input key / string"
1513         depends on !AUTOBOOT_ENCRYPTION
1514         help
1515           This option delays the automatic boot feature by issuing
1516           a specific input key or string. If CONFIG_AUTOBOOT_DELAY_STR
1517           or the environment variable "bootdelaykey" is specified
1518           and this string is received from console input before
1519           autoboot starts booting, U-Boot gives a command prompt. The
1520           U-Boot prompt will time out if CONFIG_BOOT_RETRY_TIME is
1521           used, otherwise it never times out.
1522
1523 config AUTOBOOT_STOP_STR
1524         string "Stop autobooting via specific input key / string"
1525         depends on !AUTOBOOT_ENCRYPTION
1526         help
1527           This option enables stopping (aborting) of the automatic
1528           boot feature only by issuing a specific input key or
1529           string. If CONFIG_AUTOBOOT_STOP_STR or the environment
1530           variable "bootstopkey" is specified and this string is
1531           received from console input before autoboot starts booting,
1532           U-Boot gives a command prompt. The U-Boot prompt never
1533           times out, even if CONFIG_BOOT_RETRY_TIME is used.
1534
1535 config AUTOBOOT_KEYED_CTRLC
1536         bool "Enable Ctrl-C autoboot interruption"
1537         depends on !AUTOBOOT_ENCRYPTION
1538         help
1539           This option allows for the boot sequence to be interrupted
1540           by ctrl-c, in addition to the "bootdelaykey" and "bootstopkey".
1541           Setting this variable provides an escape sequence from the
1542           limited "password" strings.
1543
1544 config AUTOBOOT_NEVER_TIMEOUT
1545         bool "Make the password entry never time-out"
1546         depends on AUTOBOOT_ENCRYPTION && CRYPT_PW
1547         help
1548           This option removes the timeout from the password entry
1549           when the user first presses the <Enter> key before entering
1550           any other character.
1551
1552 config AUTOBOOT_STOP_STR_ENABLE
1553         bool "Enable fixed string to stop autobooting"
1554         depends on AUTOBOOT_ENCRYPTION
1555         help
1556           This option enables the feature to add a fixed stop
1557           string that is defined at compile time.
1558           In every case it will be tried to load the stop
1559           string from the environment.
1560           In case this is enabled and there is no stop string
1561           in the environment, this will be used as default value.
1562
1563 config AUTOBOOT_STOP_STR_CRYPT
1564         string "Stop autobooting via crypt-hashed password"
1565         depends on AUTOBOOT_STOP_STR_ENABLE && CRYPT_PW
1566         help
1567           This option adds the feature to only stop the autobooting,
1568           and therefore boot into the U-Boot prompt, when the input
1569           string / password matches a values that is hashed via
1570           one of the supported crypt-style password hashing options
1571           and saved in the environment variable "bootstopkeycrypt".
1572
1573 config AUTOBOOT_STOP_STR_SHA256
1574         string "Stop autobooting via SHA256 hashed password"
1575         depends on AUTOBOOT_STOP_STR_ENABLE
1576         help
1577           This option adds the feature to only stop the autobooting,
1578           and therefore boot into the U-Boot prompt, when the input
1579           string / password matches a values that is encrypted via
1580           a SHA256 hash and saved in the environment variable
1581           "bootstopkeysha256". If the value in that variable
1582           includes a ":", the portion prior to the ":" will be treated
1583           as a salt value.
1584
1585 endif  # AUTOBOOT_KEYED
1586
1587 if !AUTOBOOT_KEYED
1588
1589 config AUTOBOOT_USE_MENUKEY
1590         bool "Allow a specify key to run a menu from the environment"
1591         help
1592           If a specific key is pressed to stop autoboot, then the commands in
1593           the environment variable 'menucmd' are executed before boot starts.
1594
1595 config AUTOBOOT_MENUKEY
1596         int "ASCII value of boot key to show a menu"
1597         default 0
1598         depends on AUTOBOOT_USE_MENUKEY
1599         help
1600           If this key is pressed to stop autoboot, then the commands in the
1601           environment variable 'menucmd' will be executed before boot starts.
1602           For example, 33 means "!" in ASCII, so pressing ! at boot would take
1603           this action.
1604
1605 endif
1606
1607 endif  # AUTOBOOT
1608
1609 config AUTOBOOT_MENU_SHOW
1610         bool "Show a menu on boot"
1611         depends on CMD_BOOTMENU
1612         help
1613           This enables the boot menu, controlled by environment variables
1614           defined by the board. The menu starts after running the 'preboot'
1615           environmnent variable (if enabled) and before handling the boot delay.
1616           See doc/usage/cmd/bootmenu.rst for more details.
1617
1618 config BOOTMENU_DISABLE_UBOOT_CONSOLE
1619         bool "Disallow bootmenu to enter the U-Boot console"
1620         depends on AUTOBOOT_MENU_SHOW
1621         help
1622           If this option is enabled, user can not enter the U-Boot console from
1623           bootmenu. It increases the system security.
1624
1625 config BOOT_RETRY
1626         bool "Boot retry feature"
1627         help
1628           Allow for having the U-Boot command prompt time out and attempt
1629           to boot again.  If the environment variable "bootretry" is found then
1630           its value is used, otherwise the retry timeout is
1631           CONFIG_BOOT_RETRY_TIME.  CONFIG_BOOT_RETRY_MIN is optional and
1632           defaults to CONFIG_BOOT_RETRY_TIME. All times are in seconds.
1633
1634 config BOOT_RETRY_TIME
1635         int "Timeout in seconds before attempting to boot again"
1636         depends on BOOT_RETRY
1637         help
1638           Time in seconds before the U-Boot prompt will timeout and boot will
1639           be attempted again.
1640
1641 config BOOT_RETRY_MIN
1642         int "Minimum timeout in seconds for 'bootretry'"
1643         depends on BOOT_RETRY
1644         default BOOT_RETRY_TIME
1645         help
1646           The minimum time in seconds that "bootretry" can be set to.
1647
1648 config RESET_TO_RETRY
1649         bool "Reset the board to retry autoboot"
1650         depends on BOOT_RETRY
1651         help
1652           After the countdown timed out, the board will be reset to restart
1653           again.
1654
1655 endmenu
1656
1657 menu "Image support"
1658
1659 config IMAGE_PRE_LOAD
1660         bool "Image pre-load support"
1661         help
1662           Enable an image pre-load stage in the SPL.
1663           This pre-load stage allows to do some manipulation
1664           or check (for example signature check) on an image
1665           before launching it.
1666
1667 config SPL_IMAGE_PRE_LOAD
1668         bool "Image pre-load support within SPL"
1669         depends on SPL && IMAGE_PRE_LOAD
1670         help
1671           Enable an image pre-load stage in the SPL.
1672           This pre-load stage allows to do some manipulation
1673           or check (for example signature check) on an image
1674           before launching it.
1675
1676 config IMAGE_PRE_LOAD_SIG
1677         bool "Image pre-load signature support"
1678         depends on IMAGE_PRE_LOAD
1679         select FIT_SIGNATURE
1680         select RSA
1681         select RSA_VERIFY_WITH_PKEY
1682         help
1683           Enable signature check support in the pre-load stage.
1684           For this feature a very simple header is added before
1685           the image with few fields:
1686           - a magic
1687           - the image size
1688           - the signature
1689           All other information (header size, type of signature,
1690           ...) are provided in the node /image/pre-load/sig of
1691           u-boot.
1692
1693 config SPL_IMAGE_PRE_LOAD_SIG
1694         bool "Image pre-load signature support witin SPL"
1695         depends on SPL_IMAGE_PRE_LOAD && IMAGE_PRE_LOAD_SIG
1696         select SPL_FIT_SIGNATURE
1697         select SPL_RSA
1698         select SPL_RSA_VERIFY_WITH_PKEY
1699         help
1700           Enable signature check support in the pre-load stage in the SPL.
1701           For this feature a very simple header is added before
1702           the image with few fields:
1703           - a magic
1704           - the image size
1705           - the signature
1706           All other information (header size, type of signature,
1707           ...) are provided in the node /image/pre-load/sig of
1708           u-boot.
1709
1710 endmenu
1711
1712 if OF_LIBFDT
1713
1714 menu "Devicetree fixup"
1715
1716 config OF_ENV_SETUP
1717         bool "Run a command from environment to set up device tree before boot"
1718         depends on CMD_FDT
1719         help
1720           This causes U-Boot to run a command from the environment variable
1721           fdt_fixup before booting into the operating system, which can use the
1722           fdt command to modify the device tree. The device tree is then passed
1723           to the OS.
1724
1725 config OF_BOARD_SETUP
1726         bool "Set up board-specific details in device tree before boot"
1727         help
1728           This causes U-Boot to call ft_board_setup() before booting into
1729           the Operating System. This function can set up various
1730           board-specific information in the device tree for use by the OS.
1731           The device tree is then passed to the OS.
1732
1733 config OF_SYSTEM_SETUP
1734         bool "Set up system-specific details in device tree before boot"
1735         help
1736           This causes U-Boot to call ft_system_setup() before booting into
1737           the Operating System. This function can set up various
1738           system-specific information in the device tree for use by the OS.
1739           The device tree is then passed to the OS.
1740
1741 config OF_STDOUT_VIA_ALIAS
1742         bool "Update the device-tree stdout alias from U-Boot"
1743         help
1744           This uses U-Boot's serial alias from the aliases node to update
1745           the device tree passed to the OS. The "linux,stdout-path" property
1746           in the chosen node is set to point to the correct serial node.
1747           This option currently references CONFIG_CONS_INDEX, which is
1748           incorrect when used with device tree as this option does not
1749           exist / should not be used.
1750
1751 config FDT_FIXUP_PARTITIONS
1752         bool "Overwrite MTD partitions in DTS through defined in 'mtdparts'"
1753         help
1754           Allow overwriting defined partitions in the device tree blob
1755           using partition info defined in the 'mtdparts' environment
1756           variable.
1757
1758 config FDT_SIMPLEFB
1759         bool "FDT tools for simplefb support"
1760         depends on VIDEO
1761         help
1762           Enable the fdt tools to manage the simple fb nodes in device tree.
1763           These functions can be used by board to indicate to the OS
1764           the presence of the simple frame buffer with associated reserved
1765           memory
1766
1767 config ARCH_FIXUP_FDT_MEMORY
1768         bool "Enable fdt_fixup_memory_banks() call"
1769         default y
1770         help
1771           Enable FDT memory map syncup before OS boot. This feature can be
1772           used for booting OS with different memory setup where the part of
1773           the memory location should be used for different purpose.
1774
1775 endmenu
1776
1777 endif # OF_LIBFDT
1778
1779 config USE_BOOTARGS
1780         bool "Enable boot arguments"
1781         help
1782           Provide boot arguments to bootm command. Boot arguments are specified
1783           in CONFIG_BOOTARGS option. Enable this option to be able to specify
1784           CONFIG_BOOTARGS string. If this option is disabled, CONFIG_BOOTARGS
1785           will be undefined and won't take any space in U-Boot image.
1786
1787 config BOOTARGS
1788         string "Boot arguments"
1789         depends on USE_BOOTARGS && !USE_DEFAULT_ENV_FILE
1790         help
1791           This can be used to pass arguments to the bootm command. The value of
1792           CONFIG_BOOTARGS goes into the environment value "bootargs". Note that
1793           this value will also override the "chosen" node in FDT blob.
1794
1795 config BOOTARGS_SUBST
1796         bool "Support substituting strings in boot arguments"
1797         help
1798           This allows substituting string values in the boot arguments. These
1799           are applied after the commandline has been built.
1800
1801           One use for this is to insert the root-disk UUID into the command
1802           line where bootargs contains "root=${uuid}"
1803
1804                 setenv bootargs "console= root=${uuid}"
1805                 # Set the 'uuid' environment variable
1806                 part uuid mmc 2:2 uuid
1807
1808                 # Command-line substitution will put the real uuid into the
1809                 # kernel command line
1810                 bootm
1811
1812 config USE_BOOTCOMMAND
1813         bool "Enable a default value for bootcmd"
1814         depends on CMDLINE
1815         help
1816           Provide a default value for the bootcmd entry in the environment.  If
1817           autoboot is enabled this is what will be run automatically.  Enable
1818           this option to be able to specify CONFIG_BOOTCOMMAND as a string.  If
1819           this option is disabled, CONFIG_BOOTCOMMAND will be undefined and
1820           won't take any space in U-Boot image.
1821
1822 config BOOTCOMMAND
1823         string "bootcmd value"
1824         depends on USE_BOOTCOMMAND && !USE_DEFAULT_ENV_FILE
1825         default "bootflow scan -lb" if BOOTSTD_DEFAULTS && CMD_BOOTFLOW_FULL
1826         default "bootflow scan" if BOOTSTD_DEFAULTS && !CMD_BOOTFLOW_FULL
1827         default "run distro_bootcmd" if !BOOTSTD_BOOTCOMMAND && DISTRO_DEFAULTS
1828         help
1829           This is the string of commands that will be used as bootcmd and if
1830           AUTOBOOT is set, automatically run.
1831
1832 config USE_PREBOOT
1833         bool "Enable preboot"
1834         depends on CMDLINE
1835         help
1836           When this option is enabled, the existence of the environment
1837           variable "preboot" will be checked immediately before starting the
1838           CONFIG_BOOTDELAY countdown and/or running the auto-boot command resp.
1839           entering interactive mode.
1840
1841           This feature is especially useful when "preboot" is automatically
1842           generated or modified. For example, the boot code can modify the
1843           "preboot" when a user holds down a certain combination of keys.
1844
1845 config PREBOOT
1846         string "preboot default value"
1847         depends on USE_PREBOOT && !USE_DEFAULT_ENV_FILE
1848         default "usb start" if USB_KEYBOARD
1849         default ""
1850         help
1851           This is the default of "preboot" environment variable.
1852
1853 config PREBOOT_DEFINED
1854         bool
1855         default y if PREBOOT != ""
1856
1857 config DEFAULT_FDT_FILE
1858         string "Default fdt file"
1859         help
1860           This option is used to set the default fdt file to boot OS.
1861
1862 config SAVE_PREV_BL_FDT_ADDR
1863         depends on ARM
1864         bool "Saves fdt address, passed by the previous bootloader, to env var"
1865         help
1866           When u-boot is used as a chain-loaded bootloader (replacing OS kernel),
1867           enable this option to save fdt address, passed by the
1868           previous bootloader for future use.
1869           Address is saved to `prevbl_fdt_addr` environment variable.
1870
1871           If no fdt was provided by previous bootloader, no env variables
1872           will be created.
1873
1874 config SAVE_PREV_BL_INITRAMFS_START_ADDR
1875         depends on ARM
1876         bool "Saves initramfs address, passed by the previous bootloader, to env var"
1877         help
1878           When u-boot is used as a chain-loaded bootloader(replacing OS kernel),
1879           enable this option to save initramfs address, passed by the
1880           previous bootloader for future use.
1881           Address is saved to `prevbl_initrd_start_addr` environment variable.
1882
1883           If no initramfs was provided by previous bootloader, no env variables
1884           will be created.
1885
1886 menu "Configuration editor"
1887
1888 config CEDIT
1889         bool "Configuration editor"
1890         depends on EXPO
1891         help
1892           Provides a way to deal with board configuration and present it to
1893           the user for adjustment.
1894
1895           This is intended to provide both graphical and text-based user
1896           interfaces, but only graphical is support at present.
1897
1898 endmenu         # Configuration editor
1899
1900 endmenu         # Booting
This page took 0.134675 seconds and 4 git commands to generate.