CN104572161B - 一种基于龙芯便携式计算机的uefi固件实现方法 - Google Patents

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

Info

Publication number
CN104572161B
CN104572161B CN201410111930.4A CN201410111930A CN104572161B CN 104572161 B CN104572161 B CN 104572161B CN 201410111930 A CN201410111930 A CN 201410111930A CN 104572161 B CN104572161 B CN 104572161B
Authority
CN
China
Prior art keywords
module
firmware
uefi
internal memory
godson
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.)
Active
Application number
CN201410111930.4A
Other languages
English (en)
Other versions
CN104572161A (zh
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.)
Kunlun Taike (Beijing) Technology Co.,Ltd.
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 CN201410111930.4A priority Critical patent/CN104572161B/zh
Publication of CN104572161A publication Critical patent/CN104572161A/zh
Application granted granted Critical
Publication of CN104572161B publication Critical patent/CN104572161B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

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

Description

一种基于龙芯便携式计算机的UEFI固件实现方法
技术领域
本发明属于计算机固件技术领域,涉及一种基于龙芯处理器便携式计算机系统(以下简称龙芯便携机)的UEFI固件的实现方法。
背景技术
UEFI(Unified Extensible FirmwareInterface,统一的可扩展固件接口)是一种计算机固件(或称为BIOS)的接口规范,也是关于固件的最主要的工业标准。UEFI规范最初是面向Intel公司的Itanium和X86处理器进行制定的,但是UEFI规范本身是与处理器架构无关的,目前已经应用于X86、Itanium、ARM等处理器平台。符合UEFI规范的计算机固件(以下简称UEFI固件)相对于传统的固件有很多优越性,目前主流的X86商用计算机系统基本上都是采用了UEFI固件。
龙芯(Loongson)是由中国科学院计算所研制的国产通用中央处理器,采用MIPS精简指令集架构。龙芯处理器已形成一系列产品,分别可应用于嵌入式、台式、便携式计算机以及服务器产品。目前应用于便携式计算机产品的龙芯处理器主要是龙芯3A。
PMON是一款开源固件,最初是为LSILogic MIPS R3000评估板而设计,后来成为MIPS领域评估板和开发系统的通用固件。官方的PMON固件已经停止维护与发展,最新的PMON2000是PMON的非官方后继版本。龙芯厂商采用PMON2000作为调试处理器的固件,并应用在龙芯便携机解决方案中。但PMON与常规的UEFI计算机固件相比存在很多不足,主要表现在:PMON项目在很多年前就已经停止更新,在计算机工业界很少有厂家使用PMON或对其进行支持,因此PMON无法进行规范化和得到发展;不像UEFI固件支持最新的计算机技术,PMON代码对很多技术规范都不支持,无法实现对一些常见功能的支持,比如ACPI(目前最为通用的电源管理技术)、GRUB(目前最为通用的操作系统内核加载器)等;与UEFI固件相比,PMON没有采用模块化方法进行设计实现,可扩展性不强,开发维护也不方便。
发明内容
本发明的目的主要是为了解决上述现有技术的缺陷,提供一种基于龙芯便携机的UEFI固件的实现方法。根据这个方法,可以在龙芯便携机上实现出符合国际主流UEFI固件规范、可扩展性强、功能完善的固件产品,以支持龙芯便携机的正常启动和运行。
一种基于龙芯便携式计算机的UEFI固件的实现方法,固件划分为硬件抽象层、固件核心层、设备协议层和固件应用层。
其中,硬件抽象层实现处理器、内存、芯片组等关键硬件部件的初始化,对其他板级硬件进行包装和抽象并实现初始化,同时为上层模块提供访问底层硬件设备的函数接口。其包括处理器驱动模块、芯片组驱动模块、外设驱动模块和电源管理模块,处理器驱动模块完成处理器、内存的初始化工作,并提供访问处理器和内存的接口;芯片组驱动模块主要完成龙芯便携机硬件平台中南北桥芯片的初始化工作,包括桥片本身和各个外设控制器的初始化和资源分配工作,并提供访问南北桥的接口;外设驱动模块主要是主板上各种外设的驱动,如显卡、硬盘、键盘、USB设备、网卡等,每个外设会对应一个(或多个)驱动模块;电源管理模块主要是用来配合操作系统来完成系统的待机、休眠和唤醒等功能,并实现设备电源管理相关的功能和函数接口。
固件核心层类似于操作系统的内核,建立UEFI中的系统服务表,进行固件中所有模块的统一管理和各种资源的管理。其包括固件核心加载模块、固件核心模块和基础架构功能模块,固件核心加载模块负责加载固件核心模块,并为其准备运行环境,固件核心模块负责建立UEFI规范中的启动服务(Boot Service)和运行时服务(Runtime Service)表,加载、运行其他功能模块,管理各模块之间的交互,实现内存的管理,实现和维护时钟中断和事件机制,实现和维护固件应用的特权级机制,实现UEFI规范中定义的Protocol的管理机制,实现UEFI规范要求实现的其他机制和功能,如调试接口、压缩算法、变量存储/处理等。基础架构功能模块实现UEFI规范中的Architectural Protocol,包括多个功能模块,每个模块实现一个Architectural Protocol。每个Architectural Protocol包含一些基础服务接口,供固件中的其他功能模块调用。
设备协议层实现各种标准的工业规范,包括总线协议、外设接口、网络协议栈等。其包括总线协议模块和网络协议栈模块,总线协议模块实现各种总线协议,如PCI/PCIE、SATA、SCSI、USB、ISA、SMBUS、LPCBUS等。通常是一个模块实现一种总线协议,并通过UEFI规范中的Protocol机制“发布”这些总线的接口,这样其他模块就可以使用这些接口来访问总线;网络协议栈模块实现网络协议栈,如TCP/IP、SNP、DHCP、TFTP等,这样其他模块可以基于这些协议栈来实现网络相关的功能。
固件应用层实现固件的各项功能,如配置界面、系统监控、文件系统、操作系统引导等;其包括设备扫描模块、人机界面显示模块、系统监控模块、系统启动模块、文件系统模块、内核加载模块、运行时模块和Shell模块,设备扫描模块枚举系统中的所有外部设备,如PCI/PCIE总线上的设备,为这些设备分配资源,并将设备与相应的外设驱动模块进行Connect(也即交给该设备驱动进行管理);人机界面显示模块位于显卡驱动模块之上,实现所有显示相关的接口,如设置显示模式、在特定位置打印字符串、显示图片、清屏等;系统监控模块实时检测处理器温度、系统电压和风扇转速,根据温度值来调整风扇的转速;允许用户设定温度阈值,当温度过高时,进行自动关机;系统启动模块提供一个图形化的用户配置界面,用户通过菜单操作的方式,查看系统信息和对系统进行配置。最后根据用户的选择,从存储设备启动操作系统;文件系统模块实现FAT/FAT32、EXT2/3/4和ISO9660文件系统,支持对文件的读取操作;内核加载模块在系统启动的最后阶段,这个模块从硬盘、U盘、光盘等存储介质中将内核文件加载到内存中,并为内核文件准备必要的参数,然后跳转到内核的入口点执行,这样就将控制权交给了操作系统;运行时模块实现了UEFI规范定义的供操作系统在其运行阶段调用的运行时(Runtime)接口,以及龙芯处理器平台的操作系统与固件定义的一些接口,如系统重启、关机等;Shell模块Shell是UEFI固件提供的一个命令行环境,基于UEFI固件中提供的大量接口服务,可以开发出Shell下的多种固件应用程序。
本发明的基于龙芯便携机的UEFI固件的具体运行步骤如下:
(1)初始化处理器、内存,建立起固件运行的基本环境;
(2)将UEFI固件代码复制到内存,并对固件进行解压,加载固件核心模块;
(3)建立UEFI固件的基础服务;
(4)加载UEFI固件功能模块,包括基础架构功能模块、设备协议模块;
(5)扫描设备并为设备分配系统资源,加载设备驱动模块,完成设备初始化;
(6)加载电源管理模块,并根据启动模式来执行相应的启动路径:
a)如果当前启动模式是从S3待机状态唤醒,则跳转到操作系统进入S3状态前的运行地址,结束启动过程;
b)如果当前启动模式是正常启动模式(包括热启动、冷启动),或从S5休眠状态唤醒,则继续后续的步骤;
(7)加载执行固件应用模块;
(8)运行配置界面;
(9)从存储设备加载操作系统。
上述步骤中,步骤(1)中执行处理器驱动模块。处理器驱动模块采用MIPS汇编语言实现,是系统上电后首先执行的模块,此时内存还未完成初始化,所以这个模块直接在FLASH芯片中运行。处理器驱动模块实现龙芯3A处理器、Cache(高速缓存)、内存、TLB(旁路转换缓冲)等初始化,实现MCU(内存控制器)、SMBUS和内存的初始化,配置内存地址窗口,并提供访问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,主要包括:BootDevice Selection(BDS)、CPU、Metronome、Monotonic Counter、Real Time Clock、Runtime、Security、Status Code、Timer、Variable、Variable Write、Watchdog Timer,每个Architectural Protocol由一个模块来实现;设备协议层模块主要实现访问PCI/PCIE、SATA、SCSI、USB、ISA、SMBUS、LPCBUS等总线的函数接口,并封装在Protocol中供其他功能模块调用,通常是一个模块实现一种总线协议。另外,还包括实现TCP/IP网络协议栈的功能模块;
上述步骤中,步骤(5)中完成设备的初始工作。固件核心模块加载设备驱动模块,实现主板上外设的初始化和实现访问外设的函数接口,包括南北桥芯片、显卡、SATA控制器、USB控制器、SMBUS控制器、LPC控制器、键盘、网卡等。通常由一个模块实现一种设备驱动。另外,在这个阶段由设备扫描模块扫描系统中的所有外设,并为外设分配内存、IO和中断资源,这样外设在操作系统下才能正常工作。
上述步骤中,步骤(6)中固件核心模块加载电源管理模块,并以当前的启动模式来决定后续的启动路径。电源管理模块中实现了一些供操作系统调用的函数接口,操作系统在进入S3待机状态之前调用这些接口来设置设备的电源状态、内存工作模式等。另外,电源管理模块还读取(由操作系统在进入S3待机或S5休眠状态之前存入非易失存储器中的)启动模式值,如果发现当前启动模式是从S3状态唤醒,固件将非易失存储器中读取操作系统进入S3状态前的运行地址,并跳转到该地址,将控制权交给操作系统,从而结束启动过程;如果当前启动模式是正常启动模式(包括热启动、冷启动),或是从S5休眠状态唤醒,则固件继续后续的步骤。
上述步骤中,步骤(7)中固件核心模块固件卷中的固件应用模块,并实现对应的固件功能。包括显示模块、系统监控模块、文件系统模块、内核加载模块、运行时模块、Shell模块、系统启动模块。最后,固件核心模块将控制权交给系统启动模块,准备启动操作系统。
上述步骤中,步骤(8)中系统启动模块通过调用固件核心模块和其他功能模块提供的服务接口,显示出图形配置界面作为人机交互界面。在这个阶段,固件根据用户的操作来进行下一步的工作,包括提供系统信息的显示和系统参数的配置,以及选择要启动的设备,包括硬盘、光盘、U盘、网络、命令行等。用户通过特定按键退出配置界面进入到下一个执行步骤。
上述步骤中,步骤(9)中实现操作系统的启动。根据用户配置的启动顺序,系统启动模块依次尝试从硬盘、光盘、U盘、网络等介质将操作系统内核文件加载到内存,并为内核准备必要的启动参数,然后将控制权交给内核,从而完成系统的启动工作。操作系统启动完成后,仍然可调用固件中运行时模块提供的少量的函数,包括系统重启、关机等。
有益效果:
1、本发明的方法符合国际主流的UEFI和PI固件规范,可利用UEFI联盟提供的开源代码资源快速实现固件;很多外设板卡厂商都提供基于UEFI规范的驱动,也可大大加快固件开发的进度。另外,UEFI固件支持主要的计算机工业标准,如目前龙芯处理器还不支持的ACPI(高级配置和电源管理接口)规范,这样采用本发明设计的固件可以方便地增加对这些规范的支持。
2、本发明设计的UEFI固件的重要特点是高度模块化,固件所要实现的功能被分解成很多子功能,每个子功能由单独的模块来实现,并由一个核心模块来加载和管理这些功能模块。因此可以通过增删模块来方便地定制固件的功能。
附图说明
图1是基于龙芯便携机的UEFI固件的架构示意图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
如附图1表示,下面以中科梦兰公司设计的一款型号为逸珑8133笔记本为例,来介绍本发明描述的UEFI固件的具体实施方式。主要包括以下步骤:
(1)实现STU阶段的功能模块,包括两个模块,这个两个模块在编译以后将依次被放到FLASH芯片的开始位置,并在系统上电后依次被执行。包括:
(1.1)创建一个Start模块,即处理器驱动模块。根据龙芯3A处理器手册实现处理器、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北桥芯片、AMDSB710南桥芯片的初始化,以及南桥芯片中PCI总线、USB、SATA/IDE、LPC/SMBUS总线、HDAudio控制器的初始化。
(4.2)实现外设驱动模块,包括显卡驱动、USB存储设备驱动、PS2键盘驱动、USB键盘驱动、SATA设备驱动、IDE设备驱动、网卡驱动、时钟中断驱动。
(4.3)实现外设枚举模块,枚举PCI/PCIE总线上的设备,并为设备分配IO、内存和中断资源。
(4.4)实现电源管理模块。根据AMD RS780+SB710芯片组手册和外围芯片手册,实现外设电源状态设置接口,用于在S3待机时将外发配置成合适的电源状态。电源管理模块实现的这些接口需要放到内存中操作系统保留的区域,以保证可以被操作系统调用。电源管理模块还从CMOS中读取启动模式值,以决定固件后续的启动路径。
(5)实现总线驱动模块,包括PCI/PCIE、SATA、SCSI、USB、ISA、SMBUS、LPCBUS,一个模块实现一种总线协议。
(6)实现固件应用层模块。主要包括:
(6.1)实现图形界面模块。可实现一个图形化的配置界面或命令行环境,支持用户查看处理器型号和频率、内存容量和频率、系统时间、启动顺序、外设列表等,并允许用户对系统时间、启动顺序进行配置。
(6.2)实现文件系统模块,支持对FAT/FAT32、EXT2/3/4和ISO9660文件系统的读操作。
(6.3)实现内核引导模块,在内存中创建数据结构以存放操作系统需要的运行参数,并根据用户的配置,从硬盘、U盘、光盘或网络加载操作系统内核文件到内存中,最后将控制权交给操作系统内核。
(6.4)实现系统启动模块,其功能包括:加载配置界面,实现操作系统的加载。
(6.5)实现Shell模块,用户可以通过在配置界面中设置启动顺序来启动到Shell命令行环境,Shell提供多个命令实现系统信息的查看、设备参数配置、访问存储介质中的文件、设备管理和测试、操作系统启动等。
在上述步骤中,对于与具体硬件平台相关的模块,如龙芯3A处理器、AMD RS780+SB710芯片组,一般需要根据硬件的用户手册或参考厂家的开源代码来进行开发;对于与硬件平台无关的通用模块,如DxeCore模块、Architectural Protocol模块、总线协议、网络协议栈、SATA/IDE设备驱动、USB存储设备驱动、键盘驱动、文件系统、BDS模块等,可以采用EDKII中提供的模块和代码;对于固件的功能模块,如配置界面、操作系统加载等,需要根据具体需求进行开发;对于显卡驱动,由于显卡上的OPROM(Option ROM,显卡厂家提供的驱动)是X86指令集的,在MIPS指令集的龙芯处理器上无法执行,所以在固件中采用一个开源的X86模拟器模块来解释执行显卡的OPROM,实现对显卡的初始化。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410111930.4A CN104572161B (zh) 2014-03-21 2014-03-21 一种基于龙芯便携式计算机的uefi固件实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410111930.4A CN104572161B (zh) 2014-03-21 2014-03-21 一种基于龙芯便携式计算机的uefi固件实现方法

