一种基于服务器计算机的UEFI固件实现方法技术

技术编号:15746321 阅读:43 留言:0更新日期:2017-07-03 01:23
本发明专利技术公开了一种基于服务器计算机的UEFI固件实现方法。该方法具体为:服务器计算机上电启动,执行处理器驱动模块,初始化处理器和内存,并提供访问处理器和内存的接口,从而建立起固件运行的基本环境。执行固件核心加载模块,将UEFI固件代码复制到内存,并对固件进行解压,加载固件核心模块。执行固件核心模块,建立UEFI固件的基础服务;初始化UEFI的系统服务,完成UEFI系统表、UEFI启动服务表和UEFI运行时服务表的初始化,UEFI固件中的所有功能模块均可调用系统服务。加载UEFI固件功能模块,包括基础架构功能模块、设备协议模块。加载外设扫描模块,扫描外设并为外设分配系统资源,加载外设驱动模块,完成外设初始化。加载执行固件应用层中各模块,启动操作系统。

A UEFI firmware implementation method based on server computer

The invention discloses a UEFI firmware implementation method based on a server computer. The concrete method is: electric start on the server computer, execution processor driver module, initialization processor and memory, and provide access to the processor and memory interface, so as to establish the basic firmware running environment. Execute the firmware kernel load module, copy the UEFI firmware code into memory, unzip the firmware, and load the firmware core module. Implementation of firmware core module, UEFI firmware based service to establish service system; the initialization of UEFI, complete the UEFI system tables, initialize UEFI service table and UEFI service table, all function modules can call service system in the UEFI firmware. Load UEFI firmware function module, including infrastructure, function module, device protocol module. Load peripheral scan module, scan peripheral, distribute system resource for peripheral, load peripheral driver module, complete peripheral initialization. Load the modules in the firmware application layer and start the operating system.

