[U-Boot] [PATCH 2/3] spl: fit: Detect a FS load using filename
Lokesh Vutla
lokeshvutla at ti.com
Thu May 19 12:27:56 CEST 2016
Right now a FS load for fit is being detected using the priv field. But
this can be used by others media. So, introduce a filename field to
detect a FS load.
Signed-off-by: Lokesh Vutla <lokeshvutla at ti.com>
---
common/spl/spl_fat.c | 4 ++--
common/spl/spl_fit.c | 6 +++---
include/spl.h | 2 ++
3 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/common/spl/spl_fat.c b/common/spl/spl_fat.c
index cdb9811..9df2fc2 100644
--- a/common/spl/spl_fat.c
+++ b/common/spl/spl_fat.c
@@ -45,7 +45,7 @@ static ulong spl_fit_read(struct spl_load_info *load, ulong file_offset,
{
loff_t actread;
int ret;
- char *filename = (char *)load->priv;
+ const char *filename = load->filename;
ret = fat_read_file(filename, buf, file_offset, size, &actread);
if (ret)
@@ -79,7 +79,7 @@ int spl_load_image_fat(struct blk_desc *block_dev,
debug("Found FIT\n");
load.read = spl_fit_read;
load.bl_len = 1;
- load.priv = (void *)filename;
+ load.filename = filename;
return spl_load_simple_fit(&load, 0, header);
} else {
diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c
index a0ea44c..78ce15f 100644
--- a/common/spl/spl_fit.c
+++ b/common/spl/spl_fit.c
@@ -87,7 +87,7 @@ static int get_aligned_image_offset(struct spl_load_info *info, int offset)
* aligned to ARCH_DMA_MINALIGN. If it is raw read return the
* block number to which offset belongs.
*/
- if (info->priv)
+ if (info->filename)
return offset & ~(ARCH_DMA_MINALIGN - 1);
return offset / info->bl_len;
@@ -101,7 +101,7 @@ static int get_aligned_image_overhead(struct spl_load_info *info, int offset)
* ARCH_DMA_MINALIGN. If it is raw read return the offset within the
* block.
*/
- if (info->priv)
+ if (info->filename)
return offset & (ARCH_DMA_MINALIGN - 1);
return offset % info->bl_len;
@@ -110,7 +110,7 @@ static int get_aligned_image_overhead(struct spl_load_info *info, int offset)
static int get_aligned_image_size(struct spl_load_info *info, int data_size,
int offset)
{
- if (info->priv)
+ if (info->filename)
return data_size + get_aligned_image_overhead(info, offset);
return (data_size + info->bl_len - 1) / info->bl_len;
diff --git a/include/spl.h b/include/spl.h
index 358e81b..af02a6d 100644
--- a/include/spl.h
+++ b/include/spl.h
@@ -35,12 +35,14 @@ struct spl_image_info {
* @dev: Pointer to the device, e.g. struct mmc *
* @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 *dev;
void *priv;
int bl_len;
+ const char *filename;
ulong (*read)(struct spl_load_info *load, ulong sector, ulong count,
void *buf);
};
--
2.8.2
More information about the U-Boot
mailing list