On 2017-03-27 11:03:42, Laszlo Ersek wrote: > On 03/27/17 10:05, Jordan Justen wrote: > > web: https://github.com/jljusten/edk2/tree/pei-vars-v1 > > > > git: https://github.com/jljusten/edk2.git pei-vars-v1 > > > > This series moves flash detection into PEI to allow the PEI variable > > access drivers to run. If flash is writable, the PCDs are set to point > > at the flash memory. If flash is not writable, the PCDs are set to > > point at a memory buffer. > > Can you please state the use case for the latter option? That is, when > the PCDs are set to point at the memory buffer. > > In that case, the memory buffer is guaranteed to be empty (modulo > internal formatting that PlatformPei would do just-in-time), unless the > VM has just been rebooted within the same QEMU instance. > > In other words, clients of the r/o variable2 PPI will get false results, > most of the time -- if I understand correctly. After a fresh boot (which > is most of the boots), no variable will be found in the PEI phase, even > if the \NvVars file contains it, and the variable services in DXE will > later find it. > > ... I'm not sure if my understanding above is correct, but if it is, > then I think this feature only contributes to the confusing nature of > the memory-emulated variables.
I think we should continue to support the memory vars, even if they have some obvious drawbacks. -Jordan > > > > > I tested KVM with ROM and writable flash, with S3 sleep/resume. I did > > not test SMM. > > > > Jordan Justen (10): > > OvmfPkg/build.sh: Add support for --disable-flash switch > > OvmfPkg QemuFlash: Make QemuFlash.* Base class safe > > OvmfPkg QemuFlash: Make QemuFlashDetected external > > OvmfPkg QemuFlash: Add DetectFlashBaseLib.inf 'NULL' library > > OvmfPkg PlatformPei: Detect and set PcdOvmfFlashVariablesEnable > > OvmfPkg/EmuVariableFvbRuntimeDxe: Use PcdOvmfFlashVariablesEnable > > OvmfPkg PlatformPei: Set flash variable PCDs > > OvmfPkg PlatformPei: Initialize memory based variable store buffer > > OvmfPkg: Enable PEI variable access > > OvmfPkg QemuFlashFvbServicesRuntimeDxe: Cleanup init now done in PEI > > > > Laszlo Ersek (2): > > OvmfPkg: resolve PcdLib for all PEIMs individually > > OvmfPkg: resolve PcdLib for PEIMs to PeiPcdLib by default > > > > OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c | 4 +- > > OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf | 3 +- > > OvmfPkg/OvmfPkgIa32.dsc | 27 +- > > OvmfPkg/OvmfPkgIa32.fdf | 5 +- > > OvmfPkg/OvmfPkgIa32X64.dsc | 27 +- > > OvmfPkg/OvmfPkgIa32X64.fdf | 5 +- > > OvmfPkg/OvmfPkgX64.dsc | 27 +- > > OvmfPkg/OvmfPkgX64.fdf | 5 +- > > OvmfPkg/PlatformPei/Platform.c | 34 +-- > > OvmfPkg/PlatformPei/Platform.h | 7 +- > > OvmfPkg/PlatformPei/PlatformPei.inf | 11 +- > > OvmfPkg/PlatformPei/Vars.c | 283 > > +++++++++++++++++++++ > > .../DetectFlashNullLib.c | 41 +++ > > .../DetectFlashNullLib.inf | 60 +++++ > > .../FvbServicesRuntimeDxe.inf | 4 - > > .../FvbServicesSmm.inf | 4 - > > .../FwBlockService.c | 28 +- > > OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c | 59 +++-- > > OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.h | 30 ++- > > OvmfPkg/build.sh | 10 +- > > 20 files changed, 530 insertions(+), 144 deletions(-) > > create mode 100644 OvmfPkg/PlatformPei/Vars.c > > create mode 100644 > > OvmfPkg/QemuFlashFvbServicesRuntimeDxe/DetectFlashNullLib.c > > create mode 100644 > > OvmfPkg/QemuFlashFvbServicesRuntimeDxe/DetectFlashNullLib.inf > > > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel