CN104503810B - 更新计算机系统中的bios固件的方法及装置 - Google Patents
更新计算机系统中的bios固件的方法及装置 Download PDFInfo
- Publication number
- CN104503810B CN104503810B CN201510010233.4A CN201510010233A CN104503810B CN 104503810 B CN104503810 B CN 104503810B CN 201510010233 A CN201510010233 A CN 201510010233A CN 104503810 B CN104503810 B CN 104503810B
- Authority
- CN
- China
- Prior art keywords
- bios
- firmware
- internal memory
- new edition
- image file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种更新计算机系统中的BIOS固件的方法及装置。该方法包括步骤:将新版BIOS固件存放在内存可用区域中;将所述新版BIOS固件解压成BIOS映像文件,并使所述BIOS映像文件替换位于内存特定区域中现有BIOS固件;执行替换后的所述BIOS映像文件,以引导系统初始化;判定执行结果是否正常;如果判定执行结果正常,则将存放在所述内存可用区域中的新版BIOS固件刷入BIOS固件存储芯片,重启所述系统;和如果判定执行结果异常,则提示新版BIOS固件未能成功刷入,重启所述系统。使用该方法及装置,不会出现BIOS固件更新失败导致机台或者主板无法开机的情况,避免不良后果。
Description
技术领域
本发明涉及计算机领域,具体涉及一种更新计算机系统中的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映像文件的执行,则关闭计时器,并判定执行结果正常;
第二判定单元,其配置为如果计时器的当前计时到达阈值时间时,则判定执行结果异常。
本发明不局限于上述特定实施例,在不背离本发明精神及其实质情况下,熟悉本领域的技术人员可根据本发明作出各种相应改变和变形,但这些相应改变和变形都应属于本发明所附权利要求的保护范围之内。
Claims (8)
1.一种更新计算机系统中的BIOS固件的方法,包括步骤:
将新版BIOS固件存放在内存可用区域中;
将所述新版BIOS固件解压成BIOS映像文件,并使所述BIOS映像文件替换位于内存特定区域中现有BIOS固件;
执行替换后的所述BIOS映像文件,以引导系统初始化;
判定执行结果是否正常;
如果判定执行结果正常,则将存放在所述内存可用区域中的新版BIOS固件刷入BIOS固件存储芯片,重启所述系统;和
如果判定执行结果异常,则提示新版BIOS固件未能成功刷入,重启所述系统,
其中,在将所述新版BIOS固件存放在内存可用区域之前,还包括:
在用户接口提供给用户的一项或多项BIOS固件中,选择或指定所述新版BIOS固件。
2.如权利要求1所述的方法,还包括:
系统中断调用BIOS底层接口;和
通过BIOS底层接口将存放所述新版BIOS固件的所述内存可用区域的内存地址和所述新版BIOS固件的长度传递给BIOS底层。
3.如权利要求1所述的方法,其中所述内存特定区域为内存中的4G以下的高地址段的区域。
4.如权利要求1-3中任一项所述的方法,其中所述判定执行结果是否正常包括:
设定计时器的阈值时间并开始计时;
如果BIOS完成对所述BIOS映像文件的所述执行,则关闭所述计时器,并判定执行结果正常;
如果所述计时器的当前计时到达所述阈值时间时,则判定执行结果异常。
5.一种更新计算机系统中的BIOS固件的装置,包括:
转存模块,其配置为将新版BIOS固件存放在内存可用区域中;
解压替换模块,其配置为将所述新版BIOS固件解压成BIOS映像文件,并使所述BIOS映像文件替换位于内存特定区域中现有BIOS固件;
执行模块,其配置为执行替换后的所述BIOS映像文件,以引导系统初始化;
判定模块,其配置为判定执行结果是否正常;以及
处理反馈模块,其配置为如果判定执行结果正常,则将存放在所述内存可用区域中的新版BIOS固件刷入BIOS固件存储芯片,重启所述系统;和如果判定执行结果异常,则提示新版BIOS固件未能成功刷入,重启所述系统,
其中,所述装置还包括:
用户接口模块,其配置为在用户接口提供给用户的一项或多项BIOS固件中,选择或指定所述新版BIOS固件。
6.如权利要求5所述的装置,还包括:
中断调用模块,其配置为系统中断调用BIOS底层接口以及通过BIOS底层接口将存放所述新版BIOS固件的所述内存可用区域的内存地址和所述新版BIOS固件的长度传递给BIOS底层。
7.如权利要求5所述的装置,其中所述内存特定区域为内存中的4G以下的高地址段的区域。
8.如权利要求5-7中任一项所述的装置,其中所述判定模块包括:
计时器,用于设定计时器的阈值时间并开始计时;
第一判定单元,其配置为如果BIOS完成对所述BIOS映像文件的所述执行,则关闭所述计时器,并判定执行结果正常;
第二判定单元,其配置为如果所述计时器的当前计时到达所述阈值时间时,则判定执行结果异常。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510010233.4A CN104503810B (zh) | 2015-01-08 | 2015-01-08 | 更新计算机系统中的bios固件的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510010233.4A CN104503810B (zh) | 2015-01-08 | 2015-01-08 | 更新计算机系统中的bios固件的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104503810A CN104503810A (zh) | 2015-04-08 |
CN104503810B true CN104503810B (zh) | 2018-03-23 |
Family
ID=52945211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510010233.4A Active CN104503810B (zh) | 2015-01-08 | 2015-01-08 | 更新计算机系统中的bios固件的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104503810B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10055296B2 (en) * | 2015-10-30 | 2018-08-21 | Quanta Computer Inc. | System and method for selective BIOS restoration |
CN106873943B (zh) * | 2017-01-12 | 2020-01-17 | 深圳市优必选科技有限公司 | 嵌入式系统的固件升级方法 |
CN109271191B (zh) * | 2018-09-30 | 2023-01-06 | 联想(北京)有限公司 | 信息处理方法及电子设备 |
CN112328280B (zh) * | 2020-11-04 | 2023-07-28 | 北京计算机技术及应用研究所 | 实现免拆机更新国产计算机bios和cpld/ec的系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1680920A (zh) * | 2004-04-07 | 2005-10-12 | 纬创资通股份有限公司 | 远端更新数据处理系统中基本输入输出系统的方法及其装置 |
CN101017441A (zh) * | 2007-02-27 | 2007-08-15 | 华为技术有限公司 | 一种电子设备、电子设备的启动方法及bios升级方法 |
CN101470657A (zh) * | 2007-12-28 | 2009-07-01 | 英业达股份有限公司 | 一种bios刷新内容的验证方法 |
US7844812B2 (en) * | 2001-12-07 | 2010-11-30 | Lenovo (Singapore) Pte. Ltd. | Apparatus, method and program product for initiating computer system operation |
CN104185836A (zh) * | 2012-03-31 | 2014-12-03 | 英特尔公司 | 用于在系统改变之后验证计算设备的适当操作的方法和系统 |
-
2015
- 2015-01-08 CN CN201510010233.4A patent/CN104503810B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7844812B2 (en) * | 2001-12-07 | 2010-11-30 | Lenovo (Singapore) Pte. Ltd. | Apparatus, method and program product for initiating computer system operation |
CN1680920A (zh) * | 2004-04-07 | 2005-10-12 | 纬创资通股份有限公司 | 远端更新数据处理系统中基本输入输出系统的方法及其装置 |
CN101017441A (zh) * | 2007-02-27 | 2007-08-15 | 华为技术有限公司 | 一种电子设备、电子设备的启动方法及bios升级方法 |
CN101470657A (zh) * | 2007-12-28 | 2009-07-01 | 英业达股份有限公司 | 一种bios刷新内容的验证方法 |
CN104185836A (zh) * | 2012-03-31 | 2014-12-03 | 英特尔公司 | 用于在系统改变之后验证计算设备的适当操作的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104503810A (zh) | 2015-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104503810B (zh) | 更新计算机系统中的bios固件的方法及装置 | |
US6543047B1 (en) | Method and apparatus for testing custom-configured software/hardware integration in a computer build-to-order manufacturing process | |
CN105094927B (zh) | 一种设备固件升级方法和装置 | |
JP2018078616A (ja) | モバイル機器サポートサービスを提供するためのシステム、方法、装置、およびコンピュータプログラム製品 | |
CN103761124B (zh) | 用于保护测控装置的嵌入式Linux系统启动方法 | |
CN101719072A (zh) | 嵌入式终端设备软件升级方法及升级装置 | |
CN106020861A (zh) | 一种智能手表的fota升级方法及系统 | |
CN103970660A (zh) | 一种基于crontab的整机系统稳定性的自动化测试方法 | |
US20210294593A1 (en) | Method, apparatus, device, and storage medium for upgrading vehicle-mounted tbox | |
CN103970564A (zh) | 嵌入式操作系统自动修复升级功能的方法及其系统 | |
CN104978223B (zh) | 实现Web方式升级设备固件的方法 | |
CN109992515B (zh) | 测试方法及装置、电子设备 | |
CN106303709B (zh) | 一种机顶盒及其应用程序升级方法、系统 | |
CN109614267A (zh) | 一种修复开机异常问题的方法、装置、存储介质及终端 | |
WO2021103598A1 (zh) | 一种服务器启动方法与装置 | |
CN104572225A (zh) | 一种新型测试bios在线更新稳定性的方法 | |
TW200809489A (en) | BIOS damage detection and repair method and the motherboard | |
CN101526908B (zh) | 固件更新装置和方法 | |
CN107066361A (zh) | 一种利用bmc禁用坏损内存的方法和装置 | |
CN109800163A (zh) | 一种测试bios升级稳定性的方法及系统 | |
CN111176917B (zh) | 一种cpu sst-bf功能稳定性测试方法、系统、终端及存储介质 | |
CN112433769A (zh) | 一种bmc启动方法、装置、计算机设备及存储介质 | |
CN106598687B (zh) | 一种脚本预热方法和装置 | |
CN110502367A (zh) | 一种控制方法及电子设备 | |
CN105868101A (zh) | 一种软件测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |