CN104572164A - 一种基于飞腾便携式计算机的uefi固件实现方法 - Google Patents

一种基于飞腾便携式计算机的uefi固件实现方法 Download PDF

Info

Publication number
CN104572164A
CN104572164A CN201410112068.9A CN201410112068A CN104572164A CN 104572164 A CN104572164 A CN 104572164A CN 201410112068 A CN201410112068 A CN 201410112068A CN 104572164 A CN104572164 A CN 104572164A
Authority
CN
China
Prior art keywords
module
firmware
uefi
interface
internal memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410112068.9A
Other languages
English (en)
Inventor
陈小春
张超
朱立森
王亚洲
张家定
赵丽娜
刘昊天
肖志坤
周文丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC Beijing Co
Original Assignee
CETC Beijing Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CETC Beijing Co filed Critical CETC Beijing Co
Priority to CN201410112068.9A priority Critical patent/CN104572164A/zh
Publication of CN104572164A publication Critical patent/CN104572164A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

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

Description

一种基于飞腾便携式计算机的UEFI固件实现方法
技术领域
本发明属于计算机固件技术领域,涉及一种基于飞腾处理器便携式计算机系统(以下简称飞腾便携机)的UEFI固件的实现方法。
背景技术
UEFI(Unified Extensible Firmware Interface,统一的可扩展固件接口)是一种计算机固件(或称为BIOS)的接口规范,也是关于固件的最主要的工业标准。UEFI规范最初是面向Intel公司的Itanium和X86处理器进行制定的,但是UEFI规范本身是与处理器架构无关的,目前已经应用于X86、Itanium、ARM等处理器平台。符合UEFI规范的计算机固件(以下简称UEFI固件)相对于传统的固件有很多优越性,目前主流的X86商用计算机系统基本上都是采用了UEFI固件。
飞腾是由国防科学技术大学研制的国产通用中央处理器,采用SPARC精简指令集架构,实现了多核心、多线程,支持硬件虚拟化技术。飞腾处理器已形成多款型号产品,可应用于台式、便携式计算机以及服务器产品。目前应用于便携式计算机产品的飞腾处理器主要是FT1000A,FT1000A是一个SOC芯片,不仅包含处理器核心,还集成了多个外设控制器。
OBP(Open Boot PROM)是飞腾处理器平台上的固件,最初是由SUN公司于1989年提出。OBP符合IEEE1275标准,主要负责飞腾处理器平台上电自检、平台初始化和引导操作系统。由于飞腾处理器支持硬件虚拟化,所以在系统上电时首先运行一个虚拟机监控器Hypervisor,由Hypervisor实现硬件资源虚拟化和硬件资源管理,然后将控制权交给启动固件OBP。与UEFI固件相比,OBP存在很多不足,主要表现在:OBP是用Forth编写的,Forth语言是冷门语言,掌握这门语言的开发人员很少,造成开发难度很大,维护也很困难;OBP是基于SUN公司提供的开源代码来开发的,使用OBP的公司很少,缺乏产业链的广泛支持;OBP仅对板载驱动是Forth语言编写的外设进行支持,很难支持主流的外设。
发明内容
本发明的目的主要是为了解决上述现有技术的缺陷,提供一种基于飞腾便携式计算机的UEFI固件的实现方法。根据这个方法,可以在飞腾便携机上实现出符合国际主流UEFI固件规范、可扩展性强、功能完善的固件产品,并且能完全替代OBP,以支持飞腾便携机的正常启动和运行。
一种基于飞腾便携机的UEFI固件的实现方法,固件划分为硬件抽象层、固件核心层、设备协议层和固件应用层。
其中,硬件抽象层实现处理器、内存、外设控制器等关键硬件部件的初始化,对其他板级硬件进行包装和抽象并实现初始化,同时为上层模块提供访问底层硬件设备的函数接口。其包括处理器驱动模块、外设驱动模块和电源管理模块,处理器驱动模块完成处理器、内存的初始化工作,并提供访问处理器和内存的接口;外设驱动模块主要是主板上各种外设的驱动,如显卡、硬盘、键盘、USB设备、网卡等,每个外设会对应一个(或多个)驱动模块。对于基于FT1000A的硬件平台,外设驱动模块还要完成处理器中集成的外设控制器的初始化和资源分配工作;电源管理模块主要是用来配合操作系统来完成系统的待机、休眠和唤醒等功能,并实现设备电源管理相关的功能和函数接口。
固件核心层类似于操作系统的内核,建立UEFI中的系统服务表,进行固件中所有模块的统一管理和各种资源的管理。其包括固件核心加载模块、固件核心模块和基础架构功能模块,固件核心加载模块负责加载固件核心模块,并为其准备运行环境,固件核心模块负责建立UEFI规范中的启动服务(Boot Service)和运行时服务(Runtime Service)表,加载、运行其他功能模块,管理各模块之间的交互,实现内存的管理,实现和维护时钟中断和事件机制,实现和维护固件应用的特权级机制,实现UEFI规范中定义的Protocol的管理机制,实现UEFI规范要求实现的其他机制和功能,如调试接口、压缩算法、变量存储/处理等。基础架构功能模块实现UEFI规范中的Architectural Protocol,包括多个功能模块,每个模块实现一个Architectural Protocol。每个Architectural Protocol包含一些基础服务接口,供固件中的其他功能模块调用。
设备协议层实现各种标准的工业规范,包括总线协议、外设接口等。其包括总线协议模块,实现各种总线协议,如PCI/PCIE、SATA、PATA、SCSI、USB、ISA、SMBUS、LPCBUS等。通常是一个模块实现一种总线协议,并通过UEFI规范中的Protocol机制“发布”这些总线的接口,这样其他模块就可以使用这些接口来访问总线。
固件应用层实现固件的各项功能,如配置界面、系统监控、文件系统、操作系统引导等;其包括设备扫描模块、人机界面模块、系统监控模块、IEEE1275支持模块、系统启动模块、内核加载模块和Shell模块,设备扫描模块枚举系统中的所有外部设备,如PCI/PCIE总线上的设备,为这些设备分配资源,并将设备与相应的外设驱动模块进行Connect(也即交给该设备驱动进行管理);人机界面模块位于显卡驱动模块之上,实现所有显示相关的接口,如设置显示模式、在特定位置打印字符串、显示图片、清屏等;系统监控模块实时检测处理器温度、系统电压和风扇转速,根据温度值来调整风扇的转速,允许用户设定温度阈值,当温度过高时,进行自动关机;IEEE1275支持模块实现IEEE1275规范中定义的固件与操作系统的函数接口、数据结构,供操作系统在启动和运行阶段调用;系统启动模块提供一个图形化的用户配置界面,用户通过菜单操作的方式,查看系统信息和对系统进行配置。最后根据用户的选择,从存储设备启动操作系统;文件系统模块实现FAT/FAT32、EXT2/3/4和ISO9660文件系统,支持对文件的读取操作;内核加载模块在系统启动的最后阶段,这个模块从硬盘、U盘、光盘等存储介质中将内核文件(或内核加载器)加载到内存中,并为内核文件准备必要的参数,然后跳转到内核(或内核加载器)的入口点执行,这样就将控制权交给了操作系统;Shell模块Shell是UEFI固件提供的一个命令行环境,基于UEFI固件中提供的大量接口服务,可以开发出Shell下的多种固件应用程序。
本发明的基于飞腾便携机的UEFI固件的具体运行步骤如下:
(1)初始化处理器、内存,建立起固件运行的基本环境;
(2)将UEFI固件代码复制到内存,并对固件进行解压,加载固件核心模块;
(3)建立UEFI固件的基础服务;
(4)加载UEFI固件功能模块,包括基础架构功能模块、设备协议模块;
(5)扫描设备并为设备分配系统资源,加载设备驱动模块,完成设备初始化;
(6)加载电源管理模块,并根据启动模式来执行相应的启动路径:
a)如果当前启动模式是从S3待机状态唤醒,则跳转到操作系统进入S3状态前的运行地址,结束启动过程;
b)如果当前启动模式是正常启动模式(包括热启动、冷启动),或从S5休眠状态唤醒,则继续后续的步骤;
(7)加载执行固件应用模块;
(8)运行配置界面;
(9)从存储设备加载操作系统。
上述步骤中,步骤(1)中执行处理器驱动模块。在步骤(1)执行之前,系统中的虚拟机监控器Hypervisor已经实现了物理处理器和内存的初始化,此时处理器驱动模块只需要对虚拟的处理器、内存进行初始化,进行参数的配置,以及提供访问CPU、Cache、内存等部件的接口。
上述步骤中,步骤(2)中执行固件核心加载模块。步骤(1)执行完成后,系统内存已经初始化好,此时固件代码可以在内存中运行以加快运行速度;而且可以用C语言来实现固件代码,加快开发速度。固件中包含的功能模块较多,而FLASH芯片的容量有限,一般需要将存放功能模块的固件卷进行压缩,固件核心加载模块负责从FLASH中将压缩的固件卷复制到内存中,并进行解压;解压成功后,在内存中创建HOB(Hand-Off Block)数据表,存放处理器、内存、FLASH等系统信息,提供给后续的固件模块使用;最后,固件核心加载模块将控制权交给固件核心模块。
上述步骤中,步骤(3)中执行固件核心模块。固件核心模块首先初始化UEFI的系统服务,为后续的功能模块的加载、运行做准备。主要是完成UEFI系统表、UEFI启动服务表和UEFI运行时服务表的初始化,具体服务包括代码调试、内存管理、UEFI镜像管理、HOB、UEFI时钟、FLASH访问、解压缩、固件卷解析、UEFI事件、任务优先级、UEFI Protocol管理、UEFI变量存取等。系统服务表存放在内存的特定区域,UEFI固件中的所有功能模块都可以调用这些系统服务。
上述步骤中,步骤(4)中固件核心模块加载固件的功能模块。固件核心模块通过检索固件卷,依次查找其中的功能模块,并将其加载到内存中。每个功能模块都被编译成一个PE/ELF格式的可执行镜像,固件核心模块需要解析功能模块镜像,然后加载到内存的特定地址处,并跳转到入口函数。功能模块的入口函数执行完成后,通常会返回到固件核心模块,固件核心模块继续进行下一个功能模块的加载。
在步骤(4)中被加载的模块包括基础架构功能模块、设备协议模块。其中,基础架构功能模块主要功能是实现UEFI规范中的Architectural Protocol,主要包括:Boot Device Selection(BDS)、CPU、Metronome、Monotonic Counter、Real TimeClock、Runtime、Security、Status Code、Timer、Variable、Variable Write、WatchdogTimer,每个Architectural Protocol由一个模块来实现;设备协议层模块主要实现访问PCI/PCIE、SATA、PATA、SCSI、USB、ISA、SMBUS、LPCBUS等总线的函数接口,并封装在Protocol中供其他功能模块调用,通常是一个模块实现一种总线协议。
上述步骤中,步骤(5)中完成设备的初始工作。固件核心模块加载设备驱动模块,实现主板上外设的初始化和实现访问外设的函数接口,包括南北桥芯片、显卡、SATA/IDE控制器、USB控制器、SMBUS控制器、LPC控制器、键盘、网卡等。通常由一个模块实现一种设备驱动。另外,在这个阶段由设备扫描模块扫描系统中的所有外设,并为外设分配内存、IO和中断资源,这样外设在操作系统下才能正常工作。
上述步骤中,步骤(6)中固件核心模块加载电源管理模块,并以当前的启动模式来决定后续的启动路径。电源管理模块中实现了一些供操作系统调用的函数接口,操作系统在进入S3待机状态之前调用这些接口来设置设备的电源状态、内存工作模式等。另外,电源管理模块还读取(由操作系统在进入S3待机或S5休眠状态之前存入非易失存储器中的)启动模式值,如果发现当前启动模式是从S3状态唤醒,固件将非易失存储器中读取操作系统进入S3状态前的运行地址,并跳转到该地址,将控制权交给操作系统,从而结束启动过程;如果当前启动模式是正常启动模式(包括热启动、冷启动),或是从S5休眠状态唤醒,则固件继续后续的步骤。
上述步骤中,步骤(7)中固件核心模块加载固件卷中的固件应用模块,并实现对应的固件功能。包括显示模块、系统监控模块、IEEE1275支持模块、文件系统模块、内核加载模块、Shell模块、系统启动模块。最后,固件核心模块将控制权交给系统启动模块,准备启动操作系统。
上述步骤中,步骤(8)中系统启动模块通过调用固件核心模块和其他功能模块提供的服务接口,显示出图形配置界面作为人机交互界面。在这个阶段,固件根据用户的操作来进行下一步的工作,包括提供系统信息的显示和系统参数的配置,以及选择要启动的设备,包括硬盘、光盘、U盘、命令行等。用户通过特定按键退出配置界面进入到下一个执行步骤。
上述步骤中,步骤(9)中实现操作系统的启动。根据用户配置的启动顺序,系统启动模块依次尝试从硬盘、光盘、U盘等介质将操作系统内核文件(或内核加载器)加载到内存,并为内核准备必要的启动参数,然后将控制权交给内核(或内核加载器),从而完成系统的启动工作。操作系统启动完成后,可调用固件中实现的IEEE1275接口和数据结构。
有益效果:
1、本发明的方法符合国际主流的UEFI和PI固件规范,可利用UEFI联盟提供的开源代码资源快速实现固件;很多外设板卡厂商都提供基于UEFI规范的驱动,也可大大加快固件开发的进度;固件层可以提供更多的设备驱动和丰富的固件功能。另外,UEFI固件支持主要的计算机工业标准,如目前飞腾处理器还不支持的ACPI(高级配置和电源管理接口)规范,这样采用本发明设计的固件可以方便地增加对这些规范的支持。
2、本发明设计的UEFI固件的重要特点是高度模块化,固件所要实现的功能被分解成很多子功能,每个子功能由单独的模块来实现,并由一个核心模块来加载和管理这些功能模块。因此可以通过增删模块来方便地定制固件的功能。
3、本发明设计的UEFI固件可以实现对主流外设的支持,解决飞腾处理器平台传统固件OBP在外设兼容支持方面的缺陷,对于推动飞腾处理器的产业化带来好处。
附图说明
图1是基于飞腾便携机的UEFI固件的架构示意图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
如附图1表示,下面以浪潮北京公司设计的一款型号为LANGCHAO-FT1000A-LAPTOP-v1.4的便携机主板为例,来介绍本发明描述的UEFI固件的具体实施方式。主要包括以下步骤:
(1)实现STU阶段的功能模块,包括两个模块,这个两个模块在编译以后将依次被放到FLASH芯片的开始位置,并在系统上电后依次被执行。包括:
(1.1)创建一个Start模块,即处理器驱动模块。根据飞腾FT1000A处理器手册实现处理器、Cache(高速缓存)、内存、地址窗口、TLB(旁路转换缓冲)等初始化,实现MCU(内存控制器)、SMBUS和内存的初始化,并提供访问CPU、Cache、内存等部件的接口;
(1.2)创建一个Sec模块。这个模块的实现的功能包括在内存创建一些存放处理器、内存信息的数据结构,将FLASH芯片中的功能模块解压到内存中,最后加载执行固件核心模块DxeCore。
(2)实现固件核心模块DxeCore。要实现的功能主要包括:实现UEFI规范中定义的启动服务和运行时服务表,加载、运行其他功能模块,管理各模块之间的交互,实现内存的管理,实现和维护时钟中断和事件机制,实现和维护固件应用的特权级机制,实现UEFI规范中定义的Protocol的管理机制,实现基础函数库,以及调试接口、压缩算法、变量存储/处理等。
(3)实现Architectural Protocol,包括Variable,Variable Write,Timer,CPU,Metronome,Monotonic Counter,Status Code,Watchdog Timer,RTC,BDS。一个模块实现一种Architectural Protocol。
(4)实现外设驱动模块。包括:
(4.1)实现芯片组的驱动模块。根据芯片组手册实现对AMD RS780北桥芯片、AMD SB710南桥芯片的初始化,以及南桥芯片中PCI总线、USB、SATA/IDE、LPC/SMBUS总线、HD Audio控制器的初始化。
(4.2)实现外设驱动模块,包括显卡驱动、USB存储设备驱动、PS2键盘驱动、USB键盘驱动、SATA设备驱动、IDE设备驱动、网卡驱动、时钟中断驱动。
(4.3)实现外设枚举模块,枚举PCI/PCIE总线上的设备,并为设备分配IO、内存和中断资源。
(4.4)实现电源管理模块。在进行S3待机时,电源管理模块通知主板上的CPLD来设置外设电源状态;电源管理模块还从CMOS中读取启动模式值,以决定固件后续的启动路径。
(5)实现总线驱动模块,包括PCI/PCIE、SATA、PATA、SCSI、USB、ISA、SMBUS、LPCBUS,一个模块实现一种总线协议。
(6)实现固件应用层模块。主要包括:
(6.1)实现图形界面模块。可实现一个图形化的配置界面或命令行环境,支持用户查看处理器型号和频率、内存容量和频率、系统时间、启动顺序、外设列表等,并允许用户对系统时间、启动顺序进行配置。
(6.2)实现IEEE1275支持模块,根据IEEE Std.1275-1994和IEEE Std.1275.1-1994规范,建立操作系统启动和运行所需要的设备树(Device Tree),实现客户程序接口(Client Interface)、设备接口(Device Interface)等。
(6.3)实现内核引导模块,在内存中创建数据结构以存放操作系统需要的运行参数,并根据用户的配置,从硬盘、U盘、光盘的固定扇区中读取操作系统内核加载器SILO(Sparc Improved boot LOader)到内存中,最后将控制权交给SILO,由SILO完成操作系统内核的加载。
(6.4)实现系统启动模块,其功能包括:加载配置界面,调用内核引导模块中的接口实现操作系统的加载。
(6.5)实现Shell模块,用户可以通过在配置界面中设置启动顺序来启动到Shell命令行环境,Shell提供多个命令实现系统信息的查看、设备参数配置、访问存储介质中的文件、设备管理和测试、操作系统启动等。
在上述步骤中,对于与具体硬件平台相关的模块,对于本例来说主要是FT1000A处理器,需要根据硬件的用户手册或参考厂家的开源代码来进行开发;对于与硬件平台无关的通用模块,如DxeCore模块、Architectural Protocol模块、总线协议、SATA/IDE设备驱动、USB存储设备驱动、键盘驱动、文件系统、BDS模块等,可以采用EDK II中提供的模块和代码;对于固件的功能模块,如配置界面、操作系统加载等,需要根据具体需求进行开发;对于显卡驱动,由于显卡上的OPROM(Option ROM,显卡厂家提供的驱动)是X86指令集的,在SPARC指令集的飞腾处理器上无法执行,所以在固件中采用一个开源的X86模拟器模块来解释执行显卡的OPROM,实现对显卡的初始化。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种基于飞腾便携式计算机的UEFI固件实现方法,其特征是,所述固件划分为硬件抽象层、固件核心层、设备协议层和固件应用层;其中,硬件抽象层实现处理器、内存、外设控制器等关键硬件部件的初始化,对其他板级硬件进行包装和抽象并实现初始化,同时为上层模块提供访问底层硬件设备的函数接口;其包括处理器驱动模块、外设驱动模块和电源管理模块;固件核心层类似于操作系统的内核,建立UEFI中的系统服务表,进行固件中所有模块的统一管理和各种资源的管理,其包括固件核心加载模块、固件核心模块和基础架构功能模块;设备协议层实现各种标准的工业规范,包括总线协议、外设接口等;其包括总线协议模块,实现各种总线协议;固件应用层实现固件的各项功能,如配置界面、系统监控、文件系统、操作系统引导等;其包括设备扫描模块、人机界面模块、系统监控模块、IEEE1275支持模块、系统启动模块、内核加载模块和Shell模块;
所述固件的具体运行步骤如下:
(1)初始化处理器、内存,建立起固件运行的基本环境;
(2)将UEFI固件代码复制到内存,并对固件进行解压,加载固件核心模块;
(3)建立UEFI固件的基础服务;
(4)加载UEFI固件功能模块,包括基础架构功能模块、设备协议模块;
(5)扫描设备并为设备分配系统资源,加载设备驱动模块,完成设备初始化;
(6)加载电源管理模块,并根据启动模式来执行相应的启动路径:
a)如果当前启动模式是从S3待机状态唤醒,则跳转到操作系统进入S3状态前的运行地址,结束启动过程;
b)如果当前启动模式是正常启动模式(包括热启动、冷启动),或从S5休眠状态唤醒,则继续后续的步骤;
(7)加载执行固件应用模块;
(8)运行配置界面;
(9)从存储设备加载操作系统。
2.如权利要求1所述的基于飞腾便携式计算机的UEFI固件实现方法,其特征是在所述;步骤(1)中执行处理器驱动模块;在步骤(1)执行之前,系统中的虚拟机监控器Hypervisor已经实现了物理处理器和内存的初始化,此时处理器驱动模块只需要对虚拟的处理器、内存进行初始化,进行参数的配置,以及提供访问CPU、Cache、内存等部件的接口;
上述步骤中,步骤(2)中执行固件核心加载模块;步骤(1)执行完成后,系统内存已经初始化好,此时固件代码可以在内存中运行以加快运行速度;而且可以用C语言来实现固件代码,加快开发速度;固件中包含的功能模块较多,而FLASH芯片的容量有限,一般需要将存放功能模块的固件卷进行压缩,固件核心加载模块负责从FLASH中将压缩的固件卷复制到内存中,并进行解压;解压成功后,在内存中创建HOB(Hand-Off Block)数据表,存放处理器、内存、FLASH等系统信息,提供给后续的固件模块使用;最后,固件核心加载模块将控制权交给固件核心模块;
上述步骤中,步骤(3)中执行固件核心模块;固件核心模块首先初始化UEFI的系统服务,为后续的功能模块的加载、运行做准备;主要是完成UEFI系统表、UEFI启动服务表和UEFI运行时服务表的初始化,具体服务包括代码调试、内存管理、UEFI镜像管理、HOB、UEFI时钟、FLASH访问、解压缩、固件卷解析、UEFI事件、任务优先级、UEFI Protocol管理、UEFI变量存取等;系统服务表存放在内存的特定区域,UEFI固件中的所有功能模块都可以调用这些系统服务:
上述步骤中,步骤(4)中固件核心模块加载固件的功能模块;固件核心模块通过检索固件卷,依次查找其中的功能模块,并将其加载到内存中;每个功能模块都被编译成一个PE/ELF格式的可执行镜像,固件核心模块需要解析功能模块镜像,然后加载到内存的特定地址处,并跳转到入口函数;功能模块的入口函数执行完成后,通常会返回到固件核心模块,固件核心模块继续进行下一个功能模块的加载;
在步骤(4)中被加载的模块包括基础架构功能模块、设备协议模块;其中,基础架构功能模块主要功能是实现UEFI规范中的Architectural Protocol,主要包括:Boot Device Selection(BDS)、CPU、Metronome、Monotonic Counter、Real TimeClock、Runtime、Security、Status Code、Timer、Variable、Variable Write、WatchdogTimer,每个Architectural Protocol由一个模块来实现;设备协议层模块主要实现访问PCI/PCIE、SATA、PATA、SCSI、USB、ISA、SMBUS、LPCBUS等总线的函数接口,并封装在Protocol中供其他功能模块调用,通常是一个模块实现一种总线协议;
上述步骤中,步骤(5)中完成设备的初始工作;固件核心模块加载设备驱动模块,实现主板上外设的初始化和实现访问外设的函数接口,包括南北桥芯片、显卡、SATA/IDE控制器、USB控制器、SMBUS控制器、LPC控制器、键盘、网卡等;通常由一个模块实现一种设备驱动;另外,在这个阶段由设备扫描模块扫描系统中的所有外设,并为外设分配内存、IO和中断资源,这样外设在操作系统下才能正常工作;
上述步骤中,步骤(6)中固件核心模块加载电源管理模块,并以当前的启动模式来决定后续的启动路径;电源管理模块中实现了一些供操作系统调用的函数接口,操作系统在进入S3待机状态之前调用这些接口来设置设备的电源状态、内存工作模式等;另外,电源管理模块还读取(由操作系统在进入S3待机或S5休眠状态之前存入非易失存储器中的)启动模式值,如果发现当前启动模式是从S3状态唤醒,固件将非易失存储器中读取操作系统进入S3状态前的运行地址,并跳转到该地址,将控制权交给操作系统,从而结束启动过程;如果当前启动模式是正常启动模式(包括热启动、冷启动),或是从S5休眠状态唤醒,则固件继续后续的步骤;
上述步骤中,步骤(7)中固件核心模块加载固件卷中的固件应用模块,并实现对应的固件功能;包括显示模块、系统监控模块、IEEE1275支持模块、文件系统模块、内核加载模块、Shell模块、系统启动模块;最后,固件核心模块将控制权交给系统启动模块,准备启动操作系统;
上述步骤中,步骤(8)中系统启动模块通过调用固件核心模块和其他功能模块提供的服务接口,显示出图形配置界面作为人机交互界面;在这个阶段,固件根据用户的操作来进行下一步的工作,包括提供系统信息的显示和系统参数的配置,以及选择要启动的设备,包括硬盘、光盘、U盘、命令行等;用户通过特定按键退出配置界面进入到下一个执行步骤;
上述步骤中,步骤(9)中实现操作系统的启动;根据用户配置的启动顺序,系统启动模块依次尝试从硬盘、光盘、U盘等介质将操作系统内核文件(或内核加载器)加载到内存,并为内核准备必要的启动参数,然后将控制权交给内核(或内核加载器),从而完成系统的启动工作;操作系统启动完成后,可调用固件中实现的IEEE1275接口和数据结构。
CN201410112068.9A 2014-03-21 2014-03-21 一种基于飞腾便携式计算机的uefi固件实现方法 Pending CN104572164A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410112068.9A CN104572164A (zh) 2014-03-21 2014-03-21 一种基于飞腾便携式计算机的uefi固件实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410112068.9A CN104572164A (zh) 2014-03-21 2014-03-21 一种基于飞腾便携式计算机的uefi固件实现方法

