
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 afd@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; }