summaryrefslogtreecommitdiff
path: root/common/spl/spl_nand.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/spl/spl_nand.c')
-rw-r--r--common/spl/spl_nand.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/common/spl/spl_nand.c b/common/spl/spl_nand.c
index 302fe9c04f..3e2c074050 100644
--- a/common/spl/spl_nand.c
+++ b/common/spl/spl_nand.c
@@ -11,7 +11,7 @@
#include <nand.h>
#if defined(CONFIG_SPL_NAND_RAW_ONLY)
-void spl_nand_load_image(void)
+int spl_nand_load_image(void)
{
nand_init();
@@ -20,6 +20,8 @@ void spl_nand_load_image(void)
(void *)CONFIG_SYS_NAND_U_BOOT_DST);
spl_set_header_raw_uboot();
nand_deselect();
+
+ return 0;
}
#else
static int spl_nand_load_element(int offset, struct image_header *header)
@@ -35,8 +37,9 @@ static int spl_nand_load_element(int offset, struct image_header *header)
(void *)(unsigned long)spl_image.load_addr);
}
-void spl_nand_load_image(void)
+int spl_nand_load_image(void)
{
+ int err;
struct image_header *header;
int *src __attribute__((unused));
int *dst __attribute__((unused));
@@ -73,10 +76,12 @@ void spl_nand_load_image(void)
spl_parse_image_header(header);
if (header->ih_os == IH_OS_LINUX) {
/* happy - was a linux */
- nand_spl_load_image(CONFIG_SYS_NAND_SPL_KERNEL_OFFS,
- spl_image.size, (void *)spl_image.load_addr);
+ err = nand_spl_load_image(
+ CONFIG_SYS_NAND_SPL_KERNEL_OFFS,
+ spl_image.size,
+ (void *)spl_image.load_addr);
nand_deselect();
- return;
+ return err;
} else {
puts("The Expected Linux image was not "
"found. Please check your NAND "
@@ -92,7 +97,8 @@ void spl_nand_load_image(void)
#endif
#endif
/* Load u-boot */
- spl_nand_load_element(CONFIG_SYS_NAND_U_BOOT_OFFS, header);
+ err = spl_nand_load_element(CONFIG_SYS_NAND_U_BOOT_OFFS, header);
nand_deselect();
+ return err;
}
#endif