[PATCH] spl: return kernel image header size in os boot

Tom Rini trini at konsulko.com
Fri Feb 21 21:04:01 CET 2025


On Fri, Feb 21, 2025 at 08:47:51PM +0530, Anshul Dalal wrote:

> During kernel build process the header size is computed including the
> BSS whereas it's removed when creating the uncompressed image. Therefore
> the size of the uncompressed image on filesystem will be smaller than
> the size specifiedin the header.
> 
> Therefore it makes sense to return the header size back instead of the
> file size in falcon boot.
> 
> More info:
> https://lore.kernel.org/u-boot/20250214111656.2358748-1-anshuld@ti.com/
> 
> Signed-off-by: Anshul Dalal <anshuld at ti.com>
> ---
>  common/spl/spl_ext.c | 4 ++++
>  common/spl/spl_fat.c | 3 +++
>  2 files changed, 7 insertions(+)
> 
> diff --git a/common/spl/spl_ext.c b/common/spl/spl_ext.c
> index c5478820a9b..6d8d6544092 100644
> --- a/common/spl/spl_ext.c
> +++ b/common/spl/spl_ext.c
> @@ -17,6 +17,10 @@ static ulong spl_fit_read(struct spl_load_info *load, ulong file_offset,
>  	ret = ext4fs_read(buf, file_offset, size, &actlen);
>  	if (ret)
>  		return ret;
> +
> +	if (IS_ENABLED(CONFIG_SPL_OS_BOOT) && IS_ENABLED(CONFIG_CMD_BOOTI))
> +		return size;
> +
>  	return actlen;
>  }
>  
> diff --git a/common/spl/spl_fat.c b/common/spl/spl_fat.c
> index fce451b7664..ddf85e2cece 100644
> --- a/common/spl/spl_fat.c
> +++ b/common/spl/spl_fat.c
> @@ -55,6 +55,9 @@ static ulong spl_fit_read(struct spl_load_info *load, ulong file_offset,
>  	if (ret)
>  		return ret;
>  
> +	if (IS_ENABLED(CONFIG_SPL_OS_BOOT) && IS_ENABLED(CONFIG_CMD_BOOTI))
> +		return size;
> +
>  	return actread;
>  }

Some image formats include information about the BSS as well, and others
do not. But this is just having some parts of SPL return the filesize
and not doing some deeper probing. Given that usually problems like this
arise from loading contents in to memory too close together and then
getting wiped out by the kernel BSS, what's the problem situation you've
run in to, where, and with what loaded where in memory?

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20250221/281c1359/attachment.sig>


More information about the U-Boot mailing list