Publications (1)

Publication Number Publication Date
CN104572164A true CN104572164A (zh) 2015-04-29

Family

ID=53088326

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410112068.9A Pending CN104572164A (zh) 2014-03-21 2014-03-21 一种基于飞腾便携式计算机的uefi固件实现方法

Country Status (1)

Country Link
CN (1) CN104572164A (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106909346A (zh) * 2015-12-22 2017-06-30 中电科技(北京)有限公司 一种基于一体计算机的uefi固件实现方法
CN106909400A (zh) * 2015-12-22 2017-06-30 中电科技(北京)有限公司 一种基于笔记本计算机的uefi固件实现方法
CN107273105A (zh) * 2016-04-08 2017-10-20 龙芯中科技术有限公司 固件启动方法和装置
CN108920194A (zh) * 2018-06-08 2018-11-30 山东超越数控电子股份有限公司 一种国产平台bios启动ext文件系统的方法
CN109669732A (zh) * 2019-02-14 2019-04-23 深圳力维智联技术有限公司 一种外扩功能系统及外扩功能硬件的驱动加载方法
CN109725943A (zh) * 2018-12-27 2019-05-07 龙芯中科技术有限公司 一种程序跳转方法、装置、电子设备及存储介质
CN110045967A (zh) * 2019-04-03 2019-07-23 中电科技(北京)有限公司 固件层的串口图形界面交互方法和装置
CN110377284A (zh) * 2019-07-18 2019-10-25 深圳市同泰怡信息技术有限公司 一种基于UEFI Shell图形界面操作文件的方法和装置以及设备
CN110837376A (zh) * 2019-10-28 2020-02-25 天津七一二通信广播股份有限公司 用于无线平面调车系统设备的linux系统及引入方法
CN111198719A (zh) * 2020-01-07 2020-05-26 天津飞腾信息技术有限公司 Arm平台实现acpi的方法、装置、设备及存储介质
CN111381892A (zh) * 2018-12-29 2020-07-07 阿里巴巴集团控股有限公司 一种数据处理方法、装置、设备和机器可读介质
CN113791874A (zh) * 2021-11-16 2021-12-14 苏州浪潮智能科技有限公司 虚拟机引导的配置方法、装置、计算机设备和存储介质
CN116483397A (zh) * 2023-06-25 2023-07-25 中储粮成都储藏研究院有限公司 单片机的固件切换方法及装置
WO2024113548A1 (zh) * 2022-11-28 2024-06-06 苏州元脑智能科技有限公司 电源管理的控制权移交方法、装置、设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120102306A1 (en) * 2010-10-22 2012-04-26 Lan Wang System for initiating execution of bios
CN103034510A (zh) * 2012-10-26 2013-04-10 中国航天科工集团第二研究院七〇六所 可按需要动态调整的uefi bios快速安全启动方法
CN103207797A (zh) * 2013-03-15 2013-07-17 南京工业大学 基于通用可扩展固件接口固件系统的胶囊式定制更新方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120102306A1 (en) * 2010-10-22 2012-04-26 Lan Wang System for initiating execution of bios
CN103034510A (zh) * 2012-10-26 2013-04-10 中国航天科工集团第二研究院七〇六所 可按需要动态调整的uefi bios快速安全启动方法
CN103207797A (zh) * 2013-03-15 2013-07-17 南京工业大学 基于通用可扩展固件接口固件系统的胶囊式定制更新方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杜振龙: "MIPS架构计算机平台的支持固件研究", 《兰州理工大学学报》 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106909346A (zh) * 2015-12-22 2017-06-30 中电科技(北京)有限公司 一种基于一体计算机的uefi固件实现方法
CN106909400A (zh) * 2015-12-22 2017-06-30 中电科技(北京)有限公司 一种基于笔记本计算机的uefi固件实现方法
CN107273105A (zh) * 2016-04-08 2017-10-20 龙芯中科技术有限公司 固件启动方法和装置
CN107273105B (zh) * 2016-04-08 2021-06-01 龙芯中科技术股份有限公司 固件启动方法和装置
CN108920194A (zh) * 2018-06-08 2018-11-30 山东超越数控电子股份有限公司 一种国产平台bios启动ext文件系统的方法
CN109725943B (zh) * 2018-12-27 2022-05-17 龙芯中科技术股份有限公司 一种程序跳转方法、装置、电子设备及存储介质
CN109725943A (zh) * 2018-12-27 2019-05-07 龙芯中科技术有限公司 一种程序跳转方法、装置、电子设备及存储介质
CN111381892A (zh) * 2018-12-29 2020-07-07 阿里巴巴集团控股有限公司 一种数据处理方法、装置、设备和机器可读介质
CN111381892B (zh) * 2018-12-29 2023-04-28 斑马智行网络(香港)有限公司 一种数据处理方法、装置、设备和机器可读介质
CN109669732A (zh) * 2019-02-14 2019-04-23 深圳力维智联技术有限公司 一种外扩功能系统及外扩功能硬件的驱动加载方法
CN109669732B (zh) * 2019-02-14 2024-05-17 深圳力维智联技术有限公司 一种外扩功能系统及外扩功能硬件的驱动加载方法
CN110045967A (zh) * 2019-04-03 2019-07-23 中电科技(北京)有限公司 固件层的串口图形界面交互方法和装置
CN110045967B (zh) * 2019-04-03 2023-03-24 昆仑太科(北京)技术股份有限公司 固件层的串口图形界面交互方法和装置
CN110377284A (zh) * 2019-07-18 2019-10-25 深圳市同泰怡信息技术有限公司 一种基于UEFI Shell图形界面操作文件的方法和装置以及设备
CN110377284B (zh) * 2019-07-18 2023-07-18 深圳市同泰怡信息技术有限公司 一种基于UEFI Shell图形界面操作文件的方法和装置以及设备
CN110837376A (zh) * 2019-10-28 2020-02-25 天津七一二通信广播股份有限公司 用于无线平面调车系统设备的linux系统及引入方法
CN111198719A (zh) * 2020-01-07 2020-05-26 天津飞腾信息技术有限公司 Arm平台实现acpi的方法、装置、设备及存储介质
CN113791874A (zh) * 2021-11-16 2021-12-14 苏州浪潮智能科技有限公司 虚拟机引导的配置方法、装置、计算机设备和存储介质
WO2024113548A1 (zh) * 2022-11-28 2024-06-06 苏州元脑智能科技有限公司 电源管理的控制权移交方法、装置、设备和存储介质
CN116483397A (zh) * 2023-06-25 2023-07-25 中储粮成都储藏研究院有限公司 单片机的固件切换方法及装置

Similar Documents

Publication Publication Date Title
CN104572165B (zh) 一种基于飞腾服务器的uefi固件实现方法
CN104572164A (zh) 一种基于飞腾便携式计算机的uefi固件实现方法
CN104572161B (zh) 一种基于龙芯便携式计算机的uefi固件实现方法
CN104572061A (zh) 一种基于龙芯服务器的uefi固件实现方法
US9880867B2 (en) Method and subsystem for data exchange between a guest operating system and a virtualization layer
US7584374B2 (en) Driver/variable cache and batch reading system and method for fast resume
EP1924909B1 (en) Method and apparatus for quick resumption
EP2202639B1 (en) Virtual machine monitor
US7793127B2 (en) Processor state restoration and method for resume
US10725770B2 (en) Hot-swapping operating systems using inter-partition application migration
US9858098B2 (en) Hypervisor modification of system tables
EP1983431A2 (en) Method and apparatus for quickly changing the power state of a data processing system
KR101920980B1 (ko) 멀티-운영 체제 디바이스들에 대한 액세스 격리
CN104572163A (zh) 一种基于龙芯台式计算机的uefi固件实现方法
US20110010706A1 (en) System and Method for Providing Redundancy for Management Controller
US9959134B2 (en) Request processing using VM functions
CN106909349A (zh) 一种基于服务器的uefi固件实现方法
CN106909399A (zh) 一种基于服务器计算机的uefi固件实现方法
CN104572162A (zh) 一种基于龙芯手持式计算机的uefi固件实现方法
US20130159689A1 (en) Method and apparatus for initializing embedded device
CN106909400A (zh) 一种基于笔记本计算机的uefi固件实现方法
CN106909346A (zh) 一种基于一体计算机的uefi固件实现方法
CN104572166A (zh) 一种基于飞腾台式计算机的uefi固件实现方法
CN100437494C (zh) 动态更新资源配置状态的方法
CN106909345A (zh) 一种基于台式计算机的uefi固件实现方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150429