mbox series

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

Message ID 20210120164656.1396639-1-mr.nuke.me@gmail.com
Headers show
Series spl: fit: Play nicely with OP-TEE and Linux | expand

Message

Alex G. Jan. 20, 2021, 4:46 p.m. UTC
The purpose of this series is to allow SPL to boot an image with
both OP-TEE and Linux.

The "simple" fit code was mostly ready for this, albeit quite
unreadable. To be able to make these changes reviewable, some major
refactoring had to be done. 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 5 lines
to u-boot. The takeaway is that the following type FIT can be loaded
from SPL directly:

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

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


Changes since v2:
 * Fix copmiler error for IMX spl.c
 
Changes since v2:
 * Fixed embarrasing rebase mishap on one of the patches.

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)
 

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_image_post_process() 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 |   7 +-
 common/spl/spl_fit.c    | 261 +++++++++++++++++++++-------------------
 include/image.h         |   7 --
 include/spl.h           |   4 +-
 4 files changed, 142 insertions(+), 137 deletions(-)