mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-08 19:11:53 +00:00
spl: spl_nor: Move legacy image loading into spl_legacy.c
Move the legacy image loading into spl_legacy.c. This makes it easier to extend the legacy image handling with new features that other SPL loaders might use (e.g. spl_spi.c etc). No functional change intended. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Weijie Gao <weijie.gao@mediatek.com> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com> Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
This commit is contained in:
parent
5ae526b61f
commit
2fc91ed3ba
3 changed files with 40 additions and 8 deletions
|
@ -51,3 +51,23 @@ int spl_parse_legacy_header(struct spl_image_info *spl_image,
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int spl_load_legacy_img(struct spl_image_info *spl_image,
|
||||||
|
struct spl_load_info *load, ulong header)
|
||||||
|
{
|
||||||
|
struct image_header hdr;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
/* Read header into local struct */
|
||||||
|
load->read(load, header, sizeof(hdr), &hdr);
|
||||||
|
|
||||||
|
ret = spl_parse_image_header(spl_image, &hdr);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
/* Read image */
|
||||||
|
load->read(load, header + sizeof(hdr), spl_image->size,
|
||||||
|
(void *)(unsigned long)spl_image->load_addr);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
@ -107,14 +107,13 @@ static int spl_nor_load_image(struct spl_image_info *spl_image,
|
||||||
spl_nor_get_uboot_base());
|
spl_nor_get_uboot_base());
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = spl_parse_image_header(spl_image,
|
/* Legacy image handling */
|
||||||
(const struct image_header *)spl_nor_get_uboot_base());
|
if (IS_ENABLED(CONFIG_SPL_LEGACY_IMAGE_SUPPORT)) {
|
||||||
if (ret)
|
load.bl_len = 1;
|
||||||
return ret;
|
load.read = spl_nor_load_read;
|
||||||
|
return spl_load_legacy_img(spl_image, &load,
|
||||||
memcpy((void *)(unsigned long)spl_image->load_addr,
|
spl_nor_get_uboot_base());
|
||||||
(void *)(spl_nor_get_uboot_base() + sizeof(struct image_header)),
|
}
|
||||||
spl_image->size);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -223,6 +223,19 @@ int spl_load_simple_fit(struct spl_image_info *spl_image,
|
||||||
#define SPL_COPY_PAYLOAD_ONLY 1
|
#define SPL_COPY_PAYLOAD_ONLY 1
|
||||||
#define SPL_FIT_FOUND 2
|
#define SPL_FIT_FOUND 2
|
||||||
|
|
||||||
|
/**
|
||||||
|
* spl_load_legacy_img() - Loads a legacy image from a device.
|
||||||
|
* @spl_image: Image description to set up
|
||||||
|
* @load: Structure containing the information required to load data.
|
||||||
|
* @header: Pointer to image header (including appended image)
|
||||||
|
*
|
||||||
|
* Reads an legacy image from the device. Loads u-boot image to
|
||||||
|
* specified load address.
|
||||||
|
* Returns 0 on success.
|
||||||
|
*/
|
||||||
|
int spl_load_legacy_img(struct spl_image_info *spl_image,
|
||||||
|
struct spl_load_info *load, ulong header);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* spl_load_imx_container() - Loads a imx container image from a device.
|
* spl_load_imx_container() - Loads a imx container image from a device.
|
||||||
* @spl_image: Image description to set up
|
* @spl_image: Image description to set up
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue