
Hi Mark,
[...]
Also, keep in mind that BootOrder and Boot#### only really work if there is runtime EFI variable support. So the boot menu should include options to select a device to boot from and use the default (removable media) bootloader from the ESP on that device. And a way to make this selection stick! Pretty much all x86 EFI implementations provide functionality like that. I suppose this could be done by populating the EFI variable store with appropriate Boot#### variables and manipulating BootOrder. But that would make it hard to generalize the boot menu to non-EFI boot flows.
We are talking here about an EFI boot menu. Why do you mention non-EFI?
Because Simon did, and I agree with him that U-Boot would be better of with a way to select a boot device that is independent of the boot mechanism. Suppose that as a user I want to install a Linux distro on my machine. I copy the installer for that distro to a USB key and I want to boot it. But my system is set up to boot from eMMC. U-Boot should make it easy to do a one-off boot from USB without burdening the user with making a choice between EFI and non-EFI boot methods and just pick the boot method that makes the machine boot from the USB key.
The concept here is fine, but I think we should agree on how we implement that. IMHO Simon's boot series patches is a huge step forward compared to the distro_bootcmd. However EFI has it's own boot manager and logic. So I see two ways forward: 1. Simon's bootmethod has an abstract entry called 'EFI' or something similar. In that case we just invoke the efi bootmgr. 2. We merge the efibootmgr code into Simon's patches.
But isn't that orthogonal to the current discussion? We can just go implement it for EFI now and then wire it up to whatever Simon does.
Cheers /Ilias
Cheers,
Mark