一种基于飞腾服务器的UEFI固件实现方法技术

技术编号:11401669 阅读:196 留言:0更新日期:2015-05-03 17:47
本发明专利技术涉及一种基于飞腾服务器的UEFI固件实现方法,属于计算机固件技术领域。固件划分为硬件抽象层、固件核心层、设备协议层和固件应用层,硬件抽象层实现处理器、内存、芯片组等关键硬件部件的初始化,对其他板级硬件进行包装和抽象并实现初始化,同时为上层模块提供访问底层硬件设备的函数接口。固件核心层建立UEFI中的系统服务表,进行固件中所有模块的统一管理和各种资源的管理;设备协议层实现各种标准的工业规范;固件应用层实现固件的各项功能,如配置界面、系统监控、文件系统、操作系统引导等;本发明专利技术能够在飞腾服务器上实现出符合国际主流UEFI固件规范、可扩展性强、功能完善的固件产品,以支持飞腾服务器的正常启动和运行。

【技术实现步骤摘要】
一种基于飞腾服务器的UEFI固件实现方法
本专利技术属于计算机固件
,涉及一种基于飞腾处理器服务器计算机系统(以下简称飞腾服务器)的UEFI固件的实现方法。
技术介绍
UEFI(UnifiedExtensibleFirmwareInterface,统一的可扩展固件接口)是一种计算机固件(或称为BIOS)的接口规范,也是关于固件的最主要的工业标准。UEFI规范最初是面向Intel公司的Itanium和X86处理器进行制定的,但是UEFI规范本身是与处理器架构无关的,目前已经应用于X86、Itanium、ARM等处理器平台。符合UEFI规范的计算机固件(以下简称UEFI固件)相对于传统的固件有很多优越性,目前主流的X86商用计算机系统基本上都是采用了UEFI固件。飞腾是由国防科学技术大学研制的国产通用中央处理器,采用SPARC精简指令集架构,实现了多核心、多线程,支持硬件虚拟化技术。飞腾处理器已形成多款型号产品,可应用于台式、便携式计算机以及服务器产品。目前应用于服务器计算机产品的飞腾处理器主要是FT1000A,FT1000A是一个SOC芯片,不仅包含处理器核心,还集成了多个外设控制器。OBP(OpenBootPROM)是飞腾处理器平台上的固件,最初是由SUN公司于1989年提出。OBP符合IEEE1275标准,主要负责飞腾处理器平台上电自检、平台初始化和引导操作系统。由于飞腾处理器支持硬件虚拟化,所以在系统上电时首先运行一个虚拟机监控器Hypervisot,由Hypervisot实现硬件资源虚拟化和硬件资源管理,然后将控制权交给启动固件OBP。与UEFI固件相比,OBP存在很多不足,主要表现在:OBP是用Forth编写的,Forth语言是冷门语言,掌握这门语言的开发人员很少,造成开发难度很大,维护也很困难;OBP是基于SUN公司提供的开源代码来开发的,使用OBP的公司很少,缺乏产业链的广泛支持;OBP仅对板载驱动是Forth语言编写的外设进行支持,很难支持主流的外设。
技术实现思路
本专利技术的目的主要是为了解决上述现有技术的缺陷,提供一种基于飞腾服务器的UEFI固件的实现方法。根据这个方法,可以在飞腾服务器上实现出符合国际主流UEFI固件规范、可扩展性强、功能完善的固件产品,并且能完全替代OBP,以支持飞腾服务器的正常启动和运行。一种基于飞腾服务器的UEFI固件的实现方法,固件划分为硬件抽象层、固件核心层、设备协议层和固件应用层。其中,硬件抽象层实现处理器、内存、外设控制器等关键硬件部件的初始化,对其他板级硬件进行包装和抽象并实现初始化,同时为上层模块提供访问底层硬件设备的函数接口。其包括处理器驱动模块和外设驱动模块,处理器驱动模块完成处理器、内存的初始化工作,并提供访问处理器和内存的接口;外设驱动模块主要是主板上各种外设的驱动,如显卡、硬盘、键盘、USB设备、网卡等,每个外设会对应一个(或多个)驱动模块。对于基于FT1000A的硬件平台,外设驱动模块还要完成处理器中集成的外设控制器的初始化和资源分配工作。固件核心层类似于操作系统的内核,建立UEFI中的系统服务表,进行固件中所有模块的统一管理和各种资源的管理。其包括固件核心加载模块、固件核心模块和基础架构功能模块,固件核心加载模块负责加载固件核心模块,并为其准备运行环境,固件核心模块负责建立UEFI规范中的启动服务(BootService)和运行时服务(RuntimeService)表,加载、运行其他功能模块,管理各模块之间的交互,实现内存的管理,实现和维护时钟中断和事件机制,实现和维护固件应用的特权级机制,实现UEFI规范中定义的Protocol的管理机制,实现UEFI规范要求实现的其他机制和功能,如调试接口、压缩算法、变量存储/处理等。基础架构功能模块实现UEFI规范中的ArchitecturalProtocol,包括多个功能模块,每个模块实现一个ArchitecturalProtocol。每个ArchitecturalProtocol包含一些基础服务接口,供固件中的其他功能模块调用。设备协议层实现各种标准的工业规范,包括总线协议、外设接口等。其包括总线协议模块,实现各种总线协议,如PCI/PCIE、SATA、PATA、SCSI、USB、ISA、SMBUS、LPCBUS等。通常是一个模块实现一种总线协议,并通过UEFI规范中的Protocol机制“发布”这些总线的接口,这样其他模块就可以使用这些接口来访问总线。固件应用层实现固件的各项功能,如配置界面、系统监控、文件系统、操作系统引导等;其包括设备扫描模块、人机界面模块、系统监控模块、服务器管理支持模块、IEEE1275支持模块、系统启动模块、内核加载模块和Shell模块,设备扫描模块枚举系统中的所有外部设备,如PCI/PCIE总线上的设备,为这些设备分配资源,并将设备与相应的外设驱动模块进行Connect(也即交给该设备驱动进行管理);人机界面模块位于显卡驱动模块之上,实现所有显示相关的接口,如设置显示模式、在特定位置打印字符串、显示图片、清屏等;系统监控模块实时检测处理器温度、系统电压和风扇转速,根据温度值来调整风扇的转速,允许用户设定温度阈值,当温度过高时,进行自动关机;服务器管理支持模块主要实现对服务器中的BMC管理单元和KVM单元的支持;IEEE1275支持模块实现IEEE1275规范中定义的固件与操作系统的函数接口、数据结构,供操作系统在启动和运行阶段调用;系统启动模块提供一个图形化的用户配置界面,用户通过菜单操作的方式,查看系统信息和对系统进行配置。最后根据用户的选择,从存储设备启动操作系统;文件系统模块实现FAT/FAT32、EXT2/3/4和ISO9660文件系统,支持对文件的读取操作;内核加载模块在系统启动的最后阶段,这个模块从硬盘、U盘、光盘等存储介质中将内核文件(或内核加载器)加载到内存中,并为内核文件准备必要的参数,然后跳转到内核(或内核加载器)的入口点执行,这样就将控制权交给了操作系统;Shell模块Shell是UEFI固件提供的一个命令行环境,基于UEFI固件中提供的大量接口服务,可以开发出Shell下的多种固件应用程序。本专利技术的基于飞腾服务器的UEFI固件的具体运行步骤如下:(1)初始化处理器、内存,建立起固件运行的基本环境;(2)将UEFI固件代码复制到内存,并对固件进行解压,加载固件核心模块;(3)建立UEFI固件的基础服务;(4)加载UEFI固件功能模块,包括基础架构功能模块、设备协议模块;(5)扫描设备并为设备分配系统资源,加载设备驱动模块,完成设备初始化;(6)加载执行固件应用模块;(7)运行配置界面;(8)从存储设备加载操作系统。上述步骤中,步骤(1)中执行处理器驱动模块。在步骤(1)执行之前,系统中的虚拟机监控器Hypervisor已经实现了物理处理器和内存的初始化,此时处理器驱动模块只需要对虚拟的处理器、内存进行初始化,进行参数的配置,以及提供访问CPU、Cache、内存等部件的接口。上述步骤中,步骤(2)中执行固件核心加载模块。步骤(1)执行完成后,系统内存已经初始化好,此时固件代码可以在内存中运行以加快运行速度;而且可以用C语言来实现固件本文档来自技高网
...
一种基于飞腾服务器的UEFI固件实现方法

