This converts the mmc loader to spl_load. Legacy images are handled by
spl_load (via spl_parse_image_header), so mmc_load_legacy can be
omitted.

Signed-off-by: Sean Anderson <sean.ander...@seco.com>
Reviewed-by: Stefan Roese <s...@denx.de>
---

(no changes since v1)

 common/spl/spl_mmc.c | 73 ++++----------------------------------------
 1 file changed, 6 insertions(+), 67 deletions(-)

diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c
index 6116a68371..93a28cdaa9 100644
--- a/common/spl/spl_mmc.c
+++ b/common/spl/spl_mmc.c
@@ -17,48 +17,6 @@
 #include <mmc.h>
 #include <image.h>
 
-static int mmc_load_legacy(struct spl_image_info *spl_image,
-                          struct spl_boot_device *bootdev,
-                          struct mmc *mmc,
-                          ulong sector, struct image_header *header)
-{
-       u32 image_offset_sectors;
-       u32 image_size_sectors;
-       unsigned long count;
-       u32 image_offset;
-       int ret;
-
-       ret = spl_parse_image_header(spl_image, bootdev, header);
-       if (ret)
-               return ret;
-
-       /* convert offset to sectors - round down */
-       image_offset_sectors = spl_image->offset / mmc->read_bl_len;
-       /* calculate remaining offset */
-       image_offset = spl_image->offset % mmc->read_bl_len;
-
-       /* convert size to sectors - round up */
-       image_size_sectors = (spl_image->size + mmc->read_bl_len - 1) /
-                            mmc->read_bl_len;
-
-       /* Read the header too to avoid extra memcpy */
-       count = blk_dread(mmc_get_blk_desc(mmc),
-                         sector + image_offset_sectors,
-                         image_size_sectors,
-                         (void *)(ulong)spl_image->load_addr);
-       debug("read %x sectors to %lx\n", image_size_sectors,
-             spl_image->load_addr);
-       if (count != image_size_sectors)
-               return -EIO;
-
-       if (image_offset)
-               memmove((void *)(ulong)spl_image->load_addr,
-                       (void *)(ulong)spl_image->load_addr + image_offset,
-                       spl_image->size);
-
-       return 0;
-}
-
 static ulong h_spl_load_read(struct spl_load_info *load, ulong sector,
                             ulong count, void *buf)
 {
@@ -86,6 +44,11 @@ int mmc_load_image_raw_sector(struct spl_image_info 
*spl_image,
        struct image_header *header;
        struct blk_desc *bd = mmc_get_blk_desc(mmc);
        int ret = 0;
+       struct spl_load_info load = {
+               .dev = mmc,
+               .bl_len = mmc->read_bl_len,
+               .read = h_spl_load_read,
+       };
 
        header = spl_get_load_buffer(-sizeof(*header), bd->blksz);
 
@@ -97,31 +60,7 @@ int mmc_load_image_raw_sector(struct spl_image_info 
*spl_image,
                goto end;
        }
 
-       if (IS_ENABLED(CONFIG_SPL_LOAD_FIT) &&
-           image_get_magic(header) == FDT_MAGIC) {
-               struct spl_load_info load;
-
-               debug("Found FIT\n");
-               load.dev = mmc;
-               load.priv = NULL;
-               load.filename = NULL;
-               load.bl_len = mmc->read_bl_len;
-               load.read = h_spl_load_read;
-               ret = spl_load_simple_fit(spl_image, &load, sector, header);
-       } else if (IS_ENABLED(CONFIG_SPL_LOAD_IMX_CONTAINER)) {
-               struct spl_load_info load;
-
-               load.dev = mmc;
-               load.priv = NULL;
-               load.filename = NULL;
-               load.bl_len = mmc->read_bl_len;
-               load.read = h_spl_load_read;
-
-               ret = spl_load_imx_container(spl_image, &load, sector);
-       } else {
-               ret = mmc_load_legacy(spl_image, bootdev, mmc, sector, header);
-       }
-
+       ret = spl_load(spl_image, bootdev, &load, header, 0, sector);
 end:
        if (ret) {
 #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
-- 
2.35.1.1320.gc452695387.dirty

Reply via email to