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 <s...@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;