【技术保护点】
一种基于飞腾服务器的UEFI固件实现方法,其特征是,所述固件划分为硬件抽象层、固件核心层、设备协议层和固件应用层;其中,硬件抽象层实现处理器、内存、外设控制器等关键硬件部件的初始化,对其他板级硬件进行包装和抽象并实现初始化,同时为上层模块提供访问底层硬件设备的函数接口;其包括处理器驱动模块和外设驱动模块,固件核心层类似于操作系统的内核,建立UEFI中的系统服务表,进行固件中所有模块的统一管理和各种资源的管理;其包括固件核心加载模块、固件核心模块和基础架构功能模块,设备协议层实现各种标准的工业规范,包括总线协议、外设接口等;其包括总线协议模块,实现各种总线协议,固件应用层实现固件的各项功能,如配置界面、系统监控、文件系统、操作系统引导等;其包括设备扫描模块、人机界面模块、系统监控模块、服务器管理支持模块、IEEE1275支持模块、系统启动模块、内核加载模块和Shell模块;所述固件的具体运行步骤如下:(1)初始化处理器、内存,建立起固件运行的基本环境;(2)将UEFI固件代码复制到内存,并对固件进行解压,加载固件核心模块;(3)建立UEFI固件的基础服务;(4)加载UEFI固件功能模块,包括基础架构功能模块、设备协议模块;(5)扫描设备并为设备分配系统资源,加载设备驱动模块,完成设备初始化;(6)加载执行固件应用模块;(7)运行配置界面;(8)从存储设备加载操作系统。...

