Mirror of edk2.
Go to file
Laszlo Ersek c3cf8daa0f OvmfPkg: QemuBootOrder: handle QEMU's "-boot strict=on" option
When this option is passed to qemu, it appends the word HALT to the
"bootorder" fw_cfg file, as last entry. For example,

  /pci@i0cf8/ethernet@3/ethernet-phy@0
  /pci@i0cf8/scsi@4/disk@0,0
  HALT

The option's purpose is to prevent SeaBIOS from booting from devices that
have not been specified explicitly (with bootindex=N device properties nor
-boot options). When SeaBIOS sees HALT, it doesn't proceed to boot from
default locations (after boot fails from all of the listed locations).

The HALT string currently causes OVMF to reject the entire "bootorder"
fw_cfg contents, with "parse error". This is not good, because since a
recent libvirt commit, libvirt unconditionally passes "-boot strict=on" to
qemu. Consequently, the boot order logic in QemuBootOrder.c has stopped
working for libvirt users.

OVMF's SetBootOrderFromQemu() function actually implements the idea behind
"-boot strict=on": it drops all boot options not in the fw_cfg list. (*)
Therefore, let's recognize HALT, and just do what we've been doing all
along.

(*) Except the UEFI shell, according to the survival policy in
BootOrderComplete(), but the memory mapped UEFI shell is not expressible
via fw_cfg anyway, and its preservation has been requested on edk2-devel.
Hence it's a good boot option to keep in any case.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15197 6f19259b-4bc3-4df7-8a09-765794883524
2014-01-29 21:44:23 +00:00
AppPkg Enable the build command override the .DSC file contents to enable debug output and specify which debug messages are displayed. An example: 2013-11-19 02:37:37 +00:00
ArmPkg ArmPkg/ArmLib: Fix AARCH64 page table entry filling overrun 2014-01-24 13:10:54 +00:00
ArmPlatformPkg ArmPlatformPkg/ArmVExpress-CTA15-A7.fdf: Move UEFI image above the first 128MB of DRAM 2014-01-23 01:01:08 +00:00
BaseTools Fix CRLF format 2014-01-27 05:36:53 +00:00
BeagleBoardPkg ArmPkg/ArmPkg.dec: Redefined PcdSystemMemory(Base|Size) as UINT64 2014-01-10 11:27:31 +00:00
Conf Adding top-level Conf directory for next generation of EDK II build infrastructure tools. 2007-06-20 19:33:23 +00:00
CryptoPkg Update CryptoPkg version: 0.92 -> 0.93 2014-01-10 02:30:22 +00:00
DuetPkg Fix CRLF format 2014-01-22 08:35:25 +00:00
EdkCompatibilityPkg Fix CRLF format 2014-01-23 05:27:14 +00:00
EdkShellBinPkg New EdkShell binaries. 2014-01-10 04:57:57 +00:00
EdkShellPkg EdkShellPkg/ShellR64.patch: Adding missing files from the patch 2014-01-14 15:31:01 +00:00
EmbeddedPkg EmbeddedPkg/MmcDxe: Fix mixed EOL 2014-01-23 00:56:29 +00:00
EmulatorPkg Update PeiServicesTablePointerLib instance to add new API MigratePeiServicesTablePointer 2014-01-16 02:42:17 +00:00
FatBinPkg New FatDxe binary. 2014-01-10 02:44:43 +00:00
IntelFrameworkModulePkg Fix CRLF format 2014-01-22 08:38:20 +00:00
IntelFrameworkPkg Update IntelFrameworkPkg version: 0.92->0.93 2014-01-10 01:18:20 +00:00
MdeModulePkg Rollback the change 15178. 2014-01-26 09:33:22 +00:00
MdePkg Fix the typo for the structure definition of EFI_ADAPTER_INFO_NETWORK_BOOT in AdapterInformation. 2014-01-27 04:54:05 +00:00
NetworkPkg Fix CRLF format 2014-01-22 08:39:32 +00:00
Nt32Pkg Follow UEFI spec to add the definition for EFI_SPECIFICATION_VERSION, and update other table version to refer to it. Remove the “/D TIANO_RELEASE_VERSION=0x00080006” option in Nt32Pkg DSC file, since it’s not used in source code. 2013-11-26 07:36:29 +00:00
Omap35xxPkg EmbeddedPkg: Introduced a separate SerialPortExtLib library 2013-03-12 00:40:11 +00:00
OptionRomPkg Fix CRLF format 2014-01-22 08:39:50 +00:00
OvmfPkg OvmfPkg: QemuBootOrder: handle QEMU's "-boot strict=on" option 2014-01-29 21:44:23 +00:00
PcAtChipsetPkg Fix CRLF format 2014-01-22 08:40:06 +00:00
PerformancePkg Refine the select language logic. 2013-09-05 05:39:57 +00:00
SecurityPkg Add description information for the GUID and Library class defined in DEC file 2014-01-28 07:00:06 +00:00
ShellBinPkg ShellBinPkg: Update ARM and AArch64 Binaries with svn 14706 ShellPkg sources 2013-09-24 10:22:32 +00:00
ShellPkg Add initializing code for local variable 'CalleeExitStatus' and 'ExitStatus' in 'Shell.c'. 2014-01-28 00:59:46 +00:00
SourceLevelDebugPkg Fix CRLF format 2014-01-22 08:40:49 +00:00
StdLib Fix the non-blocking behavior for connect. The behavior was correct if the code polled the connect routine but was not correct when using select to complete the asynchronous request. This change fixes the select case by moving where some of the operations performed upon the connection completion. 2013-12-13 19:22:39 +00:00
StdLibPrivateInternalFiles EADK (StdLib, AppPkg, StdLibPrivateInternalFiles): Update ReadMe.txt in all packages. 2013-10-24 23:14:10 +00:00
UefiCpuPkg Fix ResetVectorVtf0.asm comment typo 2014-01-28 02:30:10 +00:00
UnixPkg UnixPkg: Remove UnixPkg files (It is replaced by EmulatorPkg) 2013-07-29 21:09:55 +00:00
BuildNotes2.txt Update to new SVN URL in readme.txt 2013-06-08 05:26:39 +00:00
edksetup.bat Update edksetup.bat to check VS2012 2013-09-04 07:41:04 +00:00
edksetup.sh Handle command line parameter "-? -h --help" and any other. 2014-01-28 02:18:23 +00:00