]> git.sur5r.net Git - u-boot/blobdiff - common/spl/spl_mmc.c
Remove unnecessary instances of DECLARE_GLOBAL_DATA_PTR
[u-boot] / common / spl / spl_mmc.c
index b57e0b04e46a3174a5ccead5c2489eb9c2ade1f0..e780b82fd2bfa0bfc1dd95d797fe60886aaa32dd 100644 (file)
@@ -16,8 +16,6 @@
 #include <mmc.h>
 #include <image.h>
 
-DECLARE_GLOBAL_DATA_PTR;
-
 static int mmc_load_legacy(struct spl_image_info *spl_image, struct mmc *mmc,
                           ulong sector, struct image_header *header)
 {
@@ -281,6 +279,25 @@ static int spl_mmc_do_fs_boot(struct spl_image_info *spl_image, struct mmc *mmc)
 }
 #endif
 
+u32 __weak spl_boot_mode(const u32 boot_device)
+{
+#if defined(CONFIG_SPL_FAT_SUPPORT) || defined(CONFIG_SPL_EXT_SUPPORT)
+       return MMCSD_MODE_FS;
+#elif defined(CONFIG_SUPPORT_EMMC_BOOT)
+       return MMCSD_MODE_EMMCBOOT;
+#else
+       return MMCSD_MODE_RAW;
+#endif
+}
+
+#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
+__weak
+int spl_boot_partition(const u32 boot_device)
+{
+       return CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION;
+}
+#endif
+
 int spl_mmc_load_image(struct spl_image_info *spl_image,
                       struct spl_boot_device *bootdev)
 {
@@ -336,8 +353,11 @@ int spl_mmc_load_image(struct spl_image_info *spl_image,
                                return err;
                }
 #ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
-               err = mmc_load_image_raw_partition(spl_image, mmc,
-                       CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION);
+               err = spl_boot_partition(bootdev->boot_device);
+               if (!err)
+                       return err;
+
+               err = mmc_load_image_raw_partition(spl_image, mmc, err);
                if (!err)
                        return err;
 #endif