1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- From b4e5137067d34a099efd921532ece177560789ca Mon Sep 17 00:00:00 2001
- From: Weijie Gao <[email protected]>
- Date: Fri, 20 May 2022 11:24:04 +0800
- Subject: [PATCH 23/25] spl: nand: support loading legacy image with payload
- compressed
- Add support to load legacy image with payload compressed. This redirects
- the boot flow for all legacy images. If the payload is not compressed, the
- actual behavior will remain unchanged.
- Reviewed-by: Daniel Schwierzeck <[email protected]>
- Signed-off-by: Weijie Gao <[email protected]>
- ---
- common/spl/spl_nand.c | 27 +++++++++++++++++++++++++++
- 1 file changed, 27 insertions(+)
- --- a/common/spl/spl_nand.c
- +++ b/common/spl/spl_nand.c
- @@ -56,6 +56,21 @@ static ulong spl_nand_fit_read(struct sp
- return size / load->bl_len;
- }
-
- +static ulong spl_nand_legacy_read(struct spl_load_info *load, ulong offs,
- + ulong size, void *dst)
- +{
- + int err;
- +
- + debug("%s: offs %lx, size %lx, dst %p\n",
- + __func__, offs, size, dst);
- +
- + err = nand_spl_load_image(offs, size, dst);
- + if (err)
- + return 0;
- +
- + return size;
- +}
- +
- struct mtd_info * __weak nand_get_mtd(void)
- {
- return NULL;
- @@ -93,6 +108,18 @@ static int spl_nand_load_element(struct
- load.bl_len = bl_len;
- load.read = spl_nand_fit_read;
- return spl_load_imx_container(spl_image, &load, offset / bl_len);
- + } else if (IS_ENABLED(CONFIG_SPL_LEGACY_IMAGE_FORMAT) &&
- + image_get_magic(header) == IH_MAGIC) {
- + struct spl_load_info load;
- +
- + debug("Found legacy image\n");
- + load.dev = NULL;
- + load.priv = NULL;
- + load.filename = NULL;
- + load.bl_len = 1;
- + load.read = spl_nand_legacy_read;
- +
- + return spl_load_legacy_img(spl_image, bootdev, &load, offset);
- } else {
- err = spl_parse_image_header(spl_image, bootdev, header);
- if (err)
|