bootstd: Correct display of kernel version
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@chromium.org>
This commit is contained in:
@@ -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);
|
||||
}
|
||||
print_num("Type of loader", hdr->type_of_loader);
|
||||
show_loader(hdr);
|
||||
print_num("Load flags", hdr->loadflags);
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user