[PATCH v2 0/8] spl: fit: Play nicely with OP-TEE and Linux

Alexandru Gagniuc mr.nuke.me at gmail.com
Wed Dec 23 00:54:41 CET 2020


This patch series is part of a larger effort to get linux to boot
really fast alongside a secure OS. One piece of the puzzle is getting
Linux and OP-TEE to boot straight from SPL. This is where the FIT
image comes in.

The "simple" fit code was mostly ready for this, although it was
quite difficult to navigate. As I was figuring out the required
changes, I realized I had also managed to do some major refactoring.
In fact, of the eight changes, (6) are refactoring patches, and (2)
are functional changes.

I wish I could have written this with a negative line count. I have
unfortunately failed at that, and this series will be adding 11 lines
to u-boot. The takeaway is that the following type FIT can be loaded
from SPL directly:

        images {
                optee at 1 {
                        type = "tee";
                        os = "tee";
                        ...
                };
                kernel at 1 {
                        type = "kernel";
                        os = "linux";
			...
                };
                fdt at devicetree.dtb { ... }
                fdt at overlay.dto { ... };
        };

        configurations {
                conf at quickboot {
                        kernel = "optee at 1";
                        fdt = "fdt at stm32mp157c-ev1.dtb", "fdt at overlay.dto";
                        loadables = "kernel at 1";
                };
        };


This series is designed to apply to u-boot/next:
  * 8351a29d2d Merge tag 'dm-pull-14dec20' of git://git.denx.de/u-boot-dm into next	
  
Changes since v1:
 * Added struct comments (Simon Glass)
 * Added comment do describe args of board_spl_fit_post_load() (Simon Glass)
 * Fixed predicate of if clause on spl_load_simple_fit() (me)
 
Simon requested that I write a test case to check the simple SPL FIT
loading path. I looked at it, and I couldn't quite figure out how to
connect the "sandbox" to a python test. Although the idea is great in
principle, it this seems to be a longer side-project that is beyond
the scope of this series.

Alexandru Gagniuc (8):
  spl: fit: Drop 'length' argument to board_spl_fit_post_load()
  spl: fit: Factor out FIT parsing and use a context struct
  spl: fit: Pass FIT context via a structure pointer
  spl: fit: Remove useless loop in spl_fit_get_image_name()
  spl: fit: Only look up FIT configuration node once
  image: Do not #if guard board_fit_config_name_match() prototype
  spl: fit: Replace #ifdef blocks with more readable constructs
  spl: fit: Load devicetree when a Linux payload is found

 arch/arm/mach-imx/spl.c |   5 +-
 common/spl/spl_fit.c    | 257 +++++++++++++++++++++-------------------
 include/image.h         |   3 -
 include/spl.h           |   4 +-
 4 files changed, 140 insertions(+), 129 deletions(-)

-- 
2.26.2



More information about the U-Boot mailing list