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
@ -51,3 +51,23 @@ int spl_parse_legacy_header(struct spl_image_info *spl_image,
|
||||
|
||||
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());
|
||||
}
|
||||
|
||||
ret = spl_parse_image_header(spl_image,
|
||||
(const struct image_header *)spl_nor_get_uboot_base());
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
memcpy((void *)(unsigned long)spl_image->load_addr,
|
||||
(void *)(spl_nor_get_uboot_base() + sizeof(struct image_header)),
|
||||
spl_image->size);
|
||||
/* Legacy image handling */
|
||||
if (IS_ENABLED(CONFIG_SPL_LEGACY_IMAGE_SUPPORT)) {
|
||||
load.bl_len = 1;
|
||||
load.read = spl_nor_load_read;
|
||||
return spl_load_legacy_img(spl_image, &load,
|
||||
spl_nor_get_uboot_base());
|
||||
}
|
||||
|
||||
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_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_image: Image description to set up
|
||||
|
Loading…
Reference in New Issue
Block a user