summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/spl/spl_mmc.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c
index 91b5190c07..785bbd5338 100644
--- a/common/spl/spl_mmc.c
+++ b/common/spl/spl_mmc.c
@@ -319,6 +319,14 @@ unsigned long __weak spl_mmc_get_uboot_raw_sector(struct mmc *mmc)
}
#endif
+#ifdef CONFIG_PARSE_CONTAINER
+int __weak mmc_load_image_parse_container(struct spl_image_info *spl_image,
+ struct mmc *mmc, unsigned long sector)
+{
+ return -ENODEV;
+};
+#endif
+
int spl_mmc_load_image(struct spl_image_info *spl_image,
struct spl_boot_device *bootdev)
{
@@ -389,6 +397,13 @@ int spl_mmc_load_image(struct spl_image_info *spl_image,
err = mmc_load_image_raw_sector_dual_uboot(spl_image,
mmc);
#else
+#ifdef CONFIG_PARSE_CONTAINER
+ err = mmc_load_image_parse_container(spl_image, mmc,
+ spl_mmc_get_uboot_raw_sector(mmc));
+
+ if (!err)
+ return err;
+#endif
err = mmc_load_image_raw_sector(spl_image, mmc,
spl_mmc_get_uboot_raw_sector(mmc));
#endif