Hi Jordan, What is the difference between RuntimeDxe, EmuRuntimeDxe ? >From looking at the code, seems like RuntimeDxe is more complete implementation. But when I switch to that, I get errors from DxeMain. Not sure why. Thanx.
Variable Write Arch Protocol not present!! Capsule Arch Protocol not present!! Monotonic Counter Arch Protocol not present!! Driver 42857F0A-13F2-4B21-8A23-53D3F714B840 was discovered but not loaded!! Driver AD608272-D07F-4964-801E-7BD3B7888652 was discovered but not loaded!! Driver 51CCF399-4FDF-4E55-A45B-E123F84D456A was discovered but not loaded!! Driver 408EDCEC-CF6D-477C-A5A8-B4844E3DE281 was discovered but not loaded!! Driver 9E863906-A40F-4875-977F-5B93FF237FC6 was discovered but not loaded!! Driver 93B80004-9FB3-11D4-9A3A-0090273FC14D was discovered but not loaded!! Driver 8F4CD826-A5A0-4E93-9522-CFB0AB72926C was discovered but not loaded!! Driver 5E523CB4-D397-4986-87BD-A6DD8B22F455 was discovered but not loaded!! Driver 19DF145A-B1D4-453F-8507-38816676D7F6 was discovered but not loaded!! Driver A2F436EA-A127-4EF8-957C-8048606FF670 was discovered but not loaded!! Driver 529D3F93-E8E9-4E73-B1E1-BDF6A9D50113 was discovered but not loaded!! Driver 94734718-0BBC-47FB-96A5-EE7A5AE6A2AD was discovered but not loaded!! Driver 26841BDE-920A-4E7A-9FBE-637F477143A6 was discovered but not loaded!! Driver 9FB1A1F3-3B71-4324-B39A-745CBB015FFF was discovered but not loaded!! Driver 025BBFC7-E6A9-4B8B-82AD-6815A1AEAF4A was discovered but not loaded!! Driver E4F61863-FE2C-4B56-A8F4-08519BC439DF was discovered but not loaded!! Driver DC3641B8-2FA8-4ED3-BC1F-F9962A03454B was discovered but not loaded!! Driver 6D6963AB-906D-4A65-A7CA-BD40E5D6AF4D was discovered but not loaded!! Driver 6D6963AB-906D-4A65-A7CA-BD40E5D6AF2B was discovered but not loaded!! Driver 3B1DEAB5-C75D-442E-9238-8E2FFB62B0BB was discovered but not loaded!! Driver 4579B72D-7EC4-4DD4-8486-083C86B182A7 was discovered but not loaded!! Driver AC7E2A1E-B975-4C79-8ADA-C9EEFC55A407 was discovered but not loaded!! Driver B7F50E91-A759-412C-ADE4-DCD03E7F7C28 was discovered but not loaded!! Driver 240612B7-A063-11D4-9A3A-0090273FC14D was discovered but not loaded!! Driver 9FB4B4A7-42C0-4BCD-8540-9BCC6711F83E was discovered but not loaded!! Driver C5B9C74A-6D72-4719-99AB-C59F199091EB was discovered but not loaded!! Driver 6B38F7B4-AD98-40E9-9093-ACA2B5A253C4 was discovered but not loaded!! Driver 1FA1F39E-FEFF-4AAE-BD7B-38A070A3B609 was discovered but not loaded!! Driver 961578FE-B6B7-44C3-AF35-6BC705CD2B1F was discovered but not loaded!! Driver CD3BAFB6-50FB-4FE8-8E4E-AB74D2C1A600 was discovered but not loaded!! ASSERT_EFI_ERROR (Status = Not Found) ASSERT /home/narinder/workdir2/sdk/bootloader/edk2/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c(489): !EFI_ERROR (Status) On Fri, Oct 31, 2014 at 2:54 PM, Jordan Justen <[email protected]> wrote: > On 2014-10-31 00:16:07, Gao, Liming wrote: > > Yes. EDKII variable assumes the variable storage at a physically map > > location. This is a limitation. > > > > To work with current EDKII variable drivers, for Variable Read, PEI > phase > > also require to support it. So, you need to read variable storage to > > memory in PEI Phase, and share it to DXE phase. For Variable Write, > only > > DXE phase requires it. So, you can implement FVB protocol to handle > the > > write operation in the cached memory and storage. > > Well, we worked around this pretty nicely in OVMF when we wanted to > serialize variables to/from the FAT parition. > > OvmfPkg/EmuVariableFvbRuntimeDxe creates the FVB in RAM. > > It uses to 'hooks' for reading/writing the FVB via this library: > OvmfPkg/Include/Library/PlatformFvbLib.h > > When a write happens to the variable store, OVMF uses the FVB write > hook to signal that the variables need to be serialized to the FAT FS. > > I'm disappointed that I was not able to make this system replace > MdeModulePkg/Universal/Variable/EmuRuntimeDxe and DuetPkg/FSVariable > because then we could always just use the single variable driver: > MdeModulePkg/Universal/Variable/RuntimeDxe > > Now that QEMU/KVM has real flash support, I suppose that some parts of > this code now has an expiration date in OVMF... (The desire to > actually serialize the variables to/from disk is greatly diminished.) > > -Jordan > > > From: Narinder Dhillon [mailto:[email protected]] > > Sent: Friday, October 31, 2014 12:12 PM > > To: [email protected] > > Subject: [edk2] Non-Volatile Variable Storage > > > > > > > > Hi All, > > > > > > > > I am attempting to implement a non-volatile variable storage in an > eMMC > > device. After about a week of looking around, I have come to the > > realization that there is no such feature in edk2. > > > > Is this correct ? > > > > > > > > Looking at 'variable' drivers, it seems that the variable storage for > both > > volatile and non are assumed to be at a physically mapped location. I > can > > try to load this physical address by reading the block flash device > and > > copying its contents to this location before the 'variable' driver > starts. > > I will have to implement some shell command to save the changed > contents > > back to flash device. > > > > > > > > Does this sound reasonable or is there an easier way ? > > > > > > > > Where can I implement this driver to load the non-volatile variable > store > > before 'variable' driver starts ? > > > > > > > > Thanx. > > > ------------------------------------------------------------------------------ > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/edk2-devel >
------------------------------------------------------------------------------
_______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
