公开/公告号CN104503810A
专利类型发明专利
公开/公告日2015-04-08
原文格式PDF
申请/专利权人 合肥联宝信息技术有限公司;
申请/专利号CN201510010233.4
发明设计人 田硕;
申请日2015-01-08
分类号G06F9/445;
代理机构北京金信知识产权代理有限公司;
代理人黄威
地址 230601 安徽省合肥市经济技术开发区翠微路6号海恒大厦4楼418号
入库时间 2023-12-17 04:48:46
法律状态公告日
法律状态信息
法律状态
2018-03-23
授权
授权
2015-05-06
实质审查的生效 IPC(主分类):G06F9/445 申请日:20150108
实质审查的生效
2015-04-08
公开
公开
技术领域
本发明涉及计算机领域,具体涉及一种更新计算机系统中的 BIOS固件的方法及装置。
背景技术
用户在更新BIOS固件时,需要将BIOS固件通过BIOS刷新工 具更新到主板上。如果出现研发、厂商或者工厂管控不严,导致有问 题的BIOS固件流入市场,最终被用户用于BIOS固件更新之后,可 能会导致机台或者主板无法开机的情况,这严重影响了用户体验,甚 至可能会造成客诉或者赔偿等事件,进一步造成用户和厂商双方面的 经济损失。
现有技术中采用双BIOS固件存储芯片,BIOS Crisis/Recovery技 术,或者通过外设直接刷入BIOS固件存储芯片来解决上述问题。然 而,采用双BIOS固件存储芯片的方案的缺点是需要增加一个BIOS 固件存储芯片,从而导致成本提高。此外,BIOS Crisis/Recovery和 外设直接刷入,是问题已经发生的补救措施,影响用户体验,并且需 要用户具有一定的专业知识才能实现。
发明内容
本发明针对上述问题,提供一种更新BIOS固件的方法及装置。
为了实现上述目的,本发明一方面提供了一种更新计算机系统中 的BIOS固件的方法,包括步骤:
将新版BIOS固件存放在内存可用区域中;
将所述新版BIOS固件解压成BIOS映像文件,并使所述BIOS 映像文件替换位于内存特定区域中现有BIOS固件;
执行替换后的所述BIOS映像文件,以引导系统初始化;
判定执行结果是否正常;
如果判定执行结果正常,则将存放在所述内存可用区域中的新版 BIOS固件刷入BIOS固件存储芯片,重启所述系统;和
如果判定执行结果异常,则提示新版BIOS固件未能成功刷入, 重启所述系统。
作为优选,在将所述新版BIOS固件存放在内存可用区域之前, 该方法还包括:
在用户接口提供给用户的一项或多项BIOS固件中,选择或指定 所述新版BIOS固件。
作为优选,该方法还包括:
系统中断调用BIOS底层接口;和
通过BIOS底层接口将存放所述新版BIOS固件的所述内存可用 区域的内存地址和所述新版BIOS固件的长度传递给BIOS底层。
作为优选,所述内存特定区域为内存中的4G以下的高地址段的 区域。
作为优选,所述判定执行结果是否正常包括:
设定计时器的阈值时间并开始计时;
如果BIOS完成对所述BIOS映像文件的所述执行,则关闭所述 计时器,并判定执行结果正常;
如果所述计时器的当前计时到达所述阈值时间时,则判定执行结 果异常。
本发明一方面提供了一种更新计算机系统中的BIOS固件的装 置,包括:
转存模块,其配置为将新版BIOS固件存放在内存可用区域中;
解压替换模块,其配置为将所述新版BIOS固件解压成BIOS映 像文件,并使所述BIOS映像文件替换位于内存特定区域中现有BIOS 固件;
执行模块,其配置为执行替换后的所述BIOS映像文件,以引导 系统初始化;
判定模块,其配置为判定执行结果是否正常;以及
处理反馈模块,其配置为如果判定执行结果正常,则将存放在所 述内存可用区域中的新版BIOS固件刷入BIOS固件存储芯片,重启 所述系统;和如果判定执行结果异常,则提示新版BIOS固件未能成 功刷入,重启所述系统。
作为优选,该装置还包括:
用户接口模块,其配置为在用户接口提供给用户的一项或多项 BIOS固件中,选择或指定所述新版BIOS固件。
作为优选,该装置还包括:
中断调用模块,其配置为系统中断调用BIOS底层接口以及通过 BIOS底层接口将存放所述新版BIOS固件的所述内存可用区域的内 存地址和所述新版BIOS固件的长度传递给BIOS底层。
作为优选,所述内存特定区域为内存中的4G以下的高地址段的 区域。
作为优选,所述判定模块包括:
计时器,用于设定计时器的阈值时间并开始计时;
第一判定单元,其配置为如果BIOS完成对所述BIOS映像文件 的所述执行,则关闭所述计时器,并判定执行结果正常;
第二判定单元,其配置为如果所述计时器的当前计时到达所述阈 值时间时,则判定执行结果异常。
使用本发明的更新BIOS固件的方法及装置,在更新BIOS固件 时,并不是直接把BIOS固件刷入BIOS固件存储芯片。而是先将BIOS 固件解压到内存中试运行,在验证功能没有问题后,再通过工具,比 如一般常用的winflash,刷入BIOS存储芯片。因此,不会出现BIOS 固件更新失败导致机台或者主板无法开机的情况,避免不良后果。
附图说明
图1为本发明实施例的更新BIOS固件的方法的流程示意图;
图2为本发明一优选实施例的更新BIOS固件的方法的流程示意 图。
具体实施方式
为使本领域技术人员更好地理解本发明,下面参照附图对本发明 的实施例进行详细说明。
如图1所示,本发明实施例提供一种更新BIOS固件的方法,包 括如下步骤:
将新版BIOS固件存放在内存可用区域中;
将新版BIOS固件解压成BIOS映像文件,并使BIOS映像文件 替换位于内存特定区域中现有BIOS固件;
执行替换后的BIOS映像文件,以引导系统初始化;
判定执行结果是否正常;
如果判定执行结果正常,则将存放在内存可用区域中的新版 BIOS固件刷入BIOS固件存储芯片,重启系统;和
如果判定执行结果异常,则提示新版BIOS固件未能成功刷入, 重启系统。
根据本实施例,由于没有像现有技术那样将待更新的BIOS固件 直接刷入BIOS固件存储芯片,而是将其映像文件覆盖在内存中的现 有BIOS固件,在确保待更新的BIOS固件的功能正常后,将该待更 新的BIOS固件刷入固件存储芯片,使用本发明实施例的方法,不会 刷入有问题的BIOS固件,因此不会出现机台或者主板无法开机的情 况,确保了良好的用户体验度。
如图2所示,图2是本发明一优选实施例的更新BIOS固件的方 法的流程示意图。该方法包括如下步骤:
步骤S101:给用户一个UI(用户接口),让用户选择或指定一个 新版BIOS固件(ROM),点击开始;
步骤S102:将用户选择或指定的新版BIOS固件存放在内存可用 区域中;
步骤S103:将该新版BIOS固件解压成映像文件image,并使该 映像文件替换在内存特定区域中的现有BIOS固件;该内存特定区域 优选为内存中的4G以下的高地址段的区域;
步骤S104:执行替换后的BIOS映像文件,以引导系统初始化;
步骤S105:设定计时器的阈值时间,开始计时;
步骤S106:如果BIOS完成对该映像文件的执行,则关闭计时器, 判定执行结果正常,进入步骤S107;如果计时器的当前计时到达阈 值时间,则判定执行结果异常,进入步骤S109;
步骤S107:通过系统中断SCI调用BIOS底层接口,通过BIOS 底层接口将存放新版BIOS固件的内存可用区域的内存地址和该新版 BIOS固件的长度传递给BIOS底层,进入步骤S108;
步骤S108:将存放在内存可用区域中的新版BIOS固件刷入BIOS 固件存储芯片,重启系统;
步骤S109:提示用户新版BIOS固件未能成功刷入,重启系统。
值得说明的是,上述各步骤的顺序并不是一定的,例如步骤S105 涉及计时器的设定,其可以放在步骤S104之前,这种调整不会影响 到本发明的实现,但是,本领域技术人员应当理解的是,计时器的阈 值时间应当长于其开始计时的时间点到BIOS正常执行完BIOS映像 文件所需的时间;例如,在本实施例中,当技术人员判定正常执行完 BIOS映像文件所需的时间为2-3秒时,阈值时间可被较佳地设定为 10秒(S)、20S;而,在某些实施例中,当在步骤S104之前就开始 计时的时候,则应当适当地增大计时器的阈值时间,本领域技术人员 可根据实际情况来具体设定该阈值时间。此外,步骤S101在某些实 施例中可以不是必需的,完全可以由计算机自动选定匹配的新版 BIOS固件,自动执行后续操作。
本发明实施例还提供了一种更新计算机系统中的BIOS固件的装 置,包括:
转存模块,其配置为将新版BIOS固件存放在内存可用区域中;
解压替换模块,其配置为将新版BIOS固件解压成BIOS映像文 件,并使BIOS映像文件替换位于内存特定区域中现有BIOS固件;
执行模块,其配置为执行替换后的BIOS映像文件,以引导系统 初始化;
判定模块,其配置为判定执行结果是否正常;以及
处理反馈模块,其配置为如果判定执行结果正常,则将存放在内 存可用区域中的新版BIOS固件刷入BIOS固件存储芯片,重启系统; 和如果判定执行结果异常,则提示新版BIOS固件未能成功刷入,重 启系统。
在一优选实施例中,该装置可以包括:用户接口模块,其配置为 在用户接口提供给用户的一项或多项BIOS固件中,选择或指定新版 BIOS固件。
此外,该装置可以包括:中断调用模块,其配置为系统中断调用 BIOS底层接口以及通过BIOS底层接口将存放新版BIOS固件的内存 可用区域的内存地址和新版BIOS固件的长度传递给BIOS底层。
其中,内存特定区域优选为内存中的4G以下的高地址段的区域。
在一优选实施例中,判定模块可包括:
计时器,用于设定计时器的阈值时间并开始计时;
第一判定单元,其配置为如果BIOS完成对BIOS映像文件的执 行,则关闭计时器,并判定执行结果正常;
第二判定单元,其配置为如果计时器的当前计时到达阈值时间 时,则判定执行结果异常。
本发明不局限于上述特定实施例,在不背离本发明精神及其实质 情况下,熟悉本领域的技术人员可根据本发明作出各种相应改变和变 形,但这些相应改变和变形都应属于本发明所附权利要求的保护范围 之内。
机译: 为计算机系统中的BIOS更新固件
机译: 虚拟计算机系统中的固件更新方法和虚拟计算机系统
机译: 虚拟计算机系统及虚拟计算机系统中的固件更新方法