
On 3/7/19 5:59 AM, Lokesh Vutla wrote:
On 07/03/19 2:34 AM, Marek Vasut wrote:
Add support for loading fully featured fitImages over YModem in SPL. This is useful when various advanced features of full fitImages are needed in SPL.
Signed-off-by: Marek Vasut marex@denx.de Cc: Tom Rini trini@konsulko.com
common/spl/spl_ymodem.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/common/spl/spl_ymodem.c b/common/spl/spl_ymodem.c index 577fdc69af..4c2e84e07d 100644 --- a/common/spl/spl_ymodem.c +++ b/common/spl/spl_ymodem.c @@ -89,7 +89,25 @@ static int spl_ymodem_load_image(struct spl_image_info *spl_image, if (res <= 0) goto end_stream;
- if (IS_ENABLED(CONFIG_SPL_LOAD_FIT) &&
- if (IS_ENABLED(CONFIG_SPL_LOAD_FIT_FULL) &&
image_get_magic((struct image_header *)buf) == FDT_MAGIC) {
addr = CONFIG_SYS_LOAD_ADDR;
ih = (struct image_header *)addr;
memcpy((void *)addr, buf, res);
size += res;
addr += res;
while ((res = xyzModem_stream_read(buf, BUF_SIZE, &err)) > 0) {
memcpy((void *)addr, buf, res);
size += res;
addr += res;
}
okay, but you are not parsing the FIT image here. Is this even booting? or you are doing some parsing after loading?
Yes, it's booting since I'm using it for that purpose. I am doing some parsing after loading, see spl_parse_image_header(spl_image, ih); right below.
Also this code looks very much similar to the one available in the else part. Can we re use it?
No, that'd become a mess real quick, I don't want to mix those two use cases.
Thanks and regards, Lokesh
ret = spl_parse_image_header(spl_image, ih);
if (ret)
return ret;
- } else if (IS_ENABLED(CONFIG_SPL_LOAD_FIT) && image_get_magic((struct image_header *)buf) == FDT_MAGIC) { struct spl_load_info load; struct ymodem_fit_info info;