@@ -354,7 +354,6 @@ static int spl_spi_load_image(struct spl_image_info *spl_image,
struct spl_load_info load;
debug("Found FIT image\n");
- load.filename = NULL;
load.bl_len = 1;
load.read = spi_load_read;
ret = spl_load_simple_fit(spl_image, &load,
@@ -14,6 +14,7 @@
struct blk_dev {
const char *ifname;
+ const char *filename;
char dev_part_str[8];
};
@@ -31,11 +32,11 @@ static ulong spl_fit_read(struct spl_load_info *load, ulong file_offset,
return ret;
}
- ret = fs_read(load->filename, virt_to_phys(buf), file_offset, size,
+ ret = fs_read(dev->filename, virt_to_phys(buf), file_offset, size,
&actlen);
if (ret < 0) {
printf("spl: error reading image %s. Err - %d\n",
- load->filename, ret);
+ dev->filename, ret);
return ret;
}
@@ -87,8 +88,8 @@ int spl_blk_load_image(struct spl_image_info *spl_image,
debug("Found FIT\n");
load.read = spl_fit_read;
load.bl_len = ARCH_DMA_MINALIGN;
- load.filename = (void *)filename;
load.priv = &dev;
+ dev.filename = filename;
return spl_load_simple_fit(spl_image, &load, 0, header);
}
@@ -51,7 +51,7 @@ static ulong spl_fit_read(struct spl_load_info *load, ulong file_offset,
{
loff_t actread;
int ret;
- char *filename = (char *)load->filename;
+ char *filename = load->priv;
ret = fat_read_file(filename, buf, file_offset, size, &actread);
if (ret)
@@ -98,7 +98,7 @@ int spl_load_image_fat(struct spl_image_info *spl_image,
debug("Found FIT\n");
load.read = spl_fit_read;
load.bl_len = ARCH_DMA_MINALIGN;
- load.filename = (void *)filename;
+ load.priv = (void *)filename;
return spl_load_simple_fit(spl_image, &load, 0, header);
} else {
@@ -108,7 +108,6 @@ int mmc_load_image_raw_sector(struct spl_image_info *spl_image,
debug("Found FIT\n");
load.priv = bd;
- load.filename = NULL;
load.bl_len = bd->blksz;
load.read = h_spl_load_read;
ret = spl_load_simple_fit(spl_image, &load,
@@ -118,7 +117,6 @@ int mmc_load_image_raw_sector(struct spl_image_info *spl_image,
struct spl_load_info load;
load.priv = bd;
- load.filename = NULL;
load.bl_len = bd->blksz;
load.read = h_spl_load_read;
@@ -90,7 +90,6 @@ static int spl_nand_load_element(struct spl_image_info *spl_image,
debug("Found FIT\n");
load.priv = &offset;
- load.filename = NULL;
load.bl_len = bl_len;
load.read = spl_nand_fit_read;
return spl_load_simple_fit(spl_image, &load, offset, header);
@@ -99,7 +98,6 @@ static int spl_nand_load_element(struct spl_image_info *spl_image,
struct spl_load_info load;
load.priv = &offset;
- load.filename = NULL;
load.bl_len = bl_len;
load.read = spl_nand_fit_read;
return spl_load_imx_container(spl_image, &load, offset);
@@ -108,7 +106,6 @@ static int spl_nand_load_element(struct spl_image_info *spl_image,
struct spl_load_info load;
debug("Found legacy image\n");
- load.filename = NULL;
load.bl_len = IS_ENABLED(CONFIG_SPL_LZMA) ? bl_len : 1;
load.read = spl_nand_legacy_read;
@@ -69,7 +69,6 @@ static int spl_smh_load_image(struct spl_image_info *spl_image,
debug("Found FIT\n");
load.read = smh_fit_read;
load.bl_len = 1;
- load.filename = NULL;
load.priv = &fd;
ret = spl_load_simple_fit(spl_image, &load, 0, header);
@@ -152,7 +152,6 @@ static int spl_spi_load_image(struct spl_image_info *spl_image,
debug("Found FIT\n");
load.priv = flash;
- load.filename = NULL;
load.bl_len = 1;
load.read = spl_spi_fit_read;
err = spl_load_simple_fit(spl_image, &load,
@@ -163,7 +162,6 @@ static int spl_spi_load_image(struct spl_image_info *spl_image,
struct spl_load_info load;
load.priv = flash;
- load.filename = NULL;
load.bl_len = 1;
load.read = spl_spi_fit_read;
@@ -135,7 +135,6 @@ int spl_ymodem_load_image(struct spl_image_info *spl_image,
debug("Found FIT\n");
load.priv = (void *)&info;
- load.filename = NULL;
load.bl_len = 1;
info.buf = buf;
info.image_read = BUF_SIZE;
@@ -287,12 +287,10 @@ static inline void *spl_image_fdt_addr(struct spl_image_info *info)
*
* @priv: Private data for the device
* @bl_len: Block length for reading in bytes
- * @filename: Name of the fit image file.
* @read: Function to call to read from the device
*/
struct spl_load_info {
void *priv;
- const char *filename;
/**
* read() - Read from device
*
@@ -57,7 +57,6 @@ static int spl_test_load(struct unit_test_state *uts)
ret = sandbox_find_next_phase(fname, sizeof(fname), true);
if (ret)
ut_assertf(0, "%s not found, error %d\n", fname, ret);
- load.filename = fname;
header = spl_get_load_buffer(-sizeof(*header), sizeof(*header));
For filesystems, filename serves the same purpose as priv. However, spl_load_fit_image also uses it to determine whether to use a DMA-aligned buffer. This is beneficial for FAT, which uses a bounce-buffer if the destination is not DMA-aligned. However, this is unnecessary now that filesystems set bl_len to ARCH_DMA_MINALIGN instead. With this done, we can remove filename entirely. Signed-off-by: Sean Anderson <seanga2@gmail.com> --- Changes in v7: - Split off setting bl_len to ARCH_DMA_MINALIGN from filename removal Changes in v6: - New arch/arm/mach-sunxi/spl_spi_sunxi.c | 1 - common/spl/spl_blk_fs.c | 7 ++++--- common/spl/spl_fat.c | 4 ++-- common/spl/spl_mmc.c | 2 -- common/spl/spl_nand.c | 3 --- common/spl/spl_semihosting.c | 1 - common/spl/spl_spi.c | 2 -- common/spl/spl_ymodem.c | 1 - include/spl.h | 2 -- test/image/spl_load_os.c | 1 - 10 files changed, 6 insertions(+), 18 deletions(-)