主权项 |
基于通用可扩展固件接口固件系统的胶囊式定制更新方法,其特征在于,本胶囊式定制更新方法包括两部分:操作系统下更新程序、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中。 |