[PATCH v3 16/19] boot: Allow use of FIT in TPL and VPL
Simon Glass
sjg at chromium.org
Sat Dec 7 18:24:09 CET 2024
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 at chromium.org>
---
(no changes since v1)
boot/Kconfig | 69 ++++++++++++++++++++++++++++++++++-
configs/sandbox_vpl_defconfig | 2 +
2 files changed, 70 insertions(+), 1 deletion(-)
diff --git a/boot/Kconfig b/boot/Kconfig
index 705947cfa95..e8f87e48ee6 100644
--- a/boot/Kconfig
+++ b/boot/Kconfig
@@ -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
@@ -649,6 +699,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
@@ -727,7 +786,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"
diff --git a/configs/sandbox_vpl_defconfig b/configs/sandbox_vpl_defconfig
index 84df2b85260..46329395ba5 100644
--- a/configs/sandbox_vpl_defconfig
+++ b/configs/sandbox_vpl_defconfig
@@ -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
--
2.34.1
More information about the U-Boot
mailing list