一种远程升级CPLD固件的方法、装置和存储介质与流程

文档序号:14993510发布日期:2018-07-20 23:01阅读:377来源:国知局

本发明涉及服务器技术领域,特别是涉及一种远程升级cpld固件的方法、装置和计算机可读存储介质。



背景技术:

服务器主板上的复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld)对系统功能实现和状态控制方面起着非常重要的作用。当前实现服务器主板cpld固件升级只能通过治具进行本地升级,如果想实现上百台甚至更多服务器主板cpld固件的升级会耗费大量的时间,对于系统维护性方面带来很大的挑战。

如果能够对各服务器主板cpld固件进行远程控制,实现cpld固件的升级,将极大的简化cpld升级的操作流程,并且有效的提升cpld固件升级的效率。

可见,如何通过远程控制实现cpld固件的升级,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明实施例的目的是提供一种远程升级cpld固件的方法、装置和计算机可读存储介质,可以通过远程控制实现cpld固件的升级。

为解决上述技术问题,本发明实施例提供一种远程升级cpld固件的方法,包括:

接收用户终端传输的镜像文件;

对所述镜像文件进行解析,得到目标数据;

将所述目标数据发送给cpld,以实现cpld固件的升级。

可选的,在所述对所述镜像文件进行解析之前,还包括:

对所述镜像文件进行校验,并将通过校验的镜像文件保存至预设位置;

相应的,所述对所述镜像文件进行解析包括:

对通过校验的镜像文件进行解析。

可选的,还包括:

当所述镜像文件未通过校验时,向所述用户终端发送反馈信息。

可选的,还包括:

接收所述cpld发送的数据获取请求;

依据所述数据获取请求中携带的标识符,向所述cpld发送相应的目标数据。

可选的,还包括:

接收所述cpld发送的用于表示完成所述cpld固件升级的响应信息;并将所述响应信息发送至所述用户终端。

本发明实施例还提供了一种远程升级cpld固件的装置,包括接收单元、解析单元和发送单元;

所述接收单元,用于接收用户终端传输的镜像文件;

所述解析单元,用于对所述镜像文件进行解析,得到目标数据;

所述发送单元,用于将所述目标数据发送给cpld,以实现cpld固件的升级。

可选的,还包括校验单元;

所述校验单元,用于对所述镜像文件进行校验,并将通过校验的镜像文件保存至预设位置;

相应的,所述解析单元具体用于对通过校验的镜像文件进行解析。

可选的,所述发送单元还用于当所述镜像文件未通过校验时,向所述用户终端发送反馈信息。

可选的,所述接收单元还用于接收所述cpld发送的数据获取请求;

相应的,所述发送单元还用于依据所述数据获取请求中携带的标识符,向所述cpld发送相应的目标数据。

可选的,所述接收单元还用于接收所述cpld发送的用于表示完成所述cpld固件升级的响应信息;

相应的,所述发送单元还用于将所述响应信息发送至所述用户终端。

本发明实施例还提供了一种远程升级cpld固件的装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如上述远程升级cpld固件的方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述远程升级cpld固件的方法的步骤。

由上述技术方案可以看出,bmc接收用户终端传输的镜像文件;对所述镜像文件进行解析,得到目标数据;该目标数据是完成cpld固件升级所需使用的数据,bmc将所述目标数据发送给cpld,cpld依据接收到的目标数据,便可以实现cpld固件的升级。bmc和cpld之间具有通信连接,用户终端通过向bmc传输镜像文件的方式,来实现cpld固件的升级,达到了通过远程操作实现cpld固件升级的目的。相比于通过治具进行cpld固件升级的方式,在实际应用中通过远程操作的方式能够更加方便的维护cpld固件升级。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种远程升级cpld固件的方法的流程图;

图2为本发明实施例提供的一种远程升级cpld固件的装置的结构示意图;

图3为本发明实施例提供的一种远程升级cpld固件的装置的硬件结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

接下来,详细介绍本发明实施例所提供的一种远程升级cpld固件的方法。图1为本发明实施例提供的一种远程升级cpld固件的方法的流程图,该方法包括:

s101:接收用户终端传输的镜像文件。

基板管理控制器(baseboardmanagementcontroller,bmc),可以实现服务器的远程管理控制。bmc和服务器上的cpld可以进行通信。

在本发明实施例中,用户终端利用bmc实现对cpld固件的远程升级控制。

在本地系统即用户终端上通过文件传输工具,例如curl命令行工具获取远端bmc的登录权限。用户终端获取bmc的登录权限后,便可以与该bmc进行信息的交互。

在具体实现中,用户终端依据bmc对应的ip地址,实现与bmc的交互。每个bmc有其对应的ip地址,在curl命令行中输入不同的ip地址,便可以与该ip地址对应的bmc实现通信。

用户在curl命令行中输入多个ip地址,便可以获取相应的多个bmc的登录权限,实现用户终端和多个bmc的交互。每个bmc和其对应的一个cpld具有通信连接,故此,用户终端可以实现对多个cpld的远程控制,从而可以实现对多台服务器主板cpld固件的批量升级。为了便于介绍,后续内容中均以用户终端和一个bmc通信为例展开说明。

用户终端存储有用于实现cpld固件升级的镜像文件,用户终端可以通过curl命令行工具将镜像文件上传至bmc。

s102:对所述镜像文件进行解析,得到目标数据。

在镜像文件中包含有实现cpld固件升级所需使用的数据,为方便介绍,可以将这些数据称作目标数据。在镜像文件中除了包含有目标数据外,还包含有一些其它的数据,为了实现cpld固件的升级,需要从镜像文件中提取出目标数据。在本发明实施例中,bmc对镜像文件进行解析,从而获取所需的目标数据。

举例说明,bmc可以在接收到用户终端传输的镜像文件时,直接对该镜像文件进行解析。bmc也可以在接收到用户终端发送的cpld升级指令后,对镜像文件进行解析。

其中,用户终端可以通过curl命令行工具向bmc发送cpld升级指令。

以用户终端向bmc发送cpld升级指令为例,在具体实现中,用户终端通过curl命令行工具向bmc发送镜像文件,此时bmc可以保存接收到的镜像文件。当需要对服务器主板cpld固件进行升级时,用户终端再通过curl命令行工具向bmc发送cpld升级指令,bmc接收到cpld升级指令时,对保存的镜像文件进行解析。

s103:将所述目标数据发送给cpld,以实现cpld固件的升级。

bmc获取到目标数据后,可以利用通用输入/输出口(generalpurposeinputoutput,gpio)模拟国际标准测试协议(jointtestactiongroup,jtag)的方式进行数据的传输,将目标数据传输给cpld。cpld依据接收到的目标数据,便可以完成cpld固件的升级。

由上述技术方案可以看出,bmc接收用户终端传输的镜像文件;对所述镜像文件进行解析,得到目标数据;该目标数据是完成cpld固件升级所需使用的数据,bmc将所述目标数据发送给cpld,cpld依据接收到的目标数据,便可以实现cpld固件的升级。bmc和cpld之间具有通信连接,用户终端通过向bmc传输镜像文件的方式,来实现cpld固件的升级,达到了通过远程操作实现cpld固件升级的目的。相比于通过治具进行cpld固件升级的方式,在实际应用中通过远程操作的方式能够更加方便的维护cpld固件升级。

在将镜像文件由用户终端传输至bmc的过程中,由于网络不稳定等原因,可能会存在镜像文件传输不完整的情况,当镜像文件出现损坏时会直接影响后续cpld固件的升级。

为了保证镜像文件的完整性和正确性,在对镜像文件进行解析之前,可以先对其进行校验。当镜像文件通过校验后,可以该镜像文件保存至预设位置,例如存储到bmc的文件系统下,以便后续对通过校验的镜像文件进行解析。

其中,对镜像文件的校验可以采用md5校验工具,对镜像文件的完整性进行校验。

考虑到不同产品类型其对应的镜像文件不尽相同,在校验过程中,可以对镜像文件的产品类型进行判断,为了区分不同的产品类型所对应的镜像文件,可以对镜像文件设置标识符。

例如,可以用数字进行标识,产品a对应的镜像文件,标识符设置为01,产品b对应的镜像文件,标识符设置为02,依次类推,对于不同的产品类型对应的镜像文件设置不同的标识符。

在bmc对镜像文件的校验过程中,可能会存在未通过校验的镜像文件。当镜像文件未通过校验时则说明该镜像文件存在问题,为了保证顺利完成后续cpld固件的升级,bmc需要重新获取该镜像文件。具体的,当所述镜像文件未通过校验时,bmc可以向所述用户终端发送反馈信息。

反馈信息用于表示bmc接收到的镜像文件存在问题,用户终端接收到该反馈信息后,可以将相应的镜像文件重新发送给bmc。

每个镜像文件有其对应的标识符,因此在反馈信息中可以携带有相应的标识符,以便于用户终端可以获知具体是哪种产品类型对应的镜像文件存在问题,从而有针对性的重新向bmc发送所需的镜像文件。

与用户终端向bmc传输镜像文件类似,由bmc向cpld传输目标数据的过程中也可能存在目标数据损坏的问题。当目标数据存在问题时,cpld将无法顺利完成cpld固件的升级,故此,当cpld依据目标数据无法完成cpld固件的升级或者cpld检测到目标数据存在问题时,cpld可以向bmc发送数据获取请求,bmc接收到该数据获取请求时,可以依据所述数据获取请求中携带的标识符,向所述cpld发送相应的目标数据。

对一个镜像文件进行解析后,可以获取相应的目标数据。不同类型的镜像文件,其对应的目标数据不尽相同。bmc依据标识符可以获知是哪个镜像文件的目标数据存在问题,以便于具有针对性的向cpld传输所需的目标数据。

当服务器主板的cpld完成cpld固件的升级后,为了便于用户终端获知cpld固件升级的完成情况,cpld可以向bmc发送响应信息,bmc可以将接收到的响应信息转发至用户终端。该响应信息用于表示cpld已经完成cpld固件的升级。

图2为本发明实施例提供的一种远程升级cpld固件的装置的结构示意图,所述装置包括接收单元21、解析单元22和发送单元23;

所述接收单元21,用于接收用户终端传输的镜像文件;

所述解析单元22,用于对所述镜像文件进行解析,得到目标数据;

所述发送单元23,用于将所述目标数据发送给cpld,以实现cpld固件的升级。

可选的,还包括校验单元;

所述校验单元,用于对所述镜像文件进行校验,并将通过校验的镜像文件保存至预设位置;

相应的,所述解析单元具体用于对通过校验的镜像文件进行解析。

可选的,所述发送单元还用于当所述镜像文件未通过校验时,向所述用户终端发送反馈信息。

可选的,所述接收单元还用于接收所述cpld发送的数据获取请求;

相应的,所述发送单元还用于依据所述数据获取请求中携带的标识符,向所述cpld发送相应的目标数据。

可选的,所述接收单元还用于接收所述cpld发送的用于表示完成所述cpld固件升级的响应信息;

相应的,所述发送单元还用于将所述响应信息发送至所述用户终端。

图2所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,bmc接收用户终端传输的镜像文件;对所述镜像文件进行解析,得到目标数据;该目标数据是完成cpld固件升级所需使用的数据,bmc将所述目标数据发送给cpld,cpld依据接收到的目标数据,便可以实现cpld固件的升级。bmc和cpld之间具有通信连接,用户终端通过向bmc传输镜像文件的方式,来实现cpld固件的升级,达到了通过远程操作实现cpld固件升级的目的。相比于通过治具进行cpld固件升级的方式,在实际应用中通过远程操作的方式能够更加方便的维护cpld固件升级。

图3为本发明实施例提供的一种远程升级cpld固件的装置30的结构示意图,包括:存储器31,用于存储计算机程序;处理器32,用于执行所述计算机程序以实现如上述远程升级cpld固件的方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述远程升级cpld固件的方法的步骤。

以上对本发明实施例所提供的一种远程升级cpld固件的方法、装置和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1