本发明专利技术涉及一种芯片固件升级方法,用于对芯片中的芯片固件进行升级,包括保存芯片的工作状态;获取固件包,并对芯片固件进行升级;以及将芯片恢复到该保存的工作状态。从而可以从客户端对芯片进行现场固件升级,并且在芯片固件升级后可以立即正常使用,而无需重新启动操作系统。
【技术实现步骤摘要】
本专利技术涉及芯片
,尤其涉及一种无需重启操作系统的芯片固件升级方法。
技术介绍
众所周知,芯片中由于存在固件,因此存在两种工作状态,及正常工作状态和固件升级状态。而芯片固件是存储在芯片内部非易失性存储区域中的软件部分,其本身是软件,但由于固化到芯片的非易失性存储区域(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中,本专利技术提供的芯片固件升级方法也可以进一步验证从计算机的光驱、软驱、硬盘或因特网络等位置输入的固件包的合法性,例如验证固件包是由特定的开发商提供,或者验证固件包符合预定的类型、版本、或安全等要求,之后根据合法的固件包进行固件升级。从而,本文档来自技高网...
【技术保护点】
一种芯片固件升级方法,用于对芯片中的芯片固件进行升级,包括步骤:保存芯片的工作状态;获取固件包,并对芯片固件进行升级;以及将芯片恢复到该保存的工作状态。
【技术特征摘要】
1.一种芯片固件升级方法,用于对芯片中的芯片固件进行升级,包括步骤保存芯片的工作状态;获取固件包,并对芯片固件进行升级;以及将芯片恢复到该保存的工作状态。2.一种如权利要求1所述的芯片固件升级方法,其中,该芯片的工作状态保存在该芯片的预定的非易失性存储区域中。3.一种如权利要求2所述的芯片固件升级方法,其中,该芯片的工作状态包括所有能够重建该芯片的工作状态的寄存器值。4.一种如权利要求3所述的芯片固件升级方法,其中,该固件包包括新增加的固件功能、或对原固件功能的...
【专利技术属性】
技术研发人员:吕渊,陈军,毛兴中,谢巍,
申请(专利权)人:联想北京有限公司,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。