Publications (2)

Publication Number Publication Date
CN104572161A CN104572161A (zh) 2015-04-29
CN104572161B true CN104572161B (zh) 2017-10-27

Family

ID=53088323

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410111930.4A Active CN104572161B (zh) 2014-03-21 2014-03-21 一种基于龙芯便携式计算机的uefi固件实现方法

Country Status (1)

Country Link
CN (1) CN104572161B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106909346A (zh) * 2015-12-22 2017-06-30 中电科技(北京)有限公司 一种基于一体计算机的uefi固件实现方法
CN106909345A (zh) * 2015-12-22 2017-06-30 中电科技(北京)有限公司 一种基于台式计算机的uefi固件实现方法
CN106909347A (zh) * 2015-12-22 2017-06-30 中电科技(北京)有限公司 一种便携式计算机的uefi固件实现方法
CN107273105B (zh) * 2016-04-08 2021-06-01 龙芯中科技术股份有限公司 固件启动方法和装置
CN107147864A (zh) * 2017-06-09 2017-09-08 山东超越数控电子有限公司 一种lvds和vga接口自适应方法
CN109725943B (zh) * 2018-12-27 2022-05-17 龙芯中科技术股份有限公司 一种程序跳转方法、装置、电子设备及存储介质
CN112948060A (zh) * 2021-03-15 2021-06-11 北京邮电大学 一种固件二进制仿真方法、装置及计算机设备
CN116028129B (zh) * 2023-03-29 2023-06-13 湖南博匠信息科技有限公司 一种基于飞腾平台的uefi快速启动方法及飞腾平台

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102279914A (zh) * 2011-07-13 2011-12-14 中国人民解放军海军计算技术研究所 一种uefi可信支撑系统及其控制方法
CN103034510A (zh) * 2012-10-26 2013-04-10 中国航天科工集团第二研究院七〇六所 可按需要动态调整的uefi bios快速安全启动方法
CN103176829A (zh) * 2013-04-22 2013-06-26 东信和平科技股份有限公司 一种uefi内核执行外围设备驱动程序的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904708B2 (en) * 2008-02-18 2011-03-08 Dell Products L.P. Remote management of UEFI BIOS settings and configuration

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102279914A (zh) * 2011-07-13 2011-12-14 中国人民解放军海军计算技术研究所 一种uefi可信支撑系统及其控制方法
CN103034510A (zh) * 2012-10-26 2013-04-10 中国航天科工集团第二研究院七〇六所 可按需要动态调整的uefi bios快速安全启动方法
CN103176829A (zh) * 2013-04-22 2013-06-26 东信和平科技股份有限公司 一种uefi内核执行外围设备驱动程序的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"MIPS架构计算机平台的支持固件研究";杜振龙等;《兰州理工大学学报》;20131031;第39卷(第5期);第94-99页 *