【技术实现步骤摘要】
一种基于服务器计算机的UEFI固件实现方法
本专利技术属于本专利技术属于计算机固件
,涉及一种基于服务器计算机的UEFI固件的实现方法。。
技术介绍
UEFI(UnifiedExtensibleFirmwareInterface,统一的可扩展固件接口)是一种计算机固件(或称为BIOS)的接口规范,也是关于固件的最主要的工业标准。UEFI规范最初是面向Intel公司的Itanium和X86处理器进行制定的,但是UEFI规范本身是与处理器架构无关的,目前已经应用于X86、Itanium、ARM等处理器平台。符合UEFI规范的计算机固件(以下简称UEFI固件)相对于传统的固件有很多优越性,目前主流的X86商用计算机系统基本上都是采用了UEFI固件。申威是由江南计算所研制的国产通用中央处理器,采用国产自主精简指令集架构。申威处理器已形成一系列产品,分别可应用于台式、服务器计算机以及服务器产品。目前应用于服务器计算机产品的申威处理器主要是申威1610。申威是由江南计算所研制的国产通用中央处理器,采用国产自主精简指令集架构。申威处理器已形成一系列产品,分别可应用于台式、服务器计算机以及服务器产品。目前应用于便携式式计算机产品的申威处理器主要是申威1610。目前,龙芯、申威等国产处理器已有相应的固件方案,但申威仍缺乏完整的固件整体方案。
技术实现思路
有鉴于此,本专利技术提供了一种基于服务器计算机的UEFI固件的实现方法。根据这个方法,可以在申威服务器计算机上实现出符合国际主流UEFI固件规范可扩展性强、功能完善的固件产品,以支持申威服务器计算机的正常启动和运行。为了达到上述目的,本专利技术的技术方案为:UEFI固件分为硬件抽象层、固件核心层、设备协议层以及固件应用层。硬件抽象层包括处理器驱动模块、芯片组驱动模块和外设驱动模块,处理器驱动模块服务器计算机中处理器和内存进行初始化,并提供访问处理器和内存的接口;芯片组驱动模块对服务器计算机硬件平台中南北桥芯片进行初始化,包括桥片本身和各个外设控制器的初始化和资源分配工作,并提供访问南北桥的接口;外设驱动模块驱动服务器计算机主板上连接的外设。固件核心层包括固件核心加载模块、固件核心模块和基础架构功能模块,固件核心加载模块加载固件核心模块,并为其准备运行环境;固件核心模块建立UEFI规范中的启动服务BootService和运行时服务RuntimeService表,加载、运行固件核心层中的其他模块,管理固件核心层中各模块之间的交互,管理服务器计算机中内存,实现和维护时钟中断和事件机制,实现和维护固件应用的特权级机制,实现UEFI规范中定义的Protocol的管理机制,实现UEFI规范要求实现的机制和功能;基础架构功能模块实现UEFI规范中的体系结构协议ArchitecturalProtocol,基础架构功能模块包括多个功能模块,每个模块实现一个ArchitecturalProtocol;每个ArchitecturalProtocol包含一些基础服务接口,供固件中的其他功能模块调用。设备协议层包括总线协议模块和网络协议栈模块,总线协议模块实现各种总线协议,并通过UEFI规范中的Protocol机制发布总线的访问接口;网络协议栈模块实现网络协议栈。固件应用层包括设备扫描模块、人机界面显示模块、系统监控模块、系统启动模块、文件系统模块、内核加载模块、运行时模块和Shell模块;设备扫描模块枚举服务器计算机中的所有外设,并为外设分配资源,将外部设备与相应的外设驱动模块进行连接;人机界面显示模块与显卡驱动模块连接,实现所有显示相关的接口;系统监控模块实时检测服务器计算机中处理器温度、系统电压和风扇转速,根据处理器温度来调整风扇的转速,当处理器温度过高时,强制关机;系统启动模块提供一个图形化的用户配置界面,用户通过菜单操作的方式,查看系统信息和对系统进行配置。最后根据用户的选择,从存储设备启动操作系统;文件系统模块实现FAT/FAT32、EXT2/3/4和ISO9660文件系统,支持对文件的读取操作;内核加载模块在系统启动的最后阶段,从服务器计算机的存储介质中将内核文件加载到内存中,并为内核文件准备必要的参数,然后跳转到内核的入口点执行内核文件;运行时模块实现UEFI规范定义的供操作系统在其运行阶段调用的运行时Runtime接口,以及处理器平台的操作系统与固件定义的接口;Shell是UEFI固件提供的一个命令行环境,基于UEFI固件中提供的大量接口服务,开发出Shell下的多种固件应用程序。在上述UEFI固件的基础上,该方法包括如下步骤:步骤一、服务器计算机上电启动,执行处理器驱动模块,初始化处理器和内存,并提供访问处理器和内存的接口,从而建立起固件运行的基本环境。步骤二、执行固件核心加载模块,将UEFI固件代码复制到内存,并对固件进行解压,加载固件核心模块。步骤三、执行固件核心模块,建立UEFI固件的基础服务;初始化UEFI的系统服务,完成UEFI系统表、UEFI启动服务表和UEFI运行时服务表的初始化,UEFI固件中的所有功能模块均可调用系统服务。步骤四、加载UEFI固件功能模块,包括基础架构功能模块、设备协议模块。步骤五、加载外设扫描模块,扫描外设并为外设分配系统资源,加载外设驱动模块,完成外设初始化。步骤六、加载执行固件应用层中各模块,启动操作系统。上述步骤中,步骤(6)中固件核心模块加载固件卷中的固件应用模块,并实现对应的固件功能。包括显示模块、系统监控模块、文件系统模块、内核加载模块、运行时模块、Shell模块、系统启动模块,最后,固件核心模块将控制权交给系统启动模块,准备启动操作系统。进一步地,步骤一中,服务器计算机上电启动后,执行处理器驱动模块,此时服务器计算机中内存还未完成初始化,处理器驱动模块使用连接在服务器计算机中的FLASH芯片运行;处理器驱动模块实现服务器计算机中处理器、高速缓存Cache、内存、旁路转换缓冲TLB的初始化,实现内存控制器MCU、SMBUS和内存的初始化,配置内存地址窗口,并提供访问CPU、Cache、内存等部件的接口,处理器驱动模块还要初始化处理器中的串口模块,提供UEFI固件代码的调试。进一步地,步骤二中执行固件核心加载模块,服务器计算机中系统内存已经初始化好,此时固件代码可以在内存中运行以加快运行速度,FLASH中存有压缩的固件卷,固件核心加载模块从FLASH中将压缩的固件卷复制到内存中,并进行解压;解压成功后,在内存中创建HOB数据表,存放处理器、内存和FLASH的信息。进一步地,骤三中执行固件核心模块,初始化UEFI的系统服务包括代码调试、内存管理、UEFI镜像管理、HOB、UEFI时钟、FLASH访问、解压缩、固件卷解析、UEFI事件、任务优先级、UEFIProtocol管理、UEFI变量存取。进一步地,步骤四中固件核心模块加载固件的功能模块,固件核心模块通过检索固件卷,依次查找其中的功能模块,并将其加载到内存中,每个功能模块都被编译成一个PE/ELF格式的可执行镜像,固件核心模块需要解析功能模块镜像,然后加载到内存的特定地址处,并跳转到入口函数,功能模块的入口函数执行完成后,返回到固件核心模块,固件核心模块继续进行本文档来自技高网...
一种基于服务器计算机的UEFI固件实现方法

