summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorAlbert ARIBAUD \(3ADEV\) <albert.aribaud@3adev.fr>2015-03-31 11:40:50 +0200
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2015-04-10 14:23:37 +0200
commit8c80eb3b533c73a4b4a505fbaf925cdaafe0b5d2 (patch)
treeea410c30971b373106c6d5b28fb38f6e8b8001a4 /common
parent39f520bb62be67ef98303c47dd5c2d76861fea0f (diff)
Introduce CONFIG_SPL_PANIC_ON_RAW_IMAGE
introduce CONFIG_SPL_PANIC_ON_RAW_IMAGE. An SPL which define this will panic() if the image it has loaded does not have a mkimage signature. Signed-off-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
Diffstat (limited to 'common')
-rw-r--r--common/spl/spl.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/common/spl/spl.c b/common/spl/spl.c
index cd75bbc4ce..8e1fb40c47 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -101,10 +101,22 @@ void spl_parse_image_header(const struct image_header *header)
(int)sizeof(spl_image.name), spl_image.name,
spl_image.load_addr, spl_image.size);
} else {
+#ifdef CONFIG_SPL_PANIC_ON_RAW_IMAGE
+ /*
+ * CONFIG_SPL_PANIC_ON_RAW_IMAGE is defined when the
+ * code which loads images in SPL cannot guarantee that
+ * absolutely all read errors will be reported.
+ * An example is the LPC32XX MLC NAND driver, which
+ * will consider that a completely unreadable NAND block
+ * is bad, and thus should be skipped silently.
+ */
+ panic("** no mkimage signature but raw image not supported");
+#else
/* Signature not found - assume u-boot.bin */
debug("mkimage signature not found - ih_magic = %x\n",
header->ih_magic);
spl_set_header_raw_uboot();
+#endif
}
}