一种基于笔记本计算机的UEFI固件实现方法技术

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

A UEFI firmware implementation method based on notebook computer

The invention discloses a method for realizing UEFI firmware based on notebook. The method is as follows: the notebook is powered on, the processor driver module is executed, the processor and memory are initialized, and the interface between the processor and memory is provided, so as to establish the basic environment for the firmware operation. 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固件。飞腾1500A(FT)是由国防科学技术大学研制的国产通用中央处理器,采用ARMV8指令集,采用国际先进的28nm工艺流片,具有高性能、低功耗特点,关键技术国内领先,可实现对Intel中高端“至强”服务器芯片的代替。飞腾1500A系列目前包括4核和16核两款产品,4核处理器芯片主要面向桌面终端和轻量级服务器应用领域,适用于构建台式终端、一体机、便携笔记本、微服务器等产品。16核处理器芯片面向服务器应用领域,适用于构建网络前端接入服务器、事务处理服务器、邮件服务器等产品。U-BOOT是一款开源固件,支持多个处理器系列,如PowerPC、ARM、X86、MIPS等,飞腾厂商采用U-BOOT作为调试处理器的固件,并应用在飞腾笔记本解决方案中。但U-BOOT与常规的UEFI计算机固件相比存在很多不足,主要表现在:U-BOOT项目在计算机工业界很少有厂家使用U-BOOT或对其进行支持,因此U-BOOT无法进行规范化和得到发展;不像UEFI固件支持最新的计算机技术,U-BOOT代码对很多技术规范都不支持,无法实现对一些常见功能的支持,比如ACPI(目前最为通用的电源管理技术)、GRUB(目前最为通用的操作系统内核加载器)等;与UEFI固件相比,U-BOOT没有采用模块化方法进行设计实现,可扩展性不强,开发维护也不方便。
技术实现思路
有鉴于此,本专利技术提供了一种基于笔记本计算机的UEFI固件的实现方法。根据这个方法,可以在飞腾1500A笔记本计算机上实现出符合国际主流UEFI固件规范、可扩展性强、功能完善的固件产品,以支持飞腾1500A笔记本计算机的正常启动和运行。为了达到上述目的,本专利技术的技术方案为: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数据表,存放处理器、本文档来自技高网
...
一种基于笔记本计算机的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