From afdd2d98c29c443f348fd88198e59b78d50f4e2c Mon Sep 17 00:00:00 2001 From: Sean Anderson Date: Wed, 8 Nov 2023 11:48:42 -0500 Subject: [PATCH] spl: Remove filename from spl_load_info 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 Reviewed-by: Simon Glass --- 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(-) diff --git a/arch/arm/mach-sunxi/spl_spi_sunxi.c b/arch/arm/mach-sunxi/spl_spi_sunxi.c index 896aba69c3..5e7fba0c8e 100644 --- a/arch/arm/mach-sunxi/spl_spi_sunxi.c +++ b/arch/arm/mach-sunxi/spl_spi_sunxi.c @@ -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, diff --git a/common/spl/spl_blk_fs.c b/common/spl/spl_blk_fs.c index c105c55877..4975ce4d6e 100644 --- a/common/spl/spl_blk_fs.c +++ b/common/spl/spl_blk_fs.c @@ -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); } diff --git a/common/spl/spl_fat.c b/common/spl/spl_fat.c index 5b72345647..8a2c4e3af4 100644 --- a/common/spl/spl_fat.c +++ b/common/spl/spl_fat.c @@ -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 { diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c index 9f41ea648c..8c4ffe743d 100644 --- a/common/spl/spl_mmc.c +++ b/common/spl/spl_mmc.c @@ -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; diff --git a/common/spl/spl_nand.c b/common/spl/spl_nand.c index 1fcc89fa66..45d7c5f6cf 100644 --- a/common/spl/spl_nand.c +++ b/common/spl/spl_nand.c @@ -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; diff --git a/common/spl/spl_semihosting.c b/common/spl/spl_semihosting.c index 8f11c29913..24a3d9fd1c 100644 --- a/common/spl/spl_semihosting.c +++ b/common/spl/spl_semihosting.c @@ -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); diff --git a/common/spl/spl_spi.c b/common/spl/spl_spi.c index af7a28e7c2..373caea322 100644 --- a/common/spl/spl_spi.c +++ b/common/spl/spl_spi.c @@ -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; diff --git a/common/spl/spl_ymodem.c b/common/spl/spl_ymodem.c index 8616cb3e91..3f92b9b003 100644 --- a/common/spl/spl_ymodem.c +++ b/common/spl/spl_ymodem.c @@ -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; diff --git a/include/spl.h b/include/spl.h index 5a355e0a1e..fec656d301 100644 --- a/include/spl.h +++ b/include/spl.h @@ -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 * diff --git a/test/image/spl_load_os.c b/test/image/spl_load_os.c index 794cfad4e7..f46df907c6 100644 --- a/test/image/spl_load_os.c +++ b/test/image/spl_load_os.c @@ -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)); -- 2.39.5