]> git.ipfire.org Git - people/ms/u-boot.git/commitdiff
spl_mmc: allow to load raw image
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Wed, 16 Mar 2016 03:10:00 +0000 (12:10 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Wed, 23 Mar 2016 16:36:55 +0000 (01:36 +0900)
The function spl_parse_image_header() falls back to a raw image
if the U-Boot header is missing and CONFIG_SPL_PANIC_ON_RAW_IMAGE
is undefined.  While, mmc_load_image_raw_sector() only accepts a
U-Boot legacy image or an FIT image, preventing us from loading a
raw image.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
common/spl/spl_mmc.c

index c0e76be09abb48d67579e589f1befe704eae7a97..7d3bfc60bae0030bb7aac5b01d2f73c94e2b8ff9 100644 (file)
@@ -41,7 +41,6 @@ static int mmc_load_legacy(struct mmc *mmc, ulong sector,
        return 0;
 }
 
-#ifdef CONFIG_SPL_LOAD_FIT
 static ulong h_spl_load_read(struct spl_load_info *load, ulong sector,
                             ulong count, void *buf)
 {
@@ -49,7 +48,6 @@ static ulong h_spl_load_read(struct spl_load_info *load, ulong sector,
 
        return mmc->block_dev.block_read(&mmc->block_dev, sector, count, buf);
 }
-#endif
 
 static int mmc_load_image_raw_sector(struct mmc *mmc, unsigned long sector)
 {
@@ -68,12 +66,8 @@ static int mmc_load_image_raw_sector(struct mmc *mmc, unsigned long sector)
                goto end;
        }
 
-       switch (image_get_magic(header)) {
-       case IH_MAGIC:
-               ret = mmc_load_legacy(mmc, sector, header);
-               break;
-#ifdef CONFIG_SPL_LOAD_FIT
-       case FDT_MAGIC: {
+       if (IS_ENABLED(CONFIG_SPL_LOAD_FIT) &&
+           image_get_magic(header) == FDT_MAGIC) {
                struct spl_load_info load;
 
                debug("Found FIT\n");
@@ -82,12 +76,8 @@ static int mmc_load_image_raw_sector(struct mmc *mmc, unsigned long sector)
                load.bl_len = mmc->read_bl_len;
                load.read = h_spl_load_read;
                ret = spl_load_simple_fit(&load, sector, header);
-               break;
-       }
-#endif
-       default:
-               puts("bad magic\n");
-               return -1;
+       } else {
+               ret = mmc_load_legacy(mmc, sector, header);
        }
 
 end: