一种基于飞腾台式计算机的uefi固件实现方法_3

文档序号:8258046阅读:来源:国知局
t LOader)到内存中,最后将控制权交给SIL0,由SILO完成操作系统内核的加载。
[0050](6.4)实现系统启动模块,其功能包括:加载配置界面,调用内核引导模块中的接口实现操作系统的加载。
[0051](6.5)实现Shell模块,用户可以通过在配置界面中设置启动顺序来启动到Shell命令行环境,Shell提供多个命令实现系统信息的查看、设备参数配置、访问存储介质中的文件、设备管理和测试、操作系统启动等。
[0052]在上述步骤中,对于与具体硬件平台相关的模块,对于本例来说主要是FT1000A处理器,需要根据硬件的用户手册或参考厂家的开源代码来进行开发;对于与硬件平台无关的通用模块,如DxeCore模块、Architectural Protocol模块、总线协议、SATA / IDE设备驱动、USB存储设备驱动、键盘驱动、文件系统、BDS模块等,可以采用EDK II中提供的模块和代码;对于固件的功能模块,如配置界面、操作系统加载等,需要根据具体需求进行开发;对于显卡驱动,由于显卡上的0PR0M(Opt1n ROM,显卡厂家提供的驱动)是X86指令集的,在SPARC指令集的飞腾处理器上无法执行,所以在固件中采用一个开源的X86模拟器模块来解释执行显卡的OPROM,实现对显卡的初始化。
[0053]综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于飞腾台式计算机的UEFI固件实现方法,其特征是,固件划分为硬件抽象层、固件核心层、设备协议层和固件应用层;其中,硬件抽象层实现处理器、内存、外设控制器等关键硬件部件的初始化,对其他板级硬件进行包装和抽象并实现初始化,同时为上层模块提供访问底层硬件设备的函数接口,其包括处理器驱动模块和外设驱动模块;固件核心层类似于操作系统的内核,建立UEFI中的系统服务表,进行固件中所有模块的统一管理和各种资源的管理,其包括固件核心加载模块、固件核心模块和基础架构功能模块;设备协议层实现各种标准的工业规范,包括总线协议、外设接口 ;其包括总线协议模块,实现各种总线协议;固件应用层实现固件的各项功能,如配置界面、系统监控、文件系统、操作系统引导等;其包括设备扫描模块、人机界面模块、系统监控模块、IEEE1275支持模块、系统启动模块、内核加载模块和Shell模块;1固件的具体运行步骤如下: (1)初始化处理器、内存,建立起固件运行的基本环境; (2)将UEFI固件代码复制到内存,并对固件进行解压,加载固件核心模块; (3)建立UEFI固件的基础服务; (4)加载UEFI固件功能模块,包括基础架构功能模块、设备协议模块; (5)扫描设备并为设备分配系统资源,加载设备驱动模块,完成设备初始化; (6)加载执行固件应用模块; (7)运行配置界面; (8)从存储设备加载操作系统。
2.如权利要求1所述的基于飞腾台式计算机的UEFI固件实现方法,其特征是,所述步骤(I)中执行处理器驱动模块;在步骤(I)执行之前,系统中的虚拟机监控器Hypervisor已经实现了物理处理器和内存的初始化,此时处理器驱动模块只需要对虚拟的处理器、内存进行初始化,进行参数的配置,以及提供访问CPU、Cache、内存等部件的接口。
3.如权利要求1所述的基于飞腾台式计算机的UEFI固件实现方法,其特征是,所述步骤(2)中执行固件核心加载模块;步骤(I)执行完成后,系统内存已经初始化好,此时固件代码可以在内存中运行以加快运行速度;而且可以用C语言来实现固件代码,加快开发速度。固件中包含的功能模块较多,而FLASH芯片的容量有限,一般需要将存放功能模块的固件卷进行压缩,固件核心加载模块负责从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 / IDE控制器、USB控制器、SMBUS控制器、LPC控制器、键盘、网卡等。通常由一个模块实现一种设备驱动。另外,在这个阶段由设备扫描模块扫描系统中的所有外设,并为外设分配内存、1和中断资源,这样外设在操作系统下才能正常工作。
7.如权利要求1所述的基于飞腾台式计算机的UEFI固件实现方法,其特征是,所述步骤(6)中固件核心模块加载固件卷中的固件应用模块,并实现对应的固件功能;包括显示模块、系统监控模块、IEEE1275支持模块、文件系统模块、内核加载模块、Shell模块、系统启动模块。最后,固件核心模块将控制权交给系统启动模块,准备启动操作系统。
8.如权利要求1所述的基于飞腾台式计算机的UEFI固件实现方法,其特征是,所述步骤(7)中系统启动模块通过调用固件核心模块和其他功能模块提供的服务接口,显示出图形配置界面作为人机交互界面;在这个阶段,固件根据用户的操作来进行下一步的工作,包括提供系统信息的显示和系统参数的配置,以及选择要启动的设备,包括硬盘、光盘、U盘、命令行等。用户通过特定按键退出配置界面进入到下一个执行步骤。
9.如权利要求1所述的基于飞腾台式计算机的UEFI固件实现方法,其特征是,所述步骤(8)中实现操作系统的启动。根据用户配置的启动顺序,系统启动模块依次尝试从硬盘、光盘、U盘等介质将操作系统内核文件(或内核加载器)加载到内存,并为内核准备必要的启动参数,然后将控制权交给内核(或内核加载器),从而完成系统的启动工作。操作系统启动完成后,可调用固件中实现的IEEE1275接口和数据结构。
【专利摘要】本发明涉及一种基于飞腾台式计算机的UEFI固件实现方法,属于计算机固件技术领域。固件划分为硬件抽象层、固件核心层、设备协议层和固件应用层,硬件抽象层实现处理器、内存、芯片组等关键硬件部件的初始化,对其他板级硬件进行包装和抽象并实现初始化,同时为上层模块提供访问底层硬件设备的函数接口。固件核心层建立UEFI中的系统服务表,进行固件中所有模块的统一管理和各种资源的管理;设备协议层实现各种标准的工业规范;固件应用层实现固件的各项功能,如配置界面、系统监控、文件系统、操作系统引导等;本发明能够在飞腾台式机上实现出符合国际主流UEFI固件规范、可扩展性强、功能完善的固件产品,以支持飞腾台式机的正常启动和运行。
【IPC分类】G06F9-445
【公开号】CN104572166
【申请号】CN201410112114
【发明人】陈小春, 张超, 朱立森, 王亚洲, 张家定, 赵丽娜, 刘昊天, 肖志坤, 周文丹
【申请人】中电科技(北京)有限公司
【公开日】2015年4月29日
【申请日】2014年3月21日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1