spl: mmc: get rid of emmc boot code duplication
Get rid of emmc boot code duplication in spl_mmc_load_image() using a switch case fallthrough into MMCSD_MODE_RAW. Since the #ifdef CONFIG_SUPPORT_EMMC_BOOT check is not really necessary, remove it in the process. No functional changes. Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il> Cc: Igor Grinberg <grinberg@compulab.co.il> Cc: Paul Kocialkowski <contact@paulk.fr> Cc: Pantelis Antoniou <panto@antoniou-consulting.com> Cc: Tom Rini <trini@konsulko.com> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
committed by
Tom Rini
parent
f52b729393
commit
83cdf6faa6
@@ -240,6 +240,24 @@ void spl_mmc_load_image(void)
|
|||||||
|
|
||||||
boot_mode = spl_boot_mode();
|
boot_mode = spl_boot_mode();
|
||||||
switch (boot_mode) {
|
switch (boot_mode) {
|
||||||
|
case MMCSD_MODE_EMMCBOOT:
|
||||||
|
/*
|
||||||
|
* We need to check what the partition is configured to.
|
||||||
|
* 1 and 2 match up to boot0 / boot1 and 7 is user data
|
||||||
|
* which is the first physical partition (0).
|
||||||
|
*/
|
||||||
|
part = (mmc->part_config >> 3) & PART_ACCESS_MASK;
|
||||||
|
|
||||||
|
if (part == 7)
|
||||||
|
part = 0;
|
||||||
|
|
||||||
|
if (mmc_switch_part(0, part)) {
|
||||||
|
#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
|
||||||
|
puts("spl: mmc partition switch failed\n");
|
||||||
|
#endif
|
||||||
|
hang();
|
||||||
|
}
|
||||||
|
/* Fall through */
|
||||||
case MMCSD_MODE_RAW:
|
case MMCSD_MODE_RAW:
|
||||||
debug("spl: mmc boot mode: raw\n");
|
debug("spl: mmc boot mode: raw\n");
|
||||||
|
|
||||||
@@ -268,42 +286,6 @@ void spl_mmc_load_image(void)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
#ifdef CONFIG_SUPPORT_EMMC_BOOT
|
|
||||||
case MMCSD_MODE_EMMCBOOT:
|
|
||||||
/*
|
|
||||||
* We need to check what the partition is configured to.
|
|
||||||
* 1 and 2 match up to boot0 / boot1 and 7 is user data
|
|
||||||
* which is the first physical partition (0).
|
|
||||||
*/
|
|
||||||
part = (mmc->part_config >> 3) & PART_ACCESS_MASK;
|
|
||||||
|
|
||||||
if (part == 7)
|
|
||||||
part = 0;
|
|
||||||
|
|
||||||
if (mmc_switch_part(0, part)) {
|
|
||||||
#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
|
|
||||||
puts("spl: mmc partition switch failed\n");
|
|
||||||
#endif
|
|
||||||
hang();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!spl_start_uboot()) {
|
|
||||||
err = mmc_load_image_raw_os(mmc);
|
|
||||||
if (!err)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
err = mmc_load_image_raw_partition(mmc,
|
|
||||||
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION);
|
|
||||||
if (!err)
|
|
||||||
return;
|
|
||||||
#if defined(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR)
|
|
||||||
err = mmc_load_image_raw_sector(mmc,
|
|
||||||
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR);
|
|
||||||
if (!err)
|
|
||||||
return;
|
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
case MMCSD_MODE_UNDEFINED:
|
case MMCSD_MODE_UNDEFINED:
|
||||||
#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
|
#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user