On 4/1/22 21:04, Sean Anderson wrote:
This converts the spi load method to use spl_load. As a consequence, it
also adds support for LOAD_FIT_FULL.

Signed-off-by: Sean Anderson <sean.ander...@seco.com>

Reviewed-by: Stefan Roese <s...@denx.de>

Thanks,
Stefan

---

  common/spl/spl_spi.c | 48 +++++++-------------------------------------
  1 file changed, 7 insertions(+), 41 deletions(-)

diff --git a/common/spl/spl_spi.c b/common/spl/spl_spi.c
index cf3f7ef4c0..037db1a19f 100644
--- a/common/spl/spl_spi.c
+++ b/common/spl/spl_spi.c
@@ -83,6 +83,10 @@ static int spl_spi_load_image(struct spl_image_info 
*spl_image,
        unsigned int payload_offs;
        struct spi_flash *flash;
        struct image_header *header;
+       struct spl_load_info load = {
+               .bl_len = 1,
+               .read = spl_spi_fit_read,
+       };
/*
         * Load U-Boot image from SPI flash into RAM
@@ -99,6 +103,7 @@ static int spl_spi_load_image(struct spl_image_info 
*spl_image,
                return -ENODEV;
        }
+ load.dev = flash;
        payload_offs = spl_spi_get_uboot_offs(flash);
header = spl_get_load_buffer(-sizeof(*header), sizeof(*header));
@@ -121,47 +126,8 @@ static int spl_spi_load_image(struct spl_image_info 
*spl_image,
                        return err;
                }
- if (IS_ENABLED(CONFIG_SPL_LOAD_FIT_FULL) &&
-                   image_get_magic(header) == FDT_MAGIC) {
-                       err = spi_flash_read(flash, payload_offs,
-                                            roundup(fdt_totalsize(header), 4),
-                                            (void *)CONFIG_SYS_LOAD_ADDR);
-                       if (err)
-                               return err;
-                       err = spl_parse_image_header(spl_image, bootdev,
-                                       (struct image_header 
*)CONFIG_SYS_LOAD_ADDR);
-               } else if (IS_ENABLED(CONFIG_SPL_LOAD_FIT) &&
-                          image_get_magic(header) == FDT_MAGIC) {
-                       struct spl_load_info load;
-
-                       debug("Found FIT\n");
-                       load.dev = flash;
-                       load.priv = NULL;
-                       load.filename = NULL;
-                       load.bl_len = 1;
-                       load.read = spl_spi_fit_read;
-                       err = spl_load_simple_fit(spl_image, &load,
-                                                 payload_offs,
-                                                 header);
-               } else if (IS_ENABLED(CONFIG_SPL_LOAD_IMX_CONTAINER)) {
-                       struct spl_load_info load;
-
-                       load.dev = flash;
-                       load.priv = NULL;
-                       load.filename = NULL;
-                       load.bl_len = 1;
-                       load.read = spl_spi_fit_read;
-
-                       err = spl_load_imx_container(spl_image, &load,
-                                                    payload_offs);
-               } else {
-                       err = spl_parse_image_header(spl_image, bootdev, 
header);
-                       if (err)
-                               return err;
-                       err = spi_flash_read(flash, payload_offs + 
spl_image->offset,
-                                            spl_image->size,
-                                            (void *)spl_image->load_addr);
-               }
+               err = spl_load(spl_image, bootdev, &load, header, 0,
+                              payload_offs);
        }
return err;

Viele Grüße,
Stefan Roese

--
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: s...@denx.de

Reply via email to