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;

Reply via email to