mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-06-07 07:11:35 +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)
|
static int mmc_load_image_raw_os(struct mmc *mmc)
|
||||||
{
|
{
|
||||||
unsigned long count;
|
unsigned long count;
|
||||||
|
int ret;
|
||||||
|
|
||||||
count = mmc->block_dev.block_read(&mmc->block_dev,
|
count = mmc->block_dev.block_read(&mmc->block_dev,
|
||||||
CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR,
|
CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR,
|
||||||
|
@ -190,8 +191,17 @@ static int mmc_load_image_raw_os(struct mmc *mmc)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return mmc_load_image_raw_sector(mmc,
|
ret = mmc_load_image_raw_sector(mmc,
|
||||||
CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR);
|
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
|
#else
|
||||||
int spl_start_uboot(void)
|
int spl_start_uboot(void)
|
||||||
|
|
Loading…
Add table
Reference in a new issue