【技术保护点】
一种基于服务器计算机的UEFI固件实现方法,其特征在于,所述UEFI固件分为硬件抽象层、固件核心层、设备协议层以及固件应用层;所述硬件抽象层包括处理器驱动模块、芯片组驱动模块和外设驱动模块,所述处理器驱动模块对服务器计算机中处理器和内存进行初始化,并提供访问处理器和内存的接口;所述芯片组驱动模块对服务器计算机硬件平台中南北桥芯片进行初始化,包括桥片本身和各个外设控制器的初始化和资源分配工作,并提供访问南北桥的接口;所述外设驱动模块驱动服务器计算机主板上连接的外设;所述固件核心层包括固件核心加载模块、固件核心模块和基础架构功能模块,固件核心加载模块加载固件核心模块,并为其准备运行环境;固件核心模块建立UEFI规范中的启动服务Boot Service和运行时服务Runtime Service表,加载、运行固件核心层中的其他模块,管理固件核心层中各模块之间的交互,管理服务器计算机中内存,实现和维护时钟中断和事件机制,实现和维护固件应用的特权级机制,实现UEFI规范中定义的Protocol的管理机制,实现UEFI规范要求实现的机制和功能;基础架构功能模块实现UEFI规范中的体系结构协议Architectural Protocol,基础架构功能模块包括多个功能模块,每个模块实现一个Architectural Protocol;每个Architectural Protocol包含一些基础服务接口,供固件中的其他功能模块调用;所述设备协议层包括总线协议模块和网络协议栈模块,总线协议模块实现各种总线协议,并通过UEFI规范中的Protocol机制发布总线的访问接口;网络协议栈模块实现网络协议栈;所述固件应用层包括设备扫描模块、人机界面显示模块、系统监控模块、系统启动模块、文件系统模块、内核加载模块、运行时模块和Shell模块;设备扫描模块枚举服务器计算机中的所有外设,并为外设分配资源,将外部设备与相应的外设驱动模块进行连接;人机界面显示模块与显卡驱动模块连接,实现所有显示相关的接口;系统监控模块实时检测服务器计算机中处理器温度、系统电压和风扇转速,根据处理器温度来调整风扇的转速,当处理器温度过高时,强制关机;系统启动模块提供一个图形化的用户配置界面,用户通过菜单操作的方式,查看系统信息和对系统进行配置。最后根据用户的选择,从存储设备启动操作系统;文件系统模块实现FAT/FAT32、EXT2/3/4和ISO9660文件系统,支持对文件的读取操作;内核加载模块在系统启动的最后阶段,从服务器计算机的存储介质中将内核文件加载到内存中,并为内核文件准备必要的参数,然后跳转到内核的入口点执行内核文件;运行时模块实现UEFI规范定义的供操作系统在其运行阶段调用的运行时Runtime接口,以及处理器平台的操作系统与固件定义的接口;Shell是UEFI固件提供的一个命令行环境,基于UEFI固件中提供的大量接口服务,开发出Shell下的多种固件应用程序;在上述UEFI固件的基础上,该方法包括如下步骤:步骤一、服务器计算机上电启动,执行所述处理器驱动模块,初始化处理器和内存,并提供访问处理器和内存的接口,从而建立起固件运行的基本环境;步骤二、执行所述固件核心加载模块,将UEFI固件代码复制到内存,并对固件进行解压,加载固件核心模块;步骤三、执行固件核心模块,建立UEFI固件的基础服务;初始化UEFI的系统服务,完成UEFI系统表、UEFI启动服务表和UEFI运行时服务表的初始化,UEFI固件中的所有功能模块均可调用所述系统服务;步骤四、加载UEFI固件功能模块,包括基础架构功能模块、设备协议模块;步骤五、加载外设扫描模块,扫描外设并为外设分配系统资源,加载外设驱动模块,完成外设初始化;步骤六、加载执行固件应用层中各模块,启动操作系统。上述步骤中,步骤(6)中固件核心模块加载固件卷中的固件应用模块,并实现对应的固件功能。包括显示模块、系统监控模块、文件系统模块、内核加载模块、运行时模块、Shell模块、系统启动模块,最后,固件核心模块将控制权交给系统启动模块,准备启动操作系统。...

