关于vfr文件的使用问题

[复制链接]
SW_Brant 发表于 2018-9-5 14:01:37 | 显示全部楼层 |阅读模式
代码: Insyde的codebase问题1: 在ExitVfr.vfr中加了一个Item,但无法设置该值的Default value。
问题2: vfr文件中会用到很多变量,我找到这些变量的声明,但是没找到这些变量初始化赋值,请问他们是怎么初始化的



问题1代码展示:
在ExitVfr.vfr添加下面代码,可以看到STR_WWZDBGTESTITEM_STRING 的Default Value始终等于value = 0的状态,无论我怎么设置flags标志,都不能改变他。
//wwz-add-dbg00904
      oneof
        varid       = SystemConfig.WWZDbgVarible,
        prompt      = STRING_TOKEN(STR_WWZDBGTESTITEM_STRING),
        help        = STRING_TOKEN(STR_OS_OPTIMIZED_DEFAULTS_HELP),
        option text = STRING_TOKEN(STR_DISABLED_TEXT),  value = 1, flags = 0;                                 //Mini_096
        option text = STRING_TOKEN(STR_ENABLED_TEXT),   value = 0, flags = DEFAULT; //YGLB0084A
      endoneof;
//end-dbg00904




上一篇:2018年9月5日签到记录贴
下一篇:天弘电子(Celestica)全球研发中心招聘服务器BIOS/BMC/BSP/SDK
xiaoming141 发表于 2018-9-5 17:46:12 | 显示全部楼层
问题1:
       改成这样默认值也不变吗?
        option text = STRING_TOKEN(STR_DISABLED_TEXT),  value = 1, flags =  DEFAULT;
        option text = STRING_TOKEN(STR_ENABLED_TEXT),   value = 0, flags = 0;
问题2:
      Vfr中的变量一般是在存在variable。build tool会根据VFR的值生成variable,放在NVRAM。读取、修改最终都是操作variable。
回复

使用道具 举报

 楼主| SW_Brant 发表于 2018-9-11 11:34:51 | 显示全部楼层
Re#2
是的,我改成那个样子,在BIOS Setup里面看仍旧是原来的设置。

关于NVRAM,有以下问题请教:
1. NVRAM的大小有多大,在哪个Spec里面有定义吗?我查了下Uefi_SpecV2.7,没有找到。里面仅提到Boot Manager里面会将用户的设置存储在NvRam 的空间里面去。比如我目前看的代码,定义了一个700Bytes的结构体,可以确定其是在NvRam 里,那我自己是否可以在定义一些变量也存在NVRam里面
回复

使用道具 举报

xiaoming141 发表于 2018-9-11 19:26:48 | 显示全部楼层
1. 那应该是你改的位置不对,是否有其他同名的选项。
2. NVRAM的具体实现是各家IBV自己做的。size都可以再改。你想往NVRAM里放数据。定义个variable,用gRS->SetVariable(),属性带上EFI_VARIABLE_NON_VOLATILE就行了。
回复

使用道具 举报

 楼主| SW_Brant 发表于 2018-9-13 09:41:56 | 显示全部楼层
xiaoming141 发表于 2018-9-11 19:26
1. 那应该是你改的位置不对,是否有其他同名的选项。
2. NVRAM的具体实现是各家IBV自己做的。size都可以再 ...

请问,我现在想要在NVRam里面定义个varible,在DXE和BDS阶段里面去set它,然后再PEI阶段去读取它。可以这样操作吗?
回复

使用道具 举报

 楼主| SW_Brant 发表于 2018-9-13 09:44:56 | 显示全部楼层
xiaoming141 发表于 2018-9-11 19:26
1. 那应该是你改的位置不对,是否有其他同名的选项。
2. NVRAM的具体实现是各家IBV自己做的。size都可以再 ...

如果可以這樣定義的話,我想请问,我该怎么操作。这个varible的定义该怎么定义。还是我可以直接在一个函数里面顶一个局部变量,然后使用grt->Setvarible来将其设置进NVRam空间里面。新手,求助,
回复

使用道具 举报

xiaoming141 发表于 4 天前 | 显示全部楼层
SW_Brant 发表于 2018-9-13 09:41
请问,我现在想要在NVRam里面定义个varible,在DXE和BDS阶段里面去set它,然后再PEI阶段去读取它。可以这 ...

可以。定义好变量名、GUID、以及你要保存的数据。用SetVariable保存就行了。在用的地方用GetVariable获取。
回复

使用道具 举报

 楼主| SW_Brant 发表于 3 天前 | 显示全部楼层
xiaoming141 发表于 2018-9-18 11:06
可以。定义好变量名、GUID、以及你要保存的数据。用SetVariable保存就行了。在用的地方用GetVariable获取 ...

Re 7#
你好,大兄弟,请问下。我向NV空间里Set了一个一个Varible,这个varible在当前版本的BIOS里面不会丢失。但是升级后就会丢失,请问下,我该如何才能让这个变量在BIOS升级的时候也保留下来。
回复

使用道具 举报

本版积分规则

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

GMT+8, 2018-9-22 09:23

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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