提交 8bd88772 编写于 作者: L Lokesh Vutla 提交者: Tom Rini

spl: Support loading a FIT from NAND

Detect a FIT when loading from NAND and handle it using the
new FIT SPL support.
Reviewed-by: NTom Rini <trini@konsulko.com>
Signed-off-by: NLokesh Vutla <lokeshvutla@ti.com>
[trini: Make sure we continue to use (void *)(unsigned long) for
load_addr].
Signed-off-by: NTom Rini <trini@konsulko.com>
上级 09852946
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
#include <spl.h> #include <spl.h>
#include <asm/io.h> #include <asm/io.h>
#include <nand.h> #include <nand.h>
#include <libfdt_env.h>
#include <fdt.h>
#if defined(CONFIG_SPL_NAND_RAW_ONLY) #if defined(CONFIG_SPL_NAND_RAW_ONLY)
int spl_nand_load_image(void) int spl_nand_load_image(void)
...@@ -24,6 +26,19 @@ int spl_nand_load_image(void) ...@@ -24,6 +26,19 @@ int spl_nand_load_image(void)
return 0; return 0;
} }
#else #else
static ulong spl_nand_fit_read(struct spl_load_info *load, ulong offs,
ulong size, void *dst)
{
int ret;
ret = nand_spl_load_image(offs, size, dst);
if (!ret)
return size;
else
return 0;
}
static int spl_nand_load_element(int offset, struct image_header *header) static int spl_nand_load_element(int offset, struct image_header *header)
{ {
int err; int err;
...@@ -32,12 +47,24 @@ static int spl_nand_load_element(int offset, struct image_header *header) ...@@ -32,12 +47,24 @@ static int spl_nand_load_element(int offset, struct image_header *header)
if (err) if (err)
return err; return err;
err = spl_parse_image_header(header); if (IS_ENABLED(CONFIG_SPL_LOAD_FIT) &&
if (err) image_get_magic(header) == FDT_MAGIC) {
return err; struct spl_load_info load;
return nand_spl_load_image(offset, spl_image.size, debug("Found FIT\n");
(void *)(unsigned long)spl_image.load_addr); load.dev = NULL;
load.priv = NULL;
load.filename = NULL;
load.bl_len = 1;
load.read = spl_nand_fit_read;
return spl_load_simple_fit(&load, offset, header);
} else {
err = spl_parse_image_header(header);
if (err)
return err;
return nand_spl_load_image(offset, spl_image.size,
(void *)(ulong)spl_image.load_addr);
}
} }
int spl_nand_load_image(void) int spl_nand_load_image(void)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册