spl: nor: support loading i.MX container format file
authorPeng Fan <peng.fan@nxp.com>
Mon, 23 Sep 2019 02:18:48 +0000 (10:18 +0800)
committerStefano Babic <sbabic@denx.de>
Tue, 8 Oct 2019 14:36:36 +0000 (16:36 +0200)
i.MX8 only support AHAB secure boot with Container format image,
we could not use FIT to support secure boot, so introduce container
support to let SPL could load container images.

Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tien Fong Chee <tien.fong.chee@intel.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Alex Kiernan <alex.kiernan@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Cc: Kever Yang <kever.yang@rock-chips.com>
Cc: Heiko Schocher <hs@denx.de>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
common/spl/spl_nor.c

index 0f8afa6f926e73bc5854e0d8dcbb9a32f528b7e8..7df708de9b0f11b5a103b0036853ad3b5088c8bd 100644 (file)
@@ -6,7 +6,6 @@
 #include <common.h>
 #include <spl.h>
 
-#ifdef CONFIG_SPL_LOAD_FIT
 static ulong spl_nor_load_read(struct spl_load_info *load, ulong sector,
                               ulong count, void *buf)
 {
@@ -16,7 +15,6 @@ static ulong spl_nor_load_read(struct spl_load_info *load, ulong sector,
 
        return count;
 }
-#endif
 
 unsigned long __weak spl_nor_get_uboot_base(void)
 {
@@ -97,6 +95,13 @@ static int spl_nor_load_image(struct spl_image_info *spl_image,
                return ret;
        }
 #endif
+       if (IS_ENABLED(CONFIG_SPL_LOAD_IMX_CONTAINER)) {
+               load.bl_len = 1;
+               load.read = spl_nor_load_read;
+               return spl_load_imx_container(spl_image, &load,
+                                             spl_nor_get_uboot_base());
+       }
+
        ret = spl_parse_image_header(spl_image,
                        (const struct image_header *)spl_nor_get_uboot_base());
        if (ret)