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

文档序号:8258041阅读:来源:国知局
,并根据用户的配置,从硬盘、U盘、光盘或网络加载操作系统内核文件到内存中,最后将控制权交给操作系统内核。
[0054](6.4)实现系统启动模块,其功能包括:加载配置界面,实现操作系统的加载。
[0055](6.5)实现Shell模块,用户可以通过在配置界面中设置启动顺序来启动到Shell命令行环境,Shell提供多个命令实现系统信息的查看、设备参数配置、访问存储介质中的文件、设备管理和测试、操作系统启动等。
[0056]在上述步骤中,对于与具体硬件平台相关的模块,如龙芯3A处理器、AMDRS780+SB710芯片组,一般需要根据硬件的用户手册或参考厂家的开源代码来进行开发;对于与硬件平台无关的通用模块,如DxeCore模块、Architectural Protocol模块、总线协议、网络协议栈、SATA/IDE设备驱动、USB存储设备驱动、键盘驱动、文件系统、BDS模块等,可以采用EDK II中提供的模块和代码;对于固件的功能模块,如配置界面、操作系统加载等,需要根据具体需求进行开发;对于显卡驱动,由于显卡上的OPROM(Opt1n ROM,显卡厂家提供的驱动)是X86指令集的,在MIPS指令集的龙芯处理器上无法执行,所以在固件中采用一个开源的X86模拟器模块来解释执行显卡的0PR0M,实现对显卡的初始化。
[0057]综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
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固件实现方法,其特征是,所述步骤(I)中执行处理器驱动模块,处理器驱动模块采用MIPS汇编语言实现,是系统上电后首先执行的模块,此时内存还未完成初始化,模块直接在FLASH芯片中运行。
3.如权利要求1所述的基于龙芯便携式计算机的UEFI固件实现方法,其特征是,所述步骤⑵中执行固件核心加载模块;步骤⑴执行完成后,系统内存已经初始化好,此时固件代码在内存中运行以加快运行速度;用C语言来实现固件代码,将存放功能模块的固件卷进行压缩,固件核心加载模块负责从FLASH中将压缩的固件卷复制到内存中,并进行解压;解压成功后,在内存中创建HOB (Hand-Off Block)数据表,存放处理器、内存、FLASH等系统信息,提供给后续的固件模块使用;最后,固件核心加载模块将控制权交给固件核心模块。
4.如权利要求1所述的基于龙芯便携式计算机的UEFI固件实现方法,其特征是,所述步骤(3)中执行固件核心模块;固件核心模块首先初始化UEFI的系统服务,为后续的功能模块的加载、运行做准备。主要是完成UEFI系统表、UEFI启动服务表和UEFI运行时服务表的初始化,具体服务包括代码调试、内存管理、UEFI镜像管理、HOB、UEFI时钟、FLASH访问、解压缩、固件卷解析、UEFI事件、任务优先级、UEFI Protocol管理、UEFI变量存取,系统服务表存放在内存的特定区域,UEFI固件中的所有功能模块都可以调用这些系统服务。
5.如权利要求1所述的基于龙芯便携式计算机的UEFI固件实现方法,其特征是,所述步骤(4)中固件核心模块加载固件的功能模块;固件核心模块通过检索固件卷,依次查找其中的功能模块,并将其加载到内存中。每个功能模块都被编译成一个PE/ELF格式的可执行镜像,固件核心模块需要解析功能模块镜像,然后加载到内存的特定地址处,并跳转到入口函数。功能模块的入口函数执行完成后,通常会返回到固件核心模块,固件核心模块继续进行下一个功能模块的加载。
6.如权利要求1所述的基于龙芯便携式计算机的UEFI固件实现方法,其特征是,所述步骤(5)中完成设备的初始工作;固件核心模块加载设备驱动模块,实现主板上外设的初始化和实现访问外设的函数接口,包括南北桥芯片、显卡、SATA控制器、USB控制器、SMBUS控制器、LPC控制器、键盘、网卡等。通常由一个模块实现一种设备驱动;另外,在这个阶段由设备扫描模块扫描系统中的所有外设,并为外设分配内存、1和中断资源。
7.如权利要求1所述的基于龙芯便携式计算机的UEFI同件实现方法,其特征是,所述步骤¢)中固件核心模块加载电源管理模块,并以当前的启动模式来决定后续的启动路径;电源管理模块中实现了一些供操作系统调用的函数接口,操作系统在进入S3待机状态之前调用这些接口来设置设备的电源状态、内存工作模式等。另外,电源管理模块还读取启动模式值,如果发现当前启动模式是从S3状态唤醒,固件将非易失存储器中读取操作系统进入S3状态前的运行地址,并跳转到该地址,将控制权交给操作系统,从而结束启动过程;如果当前启动模式是正常启动模式,或是从S5休眠状态唤醒,则固件继续后续的步骤。
8.如权利要求1所述的基于龙芯便携式计算机的UEFI固件实现方法,其特征是,所述步骤(7)中固件核心模块固件卷中的固件应用模块,并实现对应的固件功能;包括显示模块、系统监控模块、文件系统模块、内核加载模块、运行时模块、Shell模块、系统启动模块;最后,固件核心模块将控制权交给系统启动模块,准备启动操作系统。
9.如权利要求1所述的基于龙芯便携式计算机的UEFI固件实现方法,其特征是,所述步骤(8)中系统启动模块通过调用固件核心模块和其他功能模块提供的服务接口,显示出图形配置界面作为人机交互界面;在这个阶段,固件根据用户的操作来进行下一步的工作,包括提供系统信息的显示和系统参数的配置,以及选择要启动的设备,包括硬盘、光盘、U盘、网络、命令行等。用户通过特定按键退出配置界面进入到下一个执行步骤。
10.如权利要求1所述的基于龙芯便携式计算机的UEFI固件实现方法,其特征是,所述步骤(9)中实现操作系统的启动。根据用户配置的启动顺序,系统启动模块依次尝试从硬盘、光盘、U盘、网络等介质将操作系统内核文件加载到内存,并为内核准备必要的启动参数,然后将控制权交给内核,从而完成系统的启动工作;操作系统启动完成后,仍然口调用固件中运行时模块提供的少量的函数,包括系统重启和关机。
【专利摘要】本发明涉及一种基于龙芯便携式计算机的UEFI固件的实现方法,属于计算机固件技术领域。固件划分为硬件抽象层、固件核心层、设备协议层和固件应用层;硬件抽象层实现处理器、内存、芯片组等关键硬件部件的初始化,对其他板级硬件进行包装和抽象并实现初始化,同时为上层模块提供访问底层硬件设备的函数接口。固件核心层建立UEFI中的系统服务表,进行固件中所有模块的统一管理和各种资源的管理;设备协议层实现各种标准的工业规范;固件应用层实现固件的各项功能;本发明能够在龙芯便携式计算机上实现出符合国际主流UEFI固件规范、可扩展性强、功能完善的固件产品,以支持计算机的正常启动和运行。
【IPC分类】G06F9-445
【公开号】CN104572161
【申请号】CN201410111930
【发明人】陈小春, 张超, 朱立森, 王亚洲, 张家定, 赵丽娜, 刘昊天, 肖志坤, 周文丹
【申请人】中电科技(北京)有限公司
【公开日】2015年4月29日
【申请日】2014年3月21日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1