发明名称 基于通用可扩展固件接口固件系统的胶囊式定制更新方法
摘要 本发明提出了基于通用可扩展固件接口固件系统的胶囊式定制更新方法,所述方法基于通用可扩展固件接口UEFI固件系统的胶囊Capsule机制,摆脱了目前主流固件更新技术依赖系统管理中断SMI驱动,通过对Capsule进行解析,得到待更新的固件卷FV模块,并对FV模块进行识别,将获取的数据写入固件文件系统目标地址,从而实现对选定FV进行更新,摆脱了以往需要对整个BIOS更新的方法。Capsule机制解决了更新工具在不同硬件平台、操作系统上无法统一的问题。该固件更新方法,更具灵活性、应用价值高。可应用于固件远程刷新、固件自动恢复等方面。
申请公布号 CN103207797A 申请公布日期 2013.07.17
申请号 CN201310083959.1 申请日期 2013.03.15
申请人 南京工业大学 发明人 杜振龙;沙光侠;李晓丽;吴彦君
分类号 G06F9/445(2006.01)I 主分类号 G06F9/445(2006.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 朱小兵
主权项 基于通用可扩展固件接口固件系统的胶囊式定制更新方法,其特征在于,本胶囊式定制更新方法包括两部分:操作系统下更新程序、UEFI固件系统中更新程序;所述方法包括如下步骤:步骤A,利用可扩展固件接口开发框架EDK II编译规范,对需要更新的固件卷FV模块进行编译,把固件卷FV 封装成胶囊Capsule;步骤B,操作系统下更新程序通过胶囊Capsule头结构体找到Capsule中固件卷FV的位置,根据系统当前空闲内存状况判断是否需要对Capsule进行分块,如果需要分块则分成更小的数据单元胶囊SubCapsule,并为每个单元胶囊SubCapsule分配内存空间;步骤C,操作系统下更新程序设置计算机进入S3睡眠状态,通过实时时钟设置唤醒,进入UEFI固件系统,UEFI固件系统访问内存中的单元胶囊SubCapsule;步骤D,UEFI固件系统进入环境初始化PEI阶段,识别并合并单元胶囊SubCapsule,得到完整的胶囊Capsule,把合并后的Capsule在内存中的位置地址和大小写入交接块HOB链表;步骤E,UEFI固件系统在驱动执行环境DXE阶段, 利用交接块HOB链表,解析Capsule,提取出保存在其中的FV模块,通过FV的校验和来判断FV 是否合法,并读取其中的驱动或应用程序;步骤F,调用UEFI 中驱动执行环境DXE阶段的驱动分配加载Dispatch服务,判断驱动之间的依赖关系,依照正确的顺序发现和执行UEFI固件更新驱动;步骤G,UEFI固件更新驱动读取固件镜像内容位置图Flash map,得到待更新的固件卷FV在固件二进制文件FD中的位置信息,把内存中待更新的固件卷FV模块写入固件二进制文件FD中。
地址 210008 江苏省南京市浦口区浦珠南路30号