下载此文档

UEFIBIOS全局配置数据库的设计与实现.doc


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
UEFI+BIOS全局配置数据库的设计与实现
摘 要:EDKII是目前最流行的一个高度分层和抽象化UEFI BIOS的开发架构,它针对不同平台硬件参数设置引入了新的 设计概念PCDo PCD就是在计算机系统初始化过程中建立起 来的一个全局ild PCD 以及 PatchablelnModule PCD三种。这类PCD跟全局配置数据库 没有关系,所以本文不做过多介绍。另一类是平台初始化过 程中起作用,包括 DynamicDefault PCD, DynamicHII PCD, 和DynamicVpd PC三种应用在源代码组件发布的PCD,以及 与之对应的 DynamicExDefault PCD, DynamicExHII PCD 和 DynamicExVpd PCD 专门应用在编译好的二进制组件发布 中的三种PCDo
2. 1 PCD的分类和区别
从大面上,全局配置数据库中存放的PCD被分为两个大 类Dynamic和DynamicEx,每个大类又各分三个小类Default PCD, HII PCD 和 VPD PCDo
Dynamic和DynamicEx的作用局域完全一样,唯一的区
别就是源代码级别的发布还是编译好的代码发布。如果上层 开发者给二级开发者提供的是所有驱动的源代码,那么二级 开发者可以直接修改源代码来改变某个参数的值,此时只要 把该配置参数设置为Dynamic形式的即可满足要求。否则, 必须用DynamicEx的。DynamicEx的PCD在保护上层开发者 的版权和代码发布权限提供了更多层次的选择空间。
Default PCD:在初始化过程中,可以被PEI, DXE和RT阶 段的几乎所有驱动所使用,一般是前面的驱动修改,后面的 驱动读取。这是不同的驱动,不同的阶段之间有效信息交互 和传递的一种方法。该PCD的作用空间是一次加电过程,所 修改的数值在系统断电后会自动回复到默认初始状态。
HII PCD:作用空间和Default PCD 一样,主要的区别 是HII的PCD可以把修改的数值直接保存到BIOS NOR Flash 芯片的NVRAM区域。这样一旦修改,再计算机下次启动的时 候,访问的就是上次修改的新数值。
VPD PCD:作用空间和上面两种相同,主要区别是VPD PCD 是只读的不能修改,但是它也有自己的优势。因为VPD PCD 是的初始值是保存在BIOS固件的一段二进制数据空间上的 所以在固件编译完成后,可以在不依赖编译器重新编译情况 下,对该PCD的数值进行直接的重复设置。

在EDKII源代码编译中,编译工具集的AutoGen会遍历
整个平台所有驱动和顶层结构文件生成AutoGen. h和 AutoGen. c两个关键文件。这两个文件将作为后面C编译器 的自动包换的头文件输入,参与C语言的系统级编译过程, 最终生成这个平台的全局配置数据库。
下面通过一个NT32模拟平台中的例子来进行过程说明。
首先在NT32的顶层平台文件DEC, DSC和INF文件中 依次做如下声明。
MdeModulePkg. dec
[PcdsFixedAtBuild, PcdsDynamic, PcdsDynamicEx]
gEfiMdeModulePkgTokenSpaceGuid. PcdFlashNvStorageVar iableBase|0x0|UINT32|0x30000001

[PcdsDynamicExDefault. common. DEFAULT]
gEfiMdeModulePkgTokenSpaceGuid. PcdFlashNvStorageVar iableBase|OxfOOO
WinNtFlashMapPei. inf [Ped]
gEfiNt32PkgTokenSpaceGuid. PcdWinNtFlashNvStorageVar iableBase
通过该声明,定义了 一个DynamicExDefault类型的PCD,
其类型为UINT32,初始默认数值为OxfOOO,并且驱动模块 WinNtFlashMapPei要使用该配置数据。
接着用EDKII的BaseTools对该源代码架构进行编译, AutoGen工具会在遍历完整个代码之后,在相应的PCD驱动 编译目录下面自动生成AutoGen. h和AutoGen. c两个文件, 如下所示:
AutoGen. h (Build \ NT32 \ DEBUG_MYTOOLS \ IA32 \ MdeModulePkg \ Universal \PCD\Pei \ Ped \ DEBUG)
^define PEI_LOCAL_TOKEN_NUMBER

UEFIBIOS全局配置数据库的设计与实现 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小健
  • 文件大小90 KB
  • 时间2022-05-20
最近更新