boot: Allow use of FIT in TPL and VPL

With VBE we want to use FIT in all phases of the boot. Add Kconfig
options to support this.

Disable the options for sandbox_vpl for now.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2024-12-07 10:24:09 -07:00 committed by Tom Rini
parent 214dc4a160
commit d5597ef845
2 changed files with 70 additions and 1 deletions

View file

@ -163,6 +163,18 @@ config SPL_FIT
select SPL_HASH
select SPL_OF_LIBFDT
config VPL_FIT
bool "Support Flattened Image Tree within VPL"
depends on VPL
select VPL_HASH
select VPL_OF_LIBFDT
config TPL_FIT
bool "Support Flattened Image Tree within TPL"
depends on TPL
select TPL_HASH
select TPL_OF_LIBFDT
config SPL_FIT_PRINT
bool "Support FIT printing within SPL"
depends on SPL_FIT
@ -268,6 +280,28 @@ config SPL_LOAD_FIT_FULL
particular it can handle selecting from multiple device tree
and passing the correct one to U-Boot.
config TPL_LOAD_FIT
bool "Enable TPL loading U-Boot as a FIT (basic fitImage features)"
depends on TPL
select TPL_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_FIT_IMAGE_POST_PROCESS
bool "Enable post-processing of FIT artifacts after loading by the SPL"
depends on SPL_LOAD_FIT
@ -307,6 +341,22 @@ config VPL_FIT
select VPL_HASH
select VPL_OF_LIBFDT
config VPL_LOAD_FIT
bool "Enable VPL loading U-Boot as a FIT (basic fitImage features)"
select VPL_FIT
default y
config VPL_LOAD_FIT_FULL
bool "Enable SPL loading U-Boot as a FIT (full fitImage features)"
select VPL_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 VPL_FIT_PRINT
bool "Support FIT printing within VPL"
depends on VPL_FIT
@ -635,6 +685,15 @@ config VPL_BOOTMETH_VBE
supports selection of various firmware components, selection of an OS to
boot as well as updating these using fwupd.
config TPL_BOOTMETH_VBE
bool "Bootdev support for Verified Boot for Embedded (TPL)"
depends on TPL
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_REQUEST
@ -713,7 +772,15 @@ config VPL_BOOTMETH_VBE_SIMPLE_FW
This option enabled for VPL, since it is the phase where the SPL
decision is made.
endif # BOOTMETH_VBE
config TPL_BOOTMETH_VBE_SIMPLE_FW
bool "Bootdev support for VBE 'simple' method firmware phase (TPL)"
depends on VPL
default y
help
Enables support for the firmware parts of VBE 'simple' boot, in TPL.
TPL loads a FIT containing the VPL binary and a suitable devicetree.
endif # BOOTMETH_VBE_SIMPLE
config EXPO
bool "Support for expos - groups of scenes displaying a UI"

View file

@ -27,6 +27,8 @@ CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_FIT_BEST_MATCH=y
CONFIG_SPL_LOAD_FIT=y
# CONFIG_TPL_BOOTMETH_VBE is not set
# CONFIG_TPL_BOOTMETH_VBE_SIMPLE_FW is not set
CONFIG_UPL=y
CONFIG_UPL_IN=y
CONFIG_BOOTSTAGE=y