CN101046749A - 一种芯片固件升级方法 - Google Patents
一种芯片固件升级方法 Download PDFInfo
- Publication number
- CN101046749A CN101046749A CN 200610067067 CN200610067067A CN101046749A CN 101046749 A CN101046749 A CN 101046749A CN 200610067067 CN200610067067 CN 200610067067 CN 200610067067 A CN200610067067 A CN 200610067067A CN 101046749 A CN101046749 A CN 101046749A
- Authority
- CN
- China
- Prior art keywords
- chip
- firmware
- updating method
- duty
- firmware updating
- 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.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种芯片固件升级方法,用于对芯片中的芯片固件进行升级,包括保存芯片的工作状态;获取固件包,并对芯片固件进行升级;以及将芯片恢复到该保存的工作状态。从而可以从客户端对芯片进行现场固件升级,并且在芯片固件升级后可以立即正常使用,而无需重新启动操作系统。
Description
技术领域
本发明涉及芯片技术领域,尤其涉及一种无需重启操作系统的芯片固件升级方法。
背景技术
众所周知,芯片中由于存在固件,因此存在两种工作状态,及正常工作状态和固件升级状态。而芯片固件是存储在芯片内部非易失性存储区域中的软件部分,其本身是软件,但由于固化到芯片的非易失性存储区域(Flash/EEPROM等)中,通常称为固件“Firmware”。
这些非易失性存储区域在芯片制造时就集成到芯片内部,而芯片应用是通常焊接在应用设备上,因此,芯片的固件升级既不能通过烧录器直接烧录升级固件,也不能通过专用的芯片开发板来升级固件,只能开发软件升级工具(例如,用软盘中的软件工具刷写BIOS)来完成芯片的固件升级。
目前,公知的有许多利用软件来升级设备固件程序的方法。图1显示了利用软件升级工具对芯片固件升级的示意图。如图1所示,芯片2与计算机平台1绑定,并且成一一对应关系。在芯片制造时,芯片中留存有升级通信的软件接口(未显示),从而,计算机平台上的主机软件即可通过该接口对芯片内部的芯片固件进行升级。
但是,上述方法在实施之后,都需要重启操作系统(计算机)才能正常使用升级后的固件,这对于操作系统的使用方面是很不方便的,尤其是对于服务器等不方便重启的平台而言。因为这些服务器通常都需要不间断的使用,如果仅仅为了升级固件程序就重启系统是不划算的,因此有必要设计一种新的芯片固件升级方法,从而避免芯片固件升级后的系统重启。
发明内容
本发明的目的在于提供一种无需重启操作系统的芯片固件升级方法。
根据本发明的目的,提供一种芯片固件升级方法,用于对芯片中的芯片固件进行升级,包括保存芯片的工作状态;获取固件包,并对芯片固件进行升级;以及将芯片恢复到该保存的工作状态。
根据本发明提供的芯片固件升级方法的另一方面,其中,该芯片的工作状态保存在芯片的预定的非易失性存储区域中。
根据本发明提供的芯片固件升级方法的另一方面,其中,该芯片的工作状态包括所有能够重建该芯片的工作状态的寄存器值。
根据本发明提供的芯片固件升级方法的另一方面,其中,该固件包包括新增加的固件功能、或对原固件功能的优化、或修改原芯片固件的bug。
根据本发明提供的芯片固件升级方法的另一方面,其中,根据与芯片绑定的客户端主机发出的指令,保存芯片的工作状态。
根据本发明提供的芯片固件升级方法的另一方面,其中,在保存芯片的工作状态之前,进一步验证来自客户端主机的指令是否具有合法性。
根据本发明提供的芯片固件升级方法的另一方面,其中,从客户端的光驱、软驱、硬盘或因特网络获取固件包。
根据本发明提供的芯片固件升级方法的另一方面,其中,在对芯片固件进行升级之前,进一步验证获取的固件包的合法性。
本发明的有益效果是:根据本发明提供的一种无需重启操作系统的芯片固件的软件升级方法,利用软件升级工具就可以从客户端对芯片进行现场固件升级,并且在芯片固件升级后可以立即正常使用,而无需重新启动操作系统。并且,还可进一步保证实现芯片固件升级的安全性。
附图说明
图1显示了依照利用软件升级工具对芯片固件升级的示意图;
图2显示了依照本发明的芯片内部模块图;
图3显示了依照本发明的芯片固件升级方法的流程图。
具体实施方式
图2显示了依照本发明的芯片内部模块图。
如图2所示,依照本发明的客户端(计算机、或服务器、或手持移动设备等)的芯片2包括接口21和非易失性存储器(Flash/EEPROM等)22,该非易失性存储器22包括固件区域和数据区域两部分,该固件区域用于存储芯片2的固件,数据区域用于在芯片2处于固件升级状态时存储芯片升级固件前的工作状态。同时,在本实施例中,非易失性存储器22的固件区域进一步包括固件升级控制程序,用于控制芯片的固件升级。应理解的是,该固件升级控制程序也可以被存储在芯片2的其它存储区域中。
同时,客户端主机中安装了对芯片固件升级的软件工具,该软件工具包含向芯片2发送固件升级指令、固件升级包以及与芯片2交换固件升级控制信号的功能。
其中,该芯片2的接口21与客户端主机相连,在主机运行上述软件工具对芯片固件进行升级时(例如,用软盘中的软件工具刷写BIOS),芯片2中的固件升级控制程序根据客户端主机中软件工具的指令,将芯片固件升级前的芯片工作状态存储在非易失性存储器12的数据区域中,对非易失性存储器12中的固件进行升级,并在固件升级后,将芯片1恢复到芯片升级前的工作状态,从而确保芯片固件升级后可立即正常使用,无需重启操作系统。
下面,将详细说明本发明的固件升级方法的流程。
图3显示了依照本发明的芯片固件升级方法的流程图,该方法包括步骤如下:
步骤1:运行客户端主机中的软件工具(例如操作者在计算机上运行软件工具刷写BIOS),向处于正常工作状态的芯片2发送固件升级指令。
步骤2:芯片2中的固件升级控制程序通过接口21检测到来自主机的固件升级指令后,判断是否为升级芯片固件的指示;
如果该指令不是升级芯片固件的指示,则本发明的芯片固件升级方法直接进行到步骤7,即芯片1进入工作状态,换句话说,该芯片1继续保持其工作状态,
如果该指令是升级芯片固件的指示,则进入步骤3。
步骤3:在接收到该升级芯片固件的指示之后,该芯片2中的固件升级控制程序将该芯片2此时的工作状态(升级前的工作状态),保存在预定的非易失性存储器22的数据区域中,包括所有能够重建该芯片2的正常工作状态的寄存器值等,同时固件升级控制程序通过接口21向主机发送已准备好固件升级的信号,且芯片2进入固件升级状态,准备接收新的固件。
步骤4:主机接收到已准备好固件升级的信号后,从主机的光驱、软驱、硬盘或因特网络等位置,获得芯片固件开发商提供的固件包,该固件包包括新增加的固件功能、或对原有固件功能的优化、或修改原芯片固件的bug等,之后,主机向芯片2的接口21发送新的升级固件包。
步骤5:该固件升级程序根据接口21获得的新的升级固件包,对原芯片固件执行升级操作,即将新的升级固件替换掉存放在非易失性存储器22的固件区域中的原固件。
步骤6:该固件升级控制程序根据非易失性存储器22的数据区域中存储的芯片升级前的工作状态,将芯片2恢复到升级前工作状态,即还原升级后固件的上述寄存器值,重新建立固件升级前的工作状态,同时通过接口21向主机发送固件升级成功信号。
步骤7:在上述执行的步骤1-6的基础上,该芯片1立即进入正常工作状态,从而无需重启操作系统(计算机)。
因此,根据上述本发明提供的芯片固件升级方法,通过保存芯片的工作状态,利用开发商提供的固件包,对存储在芯片非易失性存储区域(非易失性存储器22)中的固件进行升级,在恢复为升级前的工作状态后,立即使用升级后的固件,从而无需重启操作系统。
此外,在上述图3所示的固件升级方法的流程的基础上,本发明提供的芯片固件升级方法还可进一步在步骤2中执行如下操作:芯片2的接口21接收到来自主机的固件升级指令后,验证来自主机的指令是否具有合法性,即验证主机的用户是否有权进行固件升级;并在判断来自主机的指令具有合法性后,判断是否为升级芯片固件的指示,从而执行后续步骤。
而且,在步骤4中,本发明提供的芯片固件升级方法也可以进一步验证从计算机的光驱、软驱、硬盘或因特网络等位置输入的固件包的合法性,例如验证固件包是由特定的开发商提供,或者验证固件包符合预定的类型、版本、或安全等要求,之后根据合法的固件包进行固件升级。
从而,本发明提供的芯片固件升级方法可进一步保证实现芯片固件升级的安全性。
综上所述,根据本发明提供的无需重启操作系统的芯片固件的软件升级方法,客户端只需要运行软件工具就可以进行芯片固件的现场升级,并且升级完成后芯片可立即投入使用,无需要重启操作系统。并且,还可进一步保证实现芯片固件升级的安全性。
对该技术领域的普通技术人员来说,根据以上实施方式可以很容易的联想到其他的优点和变形。因此,本发明并不局限于上述具体实施例,其仅仅作为例子对本发明的一种形态进行详细、示范性的说明。在不背离本发明宗旨的范围内,本领域普通技术人员可以根据上述具体实施例通过各种等同替换所得到的技术方案,但是这些技术方案均应该包含在本发明的权利要求的范围及其等同的范围之内。
Claims (8)
1.一种芯片固件升级方法,用于对芯片中的芯片固件进行升级,包括步骤:
保存芯片的工作状态;
获取固件包,并对芯片固件进行升级;以及
将芯片恢复到该保存的工作状态。
2.一种如权利要求1所述的芯片固件升级方法,其中,
该芯片的工作状态保存在该芯片的预定的非易失性存储区域中。
3.一种如权利要求2所述的芯片固件升级方法,其中,
该芯片的工作状态包括所有能够重建该芯片的工作状态的寄存器值。
4.一种如权利要求3所述的芯片固件升级方法,其中,
该固件包包括新增加的固件功能、或对原固件功能的优化、或修改原芯片固件的bug。
5.一种如权利要求4所述的芯片固件升级方法,其中,
根据与芯片绑定的客户端主机发出的指令,保存芯片的工作状态。
6.一种如权利要求5所述的芯片固件升级方法,其中,
在保存芯片的工作状态之前,进一步验证来自客户端主机的指令是否具有合法性。
7.一种如权利要求6所述的芯片固件升级方法,其中,
从客户端的光驱、软驱、硬盘或因特网络获取固件包。
8.一种如权利要求7所述的芯片固件升级方法,其中,
在对芯片固件进行升级之前,进一步验证获取的固件包的合法性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100670672A CN100570558C (zh) | 2006-03-31 | 2006-03-31 | 一种芯片固件升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100670672A CN100570558C (zh) | 2006-03-31 | 2006-03-31 | 一种芯片固件升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101046749A true CN101046749A (zh) | 2007-10-03 |
CN100570558C CN100570558C (zh) | 2009-12-16 |
Family
ID=38771386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100670672A Expired - Fee Related CN100570558C (zh) | 2006-03-31 | 2006-03-31 | 一种芯片固件升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100570558C (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770376A (zh) * | 2008-12-31 | 2010-07-07 | 华为技术有限公司 | 一种升级软件的方法及控制装置 |
CN101777995A (zh) * | 2009-12-16 | 2010-07-14 | 中兴通讯股份有限公司 | 网元的工作状态维护方法及系统 |
CN101854498A (zh) * | 2010-05-24 | 2010-10-06 | 中兴通讯股份有限公司 | 多媒体广播芯片断电方法及装置 |
CN102265256A (zh) * | 2011-06-03 | 2011-11-30 | 华为技术有限公司 | 通信设备升级控制方法、芯片及通信设备 |
CN102541582A (zh) * | 2010-12-30 | 2012-07-04 | 上海三旗通信科技股份有限公司 | 基于高通基带芯片的固件更新的优化方法 |
WO2012155412A1 (zh) * | 2011-07-20 | 2012-11-22 | 中兴通讯股份有限公司 | 安卓系统下的固件升级方法及系统 |
CN102945177A (zh) * | 2012-11-16 | 2013-02-27 | 深圳市汇川控制技术有限公司 | Plc固件升级系统及方法 |
CN103620567A (zh) * | 2011-06-07 | 2014-03-05 | Lsi公司 | 主机看到的设备固件更新效果的管理 |
CN103902298A (zh) * | 2012-12-24 | 2014-07-02 | 联想(北京)有限公司 | 一种指令集固件刷写状态信息的设置方法和装置 |
WO2015165329A1 (zh) * | 2014-04-30 | 2015-11-05 | 华为技术有限公司 | 控制方法和控制设备 |
CN106293824A (zh) * | 2016-08-04 | 2017-01-04 | 青岛海信电器股份有限公司 | 一种从处理芯片升级的方法及装置 |
CN108108177A (zh) * | 2018-01-02 | 2018-06-01 | 联想(北京)有限公司 | 物理主机的固件升级方法、物理主机及虚拟机 |
CN109766113A (zh) * | 2019-01-09 | 2019-05-17 | 深圳忆联信息系统有限公司 | 一种固态硬盘控制器的固件更新方法及装置 |
CN111079124A (zh) * | 2019-12-21 | 2020-04-28 | 广州小鹏汽车科技有限公司 | 安全芯片激活方法、装置、终端设备及服务器 |
CN113778496A (zh) * | 2021-09-16 | 2021-12-10 | 联想(北京)有限公司 | 固件升级方法、装置及电子设备和存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9934120B2 (en) | 2016-02-10 | 2018-04-03 | Western Digital Technologies, Inc. | Method and apparatus for updating a system on chip (SOC) image from a host computer system without using DMA |
-
2006
- 2006-03-31 CN CNB2006100670672A patent/CN100570558C/zh not_active Expired - Fee Related
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770376B (zh) * | 2008-12-31 | 2014-03-12 | 华为技术有限公司 | 一种升级软件的方法及控制装置 |
CN101770376A (zh) * | 2008-12-31 | 2010-07-07 | 华为技术有限公司 | 一种升级软件的方法及控制装置 |
CN101777995A (zh) * | 2009-12-16 | 2010-07-14 | 中兴通讯股份有限公司 | 网元的工作状态维护方法及系统 |
WO2010149029A1 (zh) * | 2009-12-16 | 2010-12-29 | 中兴通讯股份有限公司 | 网元的工作状态维护方法及系统 |
CN101854498A (zh) * | 2010-05-24 | 2010-10-06 | 中兴通讯股份有限公司 | 多媒体广播芯片断电方法及装置 |
WO2011147113A1 (zh) * | 2010-05-24 | 2011-12-01 | 中兴通讯股份有限公司 | 多媒体广播芯片断电方法、装置及数据卡 |
CN102541582A (zh) * | 2010-12-30 | 2012-07-04 | 上海三旗通信科技股份有限公司 | 基于高通基带芯片的固件更新的优化方法 |
CN102265256A (zh) * | 2011-06-03 | 2011-11-30 | 华为技术有限公司 | 通信设备升级控制方法、芯片及通信设备 |
CN103620567A (zh) * | 2011-06-07 | 2014-03-05 | Lsi公司 | 主机看到的设备固件更新效果的管理 |
US10365920B2 (en) | 2011-06-07 | 2019-07-30 | Seagate Technology Llc | Management of device firmware update effects as seen by a host |
CN106990977B (zh) * | 2011-06-07 | 2023-09-15 | 希捷科技有限公司 | 主机看到的设备固件更新效果的管理 |
CN105159699A (zh) * | 2011-06-07 | 2015-12-16 | Lsi公司 | 主机看到的设备固件更新效果的管理 |
CN105159699B (zh) * | 2011-06-07 | 2022-01-25 | Lsi公司 | 主机看到的设备固件更新效果的管理 |
CN106990977A (zh) * | 2011-06-07 | 2017-07-28 | 希捷科技有限公司 | 主机看到的设备固件更新效果的管理 |
CN102890636A (zh) * | 2011-07-20 | 2013-01-23 | 中兴通讯股份有限公司 | 安卓系统下的固件升级方法及系统 |
WO2012155412A1 (zh) * | 2011-07-20 | 2012-11-22 | 中兴通讯股份有限公司 | 安卓系统下的固件升级方法及系统 |
CN102945177A (zh) * | 2012-11-16 | 2013-02-27 | 深圳市汇川控制技术有限公司 | Plc固件升级系统及方法 |
CN102945177B (zh) * | 2012-11-16 | 2015-09-02 | 深圳市汇川控制技术有限公司 | Plc固件升级系统及方法 |
CN103902298A (zh) * | 2012-12-24 | 2014-07-02 | 联想(北京)有限公司 | 一种指令集固件刷写状态信息的设置方法和装置 |
CN103902298B (zh) * | 2012-12-24 | 2017-03-01 | 联想(北京)有限公司 | 一种指令集固件刷写状态信息的设置方法和装置 |
WO2015165329A1 (zh) * | 2014-04-30 | 2015-11-05 | 华为技术有限公司 | 控制方法和控制设备 |
CN105095126B (zh) * | 2014-04-30 | 2018-02-13 | 华为技术有限公司 | 控制方法和控制设备 |
US10579394B2 (en) | 2014-04-30 | 2020-03-03 | Huawei Technologies Co., Ltd. | Control method and control device |
CN105095126A (zh) * | 2014-04-30 | 2015-11-25 | 华为技术有限公司 | 控制方法和控制设备 |
CN106293824A (zh) * | 2016-08-04 | 2017-01-04 | 青岛海信电器股份有限公司 | 一种从处理芯片升级的方法及装置 |
CN108108177A (zh) * | 2018-01-02 | 2018-06-01 | 联想(北京)有限公司 | 物理主机的固件升级方法、物理主机及虚拟机 |
CN108108177B (zh) * | 2018-01-02 | 2020-10-27 | 联想(北京)有限公司 | 物理主机的固件升级方法、物理主机及虚拟机 |
CN109766113A (zh) * | 2019-01-09 | 2019-05-17 | 深圳忆联信息系统有限公司 | 一种固态硬盘控制器的固件更新方法及装置 |
CN109766113B (zh) * | 2019-01-09 | 2022-02-01 | 深圳忆联信息系统有限公司 | 一种固态硬盘控制器的固件更新方法及装置 |
CN111079124A (zh) * | 2019-12-21 | 2020-04-28 | 广州小鹏汽车科技有限公司 | 安全芯片激活方法、装置、终端设备及服务器 |
CN113778496A (zh) * | 2021-09-16 | 2021-12-10 | 联想(北京)有限公司 | 固件升级方法、装置及电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100570558C (zh) | 2009-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101046749A (zh) | 一种芯片固件升级方法 | |
US8185884B2 (en) | System and method for offline updation of software in virtual machine (VM) images | |
US6330715B1 (en) | Method and apparatus for managing software in a network system | |
CN103559052B (zh) | 固件更新的设备与方法 | |
CA2968947C (en) | Enhanced upgrade path | |
US7966612B2 (en) | Method, system and computer program for installing shared software components | |
US20140372799A1 (en) | System Differential Upgrade Method, Apparatus, and Mobile Terminal | |
WO2013078951A1 (zh) | 软件升级方法和系统 | |
JP6089064B2 (ja) | ソフトウェア・コンポーネントを更新するための方法、コンピュータ・システムおよびメモリ装置 | |
CN102902530A (zh) | 一种基于linux嵌入式操作系统的程序校验装置 | |
CN111562934A (zh) | 一种基于热补丁的软件系统升级方法、终端及存储介质 | |
US7363632B2 (en) | Clientless external storage device | |
US20130080751A1 (en) | Method and device for updating bios program for computer system | |
WO2022156277A1 (zh) | 一种应用程序安装方法、装置、计算设备及可读存储介质 | |
KR102106449B1 (ko) | 함수 결함을 복구하는 방법, 장치 및 서버 | |
US8689048B1 (en) | Non-logging resumable distributed cluster | |
RU2004139189A (ru) | Поддержка управления версиями в языках и инструментальных средствах объектно-ориентированного программирования | |
WO2023226670A1 (zh) | 一种eSIM固件升级方法、装置、设备及介质 | |
CN102087607B (zh) | 补丁包的安装方法及装置 | |
CN111061486A (zh) | 一种安卓应用程序增量方法 | |
CN110716723A (zh) | 一种固件升级方法及系统 | |
CN103823693A (zh) | 补丁包安装方法 | |
CN103810006A (zh) | 补丁包的安装方法及装置 | |
CN1567232A (zh) | 嵌入式系统的测试装置及测试方法 | |
CN1276350C (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091216 Termination date: 20210331 |
|
CF01 | Termination of patent right due to non-payment of annual fee |