From: Simon Glass Date: Sun, 25 Sep 2016 00:20:16 +0000 (-0600) Subject: spl: Update spl_load_simple_fit() to take an spl_image param X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f4d7d8596f3a4f5bce500c622b75d2e9c8d6f989;p=people%2Fms%2Fu-boot.git spl: Update spl_load_simple_fit() to take an spl_image param Upda the SPL FIT code to use the spl_image parameter. Signed-off-by: Simon Glass Reviewed-by: Tom Rini --- diff --git a/common/spl/spl.c b/common/spl/spl.c index fae3dbc719..3dafa508f7 100644 --- a/common/spl/spl.c +++ b/common/spl/spl.c @@ -204,7 +204,7 @@ static int spl_ram_load_image(struct spl_image_info *spl_image, debug("Found FIT\n"); load.bl_len = 1; load.read = spl_ram_load_read; - spl_load_simple_fit(&load, 0, header); + spl_load_simple_fit(spl_image, &load, 0, header); } else { debug("Legacy image\n"); /* diff --git a/common/spl/spl_fat.c b/common/spl/spl_fat.c index e2bb00029c..a14acceebb 100644 --- a/common/spl/spl_fat.c +++ b/common/spl/spl_fat.c @@ -82,7 +82,7 @@ int spl_load_image_fat(struct spl_image_info *spl_image, load.filename = (void *)filename; load.priv = NULL; - return spl_load_simple_fit(&load, 0, header); + return spl_load_simple_fit(spl_image, &load, 0, header); } else { err = spl_parse_image_header(spl_image, header); if (err) diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c index be86072c24..aae556f97d 100644 --- a/common/spl/spl_fit.c +++ b/common/spl/spl_fit.c @@ -123,7 +123,8 @@ static int get_aligned_image_size(struct spl_load_info *info, int data_size, return (data_size + info->bl_len - 1) / info->bl_len; } -int spl_load_simple_fit(struct spl_load_info *info, ulong sector, void *fit) +int spl_load_simple_fit(struct spl_image_info *spl_image, + struct spl_load_info *info, ulong sector, void *fit) { int sectors; ulong size, load; @@ -184,9 +185,9 @@ int spl_load_simple_fit(struct spl_load_info *info, ulong sector, void *fit) data_size = fdt_getprop_u32(fit, node, "data-size"); load = fdt_getprop_u32(fit, node, "load"); debug("data_offset=%x, data_size=%x\n", data_offset, data_size); - spl_image.load_addr = load; - spl_image.entry_point = load; - spl_image.os = IH_OS_U_BOOT; + spl_image->load_addr = load; + spl_image->entry_point = load; + spl_image->os = IH_OS_U_BOOT; /* * Work out where to place the image. We read it so that the first diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c index 16a6b49e7a..c674e61cbd 100644 --- a/common/spl/spl_mmc.c +++ b/common/spl/spl_mmc.c @@ -80,7 +80,7 @@ static int mmc_load_image_raw_sector(struct spl_image_info *spl_image, load.filename = NULL; load.bl_len = mmc->read_bl_len; load.read = h_spl_load_read; - ret = spl_load_simple_fit(&load, sector, header); + ret = spl_load_simple_fit(spl_image, &load, sector, header); } else { ret = mmc_load_legacy(spl_image, mmc, sector, header); } diff --git a/common/spl/spl_nand.c b/common/spl/spl_nand.c index 5cf712e29a..d1abda6e4c 100644 --- a/common/spl/spl_nand.c +++ b/common/spl/spl_nand.c @@ -59,7 +59,7 @@ static int spl_nand_load_element(struct spl_image_info *spl_image, load.filename = NULL; load.bl_len = 1; load.read = spl_nand_fit_read; - return spl_load_simple_fit(&load, offset, header); + return spl_load_simple_fit(spl_image, &load, offset, header); } else { err = spl_parse_image_header(spl_image, header); if (err) diff --git a/common/spl/spl_spi.c b/common/spl/spl_spi.c index 4bf3d65967..a3caafbd46 100644 --- a/common/spl/spl_spi.c +++ b/common/spl/spl_spi.c @@ -108,7 +108,7 @@ static int spl_spi_load_image(struct spl_image_info *spl_image, load.filename = NULL; load.bl_len = 1; load.read = spl_spi_fit_read; - err = spl_load_simple_fit(&load, + err = spl_load_simple_fit(spl_image, &load, CONFIG_SYS_SPI_U_BOOT_OFFS, header); } else { diff --git a/common/spl/spl_ymodem.c b/common/spl/spl_ymodem.c index 8fbf8958a1..13e8e51da9 100644 --- a/common/spl/spl_ymodem.c +++ b/common/spl/spl_ymodem.c @@ -103,7 +103,7 @@ static int spl_ymodem_load_image(struct spl_image_info *spl_image, info.buf = buf; info.image_read = BUF_SIZE; load.read = ymodem_read_fit; - ret = spl_load_simple_fit(&load, 0, (void *)buf); + ret = spl_load_simple_fit(spl_image, &load, 0, (void *)buf); size = info.image_read; while ((res = xyzModem_stream_read(buf, BUF_SIZE, &err)) > 0) diff --git a/include/spl.h b/include/spl.h index 1f4f4e5237..0b97cda7fc 100644 --- a/include/spl.h +++ b/include/spl.h @@ -49,6 +49,7 @@ struct spl_load_info { /** * spl_load_simple_fit() - Loads a fit image from a device. + * @spl_image: Image description to set up * @info: Structure containing the information required to load data. * @sector: Sector number where FIT image is located in the device * @fdt: Pointer to the copied FIT header. @@ -57,7 +58,8 @@ struct spl_load_info { * specified load address and copies the dtb to end of u-boot image. * Returns 0 on success. */ -int spl_load_simple_fit(struct spl_load_info *info, ulong sector, void *fdt); +int spl_load_simple_fit(struct spl_image_info *spl_image, + struct spl_load_info *info, ulong sector, void *fdt); #define SPL_COPY_PAYLOAD_ONLY 1