]> git.sur5r.net Git - u-boot/commitdiff
spl: mmc: get rid of emmc boot code duplication
authorNikita Kiryanov <nikita@compulab.co.il>
Sun, 8 Nov 2015 15:11:48 +0000 (17:11 +0200)
committerTom Rini <trini@konsulko.com>
Wed, 18 Nov 2015 19:50:02 +0000 (14:50 -0500)
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>
common/spl/spl_mmc.c

index 5dc576bdff3b3728f10f1842384c2a7c62c094eb..7d100faaa0257be4245371cfc028bc222e76f43d 100644 (file)
@@ -240,6 +240,24 @@ void spl_mmc_load_image(void)
 
        boot_mode = spl_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:
                debug("spl: mmc boot mode: raw\n");
 
@@ -268,42 +286,6 @@ void spl_mmc_load_image(void)
                        return;
 
                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:
 #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
        default: