]> Git Repo - u-boot.git/commitdiff
boot: Allow use of FIT in TPL and VPL
authorSimon Glass <[email protected]>
Thu, 19 Dec 2024 18:29:04 +0000 (11:29 -0700)
committerTom Rini <[email protected]>
Fri, 27 Dec 2024 21:16:10 +0000 (15:16 -0600)
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 <[email protected]>
boot/Kconfig
configs/sandbox_vpl_defconfig

index 99dcedcc8409b7763430a8a8976bf4a9645e8d8a..cdf787eb5c2d0e08d780a997af39ebc2a7ab2d3d 100644 (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
@@ -292,6 +326,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
@@ -620,6 +670,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
@@ -698,7 +757,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"
index 84df2b852609439f583505c5e14f4dc14b159551..46329395ba5ee941a837730cc415a39b0f9c9bea 100644 (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
This page took 0.034793 seconds and 4 git commands to generate.