Introduce CONFIG_SPL_ABORT_ON_NON_FIT_IMAGE. An SPL which define
this will abort image loading if the image is not a FIT image.

Signed-off-by: Andrew F. Davis <a...@ti.com>
---
 Kconfig          | 9 +++++++++
 common/spl/spl.c | 5 +++++
 2 files changed, 14 insertions(+)

diff --git a/Kconfig b/Kconfig
index 1263d0b..eefebef 100644
--- a/Kconfig
+++ b/Kconfig
@@ -291,6 +291,15 @@ config FIT_IMAGE_POST_PROCESS
          injected into the FIT creation (i.e. the blobs would have been pre-
          processed before being added to the FIT image).
 
+config SPL_ABORT_ON_NON_FIT_IMAGE
+       bool "Disable SPL loading of non-FIT images"
+       default y if SPL_FIT_SIGNATURE
+       help
+         SPL will not load and image if it is not a FIT image. This is
+         useful for devices that only support authentication/encryption
+         through SPL FIT loading paths and do not want SPL falling back
+         to legacy image loading when a non-FIT image is present.
+
 config SPL_DFU_SUPPORT
        bool "Enable SPL with DFU to load binaries to memory device"
        depends on USB
diff --git a/common/spl/spl.c b/common/spl/spl.c
index bdb165a..3d8bee9 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -93,6 +93,10 @@ void spl_set_header_raw_uboot(struct spl_image_info 
*spl_image)
 int spl_parse_image_header(struct spl_image_info *spl_image,
                           const struct image_header *header)
 {
+#ifdef CONFIG_SPL_ABORT_ON_NON_FIT_IMAGE
+       /* non-FIT image found, proceed to other boot methods. */
+       return -EINVAL;
+#else
        u32 header_size = sizeof(struct image_header);
 
        if (image_get_magic(header) == IH_MAGIC) {
@@ -156,6 +160,7 @@ int spl_parse_image_header(struct spl_image_info *spl_image,
                spl_set_header_raw_uboot(spl_image);
 #endif
        }
+#endif
        return 0;
 }
 
-- 
2.10.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to