> On Apr 23, 2015, at 6:53 PM, Haojian Zhuang <[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
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to