diff options
author | Tom Rini <trini@ti.com> | 2013-06-28 14:43:01 -0400 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2013-07-26 16:39:10 -0400 |
commit | e4c444b34b6ff6b347e552805ee89c48f85785bb (patch) | |
tree | 819affbbcf26cb4657003c9d880f31deec82ff83 /common | |
parent | 3864cb2133b8d4a45dbad603f7b0b9f051d617ff (diff) | |
download | u-boot-e4c444b34b6ff6b347e552805ee89c48f85785bb.zip u-boot-e4c444b34b6ff6b347e552805ee89c48f85785bb.tar.gz u-boot-e4c444b34b6ff6b347e552805ee89c48f85785bb.tar.bz2 |
spl_mmc.c: Detect missing kernel image in RAW MMC
Currently, we assume that if we can read from MMC correctly, we have
found a valid image. This is not the case as an empty area will read
just fine. Add a check for a valid IH_MAGIC.
Signed-off-by: Tom Rini <trini@ti.com>
Reviewed-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'common')
-rw-r--r-- | common/spl/spl_mmc.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c index e369ce3..f27b4c2 100644 --- a/common/spl/spl_mmc.c +++ b/common/spl/spl_mmc.c @@ -13,6 +13,7 @@ #include <mmc.h> #include <fat.h> #include <version.h> +#include <image.h> DECLARE_GLOBAL_DATA_PTR; @@ -30,6 +31,9 @@ static int mmc_load_image_raw(struct mmc *mmc, unsigned long sector) if (err == 0) goto end; + if (image_get_magic(header) != IH_MAGIC) + return -1; + spl_parse_image_header(header); /* convert size to sectors - round up */ |