summaryrefslogtreecommitdiffstats
path: root/common/spl/spl_nor.c
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2016-04-29 00:44:54 +0200
committerStefano Babic <sbabic@denx.de>2016-05-17 17:52:20 +0200
commit7e0f22674ae871460706f9cc8653487bb51e0804 (patch)
tree604b55f32c78eee29614bfd6a99d7525f168384d /common/spl/spl_nor.c
parent249092fa81f3dd3fee94fd05973833e30405f3c4 (diff)
downloadblackbird-obmc-uboot-7e0f22674ae871460706f9cc8653487bb51e0804.tar.gz
blackbird-obmc-uboot-7e0f22674ae871460706f9cc8653487bb51e0804.zip
SPL: Let spl_parse_image_header() return value
Allow the spl_parse_image_header() to return value. This is convenient for controlling the SPL boot flow if the loaded image is corrupted. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Fabio Estevam <fabio.estevam@nxp.com> Cc: Peng Fan <van.freenix@gmail.com> Cc: Stefano Babic <sbabic@denx.de> Cc: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'common/spl/spl_nor.c')
-rw-r--r--common/spl/spl_nor.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/common/spl/spl_nor.c b/common/spl/spl_nor.c
index d0bd0b0533..da2422f305 100644
--- a/common/spl/spl_nor.c
+++ b/common/spl/spl_nor.c
@@ -9,6 +9,7 @@
int spl_nor_load_image(void)
{
+ int ret;
/*
* Loading of the payload to SDRAM is done with skipping of
* the mkimage header in this SPL NOR driver
@@ -28,7 +29,9 @@ int spl_nor_load_image(void)
if (image_get_os(header) == IH_OS_LINUX) {
/* happy - was a Linux */
- spl_parse_image_header(header);
+ ret = spl_parse_image_header(header);
+ if (ret)
+ return ret;
memcpy((void *)spl_image.load_addr,
(void *)(CONFIG_SYS_OS_BASE +
@@ -56,8 +59,10 @@ int spl_nor_load_image(void)
* Load real U-Boot from its location in NOR flash to its
* defined location in SDRAM
*/
- spl_parse_image_header(
+ ret = spl_parse_image_header(
(const struct image_header *)CONFIG_SYS_UBOOT_BASE);
+ if (ret)
+ return ret;
memcpy((void *)(unsigned long)spl_image.load_addr,
(void *)(CONFIG_SYS_UBOOT_BASE + sizeof(struct image_header)),
OpenPOWER on IntegriCloud