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

Reply via email to