[U-Boot] [U-Boot, v2, 3/5] spl: fit: Eanble GZIP support for image decompression

Heinrich Schuchardt xypron.glpk at gmx.de
Thu Sep 14 17:59:56 UTC 2017


On 09/14/2017 05:23 PM, Tom Rini wrote:
> On Thu, Sep 14, 2017 at 03:20:18PM +0000, York Sun wrote:
>> On 09/13/2017 09:27 PM, Heinrich Schuchardt wrote:
>>> On 09/13/2017 11:07 PM, York Sun wrote:
>>>> On 09/13/2017 01:38 PM, Heinrich Schuchardt wrote:
>>>>> On 08/08/2017 01:16 AM, York Sun wrote:
>>>>>> Add Kconfig option SPL_GZIP and SPL_ZLIB to enable gunzip
>>>>>> support for SPL boot, eg. falcon boot compressed kernel
>>>>>> image.
>>>>>> 
>>>>>> Signed-off-by: York Sun <york.sun at nxp.com> Reviewed-by:
>>>>>> Tom Rini <trini at konsulko.com> ---
>>>>>> 
>>>>>> Changes in v2: Combine Kconfig change and actual code
>>>>>> into one patch
>>>>>> 
>>>>>> common/spl/spl_fit.c | 28 ++++++++++++++++++++++++++-- 
>>>>>> lib/Kconfig          |  8 ++++++++ lib/Makefile         |
>>>>>> 5 +++-- 3 files changed, 37 insertions(+), 4
>>>>>> deletions(-)
>>>> 
>>>> <snip>
>>>> 
>>>>>> -	memcpy((void*)load_addr, src, length); +#if
>>>>>> defined(CONFIG_SPL_OS_BOOT) && defined(CONFIG_SPL_GZIP) +
>>>>>> if (image_comp == IH_COMP_GZIP && type == IH_TYPE_KERNEL)
>>>>>> { +		if (gunzip((void *)load_addr, CONFIG_SYS_BOOTM_LEN, 
>>>>>> +			   src, &length)) {
>>>>> 
>>>>> In this file length is defined as size_t.
>>>>> 
>>>>> In include/common.h the last parameter of gunzip is defined
>>>>> as unsigned long *.
>>>>> 
>>>>> This leads to a compilation warning and probably incorrect
>>>>> results: CC      spl/common/spl/spl_fit.o 
>>>>> common/spl/spl_fit.c: In function ‘spl_load_fit_image’: 
>>>>> common/spl/spl_fit.c:201:12: warning: passing argument 4 of
>>>>> ‘gunzip’ from incompatible pointer type
>>>>> [-Wincompatible-pointer-types] src, &length)) {
>>>>> 
>>>>> Please, correct the patch to pass a compatible parameter. 
>>>>> The patch already made it into the U-Boot git master. So
>>>>> possibly you want to send a follow up patch.
>>>>> 
>>>> 
>>>> Thanks for the heads up. I used travis-ci to build all
>>>> targets but didn't see this warning. What target did you
>>>> build?
>>> 
>>> make mrproper make qemu-x86_64_defconfig make
>>> 
>> 
>> Heinrich,
>> 
>> Thanks. I check travis-ci log. Surprisingly, it has this warning
>> but reports as "passed". Now I start to question what else I
>> missed.
> 
> So, yes.  One of the things that we don't do today is have -Werror 
> passed.  I would love to see the series of patches that fixes the 
> handful of warnings we have today so we could at least make this
> an option.
> 
You just have to switch the compiler and these warnings become real
errors.

Under Visual C++ long is always 32bit:
https://msdn.microsoft.com/en-us/library/s3f49ktz(v=vs.140).aspx

If it is really only a handful of warnings we should switch -Werror on
in the 2017.11 release.

Regards

Heinrich


More information about the U-Boot mailing list