Also Published As

Publication number Publication date
CN104572161A (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
CN104572161B (zh) 一种基于龙芯便携式计算机的uefi固件实现方法
CN104572165B (zh) 一种基于飞腾服务器的uefi固件实现方法
CN104572164A (zh) 一种基于飞腾便携式计算机的uefi固件实现方法
CN104572061A (zh) 一种基于龙芯服务器的uefi固件实现方法
CN106155657B (zh) Uefi固件的方法及其计算机系统
CN103207797B (zh) 基于通用可扩展固件接口固件系统的胶囊式定制更新方法
US7647509B2 (en) Method and apparatus for managing power in a processing system with multiple partitions
EP2442205A1 (en) Method and apparatus for managing power from a sequestered partition of a processing system
US7093116B2 (en) Methods and apparatus to operate in multiple phases of a basic input/output system (BIOS)
US7584374B2 (en) Driver/variable cache and batch reading system and method for fast resume
EP2705422B1 (en) Dynamically redirecting boot to another operating system
CN106909349A (zh) 一种基于服务器的uefi固件实现方法
US10725770B2 (en) Hot-swapping operating systems using inter-partition application migration
CN106909399A (zh) 一种基于服务器计算机的uefi固件实现方法
CN104572163A (zh) 一种基于龙芯台式计算机的uefi固件实现方法
US20140181811A1 (en) Hypervisor modification of advanced configuration and power interface (acpi) tables
CN104572162A (zh) 一种基于龙芯手持式计算机的uefi固件实现方法
CN101650647A (zh) 一种efi平台的兼容方法
CN109213301A (zh) 支援省电模式的uefi壳程序方法及其电脑系统
CN104156234A (zh) 启动多核处理器、bootloader大小端模式自适应的方法及装置
CN106909346A (zh) 一种基于一体计算机的uefi固件实现方法
CN106909400A (zh) 一种基于笔记本计算机的uefi固件实现方法
EP1037133A1 (en) Method and apparatus for alternation between instances of operating systems in computer systems
CN106909345A (zh) 一种基于台式计算机的uefi固件实现方法
CN106909347A (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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 100083 north side, 13th floor, Taiji building, No.6 working area (South), wohuqiao, Haidian District, Beijing

Patentee after: CLP Technology (Beijing) Co.,Ltd.

Address before: 100083 13th floor, Taiji building, 211 North Fourth Ring Middle Road, Beijing

Patentee before: CETC (BEIJING) Co.,Ltd.

CP03 Change of name, title or address
CP01 Change in the name or title of a patent holder

Address after: 100083 north side, 13th floor, Taiji building, No.6 working area (South), wohuqiao, Haidian District, Beijing

Patentee after: Kunlun Taike (Beijing) Technology Co.,Ltd.

Address before: 100083 north side, 13th floor, Taiji building, No.6 working area (South), wohuqiao, Haidian District, Beijing

Patentee before: CLP Technology (Beijing) Co.,Ltd.

CP01 Change in the name or title of a patent holder