spl: Add option to enable SPL Legacy image support
authorAndrew F. Davis <afd@ti.com>
Thu, 16 Feb 2017 17:18:39 +0000 (11:18 -0600)
committerTom Rini <trini@konsulko.com>
Sat, 18 Mar 2017 18:28:51 +0000 (14:28 -0400)
Add a Kconfig option that enables Legacy image support, this allows
boards to explicitly disable this, for instance when needed for
security reasons.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
[trini: Move to common/spl/Kconfig]
Signed-off-by: Tom Rini <trini@konsulko.com>
common/spl/Kconfig
common/spl/spl.c

index 6abbccdde03d69f32e10f52af377506ff457387c..d974271e715045e8f2bdd432e7c34b2b5c93f009 100644 (file)
@@ -23,6 +23,14 @@ config SPL_RAW_IMAGE_SUPPORT
          is y. If this is not set, SPL will move on to other available
          boot media to find a suitable image.
 
+config SPL_LEGACY_IMAGE_SUPPORT
+       bool "Support SPL loading and booting of Legacy images"
+       default y
+       help
+         SPL will support loading and booting Legacy images when this option
+         is y. If this is not set, SPL will move on to other available
+         boot media to find a suitable image.
+
 config SPL_SYS_MALLOC_SIMPLE
        bool
        depends on SPL
index 586d75f4398f01801123d9b2db88c3277292863c..d98b9fcb9ade2285b50caedbce7483db5ded78da 100644 (file)
@@ -93,9 +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)
 {
-       u32 header_size = sizeof(struct image_header);
-
        if (image_get_magic(header) == IH_MAGIC) {
+#ifdef CONFIG_SPL_LEGACY_IMAGE_SUPPORT
+               u32 header_size = sizeof(struct image_header);
+
                if (spl_image->flags & SPL_COPY_PAYLOAD_ONLY) {
                        /*
                         * On some system (e.g. powerpc), the load-address and
@@ -118,6 +119,11 @@ int spl_parse_image_header(struct spl_image_info *spl_image,
                debug("spl: payload image: %.*s load addr: 0x%lx size: %d\n",
                        (int)sizeof(spl_image->name), spl_image->name,
                        spl_image->load_addr, spl_image->size);
+#else
+               /* LEGACY image not supported */
+               debug("Legacy boot image support not enabled, proceeding to other boot methods");
+               return -EINVAL;
+#endif
        } else {
 #ifdef CONFIG_SPL_PANIC_ON_RAW_IMAGE
                /*