[PATCH v5 07/29] bootstd: Correct display of kernel version

Heinrich Schuchardt xypron.glpk at gmx.de
Sat Mar 8 06:11:30 CET 2025


On 3/6/25 01:25, Simon Glass wrote:
> The address of the bzImage is not recorded in the bootflow, so we cannot
> actually locate the version at present. Handle this case, to avoid
> showing invalid data.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> (no changes since v1)
>
>   arch/x86/lib/zimage.c | 13 ++++++++-----
>   cmd/bootflow.c        |  2 ++
>   2 files changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/arch/x86/lib/zimage.c b/arch/x86/lib/zimage.c
> index 7f4b117b403..d71285e71d9 100644
> --- a/arch/x86/lib/zimage.c
> +++ b/arch/x86/lib/zimage.c
> @@ -558,7 +558,6 @@ void zimage_dump(struct bootm_info *bmi, struct boot_params *base_ptr,
>   		 bool show_cmdline)
>   {
>   	struct setup_header *hdr;
> -	const char *version;
>   	int i;
>
>   	printf("Setup located at %p:\n\n", base_ptr);
> @@ -595,10 +594,14 @@ void zimage_dump(struct bootm_info *bmi, struct boot_params *base_ptr,
>   	print_num("Real mode switch", hdr->realmode_swtch);
>   	print_num("Start sys seg", hdr->start_sys_seg);
>   	print_num("Kernel version", hdr->kernel_version);
> -	version = zimage_get_kernel_version(base_ptr,
> -					    (void *)bmi->bzimage_addr);
> -	if (version)
> -		printf("   @%p: %s\n", version, version);
> +	if (bmi->bzimage_addr) {
> +		const char *version;
> +
> +		version = zimage_get_kernel_version(base_ptr,
> +						    (void *)bmi->bzimage_addr);
> +		if (version)
> +			printf("   @%p: %s\n", version, version);

I cannot image that a user cares about the location of the version
string in memory.

If this is an information is really needed by developers, please, put it
into a log_debug() message.

Best regards

Heinrich

> +	}
>   	print_num("Type of loader", hdr->type_of_loader);
>   	show_loader(hdr);
>   	print_num("Load flags", hdr->loadflags);
> diff --git a/cmd/bootflow.c b/cmd/bootflow.c
> index 72b06a42e4d..da17fd93b8b 100644
> --- a/cmd/bootflow.c
> +++ b/cmd/bootflow.c
> @@ -383,6 +383,8 @@ static int do_bootflow_info(struct cmd_tbl *cmdtp, int flag, int argc,
>   		struct bootm_info bmi;
>
>   		bootm_init(&bmi);
> +		/* we don't know this at present */
> +		bootm_x86_set(&bmi, bzimage_addr, 0);
>   		zimage_dump(&bmi, bflow->x86_setup, false);
>
>   		return 0;



More information about the U-Boot mailing list