Re: [U-Boot] [PATCH] spl: ymodem: Add support for loading full fitImages

2019-03-07 Thread Marek Vasut
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 
>> Cc: Tom Rini 
>> ---
>>  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, )) > 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
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH] spl: ymodem: Add support for loading full fitImages

2019-03-06 Thread Lokesh Vutla


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 
> Cc: Tom Rini 
> ---
>  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, )) > 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?

Also this code looks very much similar to the one available in the else part.
Can we re use it?

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;
> 
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH] spl: ymodem: Add support for loading full fitImages

2019-03-06 Thread Marek Vasut
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 
Cc: Tom Rini 
---
 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, )) > 0) {
+   memcpy((void *)addr, buf, res);
+   size += res;
+   addr += res;
+   }
+
+   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;
-- 
2.20.1

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot