As I recall, this enables a modest (non-essential) improvement in fragmentation, at the cost of more ways to configure OVMF to hang during boot. (With info available via debugcon.)
I would prefer if were able to always fallback and continue boot. Later, after GOP has started we could visibly warn the user that they haven't properly enabled SMM and/or flash. If we had a way to do this, I would be in favor of displaying an error message and delaying for 30 seconds before booting if flash has not been enabled. (Or, if SMM was enabled in the build, but not set on the command line.) At that point, I think we could start to transition to making flash an boot requirement for OVMF. But first we need to be able to visibly warn the user why they are not able to boot. -Jordan On 2017-11-30 08:30:21, Laszlo Ersek wrote: > Repo: https://github.com/lersek/edk2.git > Branch: memmap_defrag_v2 > > This version is identical to the v1 seres I posted in March. Some > patches of the v1 series have been committed. I've been rebasing and > using the rest since, and am now posting it as v2. References: > > * https://bugzilla.tianocore.org/show_bug.cgi?id=386 > > * http://mid.mail-archive.com/20170314233246.17864-1-lersek@redhat.com > https://lists.01.org/pipermail/edk2-devel/2017-March/008525.html > > * http://mid.mail-archive.com/20170327080544.24748-1-jordan.l.justen@intel.com > https://lists.01.org/pipermail/edk2-devel/2017-March/009049.html > > Cc: Anthony Perard <anthony.per...@citrix.com> > Cc: Ard Biesheuvel <ard.biesheu...@linaro.org> > Cc: Jordan Justen <jordan.l.jus...@intel.com> > Cc: Julien Grall <julien.gr...@linaro.org> > > Thanks > Laszlo > > Laszlo Ersek (8): > OvmfPkg: introduce PcdMemVarstoreEmuEnable feature flag > OvmfPkg/QemuFlashFvbServicesRuntimeDxe: check PcdMemVarstoreEmuEnable > OvmfPkg: conditionally disable reserved memory varstore emulation at > build > OvmfPkg: introduce FlashNvStorageAddressLib > OvmfPkg: include FaultTolerantWritePei and VariablePei > OvmfPkg/QemuFlashFvbServicesRuntimeDxe: don't set flash PCDs if SMM or > no-emu > OvmfPkg/PlatformPei: remedy UEFI memory map fragmentation > OvmfPkg/README: document MEM_VARSTORE_EMU_ENABLE and memmap defrag > > OvmfPkg/Library/FlashNvStorageAddressLib/FlashNvStorageAddressLib.c | 53 > +++++++ > OvmfPkg/Library/FlashNvStorageAddressLib/FlashNvStorageAddressLib.inf | 48 > +++++++ > OvmfPkg/OvmfPkg.dec | 6 + > OvmfPkg/OvmfPkgIa32.dsc | 15 > +- > OvmfPkg/OvmfPkgIa32.fdf | 8 > +- > OvmfPkg/OvmfPkgIa32X64.dsc | 15 > +- > OvmfPkg/OvmfPkgIa32X64.fdf | 8 > +- > OvmfPkg/OvmfPkgX64.dsc | 15 > +- > OvmfPkg/OvmfPkgX64.fdf | 8 > +- > OvmfPkg/PlatformPei/MemTypeInfo.c | 151 > ++++++++++++++++++++ > OvmfPkg/PlatformPei/Platform.c | 26 > +--- > OvmfPkg/PlatformPei/Platform.h | 5 + > OvmfPkg/PlatformPei/PlatformPei.inf | 3 + > OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf | 1 + > OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf | 1 + > OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.c | 58 > +++++--- > OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c | 1 + > OvmfPkg/README | 10 > ++ > 18 files changed, 385 insertions(+), 47 deletions(-) > create mode 100644 > OvmfPkg/Library/FlashNvStorageAddressLib/FlashNvStorageAddressLib.c > create mode 100644 > OvmfPkg/Library/FlashNvStorageAddressLib/FlashNvStorageAddressLib.inf > create mode 100644 OvmfPkg/PlatformPei/MemTypeInfo.c > > -- > 2.14.1.3.gb7cf6e02401b > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel