UEFI国产计算机平台BIOS研讨.docx
《UEFI国产计算机平台BIOS研讨.docx》由会员分享,可在线阅读,更多相关《UEFI国产计算机平台BIOS研讨.docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、UEFI国产计算机平台BIOS研讨1概述传统Bios有着诸多的弊端,使得系统维护代价大,阻碍了国内计算机技术的进展。ueFi提供了标准化的Bios规范,为计算机系统的扩展和升级提供了方便,同时也使得系统引导更为快速、对操作系统引导器以及操作系统本身的限制大大削减。随着龙芯等国产高性能处理器芯片的研发胜利及稳定性增添,国内陆续展开了很多基于国产cpu的计算机系统讨论开发工作。计算机系统中Bios是连接硬件和软件的关键组件,也是系统安全性验证的重要环节,然而长期以来,Bios技术基本被国外几家厂商掌控,给计算机系统的安全埋下了安全隐患。ueFi已经在国外诸多知名计算机厂商中得到广泛的认可和使用,它
2、的推广和应用也使得国产Bios的讨论和开发成为可能,国产计算机平台上的ueFiBios讨论是国产Bios进展的要求,也是提高计算机系统安全性的需要,基于国产计算机平台的ueFiBios讨论具有十分重要的意义。基于此,本文讨论基于ueFi的国产计算机平台Bios。2龙芯国产计算机平台简介本文的硬件平台是一款自主研发的龙芯2F处理器计算机平台,其规律结构如图1所示。龙芯处理器自带内存掌握器,支持最高容量2gB的DDr2内存,处理器通过pci总线与南桥、以太网掌握器、显卡相连,向外提供最多3个pci设备扩展。通过南桥向外提供2路rs232接口、4路usB接口、1路数字音频接口、1路iDe接口和1路l
3、pc接口;通过以太网掌握器向外提供两路千兆以太网口;通过显卡提供lVDs和VgA2种显示接口。Flash通过localBus与cpu连接。该平台原先使用pmon作为Bios。pmon是mips处理器最常使用的Bios,最新版本为pmon2000,支持mips、Arm、ppc和x86体系结构,可以从Flash、iDe、网络以及usB启动操作系统,包含调试系统,支持多种调试指令,使用串口作为输出。3ueFiBios的优势可扩展固件接口(extensibleFirmwareinterface,eFi)首先由intel为解除传统Bios对安腾处理器体系结构性能的限制而提出,后交由国际标准化组织ueFi
4、管理,改名为统一可扩展固件接口(unifiedextensibleFirmwareinterface,ueFi)。ueFiBios的执行流程如图2所示,它一般包括sec(security)、pei(pre-eFiinitialization)、Dxe(Driverexecutionenvironment)、BDs(BootDeviceselect)4个阶段,sec执行系统基本初始化,预备语言执行环境;pei阶段进入c代码环境,描述系统资源和初始化信息,结束后传递给Dxe阶段;Dxe阶段对计算机系统设备进行初始化和配置,构建系统表,提供对资源的访问接口;BDs阶段为Bios引导的最终阶段,完成进
5、入操作系统引导前的预备工作,最终加载osloader,系统掌握权交给osloader,仅保存运行时服务可为系统使用1-2。至此,ueFiBios对系统的掌握结束。ueFi具有模块化结构、c语言风格、eFi驱动模型硬件操作方式等优点。下面分别从可移植性、开机速度、可扩展性、操作界面4个方面对pmon和龙芯国产计算机平台的ueFi固件两者进行比较:(1)开机速度pmon会对它发觉的全部挂到主板上的设备进行驱动加载和执行,因此挂载设备的多少直接影响到系统的引导启动速度;ueFi设备驱动遵循ueFi驱动模型,Dxe阶段不会对该类型的驱动进行更多的初始化工作,直到BDs中调用eFi_DriVer_Bin
6、Ding_protocol中的start将该驱动与设备掌握器连接并初始化设备3,在BDs阶段设置界面中可对这些设备进行选择以及调整启动顺序,某些启动时不需要的设备可以推延到后阶段进行初始化和配置,从而提高系统引导速度。(2)可移植性pmon与ueFiBios一样由c语言编写,使用轮询方式发觉设备驱动。pmon中与平台硬件相关的部分分布不规则,移植工作量较大,且要求开发者对代码结构了解程度高;ueFi的模块化结构以及标准的硬件操作接口使得驱动与核心掌握代码之间耦合度低,移植时只需修改这些标准接口的实现,而不影响其上层或者其他平行模块,所以,ueFi可移植性要远优于pmon。ueFi的标准硬件操作
7、接口即一组DxeArchitecturalprotocols2,它们屏蔽底层硬件详情,使得ueFiBios具有高可移植性。(3)可扩展性pmon中添加驱动或者功能时需在初始化流程中添加对相应设备或者功能的调用,编程者需要十分熟识整个代码的结构和调用位置;ueFiBios中设备驱动符合eFiDrivermodel,Bios核心代码会发觉并加载驱动,不需要编程者关注核心代码。同时ueFi对pci总线体系结构的支持也表达了其良好的可扩展特性。ueFipci总线驱动采纳分层结构,从下至上包括pcirootBridge、pciBus和pci设备驱动三层1,关于总线的大部分初始化和配置工作在硬件相关的Ho
8、stBridge驱动中实现,pci设备驱动程序的实现与平台pci体系结构无关,总线结构发生转变时,也仅需对pciHostBridge进行转变。(4)操作界面pmon通过shell指令行提供大量的指令和功能使系统与用户进行交互,包括网络通信、读写内存、在线烧写Flash等存储设备等等;ueFiBios在BDs阶段可进入shell界面,与pmon不同的是,用户能自定义ueFi应用程序,它们不影响固件核心程序,在shell中加载运行,图形界面中还可选择加载ueFi应用程序对系统进行检测或者修复工作,或者管理系统信息、配置启动选项,ueFishell是一种应用程序。国产计算机平台的ueFiBios是国
9、产化Bios进展的需要,针对国产计算机平台的不同结构和应用场合,其Bios的实现和维护也更加方便。固件运行阶段可使用外部设备,并拥有图形化设置界面,支持从除Flash之外的位置加载固件模块,同时操作系统的启动位置和方式的选择也更加敏捷。还可以开发功能丰富的ueFi应用程序,操作系统中某些功能或者机制的实现可以在固件中实现,例如固件层电源管理功能4、固件层数据备份和恢复5等,解决了这些关键机制过分依靠于操作系统的问题,使得国产计算机系统更为可靠。4固件设计与实现本文Bios的实现以eDKii框架为基础,eDKii是遵循ueFi规范的开源框架,它包含了大量开发示例和基本的底层库函数,这些代码中一部
10、分与平台体系结构无关,另一部分则与硬件结构关系亲密。实现Bios首先分析出必需实现的模块,属于eDKii通用部分的模块则直接使用,平台相关部分的则必需针对硬件详情进行修改,最终添加eDKii中没有提供参考实现或者实例的功能模块,组成一个能在平台上运行并且使平台能正常工作的代码集合。遵循ueFi模块化的特点,除eDKii中直接被使用的通用代码外,其余修改或者自定义编写模块包含在一个独立的包(package)中,它与Armpkg、Beaglepkg等名目平行,并根据执行流程进行划分。Bios的实现内容如图3所示,可以大致划分为3大部分,如图中虚线框所示,在包中表达为3个子名目。图3Bios实现内容
11、4.1eDKii简介eDKii中各基本模块的依靠关系如图4所示,其主要模块的功能如下:(1)Basetools:包含代码编译所需的二进制编译工具集和编译环境配置文件。(2)mdepkg:包含各个平台通用的基本的底层库函数、协议和工业标准,各种平台架构的ueFiBios都可以在模块中引用这些库函数,有效削减了开发工作量。(3)mdemodulepkg:包含一系列各平台通用的模块,其中包括mdepkg中公共库的应用模块示例。(4)conf:保存编译环境信息、编译目标路径以及编译器参数,工具将在该路径下产生3个配置文件。(5)edkshellpkg、shellpkg:提供一个平台通用的ueFishe
12、ll应用程序开发环境。(6)edkFatBinpkg:包含针对不同cpu架构的原始FAt驱动。(7)nt32pkg:一个在windows操作系统下可加载32位模拟器,提供ueFi运行环境的平台。unixpkg是linux操作系统下的模拟环境。(8)Armpkg、Armplatformpkg:针对Arm平台的实现,与具体平台硬件相关。相应的ArmrealViewpkg、embeddedpkg、omap35xxpkg分别是在ArmrealView、嵌入式、omap35xx平台上的参考实现。(9)networkpkg、ueficpupkg:网络、cpu驱动参考实现。(10)Duetpkg:提供基于传
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UEFI 国产 计算机 平台 BIOS 研讨
限制150内