diff options
author | Andrew F. Davis <afd@ti.com> | 2017-02-16 11:18:39 -0600 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2017-03-18 14:28:51 -0400 |
commit | 722a6b1741bacd4ba36fb89906dbb8bf696d70a7 (patch) | |
tree | 3c1a1707b3ab4bccde4c549a1acd712ce0b42395 | |
parent | 24eb39b575d5b077de92a8d7e7947a955adf5679 (diff) |
spl: Add option to enable SPL Legacy image support
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>
-rw-r--r-- | common/spl/Kconfig | 8 | ||||
-rw-r--r-- | common/spl/spl.c | 10 |
2 files changed, 16 insertions, 2 deletions
diff --git a/common/spl/Kconfig b/common/spl/Kconfig index 6abbccdde03..d974271e715 100644 --- a/common/spl/Kconfig +++ b/common/spl/Kconfig @@ -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 diff --git a/common/spl/spl.c b/common/spl/spl.c index 586d75f4398..d98b9fcb9ad 100644 --- a/common/spl/spl.c +++ b/common/spl/spl.c @@ -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 /* |