]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
spl: nand: Remove spl_nand_legacy_read
authorSean Anderson <seanga2@gmail.com>
Wed, 8 Nov 2023 16:48:44 +0000 (11:48 -0500)
committerTom Rini <trini@konsulko.com>
Thu, 16 Nov 2023 18:49:14 +0000 (13:49 -0500)
Now that spl_nand_fit_read works in units of bytes, it can be combined with
spl_nand_legacy_read. Rename the resulting function spl_nand_read, since it
is no longer FIT-specific.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
common/spl/spl_nand.c

index 281211b7f24a18c58bba5ab876c24cc79e3b9a92..91fa7674f178565cc40f29dbaad8c26262172fa0 100644 (file)
@@ -42,29 +42,22 @@ static int spl_nand_load_image(struct spl_image_info *spl_image,
 }
 #else
 
-static ulong spl_nand_fit_read(struct spl_load_info *load, ulong offs,
-                              ulong size, void *dst)
+__weak u32 nand_spl_adjust_offset(u32 sector, u32 offs)
 {
-       int err;
-       ulong sector;
-
-       sector = *(int *)load->priv;
-       offs = sector + nand_spl_adjust_offset(sector, offs - sector);
-       err = nand_spl_load_image(offs, size, dst);
-       if (err)
-               return 0;
-
-       return size;
+       return offs;
 }
 
-static ulong spl_nand_legacy_read(struct spl_load_info *load, ulong offs,
-                                 ulong size, void *dst)
+static ulong spl_nand_read(struct spl_load_info *load, ulong offs, ulong size,
+                          void *dst)
 {
        int err;
+       ulong sector;
 
        debug("%s: offs %lx, size %lx, dst %p\n",
              __func__, offs, size, dst);
 
+       sector = *(int *)load->priv;
+       offs = sector + nand_spl_adjust_offset(sector, offs - sector);
        err = nand_spl_load_image(offs, size, dst);
        if (err)
                return 0;
@@ -91,7 +84,7 @@ static int spl_nand_load_element(struct spl_image_info *spl_image,
                debug("Found FIT\n");
                load.priv = &offset;
                spl_set_bl_len(&load, bl_len);
-               load.read = spl_nand_fit_read;
+               load.read = spl_nand_read;
                return spl_load_simple_fit(spl_image, &load, offset, header);
        } else if (IS_ENABLED(CONFIG_SPL_LOAD_IMX_CONTAINER) &&
                   valid_container_hdr((void *)header)) {
@@ -99,16 +92,16 @@ static int spl_nand_load_element(struct spl_image_info *spl_image,
 
                load.priv = &offset;
                spl_set_bl_len(&load, bl_len);
-               load.read = spl_nand_fit_read;
+               load.read = spl_nand_read;
                return spl_load_imx_container(spl_image, &load, offset);
        } else if (IS_ENABLED(CONFIG_SPL_LEGACY_IMAGE_FORMAT) &&
                   image_get_magic(header) == IH_MAGIC) {
                struct spl_load_info load;
 
                debug("Found legacy image\n");
+               load.priv = &offset;
                spl_set_bl_len(&load, IS_ENABLED(CONFIG_SPL_LZMA) ? bl_len : 1);
-               load.read = spl_nand_legacy_read;
-
+               load.read = spl_nand_read;
                return spl_load_legacy_img(spl_image, bootdev, &load, offset, header);
        } else {
                err = spl_parse_image_header(spl_image, bootdev, header);