【技术特征摘要】
1.一种基于服务器计算机的UEFI固件实现方法,其特征在于,所述UEFI固件分为硬件抽象层、固件核心层、设备协议层以及固件应用层;所述硬件抽象层包括处理器驱动模块、芯片组驱动模块和外设驱动模块,所述处理器驱动模块对服务器计算机中处理器和内存进行初始化,并提供访问处理器和内存的接口;所述芯片组驱动模块对服务器计算机硬件平台中南北桥芯片进行初始化,包括桥片本身和各个外设控制器的初始化和资源分配工作,并提供访问南北桥的接口;所述外设驱动模块驱动服务器计算机主板上连接的外设;所述固件核心层包括固件核心加载模块、固件核心模块和基础架构功能模块,固件核心加载模块加载固件核心模块,并为其准备运行环境;固件核心模块建立UEFI规范中的启动服务BootService和运行时服务RuntimeService表,加载、运行固件核心层中的其他模块,管理固件核心层中各模块之间的交互,管理服务器计算机中内存,实现和维护时钟中断和事件机制,实现和维护固件应用的特权级机制,实现UEFI规范中定义的Protocol的管理机制,实现UEFI规范要求实现的机制和功能;基础架构功能模块实现UEFI规范中的体系结构协议ArchitecturalProtocol,基础架构功能模块包括多个功能模块,每个模块实现一个ArchitecturalProtocol;每个ArchitecturalProtocol包含一些基础服务接口,供固件中的其他功能模块调用;所述设备协议层包括总线协议模块和网络协议栈模块,总线协议模块实现各种总线协议,并通过UEFI规范中的Protocol机制发布总线的访问接口;网络协议栈模块实现网络协议栈;所述固件应用层包括设备扫描模块、人机界面显示模块、系统监控模块、系统启动模块、文件系统模块、内核加载模块、运行时模块和Shell模块;设备扫描模块枚举服务器计算机中的所有外设,并为外设分配资源,将外部设备与相应的外设驱动模块进行连接;人机界面显示模块与显卡驱动模块连接,实现所有显示相关的接口;系统监控模块实时检测服务器计算机中处理器温度、系统电压和风扇转速,根据处理器温度来调整风扇的转速,当处理器温度过高时,强制关机;系统启动模块提供一个图形化的用户配置界面,用户通过菜单操作的方式,查看系统信息和对系统进行配置。最后根据用户的选择,从存储设备启动操作系统;文件系统模块实现FAT/FAT32、EXT2/3/4和ISO9660文件系统,支持对文件的读取操作;内核加载模块在系统启动的最后阶段,从服务器计算机的存储介质中将内核文件加载到内存中,并为内核文件准备必要的参数,然后跳转到内核的入口点执行内核文件;运行时模块实现UEFI规范定义的供操作系统在其运行阶段调用的运行时Runtime接口,以及处理器平台的操作系统与固件定义的接口;Shell是UEFI固件提供的一个命令行环境,基于UEFI固件中提供的大量接口服务,开发出Shell下的多种固件应用程序;在上述UEFI固件的基础上,该方法包括如下步骤:步骤一、服务器计算机上电启动,执行所述处理器驱动模块,初始化处理器和内存,并提供访问处理器和内存的接口,从而建立起固件运行的基本环境;步骤二、执行所述固件核心加载模块,将UEFI固件代码复制到内存,并对固件进行解压,加载固件核心模块;步骤三、执行固件核心模块,建立UEFI固件的基础服务;初始化UEFI的系统服务,完成UEFI系统表、U...

【专利技术属性】
技术研发人员:陈小春张超朱立森孙亮肖志坤
申请(专利权)人:中电科技北京有限公司
类型:发明
国别省市:北京,11

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

1