关于NvRam空间的定义和使用

[复制链接]
SW_Brant 发表于 2018-9-11 11:42:41 | 显示全部楼层 |阅读模式
有以下几个问题,请教各路大神:
1.NvRam空间的定义和使用在哪个Spec里有说明,Uefi_SpecV2.7我看了下,只是提到了这个,其大小之类的并没有说明

2.NvRam主要是存储一些非易失性的数据,比如Vfr里面涉及到的众多Item的变量都存储在NvRam里面。但是一般项目完成后,该片空间的layout不允许改变,那么我后期想要定义一些掉电不丢失的变量,是否可以在NvRam里面,其可以提供给我用的空间大小有多大?

3.正常情况下,升级BIOS NVRAM中的数据是不会刷掉的,该设置在升级过程中是一定的吗?有何方式可以将其刷掉?



上一篇:多位数码管动态扫描原理分析
下一篇:2018年9月12日签到记录贴
 楼主| SW_Brant 发表于 2018-9-11 13:36:20 | 显示全部楼层
add one question
4. 根据UEFI Spec的描述,读写和设置NVRam空间里面的变量都是通过GetVarible()和SetVarible()来设定的,但是明确指出这两个函数是Runtime提供的服务,那么在PEI阶段DXE阶段,如何读写呢?
回复

使用道具 举报

lp778179351 发表于 2018-9-12 14:35:19 | 显示全部楼层
1.区域大小可以在fdf文件中设置
回复

使用道具 举报

lp778179351 发表于 2018-9-12 14:38:13 | 显示全部楼层
2.NvRam区域使用,可以SetVarible()设置新的GUID 和 name,不一定和setup variable 放在一起,一般都够用
回复

使用道具 举报

lp778179351 发表于 2018-9-12 14:39:26 | 显示全部楼层
3.做load default 会变成default 值,
回复

使用道具 举报

lp778179351 发表于 2018-9-12 14:40:52 | 显示全部楼层
PEI阶段只能读,可以使用相应的PPI ,DXE阶段可以使用Runtime提供的服务
回复

使用道具 举报

 楼主| SW_Brant 发表于 2018-9-13 09:49:37 | 显示全部楼层
lp778179351 发表于 2018-9-12 14:38
2.NvRam区域使用,可以SetVarible()设置新的GUID 和 name,不一定和setup variable 放在一起,一般都够用 ...

可以给一个简单的例子吗?老哥如何在NvRam空间里面增加一个变量,掉电后也不会丢失。PEI阶段能够读取该值来做个判断。
回复

使用道具 举报

MinardM 发表于 2018-9-13 14:29:19 | 显示全部楼层
写进了Nram就不用担心变量会丢,写进去的东西存在于Flash上,除非Flash挂了
回复

使用道具 举报

 楼主| SW_Brant 发表于 2018-9-14 09:37:20 | 显示全部楼层
本帖最后由 SW_Brant 于 2018-9-14 09:39 编辑
MinardM 发表于 2018-9-13 14:29
写进了Nram就不用担心变量会丢,写进去的东西存在于Flash上,除非Flash挂了

感谢老哥,想再请教个问题。假设我在V1版本的BIOS里面,直接SetVarible()设置了一个变量a存储到NV空间里面去,因为正常bios升级更新是不会更新NV的空间里的数据的,那么我正常升级的V2版本的BIOS后,使用变量a的guild的varible name能读到这个数据吗?
回复

使用道具 举报

MinardM 发表于 2018-10-7 13:53:33 | 显示全部楼层
SW_Brant 发表于 2018-9-14 09:37
感谢老哥,想再请教个问题。假设我在V1版本的BIOS里面,直接SetVarible()设置了一个变量a存储到NV空间里面 ...

为什么BIOS升级不会更新NVRAM数据?NVRAM区域也会被刷啊。getvariable也是从Nvram里面去找数据,找不找得到,取决于flash的nvram里面有木有你想要的读的数据。。
回复

使用道具 举报

 楼主| SW_Brant 发表于 2018-10-8 10:29:01 | 显示全部楼层
MinardM 发表于 2018-10-7 13:53
为什么BIOS升级不会更新NVRAM数据?NVRAM区域也会被刷啊。getvariable也是从Nvram里面去找数据,找不找得 ...

目前我得到的结论是如果单纯在V1版本里的BIOS set一个varible, falsh BIOS后这个数据也会被刷掉,Insyde的代码应该有对这篇区域做单独的保护机制,我还在看,是怎么实现这个保护机制的
回复

使用道具 举报

本版积分规则

QQ|Archiver|手机版|小黑屋|RD之家 - 研发工程师的伊甸园 ( 京ICP备18037383号 )
360导航 360安全浏览器 蚂蚁搜索 速搜全球 酷帝网站目录 搜狗导航 114啦网址导航

GMT+8, 2018-11-15 10:18

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表