summaryrefslogtreecommitdiff
path: root/common/spl/spl_fat.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/spl/spl_fat.c')
-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;