summaryrefslogtreecommitdiff
path: root/common/spl
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2018-05-31 17:59:19 +0200
committerTom Rini <trini@konsulko.com>2018-07-10 16:55:56 -0400
commit8b1531f7bc66fae7e5c155d6ae5fa2e7aa77ade2 (patch)
tree2ba4062e12654e6e5b8b4f010187e5dc6ee5ea30 /common/spl
parent078e558699844bfe5b21a5c9730bba84144ef642 (diff)
spl: fat: Support full fitImage handling
Handle the case where the full fitImage support is enabled. In this case, the whole fitImage must be loaded up front as some parts of the fitImage code require memory-mapped access to the entire fitImage. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Pantelis Antoniou <pantelis.antoniou@konsulko.com> Cc: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common/spl')
-rw-r--r--common/spl/spl_fat.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/common/spl/spl_fat.c b/common/spl/spl_fat.c
index 87dd553210..0403016bb4 100644
--- a/common/spl/spl_fat.c
+++ b/common/spl/spl_fat.c
@@ -70,7 +70,18 @@ int spl_load_image_fat(struct spl_image_info *spl_image,
if (err <= 0)
goto end;
- if (IS_ENABLED(CONFIG_SPL_LOAD_FIT) &&
+ if (IS_ENABLED(CONFIG_SPL_LOAD_FIT_FULL) &&
+ image_get_magic(header) == FDT_MAGIC) {
+ err = file_fat_read(filename, (void *)CONFIG_SYS_LOAD_ADDR, 0);
+ if (err <= 0)
+ goto end;
+ err = spl_parse_image_header(spl_image,
+ (struct image_header *)CONFIG_SYS_LOAD_ADDR);
+ if (err == -EAGAIN)
+ return err;
+ if (err == 0)
+ err = 1;
+ } else if (IS_ENABLED(CONFIG_SPL_LOAD_FIT) &&
image_get_magic(header) == FDT_MAGIC) {
struct spl_load_info load;