mirror of https://github.com/acidanthera/audk.git
afa456de25
QemuBootOrderLib can only filter out and reorder boot options; it cannot create boot options. It relies on Platform BDS to auto-generate all possible boot options first (for example, for new virtual devices that have been configured since the last run of the virtual machine). Then it will decide, case-by-case, whether each of those auto-generated boot options should be preserved (and at what position), or removed. Thus far, the only implementation of SetBootOrderFromQemu(), used in connection with IntelFrameworkModulePkg BDS, has expected said complete boot option list as an input parameter: BdsEntry() [IntelFrameworkModulePkg/Universal/BdsDxe/BdsEntry.c] // create empty list InitializeListHead ( &BootOptionList ) PlatformBdsPolicyBehavior( [ArmVirtPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c] BootOptionList ) BdsLibConnectAll() BdsLibEnumerateAllBootOption( BootOptionList ) // at this point, BootOptionList starts with the preexistent boot // options, and ends with the auto-generated options SetBootOrderFromQemu( [OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c] BootOptionList ) // write out changed boot order to UEFI variables // The "BootOrder" variable may have changed. Refresh BootOptionList // from it, and return it to BdsEntry(). With MdeModulePkg BDS, a BootOptionList is not propagated from BdsEntry() to SetBootOrderFromQemu() and back. All processing is based directly on the underlying "BootOrder" and "Boot####" variables. In OvmfPkg, commit |
||
---|---|---|
.. | ||
ArmQemuRelocatablePlatformLib | ||
ArmVirtDxeHobLib | ||
ArmVirtGicArchLib | ||
ArmVirtMemoryInitPeiLib | ||
ArmVirtPL031FdtClientLib | ||
ArmVirtPlatformLib | ||
ArmVirtPsciResetSystemLib | ||
ArmVirtTimerFdtClientLib | ||
ArmXenRelocatablePlatformLib | ||
BaseCachingPciExpressLib | ||
FdtPL011SerialPortLib | ||
FdtPciPcdProducerLib | ||
NorFlashQemuLib | ||
PlatformBootManagerLib | ||
PlatformIntelBdsLib | ||
PlatformPeiLib | ||
QemuFwCfgLib | ||
XenRealTimeClockLib |