Newer TF-A versions provide a new image loading protocol. This is used on (newer?) NXP's SoCs. Normally, the bootflow is bl1 -> bl2 -> bl31 -> u-boot. With this series it is possible that U-Boot SPL loads the bl31 directly and thus replacing bl1 and bl2 from the TF-A.
This was tested on the Kontron sl28 board using NXPs bl31 and the upstream version of the OP-TEE Trusted OS. Changes since v1: - removed firmware entry from loadable, suggested by Michal - use kernel-doc function annotation format - new patch "board: sl28: remove u-boot from loadable DT node" Michael Walle (9): treewide: use CONFIG_IS_ENABLED() for ARMV8_SEC_FIRMWARE_SUPPORT spl: atf: move storage for bl31_params into function spl: atf: provide a bl2_plat_get_bl31_params_default() spl: atf: remove helper structure from common header spl: atf: add support for LOAD_IMAGE_V2 armv8: layerscape: don't initialize GIC in SPL board: sl28: remove u-boot from loadable DT node board: sl28: add ATF support (bl31) board: sl28: add OP-TEE Trusted OS support (bl32) arch/arm/cpu/armv8/cpu-dt.c | 2 +- arch/arm/cpu/armv8/fsl-layerscape/fdt.c | 8 +- arch/arm/cpu/armv8/fsl-layerscape/lowlevel.S | 2 + arch/arm/cpu/armv8/fsl-layerscape/ppa.c | 2 +- .../dts/fsl-ls1028a-kontron-sl28-u-boot.dtsi | 80 ++++++++++- arch/arm/lib/bootm-fdt.c | 2 +- arch/arm/lib/psci-dt.c | 6 +- board/kontron/sl28/Kconfig | 33 +++++ board/kontron/sl28/Makefile | 6 +- board/kontron/sl28/sl28.c | 7 + board/kontron/sl28/spl_atf.c | 54 ++++++++ common/spl/Kconfig | 9 ++ common/spl/spl_atf.c | 129 ++++++++++++++++-- include/atf_common.h | 42 ++++-- include/spl.h | 78 +++++++++-- 15 files changed, 410 insertions(+), 50 deletions(-) create mode 100644 board/kontron/sl28/spl_atf.c -- 2.20.1