[U-Boot] [PATCH] spl: ymodem: Add support for loading full fitImages
Marek Vasut
marex at denx.de
Thu Mar 7 08:16:03 UTC 2019
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 at denx.de>
>> Cc: Tom Rini <trini at 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;
>>
--
Best regards,
Marek Vasut
More information about the U-Boot
mailing list