When QemuBootOrder finds at least one match between the "bootorder" fw_cfg file (after translation) and the enumerated, active UEFI boot options, QemuBootOrder rewrites the BootOrder variable so that it reflects the order requested via fw_cfg.
Until now, each boot option that remained unmatched by all fw_cfg entries used to get a visit from the guy with the big scythe. Unfortunately, there are some boot options that cannot be expressed via fw_cfg at all, such as the memory-mapped EFI shell. Consequently, whenever the intersection between fw_cfg's "bootorder" and the UEFI boot option enumeration was nonempty, QemuBootOrder invariably deleted the EFI shell's option. These patches introduce an "infrastructure" and a first-approach "policy" to salvage boot options that would fall off the wagon under the above circumstances: - Mark all options that have been matched by some fw_cfg bootorder entry. - After the outer matching/picking loop is complete, iterate over the enumerated boot options. - For each unmarked option: if it starts with HD() or PciRoot(), skip it (the user could have added it to fw_cfg if he/she had wanted it). If it starts with something else (no way for the user to specify), append it to the end. This should also keep relative ordering between such "unspecifiable" entries. As a result, the EFI shell's option survives, at the trailing edge of the boot order. If necessary, the policy can be refined going forward. Note: this series is independent of my [PATCH] OvmfPkg: QemuBootOrder: expand relative device paths in UEFI boot options (which has been Tested-by: Michael Chang <mch...@suse.com>). Said patch and this series can be applied in isolation, or in combination, in any order. I tested the tree with both applied in chronological / posting order. Thanks, Laszlo Laszlo Ersek (3): OvmfPkg: QemuBootOrder: collect active UEFI boot options in advance OvmfPkg: QemuBootOrder: mark UEFI boot options selected by fw_cfg OvmfPkg: QemuBootOrder: keep some boot options that have not been selected OvmfPkg/Library/PlatformBdsLib/QemuBootOrder.c | 239 +++++++++++++++++++++--- 1 files changed, 215 insertions(+), 24 deletions(-) ------------------------------------------------------------------------------ Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel