Skip to content
Snippets Groups Projects
Commit 811906ae authored by Lokesh Vutla's avatar Lokesh Vutla Committed by Tom Rini
Browse files

spl: mmc: raw: Try to load u-boot if Linux image is not found


If CONFIG_SPL_OS_BOOT is enabled and Linux image is not flashed at
RAW_MODE_KERNEL_SECTOR in MMC, spl still assumes that Linux is
available and tries to boot it and hangs. In order to avoid this,
adding a check to verify if parsed image header is of type IH_OS_LINUX.
If it fails then fall back to load u-boot image.

Signed-off-by: default avatarLokesh Vutla <lokeshvutla@ti.com>
parent df120142
No related branches found
No related tags found
No related merge requests found
......@@ -178,6 +178,7 @@ static int mmc_load_image_raw_partition(struct mmc *mmc, int partition)
static int mmc_load_image_raw_os(struct mmc *mmc)
{
unsigned long count;
int ret;
count = mmc->block_dev.block_read(&mmc->block_dev,
CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR,
......@@ -190,8 +191,17 @@ static int mmc_load_image_raw_os(struct mmc *mmc)
return -1;
}
return mmc_load_image_raw_sector(mmc,
ret = mmc_load_image_raw_sector(mmc,
CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR);
if (ret)
return ret;
if (spl_image.os != IH_OS_LINUX) {
puts("Expected Linux image is not found. Trying to start U-boot\n");
return -ENOENT;
}
return 0;
}
#else
int spl_start_uboot(void)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment