本申请公开了一种固件升级方法,应用于基板管理控制器BMC,该方法包括:接收针对目标芯片的固件升级命令;在本地的目标文件夹中读取目标芯片的目标升级文件;按照目标芯片的升级协议将目标升级文件分成多个数据包;通过总线分别将每个数据包传输给目标芯片,以使目标芯片基于接收到的数据包进行固件升级操作。应用本申请实施例所提供的技术方案,可以有效避免因网络不稳定导致最终传输给目标芯片的数据出现问题,可以提高固件升级成功率,提高固件升级效率。本申请还公开了一种固件升级装置、设备及存储介质,具有相应技术效果。
A firmware upgrade method, device, equipment and storage medium
【技术实现步骤摘要】
一种固件升级方法、装置、设备及存储介质
本申请涉及计算机应用
,特别是涉及一种固件升级方法、装置、设备及存储介质。
技术介绍
随着计算机技术的快速发展,服务器的使用越来越频繁。在服务器运行过程中,总会涉及到为服务器中芯片进行固件升级的问题。在现有技术中,是通过独立于服务器中的BMC(BaseboardManagementController,基板管理控制器)之外的带内带外对芯片进行固件升级。具体过程是,升级工具读取解析固件升级文件,然后按照升级协议进行数据打包,通过建立和释放网络会话控制逐一将每个数据包发送给BMC,BMC再将接收到的数据发送给要进行固件升级的芯片,进行固件升级。这种方式存在的缺点在于,升级工具每发一个数据包都要进行一次网络会话控制的建立与释放,而且依赖于网络的稳定性,因网络不稳定容易导致数据包出现问题,这将导致最终固件升级失败,从而需要反复传输,整个升级过程需要消耗的时间较长,升级效率较低。
技术实现思路
本申请的目的是提供一种固件升级方法、装置、设备及存储介质,以提高固件升级效率。为解决上述技术问题,本申请提供如下技术方案:一种固件升级方法,应用于基板管理控制器BMC,所述方法包括:接收针对目标芯片的固件升级命令;在本地的目标文件夹中读取所述目标芯片的目标升级文件;按照所述目标芯片的升级协议将所述目标升级文件分成多个数据包;通过总线分别将每个数据包传输给所述目标芯片,以使所述目标芯片基于接收到的数据包进行固件升级操作。在本申请的一种具体实施方式中,在所述接收针对目标芯片的固件升级命令之前,还包括:接收针对所述目标芯片的固件升级准备命令;在本地创建针对所述目标芯片的所述目标文件夹;停止访问所述总线上的其他设备;切换总线通道,以对所述目标芯片进行操作访问。在本申请的一种具体实施方式中,在所述通过总线分别将每个数据包传输给所述目标芯片之前,还包括:获取所述目标芯片的属性信息;在所述目标芯片的升级日志中记录所述目标芯片的属性信息。在本申请的一种具体实施方式中,还包括:在所述目标芯片基于接收到的数据包进行固件升级操作的过程中,如果读取到所述目标芯片返回的针对其中一个数据包的烧写失败或者校验失败的错误信息,则重复执行所述在本地的目标文件夹中读取所述目标芯片的目标升级文件的步骤。在本申请的一种具体实施方式中,在接收到所述目标芯片返回的针对其中一个数据包的烧写失败或者校验失败的错误信息时,还包括:在所述目标芯片的升级日志中记录所述错误信息。在本申请的一种具体实施方式中,还包括:在所述目标芯片基于接收到的数据包进行固件升级操作的过程中,如果未读取到所述目标芯片返回的针对任何一个数据包的烧写失败或者校验失败的错误信息,则获取所述目标芯片的升级结果;在所述目标芯片的升级日志中记录所述目标芯片的升级结果。一种固件升级装置,应用于基板管理控制器BMC,所述装置包括:命令接收模块,用于接收针对目标芯片的固件升级命令;文件读取模块,用于在本地的目标文件夹中读取所述目标芯片的目标升级文件;文件打包模块,用于按照所述目标芯片的升级协议将所述目标升级文件分成多个数据包;数据传输模块,用于通过总线分别将每个数据包传输给所述目标芯片,以使所述目标芯片基于接收到的数据包进行固件升级操作。在本申请的一种具体实施方式中,还包括升级准备模块,用于:在所述接收针对目标芯片的固件升级命令之前,接收针对所述目标芯片的固件升级准备命令;在本地创建针对所述目标芯片的所述目标文件夹;停止访问所述总线上的其他设备;切换总线通道,以对所述目标芯片进行操作访问。一种固件升级设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述任一项所述固件升级方法的步骤。一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述固件升级方法的步骤。应用本申请实施例所提供的技术方案,BMC接收到目标芯片的固件升级命令后,在本地的目标文件夹中读取目标芯片的目标升级文件,按照目标芯片的升级协议将目标升级文件分成多个数据包,通过总线分别将每个数据包传输给目标芯片,目标芯片基于接收到的数据包进行固件升级操作。将目标升级文件预先放入BMC的本地目标文件夹中,即先进行整个文件的传输,在要对目标芯片进行固件升级时,BMC在目标文件夹中读取目标升级文件,对目标升级文件进行打包得到多个数据包,再逐一通过总线将每个数据包传输给目标芯片,可以有效避免因网络不稳定导致最终传输给目标芯片的数据出现问题,可以提高固件升级成功率,提高固件升级效率。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例中一种固件升级方法的实施流程图;图2为本申请实施例中一种固件升级装置的结构示意图;图3为本申请实施例中一种固件升级设备的结构示意图。具体实施方式本申请的核心是提供一种固件升级方法,该方法可以应用于BMC(BaseboardManagementController,基板管理控制器)。BMC是服务器特有的管理控制器,可以自动监控服务器的运行状态,并及时根据当前状态进行调控。BMC可以管理其他芯片的固件的升级,比如BIOS(BasicInputOutputSystem,基本输入输出系统)芯片、CPLD(ComplexProgrammableLogicDevice,复杂可编程逻辑器件)芯片、SAS-Expander(SerialAttachedSCSI,串行SCSI(SmallComputerSystemInterface,(小型计算机系统接口))背板以及PSU(PowerSupplyUnit,电源)等。为了使本
的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。参见图1所示,为本申请实施例所提供的一种固件升级方法的实施流程图,该方法可以包括以下步骤:S110:接收针对目标芯片的固件升级命令。目标芯片可以是服务器中BMC可控制的任意一个芯片,如BIOS芯片、CPLD芯片、SAS-Expander背板、串行SCSI背板等。在有对目标芯片的固件进行升级的需求时,可以向BMC发送针对目标芯片的固件升级命令。<本文档来自技高网...
【技术保护点】
1.一种固件升级方法,其特征在于,应用于基板管理控制器BMC,所述方法包括:/n接收针对目标芯片的固件升级命令;/n在本地的目标文件夹中读取所述目标芯片的目标升级文件;/n按照所述目标芯片的升级协议将所述目标升级文件分成多个数据包;/n通过总线分别将每个数据包传输给所述目标芯片,以使所述目标芯片基于接收到的数据包进行固件升级操作。/n
【技术特征摘要】
1.一种固件升级方法,其特征在于,应用于基板管理控制器BMC,所述方法包括:
接收针对目标芯片的固件升级命令;
在本地的目标文件夹中读取所述目标芯片的目标升级文件;
按照所述目标芯片的升级协议将所述目标升级文件分成多个数据包;
通过总线分别将每个数据包传输给所述目标芯片,以使所述目标芯片基于接收到的数据包进行固件升级操作。
2.根据权利要求1所述的方法,其特征在于,在所述接收针对目标芯片的固件升级命令之前,还包括:
接收针对所述目标芯片的固件升级准备命令;
在本地创建针对所述目标芯片的所述目标文件夹;
停止访问所述总线上的其他设备;
切换总线通道,以对所述目标芯片进行操作访问。
3.根据权利要求1所述的方法,其特征在于,在所述通过总线分别将每个数据包传输给所述目标芯片之前,还包括:
获取所述目标芯片的属性信息;
在所述目标芯片的升级日志中记录所述目标芯片的属性信息。
4.根据权利要求1所述的方法,其特征在于,还包括:
在所述目标芯片基于接收到的数据包进行固件升级操作的过程中,如果读取到所述目标芯片返回的针对其中一个数据包的烧写失败或者校验失败的错误信息,则重复执行所述在本地的目标文件夹中读取所述目标芯片的目标升级文件的步骤。
5.根据权利要求4所述的方法,其特征在于,在接收到所述目标芯片返回的针对其中一个数据包的烧写失败或者校验失败的错误信息时,还包括:
在所述目标芯片的升级日志中记录所述错误信息。
6.根据权利要求1至...
【专利技术属性】
技术研发人员:翟振辉,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。