> On Apr 23, 2015, at 7:44 PM, Yao, Jiewen <[email protected]> wrote:
>
> Hi Andrew or Haojiang
> Would you please share more your insight below:
> “It should be possible to discover based on address or PCD device path (or
> protocol) and do the reads via FVB.”
>
> Is “discover” here means something done in variable driver Entrypoint?
> Then variable driver need be enhanced get base address via DevicePathPcd or
> Protocol (another dependency ?)
> So we still assume variable storage is linear block device. Right?
>
The issue if how do you find the FVB protocol to use with the store. Currently
it is done via matching a memory mapped address. If you find the correct FVB
you can do all the reads and writes from that device and that removes the
assumption that the device is memory mapped. I think currently the write are
done via FVB, but the initial read (to cache the store), and matching of FVB is
done via an address.
Thus if an FVB only supports a block device that can NOT be memory mapped, it
will not be discovered by the variable driver, and there is no way to cache the
variable store as that 1st read is memory based.
Thanks,
Andrew Fish
> Thank you
> Yao Jiewen
>
> From: Andrew Fish [mailto:[email protected] <mailto:[email protected]>]
> Sent: Friday, April 24, 2015 10:01 AM
> To: [email protected] <mailto:[email protected]>
> Subject: Re: [edk2] Variable Storage Driver
>
>
> On Apr 23, 2015, at 6:53 PM, Haojian Zhuang <[email protected]
> <mailto:[email protected]>> wrote:
>
> 在 2015/4/24 9:35, Yao, Jiewen 写道:
>
> HI Andrew
> You are right that we have FVB for flash device abstraction. The current
> variable have some assumption:
> 1) It assumes EFI_FVB2_MEMORY_MAPPED already set for FVB implementation. It
> even does not check this bit and start use memory map way to read flash.
> 2) It assumes EFI_FVB2_STICKY_WRITE already set for FVB implementation. So
> Erase block is always invoked.
> As you said, current variable driver is optimized for SPI NOR. But it might
> be burden to other flash device.
>
> One more question is: this variable driver assume variable is stored in flash
> storage "block" - which can be abstracted by FVB.
> What happen, if variable in stored in another format? Map variable file to
> "block"? I see how it is implemented in OVMF, really complicated.
> Or should the other variable driver duplicate all complicated Authentication
> server in their own variable driver?
>
> I think that we could just implement a block variable driver. And we
> don't need to change more in existing variablue driver + fault write driver.
>
> Here's a reference as my implementation.
> https://github.com/96boards/edk2/tree/hikey/HisiPkg/HiKeyPkg/Drivers/BlockVariableDxe
>
> <https://github.com/96boards/edk2/tree/hikey/HisiPkg/HiKeyPkg/Drivers/BlockVariableDxe>
>
> I only make it support FVB protocol, and it works. In order to keep
> align with existing PCD values in variable driver. I keep declaring
> PcdFlashNvStorageVariableBase & PcdNvStorageVariableBlockSize in memory
> that are not useful. And I create new
> PcdNvStorageVariableBlockDevicePath, PcdFlashNvStorageVariableBlockCount
> & PcdNvStorageVariableBlockLba. And I still need to fix one thing that
> should reserve this memory space.
>
>
> I was just writing an email with a note that this was the right way to fix
> the variable driver…. Thanks!
>
> The PCD could be a device path, or a feature flag to look for an FVB protocol
> with a well know protocol on the handle (MdeModulePkg protocol with NUL data).
>
> It should be possible to discover based on address or PCD device path (or
> protocol) and do the reads via FVB.
>
> Thanks,
>
> Andrew Fish
>
>
> Regards
> Haojian
>
> ------------------------------------------------------------------------------
> One dashboard for servers and applications across Physical-Virtual-Cloud
> Widest out-of-the-box monitoring support with 50+ applications
> Performance metrics, stats and reports that give you Actionable Insights
> Deep dive visibility with transaction tracing using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y_______________________________________________
>
> <http://ad.doubleclick.net/ddm/clk/290420510;117567292;y_______________________________________________>
> edk2-devel mailing list
> [email protected] <mailto:[email protected]>
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
> <https://lists.sourceforge.net/lists/listinfo/edk2-devel>
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel