mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-05 11:00:15 +00:00
2827c2f07d
Due to usage of PREBOOT in Kconfig, macro CONFIG_PREBOOT is always defined when CONFIG_USE_PREBOOT is enabled. In case CONFIG_PREBOOT is not explicitly enabled it is set to empty C string and therefore '#ifdef CONFIG_PREBOOT' guard does not work. Fix this issue by introducing a new Kconfig symbol PREBOOT_DEFINED which cause to define new C macro CONFIG_PREBOOT_DEFINED only when CONFIG_PREBOOT is really defined. Change usage of '#ifdef CONFIG_PREBOOT' by '#ifdef CONFIG_USE_PREBOOT' for code which checks if preboot code would be called and by '#ifdef CONFIG_PREBOOT_DEFINED' for defining preboot code. Signed-off-by: Pali Rohár <pali@kernel.org>
1528 lines
54 KiB
Text
1528 lines
54 KiB
Text
menu "Boot options"
|
|
|
|
menu "Boot images"
|
|
|
|
config ANDROID_BOOT_IMAGE
|
|
bool "Enable support for Android Boot Images"
|
|
default y if FASTBOOT
|
|
help
|
|
This enables support for booting images which use the Android
|
|
image format header.
|
|
|
|
config FIT
|
|
bool "Support Flattened Image Tree"
|
|
select HASH
|
|
select MD5
|
|
select SHA1
|
|
imply SHA256
|
|
help
|
|
This option allows you to boot the new uImage structure,
|
|
Flattened Image Tree. FIT is formally a FDT, which can include
|
|
images of various types (kernel, FDT blob, ramdisk, etc.)
|
|
in a single blob. To boot this new uImage structure,
|
|
pass the address of the blob to the "bootm" command.
|
|
FIT is very flexible, supporting compression, multiple images,
|
|
multiple configurations, verification through hashing and also
|
|
verified boot (secure boot using RSA).
|
|
|
|
config TIMESTAMP
|
|
bool "Show image date and time when displaying image information"
|
|
default y if CMD_DATE
|
|
help
|
|
When CONFIG_TIMESTAMP is selected, the timestamp (date and time) of
|
|
an image is printed by image commands like bootm or iminfo. This
|
|
is shown as 'Timestamp: xxx' and 'Created: xxx'. If this option is
|
|
enabled, then U-Boot requires FITs to have a timestamp. If a FIT is
|
|
loaded that does not, the message 'Wrong FIT format: no timestamp'
|
|
is shown.
|
|
|
|
if FIT
|
|
|
|
config FIT_EXTERNAL_OFFSET
|
|
hex "FIT external data offset"
|
|
default 0x0
|
|
help
|
|
This specifies a data offset in fit image.
|
|
The offset is from data payload offset to the beginning of
|
|
fit image header. When specifies a offset, specific data
|
|
could be put in the hole between data payload and fit image
|
|
header, such as CSF data on i.MX platform.
|
|
|
|
config FIT_FULL_CHECK
|
|
bool "Do a full check of the FIT before using it"
|
|
default y
|
|
help
|
|
Enable this do a full check of the FIT to make sure it is valid. This
|
|
helps to protect against carefully crafted FITs which take advantage
|
|
of bugs or omissions in the code. This includes a bad structure,
|
|
multiple root nodes and the like.
|
|
|
|
config FIT_SIGNATURE
|
|
bool "Enable signature verification of FIT uImages"
|
|
depends on DM
|
|
select HASH
|
|
imply RSA
|
|
imply RSA_VERIFY
|
|
select IMAGE_SIGN_INFO
|
|
select FIT_FULL_CHECK
|
|
help
|
|
This option enables signature verification of FIT uImages,
|
|
using a hash signed and verified using RSA. If
|
|
CONFIG_SHA_PROG_HW_ACCEL is defined, i.e support for progressive
|
|
hashing is available using hardware, then the RSA library will use
|
|
it. See doc/uImage.FIT/signature.txt for more details.
|
|
|
|
WARNING: When relying on signed FIT images with a required signature
|
|
check the legacy image format is disabled by default, so that
|
|
unsigned images cannot be loaded. If a board needs the legacy image
|
|
format support in this case, enable it using
|
|
CONFIG_LEGACY_IMAGE_FORMAT.
|
|
|
|
config FIT_SIGNATURE_MAX_SIZE
|
|
hex "Max size of signed FIT structures"
|
|
depends on FIT_SIGNATURE
|
|
default 0x10000000
|
|
help
|
|
This option sets a max size in bytes for verified FIT uImages.
|
|
A sane value of 256MB protects corrupted DTB structures from overlapping
|
|
device memory. Assure this size does not extend past expected storage
|
|
space.
|
|
|
|
config FIT_RSASSA_PSS
|
|
bool "Support rsassa-pss signature scheme of FIT image contents"
|
|
depends on FIT_SIGNATURE
|
|
help
|
|
Enable this to support the pss padding algorithm as described
|
|
in the rfc8017 (https://tools.ietf.org/html/rfc8017).
|
|
|
|
config FIT_CIPHER
|
|
bool "Enable ciphering data in a FIT uImages"
|
|
depends on DM
|
|
select AES
|
|
help
|
|
Enable the feature of data ciphering/unciphering in the tool mkimage
|
|
and in the u-boot support of the FIT image.
|
|
|
|
config FIT_VERBOSE
|
|
bool "Show verbose messages when FIT images fail"
|
|
help
|
|
Generally a system will have valid FIT images so debug messages
|
|
are a waste of code space. If you are debugging your images then
|
|
you can enable this option to get more verbose information about
|
|
failures.
|
|
|
|
config FIT_BEST_MATCH
|
|
bool "Select the best match for the kernel device tree"
|
|
help
|
|
When no configuration is explicitly selected, default to the
|
|
one whose fdt's compatibility field best matches that of
|
|
U-Boot itself. A match is considered "best" if it matches the
|
|
most specific compatibility entry of U-Boot's fdt's root node.
|
|
The order of entries in the configuration's fdt is ignored.
|
|
|
|
config FIT_IMAGE_POST_PROCESS
|
|
bool "Enable post-processing of FIT artifacts after loading by U-Boot"
|
|
depends on TI_SECURE_DEVICE || SOCFPGA_SECURE_VAB_AUTH
|
|
default y if TI_SECURE_DEVICE
|
|
help
|
|
Allows doing any sort of manipulation to blobs after they got extracted
|
|
from FIT images like stripping off headers or modifying the size of the
|
|
blob, verification, authentication, decryption etc. in a platform or
|
|
board specific way. In order to use this feature a platform or board-
|
|
specific implementation of board_fit_image_post_process() must be
|
|
provided. Also, anything done during this post-processing step would
|
|
need to be comprehended in how the images were prepared before being
|
|
injected into the FIT creation (i.e. the blobs would have been pre-
|
|
processed before being added to the FIT image).
|
|
|
|
config FIT_PRINT
|
|
bool "Support FIT printing"
|
|
default y
|
|
help
|
|
Support printing the content of the fitImage in a verbose manner.
|
|
|
|
if SPL
|
|
|
|
config SPL_FIT
|
|
bool "Support Flattened Image Tree within SPL"
|
|
depends on SPL
|
|
select SPL_HASH
|
|
select SPL_OF_LIBFDT
|
|
|
|
config SPL_FIT_PRINT
|
|
bool "Support FIT printing within SPL"
|
|
depends on SPL_FIT
|
|
help
|
|
Support printing the content of the fitImage in a verbose manner in SPL.
|
|
|
|
config SPL_FIT_FULL_CHECK
|
|
bool "Do a full check of the FIT before using it"
|
|
help
|
|
Enable this do a full check of the FIT to make sure it is valid. This
|
|
helps to protect against carefully crafted FITs which take advantage
|
|
of bugs or omissions in the code. This includes a bad structure,
|
|
multiple root nodes and the like.
|
|
|
|
|
|
config SPL_FIT_SIGNATURE
|
|
bool "Enable signature verification of FIT firmware within SPL"
|
|
depends on SPL_DM
|
|
depends on SPL_LOAD_FIT || SPL_LOAD_FIT_FULL
|
|
select FIT_SIGNATURE
|
|
select SPL_FIT
|
|
select SPL_CRYPTO
|
|
select SPL_HASH
|
|
imply SPL_RSA
|
|
imply SPL_RSA_VERIFY
|
|
select SPL_IMAGE_SIGN_INFO
|
|
select SPL_FIT_FULL_CHECK
|
|
|
|
config SPL_FIT_SIGNATURE_MAX_SIZE
|
|
hex "Max size of signed FIT structures in SPL"
|
|
depends on SPL_FIT_SIGNATURE
|
|
default 0x10000000
|
|
help
|
|
This option sets a max size in bytes for verified FIT uImages.
|
|
A sane value of 256MB protects corrupted DTB structures from overlapping
|
|
device memory. Assure this size does not extend past expected storage
|
|
space.
|
|
|
|
config SPL_FIT_RSASSA_PSS
|
|
bool "Support rsassa-pss signature scheme of FIT image contents in SPL"
|
|
depends on SPL_FIT_SIGNATURE
|
|
help
|
|
Enable this to support the pss padding algorithm as described
|
|
in the rfc8017 (https://tools.ietf.org/html/rfc8017) in SPL.
|
|
|
|
config SPL_LOAD_FIT
|
|
bool "Enable SPL loading U-Boot as a FIT (basic fitImage features)"
|
|
select SPL_FIT
|
|
help
|
|
Normally with the SPL framework a legacy image is generated as part
|
|
of the build. This contains U-Boot along with information as to
|
|
where it should be loaded. This option instead enables generation
|
|
of a FIT (Flat Image Tree) which provides more flexibility. In
|
|
particular it can handle selecting from multiple device tree
|
|
and passing the correct one to U-Boot.
|
|
|
|
This path has the following limitations:
|
|
|
|
1. "loadables" images, other than FDTs, which do not have a "load"
|
|
property will not be loaded. This limitation also applies to FPGA
|
|
images with the correct "compatible" string.
|
|
2. For FPGA images, the supported "compatible" list is in the
|
|
doc/uImage.FIT/source_file_format.txt.
|
|
3. FDTs are only loaded for images with an "os" property of "u-boot".
|
|
"linux" images are also supported with Falcon boot mode.
|
|
|
|
config SPL_LOAD_FIT_ADDRESS
|
|
hex "load address of fit image"
|
|
depends on SPL_LOAD_FIT
|
|
default 0x0
|
|
help
|
|
Specify the load address of the fit image that will be loaded
|
|
by SPL.
|
|
|
|
config SPL_LOAD_FIT_APPLY_OVERLAY
|
|
bool "Enable SPL applying DT overlays from FIT"
|
|
depends on SPL_LOAD_FIT
|
|
select OF_LIBFDT_OVERLAY
|
|
help
|
|
The device tree is loaded from the FIT image. Allow the SPL is to
|
|
also load device-tree overlays from the FIT image an apply them
|
|
over the device tree.
|
|
|
|
config SPL_LOAD_FIT_APPLY_OVERLAY_BUF_SZ
|
|
depends on SPL_LOAD_FIT_APPLY_OVERLAY
|
|
default 0x10000
|
|
hex "size of temporary buffer used to load the overlays"
|
|
help
|
|
The size of the area where the overlays will be loaded and
|
|
uncompress. Must be at least as large as biggest overlay
|
|
(uncompressed)
|
|
|
|
config SPL_LOAD_FIT_FULL
|
|
bool "Enable SPL loading U-Boot as a FIT (full fitImage features)"
|
|
select SPL_FIT
|
|
help
|
|
Normally with the SPL framework a legacy image is generated as part
|
|
of the build. This contains U-Boot along with information as to
|
|
where it should be loaded. This option instead enables generation
|
|
of a FIT (Flat Image Tree) which provides more flexibility. In
|
|
particular it can handle selecting from multiple device tree
|
|
and passing the correct one to U-Boot.
|
|
|
|
config SPL_FIT_IMAGE_POST_PROCESS
|
|
bool "Enable post-processing of FIT artifacts after loading by the SPL"
|
|
depends on SPL_LOAD_FIT
|
|
default y if TI_SECURE_DEVICE
|
|
help
|
|
Allows doing any sort of manipulation to blobs after they got extracted
|
|
from the U-Boot FIT image like stripping off headers or modifying the
|
|
size of the blob, verification, authentication, decryption etc. in a
|
|
platform or board specific way. In order to use this feature a platform
|
|
or board-specific implementation of board_fit_image_post_process() must
|
|
be provided. Also, anything done during this post-processing step would
|
|
need to be comprehended in how the images were prepared before being
|
|
injected into the FIT creation (i.e. the blobs would have been pre-
|
|
processed before being added to the FIT image).
|
|
|
|
config SPL_FIT_SOURCE
|
|
string ".its source file for U-Boot FIT image"
|
|
depends on SPL_FIT
|
|
help
|
|
Specifies a (platform specific) FIT source file to generate the
|
|
U-Boot FIT image. This could specify further image to load and/or
|
|
execute.
|
|
|
|
config USE_SPL_FIT_GENERATOR
|
|
bool "Use a script to generate the .its script"
|
|
default y if SPL_FIT && (!ARCH_SUNXI && !RISCV)
|
|
|
|
config SPL_FIT_GENERATOR
|
|
string ".its file generator script for U-Boot FIT image"
|
|
depends on USE_SPL_FIT_GENERATOR
|
|
default "arch/arm/mach-rockchip/make_fit_atf.py" if SPL_LOAD_FIT && ARCH_ROCKCHIP
|
|
default "arch/arm/mach-zynqmp/mkimage_fit_atf.sh" if SPL_LOAD_FIT && ARCH_ZYNQMP
|
|
help
|
|
Specifies a (platform specific) script file to generate the FIT
|
|
source file used to build the U-Boot FIT image file. This gets
|
|
passed a list of supported device tree file stub names to
|
|
include in the generated image.
|
|
|
|
endif # SPL
|
|
|
|
if VPL
|
|
|
|
config VPL_FIT
|
|
bool "Support Flattened Image Tree within VPL"
|
|
depends on VPL
|
|
default y
|
|
select VPL_HASH
|
|
select VPL_OF_LIBFDT
|
|
|
|
config VPL_FIT_PRINT
|
|
bool "Support FIT printing within VPL"
|
|
depends on VPL_FIT
|
|
default y
|
|
help
|
|
Support printing the content of the fitImage in a verbose manner in VPL.
|
|
|
|
config VPL_FIT_FULL_CHECK
|
|
bool "Do a full check of the FIT before using it"
|
|
default y
|
|
help
|
|
Enable this do a full check of the FIT to make sure it is valid. This
|
|
helps to protect against carefully crafted FITs which take advantage
|
|
of bugs or omissions in the code. This includes a bad structure,
|
|
multiple root nodes and the like.
|
|
|
|
config VPL_FIT_SIGNATURE
|
|
bool "Enable signature verification of FIT firmware within VPL"
|
|
depends on VPL_DM
|
|
default y
|
|
select FIT_SIGNATURE
|
|
select VPL_FIT
|
|
select VPL_CRYPTO
|
|
select VPL_HASH
|
|
imply VPL_RSA
|
|
imply VPL_RSA_VERIFY
|
|
select VPL_IMAGE_SIGN_INFO
|
|
select VPL_FIT_FULL_CHECK
|
|
|
|
config VPL_FIT_SIGNATURE_MAX_SIZE
|
|
hex "Max size of signed FIT structures in VPL"
|
|
depends on VPL_FIT_SIGNATURE
|
|
default 0x10000000
|
|
help
|
|
This option sets a max size in bytes for verified FIT uImages.
|
|
A sane value of 256MB protects corrupted DTB structures from overlapping
|
|
device memory. Assure this size does not extend past expected storage
|
|
space.
|
|
|
|
endif # VPL
|
|
|
|
endif # FIT
|
|
|
|
config PXE_UTILS
|
|
bool
|
|
select MENU
|
|
help
|
|
Utilities for parsing PXE file formats.
|
|
|
|
config BOOTSTD
|
|
bool "Standard boot support"
|
|
default y
|
|
depends on DM && OF_CONTROL && BLK
|
|
help
|
|
U-Boot supports a standard way of locating something to boot,
|
|
typically an Operating System such as Linux, provided by a distro such
|
|
as Arch Linux or Debian. Enable this to support iterating through
|
|
available bootdevs and using bootmeths to find bootflows suitable for
|
|
booting.
|
|
|
|
Standard boot is not a standard way of booting, just a framework
|
|
within U-Boot for supporting all the different ways that exist.
|
|
|
|
Terminology:
|
|
|
|
- bootdev - a device which can hold a distro (e.g. MMC)
|
|
- bootmeth - a method to scan a bootdev to find bootflows (owned by
|
|
U-Boot)
|
|
- bootflow - a description of how to boot (owned by the distro)
|
|
|
|
config BOOTSTD_FULL
|
|
bool "Enhanced features for standard boot"
|
|
default y if SANDBOX
|
|
help
|
|
This enables various useful features for standard boot, which are not
|
|
essential for operation:
|
|
|
|
- bootdev, bootmeth commands
|
|
- extra features in the bootflow command
|
|
- support for selecting the ordering of bootmeths ("bootmeth order")
|
|
- support for selecting the ordering of bootdevs using the devicetree
|
|
as well as the "boot_targets" environment variable
|
|
|
|
config SPL_BOOTSTD
|
|
bool "Standard boot support in VPL"
|
|
depends on SPL && SPL_DM && SPL_OF_CONTROL && SPL_BLK
|
|
default y if VPL
|
|
help
|
|
This enables standard boot in SPL. This is neeeded so that VBE
|
|
(Verified Boot for Embedded) can be used, since it depends on standard
|
|
boot. It is enabled by default since the main purpose of VPL is to
|
|
handle the firmware part of VBE.
|
|
|
|
config VPL_BOOTSTD
|
|
bool "Standard boot support in VPL"
|
|
depends on VPL && VPL_DM && VPL_OF_CONTROL && VPL_BLK
|
|
default y
|
|
help
|
|
This enables standard boot in SPL. This is neeeded so that VBE
|
|
(Verified Boot for Embedded) can be used, since it depends on standard
|
|
boot. It is enabled by default since the main purpose of VPL is to
|
|
handle the firmware part of VBE.
|
|
|
|
if BOOTSTD
|
|
|
|
config BOOTSTD_BOOTCOMMAND
|
|
bool "Use bootstd to boot"
|
|
default y if !DISTRO_DEFAULTS
|
|
help
|
|
Enable this to select a default boot-command suitable for booting
|
|
with standard boot. This can be overridden by the board if needed,
|
|
but the default command should be enough for most boards which use
|
|
standard boot.
|
|
|
|
For now this is only selected if distro boot is NOT used, since
|
|
standard boot does not support all of the features of distro boot
|
|
yet.
|
|
|
|
config BOOTMETH_GLOBAL
|
|
bool
|
|
help
|
|
Add support for global bootmeths. This feature is used by VBE and
|
|
EFI bootmgr, since they take full control over which bootdevs are
|
|
selected to boot.
|
|
|
|
config BOOTMETH_DISTRO
|
|
bool "Bootdev support for distro boot"
|
|
select PXE_UTILS
|
|
default y
|
|
help
|
|
Enables support for distro boot using bootdevs. This makes the
|
|
bootdevs look for a 'extlinux/extlinux.conf' on each filesystem
|
|
they scan.
|
|
|
|
This provides a way to try out standard boot on an existing boot flow.
|
|
|
|
config BOOTMETH_DISTRO_PXE
|
|
bool "Bootdev support for distro boot over network"
|
|
depends on CMD_PXE && CMD_NET && DM_ETH
|
|
default y
|
|
help
|
|
Enables support for distro boot using bootdevs. This makes the
|
|
bootdevs look for a 'extlinux/extlinux.conf' on the tftp server.
|
|
|
|
This provides a way to try out standard boot on an existing boot flow.
|
|
|
|
config BOOTMETH_EFILOADER
|
|
bool "Bootdev support for EFI boot"
|
|
depends on CMD_BOOTEFI
|
|
default y
|
|
help
|
|
Enables support for EFI boot using bootdevs. This makes the
|
|
bootdevs look for a 'boot<arch>.efi' on each filesystem
|
|
they scan. The resulting file is booted after enabling U-Boot's
|
|
EFI loader support.
|
|
|
|
The <arch> depends on the architecture of the board:
|
|
|
|
aa64 - aarch64 (ARM 64-bit)
|
|
arm - ARM 32-bit
|
|
ia32 - x86 32-bit
|
|
x64 - x86 64-bit
|
|
riscv32 - RISC-V 32-bit
|
|
riscv64 - RISC-V 64-bit
|
|
|
|
This provides a way to try out standard boot on an existing boot flow.
|
|
|
|
config BOOTMETH_VBE
|
|
bool "Bootdev support for Verified Boot for Embedded"
|
|
depends on FIT
|
|
default y
|
|
select BOOTMETH_GLOBAL
|
|
help
|
|
Enables support for VBE boot. This is a standard boot method which
|
|
supports selection of various firmware components, seleciton of an OS to
|
|
boot as well as updating these using fwupd.
|
|
|
|
config SPL_BOOTMETH_VBE
|
|
bool "Bootdev support for Verified Boot for Embedded (SPL)"
|
|
depends on SPL && FIT
|
|
default y if VPL
|
|
help
|
|
Enables support for VBE boot. This is a standard boot method which
|
|
supports selection of various firmware components, seleciton of an OS to
|
|
boot as well as updating these using fwupd.
|
|
|
|
config VPL_BOOTMETH_VBE
|
|
bool "Bootdev support for Verified Boot for Embedded (VPL)"
|
|
depends on VPL && FIT
|
|
default y
|
|
help
|
|
Enables support for VBE boot. This is a standard boot method which
|
|
supports selection of various firmware components, seleciton of an OS to
|
|
boot as well as updating these using fwupd.
|
|
|
|
if BOOTMETH_VBE
|
|
|
|
config BOOTMETH_VBE_SIMPLE
|
|
bool "Bootdev support for VBE 'simple' method"
|
|
default y
|
|
help
|
|
Enables support for VBE 'simple' boot. This allows updating a single
|
|
firmware image in boot media such as MMC. It does not support any sort
|
|
of rollback, recovery or A/B boot.
|
|
|
|
config BOOTMETH_VBE_SIMPLE_OS
|
|
bool "Bootdev support for VBE 'simple' method OS phase"
|
|
default y
|
|
help
|
|
Enables support for the OS parts of VBE 'simple' boot. This includes
|
|
fixing up the device tree with the required VBE information, ready
|
|
for booting into the OS. This option is only enabled for U-Boot
|
|
proper, since it is the phase where device tree fixups happen.
|
|
|
|
config SPL_BOOTMETH_VBE_SIMPLE
|
|
bool "Bootdev support for VBE 'simple' method (SPL)"
|
|
depends on SPL
|
|
default y if VPL
|
|
help
|
|
Enables support for VBE 'simple' boot. This allows updating a single
|
|
firmware image in boot media such as MMC. It does not support any sort
|
|
of rollback, recovery or A/B boot.
|
|
|
|
config VPL_BOOTMETH_VBE_SIMPLE
|
|
bool "Bootdev support for VBE 'simple' method (VPL)"
|
|
depends on VPL
|
|
default y
|
|
help
|
|
Enables support for VBE 'simple' boot. This allows updating a single
|
|
firmware image in boot media such as MMC. It does not support any sort
|
|
of rollback, recovery or A/B boot.
|
|
|
|
config SPL_BOOTMETH_VBE_SIMPLE_FW
|
|
bool "Bootdev support for VBE 'simple' method firmware phase (SPL)"
|
|
depends on VPL
|
|
default y
|
|
help
|
|
Enables support for the firmware parts of VBE 'simple' boot. This
|
|
includes an SPL loader which locates the correct U-Boot to boot into.
|
|
This option should really only be enabled for VPL, since it is the
|
|
phase where the SPL + U-Boot decision should be made. But for now,
|
|
SPL does its own FIT-configuration selection.
|
|
|
|
config VPL_BOOTMETH_VBE_SIMPLE_FW
|
|
bool "Bootdev support for VBE 'simple' method firmware phase (VPL)"
|
|
depends on VPL
|
|
default y
|
|
help
|
|
Enables support for the firmware parts of VBE 'simple' boot. This
|
|
includes an SPL loader which locates the correct SPL to boot into.
|
|
This option enabled for VPL, since it is the phase where the SPL
|
|
decision is made.
|
|
|
|
endif # BOOTMETH_VBE
|
|
|
|
config BOOTMETH_SANDBOX
|
|
def_bool y
|
|
depends on SANDBOX
|
|
help
|
|
This is a sandbox bootmeth driver used for testing. It always returns
|
|
-ENOTSUPP when attempting to boot.
|
|
|
|
config BOOTMETH_SCRIPT
|
|
bool "Bootdev support for U-Boot scripts"
|
|
default y if BOOTSTD_FULL
|
|
help
|
|
Enables support for booting a distro via a U-Boot script. This makes
|
|
the bootdevs look for a 'boot/boot.scr' file which can be used to
|
|
boot the distro.
|
|
|
|
This provides a way to try out standard boot on an existing boot flow.
|
|
It is not enabled by default to save space.
|
|
|
|
endif
|
|
|
|
config LEGACY_IMAGE_FORMAT
|
|
bool "Enable support for the legacy image format"
|
|
default y if !FIT_SIGNATURE && !TI_SECURE_DEVICE
|
|
help
|
|
This option enables the legacy image format. It is enabled by
|
|
default for backward compatibility, unless FIT_SIGNATURE is
|
|
set where it is disabled so that unsigned images cannot be
|
|
loaded. If a board needs the legacy image format support in this
|
|
case, enable it here.
|
|
|
|
config SUPPORT_RAW_INITRD
|
|
bool "Enable raw initrd images"
|
|
help
|
|
Note, defining the SUPPORT_RAW_INITRD allows user to supply
|
|
kernel with raw initrd images. The syntax is slightly different, the
|
|
address of the initrd must be augmented by it's size, in the following
|
|
format: "<initrd address>:<initrd size>".
|
|
|
|
config OF_BOARD_SETUP
|
|
bool "Set up board-specific details in device tree before boot"
|
|
depends on OF_LIBFDT
|
|
help
|
|
This causes U-Boot to call ft_board_setup() before booting into
|
|
the Operating System. This function can set up various
|
|
board-specific information in the device tree for use by the OS.
|
|
The device tree is then passed to the OS.
|
|
|
|
config OF_SYSTEM_SETUP
|
|
bool "Set up system-specific details in device tree before boot"
|
|
depends on OF_LIBFDT
|
|
help
|
|
This causes U-Boot to call ft_system_setup() before booting into
|
|
the Operating System. This function can set up various
|
|
system-specific information in the device tree for use by the OS.
|
|
The device tree is then passed to the OS.
|
|
|
|
config OF_STDOUT_VIA_ALIAS
|
|
bool "Update the device-tree stdout alias from U-Boot"
|
|
depends on OF_LIBFDT
|
|
help
|
|
This uses U-Boot's serial alias from the aliases node to update
|
|
the device tree passed to the OS. The "linux,stdout-path" property
|
|
in the chosen node is set to point to the correct serial node.
|
|
This option currently references CONFIG_CONS_INDEX, which is
|
|
incorrect when used with device tree as this option does not
|
|
exist / should not be used.
|
|
|
|
config HAVE_TEXT_BASE
|
|
bool
|
|
depends on !NIOS2 && !XTENSA
|
|
depends on !EFI_APP
|
|
default y
|
|
|
|
config TEXT_BASE
|
|
depends on HAVE_TEXT_BASE
|
|
default 0x0 if POSITION_INDEPENDENT
|
|
default 0x80800000 if ARCH_OMAP2PLUS || ARCH_K3
|
|
default 0x81700000 if MACH_SUNIV
|
|
default 0x2a000000 if MACH_SUN9I
|
|
default 0x4a000000 if SUNXI_MINIMUM_DRAM_MB >= 256
|
|
default 0x42e00000 if SUNXI_MINIMUM_DRAM_MB >= 64
|
|
hex "Text Base"
|
|
help
|
|
The address in memory that U-Boot will be running from, initially.
|
|
|
|
config HAVE_SYS_MONITOR_BASE
|
|
bool
|
|
depends on ARC || MIPS || M68K || NIOS2 || PPC || XTENSA || X86 \
|
|
|| ENV_IS_IN_FLASH || MTD_NOR_FLASH
|
|
depends on !EFI_APP
|
|
default y
|
|
|
|
config SYS_MONITOR_BASE
|
|
depends on HAVE_SYS_MONITOR_BASE
|
|
hex "Physical start address of boot monitor code"
|
|
default TEXT_BASE
|
|
help
|
|
The physical start address of boot monitor code (which is the same as
|
|
CONFIG_TEXT_BASE when linking) and the same as CONFIG_SYS_FLASH_BASE
|
|
when booting from flash.
|
|
|
|
config SPL_SYS_MONITOR_BASE
|
|
depends on MPC85xx && SPL && HAVE_SYS_MONITOR_BASE
|
|
hex "Physical start address of SPL monitor code"
|
|
default SPL_TEXT_BASE
|
|
|
|
config TPL_SYS_MONITOR_BASE
|
|
depends on MPC85xx && TPL && HAVE_SYS_MONITOR_BASE
|
|
hex "Physical start address of TPL monitor code"
|
|
|
|
config DYNAMIC_SYS_CLK_FREQ
|
|
bool "Determine CPU clock frequency at run-time"
|
|
help
|
|
Implement a get_board_sys_clk function that will determine the CPU
|
|
clock frequency at run time, rather than define it statically.
|
|
|
|
config SYS_CLK_FREQ
|
|
depends on !DYNAMIC_SYS_CLK_FREQ
|
|
int "CPU clock frequency"
|
|
default 125000000 if ARCH_LS1012A
|
|
default 100000000 if ARCH_P2020 || ARCH_T1024 || ARCH_T1042 || \
|
|
ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3
|
|
default 66666666 if ARCH_P1010 || ARCH_P1020 || ARCH_T4240
|
|
default 66660000 if ARCH_T2080
|
|
default 33333333 if RCAR_GEN3
|
|
default 24000000 if ARCH_EXYNOS
|
|
default 20000000 if RCAR_GEN2
|
|
default 0
|
|
help
|
|
A static value for the CPU frequency. Note that if not required
|
|
for a given SoC, this can be left at 0.
|
|
|
|
config ARCH_FIXUP_FDT_MEMORY
|
|
bool "Enable arch_fixup_memory_banks() call"
|
|
default y
|
|
help
|
|
Enable FDT memory map syncup before OS boot. This feature can be
|
|
used for booting OS with different memory setup where the part of
|
|
the memory location should be used for different purpose.
|
|
|
|
config CHROMEOS
|
|
bool "Support booting Chrome OS"
|
|
help
|
|
Chrome OS requires U-Boot to set up a table indicating the boot mode
|
|
(e.g. Developer mode) and a few other things. Enable this if you are
|
|
booting on a Chromebook to avoid getting an error about an invalid
|
|
firmware ID.
|
|
|
|
config CHROMEOS_VBOOT
|
|
bool "Support Chrome OS verified boot"
|
|
help
|
|
This is intended to enable the full Chrome OS verified boot support
|
|
in U-Boot. It is not actually implemented in the U-Boot source code
|
|
at present, so this option is always set to 'n'. It allows
|
|
distinguishing between booting Chrome OS in a basic way (developer
|
|
mode) and a full boot.
|
|
|
|
config SYS_RAMBOOT
|
|
bool
|
|
|
|
config RAMBOOT_PBL
|
|
bool "Freescale PBL(pre-boot loader) image format support"
|
|
select SYS_RAMBOOT if PPC
|
|
help
|
|
Some SoCs use PBL to load RCW and/or pre-initialization instructions.
|
|
For more details refer to doc/README.pblimage
|
|
|
|
choice
|
|
prompt "Freescale PBL load location"
|
|
depends on RAMBOOT_PBL || ((TARGET_P1010RDB_PA || TARGET_P1010RDB_PB \
|
|
|| TARGET_P1020RDB_PC || TARGET_P1020RDB_PD || TARGET_P2020RDB) \
|
|
&& !CMD_NAND)
|
|
|
|
config SDCARD
|
|
bool "Freescale PBL is found on SD card"
|
|
|
|
config SPIFLASH
|
|
bool "Freescale PBL is found on SPI flash"
|
|
|
|
endchoice
|
|
|
|
config FSL_FIXED_MMC_LOCATION
|
|
bool "PBL MMC is at a fixed location"
|
|
depends on SDCARD && !RAMBOOT_PBL
|
|
|
|
config ESDHC_HC_BLK_ADDR
|
|
def_bool y
|
|
depends on FSL_FIXED_MMC_LOCATION && (ARCH_BSC9131 || ARCH_BSC9132 || ARCH_P1010)
|
|
help
|
|
In High Capacity SD Cards (> 2 GBytes), the 32-bit source address and
|
|
code length of these soc specify the memory address in block address
|
|
format. Block length is fixed to 512 bytes as per the SD High
|
|
Capacity specification.
|
|
|
|
config SYS_FSL_PBL_PBI
|
|
string "PBI(pre-boot instructions) commands for the PBL image"
|
|
depends on RAMBOOT_PBL
|
|
help
|
|
PBI commands can be used to configure SoC before it starts the execution.
|
|
Please refer doc/README.pblimage for more details.
|
|
|
|
config SYS_FSL_PBL_RCW
|
|
string "Aadditional RCW (Power on reset configuration) for the PBL image"
|
|
depends on RAMBOOT_PBL
|
|
help
|
|
Enables addition of RCW (Power on reset configuration) in built image.
|
|
Please refer doc/README.pblimage for more details.
|
|
|
|
config SYS_BOOT_RAMDISK_HIGH
|
|
depends on CMD_BOOTM || CMD_BOOTI || CMD_BOOTZ
|
|
depends on !(NIOS2 || SANDBOX || SH || XTENSA)
|
|
def_bool y
|
|
help
|
|
Enable initrd_high functionality. If defined then the initrd_high
|
|
feature is enabled and the boot* ramdisk subcommand is enabled.
|
|
|
|
endmenu # Boot images
|
|
|
|
menu "Boot timing"
|
|
|
|
config BOOTSTAGE
|
|
bool "Boot timing and reporting"
|
|
help
|
|
Enable recording of boot time while booting. To use it, insert
|
|
calls to bootstage_mark() with a suitable BOOTSTAGE_ID from
|
|
bootstage.h. Only a single entry is recorded for each ID. You can
|
|
give the entry a name with bootstage_mark_name(). You can also
|
|
record elapsed time in a particular stage using bootstage_start()
|
|
before starting and bootstage_accum() when finished. Bootstage will
|
|
add up all the accumulated time and report it.
|
|
|
|
Normally, IDs are defined in bootstage.h but a small number of
|
|
additional 'user' IDs can be used by passing BOOTSTAGE_ID_ALLOC
|
|
as the ID.
|
|
|
|
Calls to show_boot_progress() will also result in log entries but
|
|
these will not have names.
|
|
|
|
config SPL_BOOTSTAGE
|
|
bool "Boot timing and reported in SPL"
|
|
depends on BOOTSTAGE && SPL
|
|
help
|
|
Enable recording of boot time in SPL. To make this visible to U-Boot
|
|
proper, enable BOOTSTAGE_STASH as well. This will stash the timing
|
|
information when SPL finishes and load it when U-Boot proper starts
|
|
up.
|
|
|
|
config TPL_BOOTSTAGE
|
|
bool "Boot timing and reported in TPL"
|
|
depends on BOOTSTAGE && TPL
|
|
help
|
|
Enable recording of boot time in SPL. To make this visible to U-Boot
|
|
proper, enable BOOTSTAGE_STASH as well. This will stash the timing
|
|
information when TPL finishes and load it when U-Boot proper starts
|
|
up.
|
|
|
|
config BOOTSTAGE_REPORT
|
|
bool "Display a detailed boot timing report before booting the OS"
|
|
depends on BOOTSTAGE
|
|
help
|
|
Enable output of a boot time report just before the OS is booted.
|
|
This shows how long it took U-Boot to go through each stage of the
|
|
boot process. The report looks something like this:
|
|
|
|
Timer summary in microseconds:
|
|
Mark Elapsed Stage
|
|
0 0 reset
|
|
3,575,678 3,575,678 board_init_f start
|
|
3,575,695 17 arch_cpu_init A9
|
|
3,575,777 82 arch_cpu_init done
|
|
3,659,598 83,821 board_init_r start
|
|
3,910,375 250,777 main_loop
|
|
29,916,167 26,005,792 bootm_start
|
|
30,361,327 445,160 start_kernel
|
|
|
|
config BOOTSTAGE_RECORD_COUNT
|
|
int "Number of boot stage records to store"
|
|
depends on BOOTSTAGE
|
|
default 30
|
|
help
|
|
This is the size of the bootstage record list and is the maximum
|
|
number of bootstage records that can be recorded.
|
|
|
|
config SPL_BOOTSTAGE_RECORD_COUNT
|
|
int "Number of boot stage records to store for SPL"
|
|
depends on SPL_BOOTSTAGE
|
|
default 5
|
|
help
|
|
This is the size of the bootstage record list and is the maximum
|
|
number of bootstage records that can be recorded.
|
|
|
|
config TPL_BOOTSTAGE_RECORD_COUNT
|
|
int "Number of boot stage records to store for TPL"
|
|
depends on TPL_BOOTSTAGE
|
|
default 5
|
|
help
|
|
This is the size of the bootstage record list and is the maximum
|
|
number of bootstage records that can be recorded.
|
|
|
|
config BOOTSTAGE_FDT
|
|
bool "Store boot timing information in the OS device tree"
|
|
depends on BOOTSTAGE
|
|
help
|
|
Stash the bootstage information in the FDT. A root 'bootstage'
|
|
node is created with each bootstage id as a child. Each child
|
|
has a 'name' property and either 'mark' containing the
|
|
mark time in microseconds, or 'accum' containing the
|
|
accumulated time for that bootstage id in microseconds.
|
|
For example:
|
|
|
|
bootstage {
|
|
154 {
|
|
name = "board_init_f";
|
|
mark = <3575678>;
|
|
};
|
|
170 {
|
|
name = "lcd";
|
|
accum = <33482>;
|
|
};
|
|
};
|
|
|
|
Code in the Linux kernel can find this in /proc/devicetree.
|
|
|
|
config BOOTSTAGE_STASH
|
|
bool "Stash the boot timing information in memory before booting OS"
|
|
depends on BOOTSTAGE
|
|
help
|
|
Some OSes do not support device tree. Bootstage can instead write
|
|
the boot timing information in a binary format at a given address.
|
|
This happens through a call to bootstage_stash(), typically in
|
|
the CPU's cleanup_before_linux() function. You can use the
|
|
'bootstage stash' and 'bootstage unstash' commands to do this on
|
|
the command line.
|
|
|
|
config BOOTSTAGE_STASH_ADDR
|
|
hex "Address to stash boot timing information"
|
|
default 0
|
|
help
|
|
Provide an address which will not be overwritten by the OS when it
|
|
starts, so that it can read this information when ready.
|
|
|
|
config BOOTSTAGE_STASH_SIZE
|
|
hex "Size of boot timing stash region"
|
|
default 0x1000
|
|
help
|
|
This should be large enough to hold the bootstage stash. A value of
|
|
4096 (4KiB) is normally plenty.
|
|
|
|
config SHOW_BOOT_PROGRESS
|
|
bool "Show boot progress in a board-specific manner"
|
|
help
|
|
Defining this option allows to add some board-specific code (calling
|
|
a user-provided function show_boot_progress(int) that enables you to
|
|
show the system's boot progress on some display (for example, some
|
|
LEDs) on your board. At the moment, the following checkpoints are
|
|
implemented:
|
|
|
|
Legacy uImage format:
|
|
|
|
Arg Where When
|
|
1 common/cmd_bootm.c before attempting to boot an image
|
|
-1 common/cmd_bootm.c Image header has bad magic number
|
|
2 common/cmd_bootm.c Image header has correct magic number
|
|
-2 common/cmd_bootm.c Image header has bad checksum
|
|
3 common/cmd_bootm.c Image header has correct checksum
|
|
-3 common/cmd_bootm.c Image data has bad checksum
|
|
4 common/cmd_bootm.c Image data has correct checksum
|
|
-4 common/cmd_bootm.c Image is for unsupported architecture
|
|
5 common/cmd_bootm.c Architecture check OK
|
|
-5 common/cmd_bootm.c Wrong Image Type (not kernel, multi)
|
|
6 common/cmd_bootm.c Image Type check OK
|
|
-6 common/cmd_bootm.c gunzip uncompression error
|
|
-7 common/cmd_bootm.c Unimplemented compression type
|
|
7 common/cmd_bootm.c Uncompression OK
|
|
8 common/cmd_bootm.c No uncompress/copy overwrite error
|
|
-9 common/cmd_bootm.c Unsupported OS (not Linux, BSD, VxWorks, QNX)
|
|
|
|
9 common/image.c Start initial ramdisk verification
|
|
-10 common/image.c Ramdisk header has bad magic number
|
|
-11 common/image.c Ramdisk header has bad checksum
|
|
10 common/image.c Ramdisk header is OK
|
|
-12 common/image.c Ramdisk data has bad checksum
|
|
11 common/image.c Ramdisk data has correct checksum
|
|
12 common/image.c Ramdisk verification complete, start loading
|
|
-13 common/image.c Wrong Image Type (not PPC Linux ramdisk)
|
|
13 common/image.c Start multifile image verification
|
|
14 common/image.c No initial ramdisk, no multifile, continue.
|
|
|
|
15 arch/<arch>/lib/bootm.c All preparation done, transferring control to OS
|
|
|
|
-30 arch/powerpc/lib/board.c Fatal error, hang the system
|
|
-31 post/post.c POST test failed, detected by post_output_backlog()
|
|
-32 post/post.c POST test failed, detected by post_run_single()
|
|
|
|
34 common/cmd_doc.c before loading a Image from a DOC device
|
|
-35 common/cmd_doc.c Bad usage of "doc" command
|
|
35 common/cmd_doc.c correct usage of "doc" command
|
|
-36 common/cmd_doc.c No boot device
|
|
36 common/cmd_doc.c correct boot device
|
|
-37 common/cmd_doc.c Unknown Chip ID on boot device
|
|
37 common/cmd_doc.c correct chip ID found, device available
|
|
-38 common/cmd_doc.c Read Error on boot device
|
|
38 common/cmd_doc.c reading Image header from DOC device OK
|
|
-39 common/cmd_doc.c Image header has bad magic number
|
|
39 common/cmd_doc.c Image header has correct magic number
|
|
-40 common/cmd_doc.c Error reading Image from DOC device
|
|
40 common/cmd_doc.c Image header has correct magic number
|
|
41 common/cmd_ide.c before loading a Image from a IDE device
|
|
-42 common/cmd_ide.c Bad usage of "ide" command
|
|
42 common/cmd_ide.c correct usage of "ide" command
|
|
-43 common/cmd_ide.c No boot device
|
|
43 common/cmd_ide.c boot device found
|
|
-44 common/cmd_ide.c Device not available
|
|
44 common/cmd_ide.c Device available
|
|
-45 common/cmd_ide.c wrong partition selected
|
|
45 common/cmd_ide.c partition selected
|
|
-46 common/cmd_ide.c Unknown partition table
|
|
46 common/cmd_ide.c valid partition table found
|
|
-47 common/cmd_ide.c Invalid partition type
|
|
47 common/cmd_ide.c correct partition type
|
|
-48 common/cmd_ide.c Error reading Image Header on boot device
|
|
48 common/cmd_ide.c reading Image Header from IDE device OK
|
|
-49 common/cmd_ide.c Image header has bad magic number
|
|
49 common/cmd_ide.c Image header has correct magic number
|
|
-50 common/cmd_ide.c Image header has bad checksum
|
|
50 common/cmd_ide.c Image header has correct checksum
|
|
-51 common/cmd_ide.c Error reading Image from IDE device
|
|
51 common/cmd_ide.c reading Image from IDE device OK
|
|
52 common/cmd_nand.c before loading a Image from a NAND device
|
|
-53 common/cmd_nand.c Bad usage of "nand" command
|
|
53 common/cmd_nand.c correct usage of "nand" command
|
|
-54 common/cmd_nand.c No boot device
|
|
54 common/cmd_nand.c boot device found
|
|
-55 common/cmd_nand.c Unknown Chip ID on boot device
|
|
55 common/cmd_nand.c correct chip ID found, device available
|
|
-56 common/cmd_nand.c Error reading Image Header on boot device
|
|
56 common/cmd_nand.c reading Image Header from NAND device OK
|
|
-57 common/cmd_nand.c Image header has bad magic number
|
|
57 common/cmd_nand.c Image header has correct magic number
|
|
-58 common/cmd_nand.c Error reading Image from NAND device
|
|
58 common/cmd_nand.c reading Image from NAND device OK
|
|
|
|
-60 common/env_common.c Environment has a bad CRC, using default
|
|
|
|
64 net/eth.c starting with Ethernet configuration.
|
|
-64 net/eth.c no Ethernet found.
|
|
65 net/eth.c Ethernet found.
|
|
|
|
-80 common/cmd_net.c usage wrong
|
|
80 common/cmd_net.c before calling net_loop()
|
|
-81 common/cmd_net.c some error in net_loop() occurred
|
|
81 common/cmd_net.c net_loop() back without error
|
|
-82 common/cmd_net.c size == 0 (File with size 0 loaded)
|
|
82 common/cmd_net.c trying automatic boot
|
|
83 common/cmd_net.c running "source" command
|
|
-83 common/cmd_net.c some error in automatic boot or "source" command
|
|
84 common/cmd_net.c end without errors
|
|
|
|
FIT uImage format:
|
|
|
|
Arg Where When
|
|
100 common/cmd_bootm.c Kernel FIT Image has correct format
|
|
-100 common/cmd_bootm.c Kernel FIT Image has incorrect format
|
|
101 common/cmd_bootm.c No Kernel subimage unit name, using configuration
|
|
-101 common/cmd_bootm.c Can't get configuration for kernel subimage
|
|
102 common/cmd_bootm.c Kernel unit name specified
|
|
-103 common/cmd_bootm.c Can't get kernel subimage node offset
|
|
103 common/cmd_bootm.c Found configuration node
|
|
104 common/cmd_bootm.c Got kernel subimage node offset
|
|
-104 common/cmd_bootm.c Kernel subimage hash verification failed
|
|
105 common/cmd_bootm.c Kernel subimage hash verification OK
|
|
-105 common/cmd_bootm.c Kernel subimage is for unsupported architecture
|
|
106 common/cmd_bootm.c Architecture check OK
|
|
-106 common/cmd_bootm.c Kernel subimage has wrong type
|
|
107 common/cmd_bootm.c Kernel subimage type OK
|
|
-107 common/cmd_bootm.c Can't get kernel subimage data/size
|
|
108 common/cmd_bootm.c Got kernel subimage data/size
|
|
-108 common/cmd_bootm.c Wrong image type (not legacy, FIT)
|
|
-109 common/cmd_bootm.c Can't get kernel subimage type
|
|
-110 common/cmd_bootm.c Can't get kernel subimage comp
|
|
-111 common/cmd_bootm.c Can't get kernel subimage os
|
|
-112 common/cmd_bootm.c Can't get kernel subimage load address
|
|
-113 common/cmd_bootm.c Image uncompress/copy overwrite error
|
|
|
|
120 common/image.c Start initial ramdisk verification
|
|
-120 common/image.c Ramdisk FIT image has incorrect format
|
|
121 common/image.c Ramdisk FIT image has correct format
|
|
122 common/image.c No ramdisk subimage unit name, using configuration
|
|
-122 common/image.c Can't get configuration for ramdisk subimage
|
|
123 common/image.c Ramdisk unit name specified
|
|
-124 common/image.c Can't get ramdisk subimage node offset
|
|
125 common/image.c Got ramdisk subimage node offset
|
|
-125 common/image.c Ramdisk subimage hash verification failed
|
|
126 common/image.c Ramdisk subimage hash verification OK
|
|
-126 common/image.c Ramdisk subimage for unsupported architecture
|
|
127 common/image.c Architecture check OK
|
|
-127 common/image.c Can't get ramdisk subimage data/size
|
|
128 common/image.c Got ramdisk subimage data/size
|
|
129 common/image.c Can't get ramdisk load address
|
|
-129 common/image.c Got ramdisk load address
|
|
|
|
-130 common/cmd_doc.c Incorrect FIT image format
|
|
131 common/cmd_doc.c FIT image format OK
|
|
|
|
-140 common/cmd_ide.c Incorrect FIT image format
|
|
141 common/cmd_ide.c FIT image format OK
|
|
|
|
-150 common/cmd_nand.c Incorrect FIT image format
|
|
151 common/cmd_nand.c FIT image format OK
|
|
|
|
config SPL_SHOW_BOOT_PROGRESS
|
|
bool "Show boot progress in a board-specific manner in SPL"
|
|
depends on SPL
|
|
help
|
|
Defining this option allows to add some board-specific code (calling
|
|
a user-provided function show_boot_progress(int) that enables you to
|
|
show the system's boot progress on some display (for example, some
|
|
LEDs) on your board. For details see SHOW_BOOT_PROGRESS.
|
|
|
|
endmenu
|
|
|
|
menu "Boot media"
|
|
|
|
config NOR_BOOT
|
|
bool "Support for booting from NOR flash"
|
|
depends on NOR
|
|
help
|
|
Enabling this will make a U-Boot binary that is capable of being
|
|
booted via NOR. In this case we will enable certain pinmux early
|
|
as the ROM only partially sets up pinmux. We also default to using
|
|
NOR for environment.
|
|
|
|
config NAND_BOOT
|
|
bool "Support for booting from NAND flash"
|
|
imply MTD_RAW_NAND
|
|
help
|
|
Enabling this will make a U-Boot binary that is capable of being
|
|
booted via NAND flash. This is not a must, some SoCs need this,
|
|
some not.
|
|
|
|
config ONENAND_BOOT
|
|
bool "Support for booting from ONENAND"
|
|
imply MTD_RAW_NAND
|
|
help
|
|
Enabling this will make a U-Boot binary that is capable of being
|
|
booted via ONENAND. This is not a must, some SoCs need this,
|
|
some not.
|
|
|
|
config QSPI_BOOT
|
|
bool "Support for booting from QSPI flash"
|
|
help
|
|
Enabling this will make a U-Boot binary that is capable of being
|
|
booted via QSPI flash. This is not a must, some SoCs need this,
|
|
some not.
|
|
|
|
config SATA_BOOT
|
|
bool "Support for booting from SATA"
|
|
help
|
|
Enabling this will make a U-Boot binary that is capable of being
|
|
booted via SATA. This is not a must, some SoCs need this,
|
|
some not.
|
|
|
|
config SD_BOOT
|
|
bool "Support for booting from SD/EMMC"
|
|
help
|
|
Enabling this will make a U-Boot binary that is capable of being
|
|
booted via SD/EMMC. This is not a must, some SoCs need this,
|
|
some not.
|
|
|
|
config SD_BOOT_QSPI
|
|
bool "Support for booting from SD/EMMC and enable QSPI"
|
|
help
|
|
Enabling this will make a U-Boot binary that is capable of being
|
|
booted via SD/EMMC while enabling QSPI on the platform as well. This
|
|
is not a must, some SoCs need this, some not.
|
|
|
|
config SPI_BOOT
|
|
bool "Support for booting from SPI flash"
|
|
help
|
|
Enabling this will make a U-Boot binary that is capable of being
|
|
booted via SPI flash. This is not a must, some SoCs need this,
|
|
some not.
|
|
|
|
endmenu
|
|
|
|
menu "Autoboot options"
|
|
|
|
config AUTOBOOT
|
|
bool "Autoboot"
|
|
default y
|
|
help
|
|
This enables the autoboot. See doc/README.autoboot for detail.
|
|
|
|
config BOOTDELAY
|
|
int "delay in seconds before automatically booting"
|
|
default 2
|
|
depends on AUTOBOOT
|
|
help
|
|
Delay before automatically running bootcmd;
|
|
set to 0 to autoboot with no delay, but you can stop it by key input.
|
|
set to -1 to disable autoboot.
|
|
set to -2 to autoboot with no delay and not check for abort
|
|
|
|
If this value is >= 0 then it is also used for the default delay
|
|
before starting the default entry in bootmenu. If it is < 0 then
|
|
a default value of 10s is used.
|
|
|
|
See doc/README.autoboot for details.
|
|
|
|
config AUTOBOOT_KEYED
|
|
bool "Stop autobooting via specific input key / string"
|
|
help
|
|
This option enables stopping (aborting) of the automatic
|
|
boot feature only by issuing a specific input key or
|
|
string. If not enabled, any input key will abort the
|
|
U-Boot automatic booting process and bring the device
|
|
to the U-Boot prompt for user input.
|
|
|
|
config AUTOBOOT_FLUSH_STDIN
|
|
bool "Enable flushing stdin before starting to read the password"
|
|
depends on AUTOBOOT_KEYED && !SANDBOX
|
|
help
|
|
When this option is enabled stdin buffer will be flushed before
|
|
starting to read the password.
|
|
This can't be enabled for the sandbox as flushing stdin would
|
|
break the autoboot unit tests.
|
|
|
|
config AUTOBOOT_PROMPT
|
|
string "Autoboot stop prompt"
|
|
depends on AUTOBOOT_KEYED
|
|
default "Autoboot in %d seconds\\n"
|
|
help
|
|
This string is displayed before the boot delay selected by
|
|
CONFIG_BOOTDELAY starts. If it is not defined there is no
|
|
output indicating that autoboot is in progress.
|
|
|
|
Note that this define is used as the (only) argument to a
|
|
printf() call, so it may contain '%' format specifications,
|
|
provided that it also includes, sepearated by commas exactly
|
|
like in a printf statement, the required arguments. It is
|
|
the responsibility of the user to select only such arguments
|
|
that are valid in the given context.
|
|
|
|
config AUTOBOOT_ENCRYPTION
|
|
bool "Enable encryption in autoboot stopping"
|
|
depends on AUTOBOOT_KEYED
|
|
help
|
|
This option allows a string to be entered into U-Boot to stop the
|
|
autoboot.
|
|
The behavior depends whether CONFIG_CRYPT_PW from lib is enabled
|
|
or not.
|
|
In case CONFIG_CRYPT_PW is enabled, the string will be forwarded
|
|
to the crypt-based functionality and be compared against the
|
|
string in the environment variable 'bootstopkeycrypt'.
|
|
In case CONFIG_CRYPT_PW is disabled the string itself is hashed
|
|
and compared against the hash in the environment variable
|
|
'bootstopkeysha256'.
|
|
If it matches in either case then boot stops and
|
|
a command-line prompt is presented.
|
|
This provides a way to ship a secure production device which can also
|
|
be accessed at the U-Boot command line.
|
|
|
|
config AUTOBOOT_SHA256_FALLBACK
|
|
bool "Allow fallback from crypt-hashed password to sha256"
|
|
depends on AUTOBOOT_ENCRYPTION && CRYPT_PW
|
|
help
|
|
This option adds support to fall back from crypt-hashed
|
|
passwords to checking a SHA256 hashed password in case the
|
|
'bootstopusesha256' environment variable is set to 'true'.
|
|
|
|
config AUTOBOOT_DELAY_STR
|
|
string "Delay autobooting via specific input key / string"
|
|
depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION
|
|
help
|
|
This option delays the automatic boot feature by issuing
|
|
a specific input key or string. If CONFIG_AUTOBOOT_DELAY_STR
|
|
or the environment variable "bootdelaykey" is specified
|
|
and this string is received from console input before
|
|
autoboot starts booting, U-Boot gives a command prompt. The
|
|
U-Boot prompt will time out if CONFIG_BOOT_RETRY_TIME is
|
|
used, otherwise it never times out.
|
|
|
|
config AUTOBOOT_STOP_STR
|
|
string "Stop autobooting via specific input key / string"
|
|
depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION
|
|
help
|
|
This option enables stopping (aborting) of the automatic
|
|
boot feature only by issuing a specific input key or
|
|
string. If CONFIG_AUTOBOOT_STOP_STR or the environment
|
|
variable "bootstopkey" is specified and this string is
|
|
received from console input before autoboot starts booting,
|
|
U-Boot gives a command prompt. The U-Boot prompt never
|
|
times out, even if CONFIG_BOOT_RETRY_TIME is used.
|
|
|
|
config AUTOBOOT_KEYED_CTRLC
|
|
bool "Enable Ctrl-C autoboot interruption"
|
|
depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION
|
|
help
|
|
This option allows for the boot sequence to be interrupted
|
|
by ctrl-c, in addition to the "bootdelaykey" and "bootstopkey".
|
|
Setting this variable provides an escape sequence from the
|
|
limited "password" strings.
|
|
|
|
config AUTOBOOT_NEVER_TIMEOUT
|
|
bool "Make the password entry never time-out"
|
|
depends on AUTOBOOT_KEYED && AUTOBOOT_ENCRYPTION && CRYPT_PW
|
|
help
|
|
This option removes the timeout from the password entry
|
|
when the user first presses the <Enter> key before entering
|
|
any other character.
|
|
|
|
config AUTOBOOT_STOP_STR_ENABLE
|
|
bool "Enable fixed string to stop autobooting"
|
|
depends on AUTOBOOT_KEYED && AUTOBOOT_ENCRYPTION
|
|
help
|
|
This option enables the feature to add a fixed stop
|
|
string that is defined at compile time.
|
|
In every case it will be tried to load the stop
|
|
string from the environment.
|
|
In case this is enabled and there is no stop string
|
|
in the environment, this will be used as default value.
|
|
|
|
config AUTOBOOT_STOP_STR_CRYPT
|
|
string "Stop autobooting via crypt-hashed password"
|
|
depends on AUTOBOOT_STOP_STR_ENABLE && CRYPT_PW
|
|
help
|
|
This option adds the feature to only stop the autobooting,
|
|
and therefore boot into the U-Boot prompt, when the input
|
|
string / password matches a values that is hashed via
|
|
one of the supported crypt-style password hashing options
|
|
and saved in the environment variable "bootstopkeycrypt".
|
|
|
|
config AUTOBOOT_STOP_STR_SHA256
|
|
string "Stop autobooting via SHA256 hashed password"
|
|
depends on AUTOBOOT_STOP_STR_ENABLE
|
|
help
|
|
This option adds the feature to only stop the autobooting,
|
|
and therefore boot into the U-Boot prompt, when the input
|
|
string / password matches a values that is encypted via
|
|
a SHA256 hash and saved in the environment variable
|
|
"bootstopkeysha256". If the value in that variable
|
|
includes a ":", the portion prior to the ":" will be treated
|
|
as a salt value.
|
|
|
|
config AUTOBOOT_USE_MENUKEY
|
|
bool "Allow a specify key to run a menu from the environment"
|
|
depends on !AUTOBOOT_KEYED
|
|
help
|
|
If a specific key is pressed to stop autoboot, then the commands in
|
|
the environment variable 'menucmd' are executed before boot starts.
|
|
|
|
config AUTOBOOT_MENUKEY
|
|
int "ASCII value of boot key to show a menu"
|
|
default 0
|
|
depends on AUTOBOOT_USE_MENUKEY
|
|
help
|
|
If this key is pressed to stop autoboot, then the commands in the
|
|
environment variable 'menucmd' will be executed before boot starts.
|
|
For example, 33 means "!" in ASCII, so pressing ! at boot would take
|
|
this action.
|
|
|
|
config AUTOBOOT_MENU_SHOW
|
|
bool "Show a menu on boot"
|
|
depends on CMD_BOOTMENU
|
|
help
|
|
This enables the boot menu, controlled by environment variables
|
|
defined by the board. The menu starts after running the 'preboot'
|
|
environmnent variable (if enabled) and before handling the boot delay.
|
|
See README.bootmenu for more details.
|
|
|
|
config BOOTMENU_DISABLE_UBOOT_CONSOLE
|
|
bool "Disallow bootmenu to enter the U-Boot console"
|
|
depends on AUTOBOOT_MENU_SHOW
|
|
help
|
|
If this option is enabled, user can not enter the U-Boot console from
|
|
bootmenu. It increases the system security.
|
|
|
|
config BOOT_RETRY
|
|
bool "Boot retry feature"
|
|
help
|
|
Allow for having the U-Boot command prompt time out and attempt
|
|
to boot again. If the environment variable "bootretry" is found then
|
|
its value is used, otherwise the retry timeout is
|
|
CONFIG_BOOT_RETRY_TIME. CONFIG_BOOT_RETRY_MIN is optional and
|
|
defaults to CONFIG_BOOT_RETRY_TIME. All times are in seconds.
|
|
|
|
config BOOT_RETRY_TIME
|
|
int "Timeout in seconds before attempting to boot again"
|
|
depends on BOOT_RETRY
|
|
help
|
|
Time in seconds before the U-Boot prompt will timeout and boot will
|
|
be attempted again.
|
|
|
|
config BOOT_RETRY_MIN
|
|
int "Minimum timeout in seconds for 'bootretry'"
|
|
depends on BOOT_RETRY
|
|
default BOOT_RETRY_TIME
|
|
help
|
|
The minimum time in seconds that "bootretry" can be set to.
|
|
|
|
config RESET_TO_RETRY
|
|
bool "Reset the board to retry autoboot"
|
|
depends on BOOT_RETRY
|
|
help
|
|
After the countdown timed out, the board will be reset to restart
|
|
again.
|
|
|
|
endmenu
|
|
|
|
menu "Image support"
|
|
|
|
config IMAGE_PRE_LOAD
|
|
bool "Image pre-load support"
|
|
help
|
|
Enable an image pre-load stage in the SPL.
|
|
This pre-load stage allows to do some manipulation
|
|
or check (for example signature check) on an image
|
|
before launching it.
|
|
|
|
config SPL_IMAGE_PRE_LOAD
|
|
bool "Image pre-load support within SPL"
|
|
depends on SPL && IMAGE_PRE_LOAD
|
|
help
|
|
Enable an image pre-load stage in the SPL.
|
|
This pre-load stage allows to do some manipulation
|
|
or check (for example signature check) on an image
|
|
before launching it.
|
|
|
|
config IMAGE_PRE_LOAD_SIG
|
|
bool "Image pre-load signature support"
|
|
depends on IMAGE_PRE_LOAD
|
|
select FIT_SIGNATURE
|
|
select RSA
|
|
select RSA_VERIFY_WITH_PKEY
|
|
help
|
|
Enable signature check support in the pre-load stage.
|
|
For this feature a very simple header is added before
|
|
the image with few fields:
|
|
- a magic
|
|
- the image size
|
|
- the signature
|
|
All other information (header size, type of signature,
|
|
...) are provided in the node /image/pre-load/sig of
|
|
u-boot.
|
|
|
|
config SPL_IMAGE_PRE_LOAD_SIG
|
|
bool "Image pre-load signature support witin SPL"
|
|
depends on SPL_IMAGE_PRE_LOAD && IMAGE_PRE_LOAD_SIG
|
|
select SPL_FIT_SIGNATURE
|
|
select SPL_RSA
|
|
select SPL_RSA_VERIFY_WITH_PKEY
|
|
help
|
|
Enable signature check support in the pre-load stage in the SPL.
|
|
For this feature a very simple header is added before
|
|
the image with few fields:
|
|
- a magic
|
|
- the image size
|
|
- the signature
|
|
All other information (header size, type of signature,
|
|
...) are provided in the node /image/pre-load/sig of
|
|
u-boot.
|
|
|
|
endmenu
|
|
|
|
config USE_BOOTARGS
|
|
bool "Enable boot arguments"
|
|
help
|
|
Provide boot arguments to bootm command. Boot arguments are specified
|
|
in CONFIG_BOOTARGS option. Enable this option to be able to specify
|
|
CONFIG_BOOTARGS string. If this option is disabled, CONFIG_BOOTARGS
|
|
will be undefined and won't take any space in U-Boot image.
|
|
|
|
config BOOTARGS
|
|
string "Boot arguments"
|
|
depends on USE_BOOTARGS && !USE_DEFAULT_ENV_FILE
|
|
help
|
|
This can be used to pass arguments to the bootm command. The value of
|
|
CONFIG_BOOTARGS goes into the environment value "bootargs". Note that
|
|
this value will also override the "chosen" node in FDT blob.
|
|
|
|
config BOOTARGS_SUBST
|
|
bool "Support substituting strings in boot arguments"
|
|
help
|
|
This allows substituting string values in the boot arguments. These
|
|
are applied after the commandline has been built.
|
|
|
|
One use for this is to insert the root-disk UUID into the command
|
|
line where bootargs contains "root=${uuid}"
|
|
|
|
setenv bootargs "console= root=${uuid}"
|
|
# Set the 'uuid' environment variable
|
|
part uuid mmc 2:2 uuid
|
|
|
|
# Command-line substitution will put the real uuid into the
|
|
# kernel command line
|
|
bootm
|
|
|
|
config USE_BOOTCOMMAND
|
|
bool "Enable a default value for bootcmd"
|
|
help
|
|
Provide a default value for the bootcmd entry in the environment. If
|
|
autoboot is enabled this is what will be run automatically. Enable
|
|
this option to be able to specify CONFIG_BOOTCOMMAND as a string. If
|
|
this option is disabled, CONFIG_BOOTCOMMAND will be undefined and
|
|
won't take any space in U-Boot image.
|
|
|
|
config BOOTCOMMAND
|
|
string "bootcmd value"
|
|
depends on USE_BOOTCOMMAND && !USE_DEFAULT_ENV_FILE
|
|
default "bootflow scan -lb" if BOOTSTD_BOOTCOMMAND && CMD_BOOTFLOW_FULL
|
|
default "bootflow scan" if BOOTSTD_BOOTCOMMAND && !CMD_BOOTFLOW_FULL
|
|
default "run distro_bootcmd" if !BOOTSTD_BOOTCOMMAND && DISTRO_DEFAULTS
|
|
help
|
|
This is the string of commands that will be used as bootcmd and if
|
|
AUTOBOOT is set, automatically run.
|
|
|
|
config USE_PREBOOT
|
|
bool "Enable preboot"
|
|
help
|
|
When this option is enabled, the existence of the environment
|
|
variable "preboot" will be checked immediately before starting the
|
|
CONFIG_BOOTDELAY countdown and/or running the auto-boot command resp.
|
|
entering interactive mode.
|
|
|
|
This feature is especially useful when "preboot" is automatically
|
|
generated or modified. For example, the boot code can modify the
|
|
"preboot" when a user holds down a certain combination of keys.
|
|
|
|
config PREBOOT
|
|
string "preboot default value"
|
|
depends on USE_PREBOOT && !USE_DEFAULT_ENV_FILE
|
|
default "usb start" if USB_KEYBOARD
|
|
default ""
|
|
help
|
|
This is the default of "preboot" environment variable.
|
|
|
|
config PREBOOT_DEFINED
|
|
bool
|
|
default y if PREBOOT != ""
|
|
|
|
config DEFAULT_FDT_FILE
|
|
string "Default fdt file"
|
|
help
|
|
This option is used to set the default fdt file to boot OS.
|
|
|
|
config SAVE_PREV_BL_FDT_ADDR
|
|
depends on ARM
|
|
bool "Saves fdt address, passed by the previous bootloader, to env var"
|
|
help
|
|
When u-boot is used as a chain-loaded bootloader (replacing OS kernel),
|
|
enable this option to save fdt address, passed by the
|
|
previous bootloader for future use.
|
|
Address is saved to `prevbl_fdt_addr` environment variable.
|
|
|
|
If no fdt was provided by previous bootloader, no env variables
|
|
will be created.
|
|
|
|
config SAVE_PREV_BL_INITRAMFS_START_ADDR
|
|
depends on ARM
|
|
bool "Saves initramfs address, passed by the previous bootloader, to env var"
|
|
help
|
|
When u-boot is used as a chain-loaded bootloader(replacing OS kernel),
|
|
enable this option to save initramfs address, passed by the
|
|
previous bootloader for future use.
|
|
Address is saved to `prevbl_initrd_start_addr` environment variable.
|
|
|
|
If no initramfs was provided by previous bootloader, no env variables
|
|
will be created.
|
|
|
|
endmenu # Booting
|