pc-bios/s390-ccw: Add a boot menu for booting via pxelinux.cfg
Show a simple boot menu for pxelinux.cfg, too, if the user requested it. Reviewed-by: Jared Rossi <jrossi@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com> Message-ID: <20250709083443.41574-5-thuth@redhat.com>
This commit is contained in:
parent
47d68f7475
commit
fc24fd9342
1 changed files with 26 additions and 0 deletions
|
|
@ -332,6 +332,28 @@ static int load_kernel_with_initrd(filename_ip_t *fn_ip,
|
|||
return rc;
|
||||
}
|
||||
|
||||
static int net_boot_menu(int num_ent, int def_ent,
|
||||
struct pl_cfg_entry *entries)
|
||||
{
|
||||
bool valid_entries[MAX_BOOT_ENTRIES] = { false };
|
||||
int idx;
|
||||
|
||||
puts("\ns390-ccw pxelinux.cfg boot menu:\n");
|
||||
printf(" [0] default (%d)\n", def_ent + 1);
|
||||
valid_entries[0] = true;
|
||||
|
||||
for (idx = 1; idx <= num_ent; idx++) {
|
||||
printf(" [%d] %s\n", idx, entries[idx - 1].label);
|
||||
valid_entries[idx] = true;
|
||||
}
|
||||
putchar('\n');
|
||||
|
||||
idx = menu_get_boot_index(valid_entries);
|
||||
putchar('\n');
|
||||
|
||||
return idx;
|
||||
}
|
||||
|
||||
static int net_select_and_load_kernel(filename_ip_t *fn_ip,
|
||||
int num_ent, int selected,
|
||||
struct pl_cfg_entry *entries)
|
||||
|
|
@ -342,6 +364,10 @@ static int net_select_and_load_kernel(filename_ip_t *fn_ip,
|
|||
return -1;
|
||||
}
|
||||
|
||||
if (menu_is_enabled_enum() && num_ent > 1) {
|
||||
loadparm = net_boot_menu(num_ent, selected, entries);
|
||||
}
|
||||
|
||||
IPL_assert(loadparm <= num_ent,
|
||||
"loadparm is set to an entry that is not available in the "
|
||||
"pxelinux.cfg file!");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue