mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
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: Lokesh Vutla <lokeshvutla@ti.com>
This commit is contained in:
parent
df120142f3
commit
811906aebc
1 changed files with 11 additions and 1 deletions
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue