一种基于龙芯手持式计算机的uefi固件实现方法_2

文档序号:8258042阅读:来源:国知局
启动工作。
[0027]有益效果:
[0028]1、本发明的方法符合国际主流的UEFI和PI固件规范,可利用UEFI联盟提供的开源代码资源快速实现固件;很多外设板卡厂商都提供基于UEFI规范的驱动,也可大大加快固件开发的进度。另外,UEFI固件支持主要的计算机工业标准,如目前龙芯处理器还不支持的ACPI (高级配置和电源管理接口)规范,这样采用本发明设计的固件可以方便地增加对这些规范的支持。
[0029]2、本发明设计的UEFI固件的重要特点是高度模块化,固件所要实现的功能被分解成很多子功能,每个子功能由单独的模块来实现,并由一个核心模块来加载和管理这些功能模块。因此可以通过增删模块来方便地定制固件的功能。
【附图说明】
[0030]图1是基于龙芯手持机的UEFI固件的架构示意图。
【具体实施方式】
[0031]下面结合附图并举实施例,对本发明进行详细描述。
[0032]如附图1表示,下面以龙芯中科公司设计的一款型号为LST11A102I的开发板为例,来介绍本发明描述的UEFI固件的【具体实施方式】。主要包括以下步骤:
[0033](I)实现STU阶段的功能模块,包括两个模块,这个两个模块在编译以后将依次被放到FLASH芯片的开始位置,并在系统上电后依次被执行。包括:
[0034](1.1)创建一个Start模块,即处理器驱动模块。根据龙芯IA处理器手册实现处理器、Cache (高速缓存)、内存、地址窗口、TLB (旁路转换缓冲)等初始化,实现MCU (内存控制器)、SMBUS和内存的初始化,并提供访问CPU、Cache、内存等部件的接口 ;
[0035](1.2)创建一个Sec模块。这个模块的实现的功能包括在内存创建一些存放处理器、内存信息的数据结构,将FLASH芯片中的功能模块解压到内存中,最后加载执行固件核心模块DxeCore。
[0036](2)实现固件核心模块DxeCore。要实现的功能主要包括:实现UEFI规范中定义的启动服务和运行时服务表,加载、运行其他功能模块,管理各模块之间的交互,实现内存的管理,实现和维护时钟中断和事件机制,实现和维护固件应用的特权级机制,实现UEFI规范中定义的Protocol的管理机制,实现基础函数库,以及调试接口、压缩算法、变量存储
/处理等。
[0037](3)实现 Architectural Protocol,包括 Variable, Variable Write, Timer, CPU,Metronome, Monotonic Counter, Status Code, Watchdog Timer, RTC, BDS。一个模块实现一种 Architectural Protocol。
[0038](4)实现外设驱动模块。包括:
[0039](4.1)实现外设控制的驱动模块。根据龙芯IA处理器手册,实现集成的显示控制器、PS2控制器、USB控制器、NAND FLASH控制器、LPC控制器的初始化,并实现访问外设控制器的接口。
[0040](4.2)实现外设驱动模块,包括IXD显示屏、NAND FLASH存储器、T9键盘、USB存储设备、时钟中断驱动。
[0041](4.3)实现外设枚举模块,枚举PCI/PCIE总线上的设备,并为设备分配10、内存和中断资源。
[0042](5)实现总线驱动模块,包括PCI/PCIE、USB、SMBUS、LPCBUS, 一个模块实现一种总线协议。
[0043](6)实现固件应用层模块。主要包括:
[0044](6.1)实现人机界面模块。在IXD显示屏上显示一个操作界面,提供4个菜单,包括 System Recovery, Firmware Informat1n, Boot From Usb, Update the OS, Continue。用户可通过T9键盘的方向键来选择菜单执行相应的操作。
[0045](6.2)实现系统支持模块,实现系统恢复、系统升级、系统启动等功能。
[0046]在上述步骤中,对于与具体硬件平台相关的模块,如龙芯IA处理器,一般需要根据硬件的用户手册或参考厂家的开源代码来进行开发;对于与硬件平台无关的通用模块,如DxeCore模块、Architectural Protocol模块、总线协议、网络协议栈、USB存储设备驱动、键盘驱动、文件系统、BDS模块等,可以采用EDK II中提供的模块和代码;对于固件的功能模块,如配置界面、操作系统加载等,需要根据具体需求进行开发。
[0047]综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于龙芯手持式计算机的UEFI固件实现方法,其特征是,所述UEFI固件划分为硬件抽象层、固件核心层、设备协议层和固件应用层;其中,硬件抽象层实现处理器、内存、外设控制器等关键硬件部件的初始化,对其他板级硬件进行包装和抽象并实现初始化,同时为上层模块提供访问底层硬件设备的函数接口 ;其包括处理器驱动模块和外设驱动模块;固件核心层类建立UEFI中的系统服务表,进行固件中所有模块的统一管理和各种资源的管理;其包括固件核心加载模块、固件核心模块和基础架构功能模块;设备协议层实现各种标准的工业规范,包括总线协议和外设接口,其包括总线协议模块,实现各种总线协议;固件应用层实现固件的各项功能;其包括设备扫描模块、人机界面模块和系统支持模块; 所述UEFI固件的具体运行步骤如下: (1)初始化处理器、内存,建立起固件运行的基本环境; (2)将UEFI固件代码复制到内存,并对固件进行解压,加载固件核心模块; (3)建立UEFI固件的基础服务; (4)加载UEFI固件功能模块,包括基础架构功能模块、设备协议模块; (5)扫描设备并为设备分配系统资源,加载设备驱动模块,完成设备初始化; (6)运行人机界面; (7)启动操作系统,或进行操作系统的恢复、升级操作。
2.如权利要求1所述的基于龙芯手持式计算机的UEFI固件实现方法,其特征是,所述步骤(I)中执行处理器驱动模块。处理器驱动模块采用MIPS汇编语言实现,是系统上电后首先执行的模块,此时内存还未完成初始化,模块直接在FLASH芯片中运行。
3.如权利要求1所述的基于龙芯手持式计算机的UEFI固件实现方法,其特征是,所述步骤(2)中执行固件核心加载模块;步骤(I)执行完成后,系统内存已经初始化好,将存放功能模块的固件卷进行压缩,固件核心加载模块负责从FLASH中将压缩的固件卷复制到内存中,并进行解压;解压成功后,在内存中创建HOB (Hand-OffBlock)数据表,存放处理器、内存、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)中完成设备的初始工作;固件核心模块加载设备驱动模块,实现龙芯嵌入式处理器中集成的外设控制器的初始化,包括显示控制器、PS2控制器、USB控制器、NAND FLASH控制器、LPC控制器;并实现主板上外设的初始化和实现访问外设的函数接口,包括IXD显示屏、NAND FLASH存储器、T9键盘、USB设备等;通常由一个模块实现一种设备驱动。
7.如权利要求1所述的基于龙芯手持式计算机的UEFI固件实现方法,其特征是,所述步骤¢)中固件核心模块加载固件卷中的固件应用模块,主要包括人机界面模块、系统支持模块;然后运行人机界面模块,在LCD显示屏上提供少量的几个菜单,用户可通过T9键盘来选择要进行的操作,包括查看固件版本信息、进行系统恢复、系统升级、系统启动等;如果用户没有进行按键操作,则固件在等待时间超时后,自动进行操作系统启动。
8.如权利要求1所述的基于龙芯手持式计算机的UEFI固件实现方法,其特征是,所述步骤(7)中系统支持模块实现操作系统的启动、恢复和升级功能;根据用户在上一步骤中的选择,固件进行操作系统的恢复、升级或者启动功能;在进行操作系统恢复或升级时,固件从NAND FLASH中的备份区域或者U盘中读取操作系统内核文件,并写入NAND FLASH中存放操作系统内核的区域;在进行操作系统启动时,固件从NAND FLASH中将操作系统内核文件读取到内存,并为内核准备必要的启动参数,然后将控制权交给内核并的区域的备份区,从而完成系统的启动工作。
【专利摘要】本发明涉及一种基于龙芯手持式计算机的UEFI固件的实现方法,属于计算机固件技术领域。固件划分为硬件抽象层、固件核心层、设备协议层和固件应用层;硬件抽象层实现处理器、内存、芯片组等关键硬件部件的初始化,对其他板级硬件进行包装和抽象并实现初始化,同时为上层模块提供访问底层硬件设备的函数接口。固件核心层建立UEFI中的系统服务表,进行固件中所有模块的统一管理和各种资源的管理;设备协议层实现各种标准的工业规范;固件应用层实现固件的各项功能;本发明能够在龙芯手持式计算机上实现出符合国际主流UEFI固件规范、可扩展性强、功能完善的固件产品,以支计算机的正常启动和运行。
【IPC分类】G06F9-445
【公开号】CN104572162
【申请号】CN201410112040
【发明人】陈小春, 张超, 朱立森, 王亚洲, 张家定, 赵丽娜, 刘昊天, 肖志坤, 周文丹
【申请人】中电科技(北京)有限公司
【公开日】2015年4月29日
【申请日】2014年3月21日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1