【技术特征摘要】
1.一种基于飞腾服务器的UEFI固件实现方法,其特征是,所述固件划分为硬件抽象层、固件核心层、设备协议层和固件应用层;其中,硬件抽象层实现包括处理器、内存、外设控制器的关键硬件部件的初始化,对其他板级硬件进行包装和抽象并实现初始化,同时为上层模块提供访问底层硬件设备的函数接口;其包括处理器驱动模块和外设驱动模块;固件核心层类似于操作系统的内核,建立UEFI中的系统服务表,进行固件中所有模块的统一管理和各种资源的管理;其包括固件核心加载模块、固件核心模块和基础架构功能模块;设备协议层实现各种标准的工业规范,包括总线协议、外设接口;其包括总线协议模块,实现各种总线协议;固件应用层实现固件的各项功能,如配置界面、系统监控、文件系统、操作系统引导;其包括设备扫描模块、人机界面模块、系统监控模块、服务器管理支持模块、IEEE1275支持模块、系统启动模块、内核加载模块和Shell模块;所述固件的具体运行步骤如下:(1)初始化处理器、内存,建立起固件运行的基本环境;(2)将UEFI固件代码复制到内存,并对固件进行解压,加载固件核心模块;(3)建立UEFI固件的基础服务;(4)加载UEFI固件功能模块,包括基础架构功能模块、设备协议模块;(5)扫描设备并为设备分配系统资源,加载设备驱动模块,完成设备初始化;(6)加载执行固件应用层模块;(7)运行配置界面;(8)从存储设备加载操作系统。2.如权利要求1所述的基于飞腾服务器的UEFI固件实现方法,其特征是,所述步骤(1)中执行处理器驱动模块;在步骤(1)执行之前,系统中的虚拟机监控器Hypervisor已经实现了物理处理器和内存的初始化,此时处理器驱动模块只需要对虚拟的处理器、内存进行初始化,进行参数的配置,以及提供访问CPU、Cache、内存部件的接口;所述步骤(2)执行固件核心加载模块;步骤(1)执行完成后,系统内存已经初始化好,此时固件代码可以在内存中运行以加快运行速度;而且可以用C语言来实现固件代码,加快开发速度;固件中包含的功能模块较多,而FLASH芯片的容量有限,一般需要将存放功能模块的固件卷进行压缩,固件核心加载模块负责从FLASH中将压缩的固件卷复制到内存中,并进行解压;解压成功后,在内存中创建HOB(Hand-OffBlock)数据表,存放处理器、内存、FLASH系统信息,提供给后续的固件模块使用;最后,固件核心加载模块将控制权交给固件核心模块;所述步骤(3)执行固件核心模块;固件核心模块首先初始化UEFI的系统服务,为后续的功能模块的加载、运行做准备;完成UEFI系统表、UEFI启动服务表和UEFI运行时服务表的初始化,具体服务包括代码调试、内存管理、UEFI镜像管理、HOB、UEFI时钟、FLASH访问、解压缩、固件卷解析、UEFI事件、任务优先级、UEFIProtocol管理、UEFI变量存取;系...

【专利技术属性】
技术研发人员:陈小春张超朱立森王亚洲张家定赵丽娜刘昊天肖志坤周文丹
申请(专利权)人:中电科技北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1