BMC固件的更新方法、更新装置、更新设备及存储介质与流程

文档序号:23101157发布日期:2020-11-27 13:09阅读:375来源:国知局
BMC固件的更新方法、更新装置、更新设备及存储介质与流程

本发明涉及存储服务器技术领域,特别是涉及一种bmc固件的更新方法、更新装置、更新设备及存储介质。



背景技术:

在存储服务器的硬件设计中,基板管理控制器bmc(baseboardmanagementcontroller,下称bmc)的固件(firmware)文件通常存储于电路板上的一存储芯片(如闪存芯片(flash))中。在对电路板进行调试的过程中,需要对用于存储bmc固件的存储芯片烧写固件文件,当前常用的方法是将该存储芯片从电路板上取下来,利用专用的烧写器进行固件文件烧录,在烧录完成后,再将该存储芯片放回电路板的原位置使用。

基于目前这种固件烧写方式,在进行大批量的固件烧写时,将受限于烧写器的数量,且需要人工取下再安装存储芯片,非常影响烧写效率。



技术实现要素:

本发明的目的是提供一种bmc固件的更新方法、更新装置、更新设备及存储介质,用于提高对电路板进行调试的过程中对bmc固件的烧写效率。

为解决上述技术问题,本发明提供一种bmc固件的更新方法,基于待更新bmc所在电路板的可编程控制器,包括:

预先完成对所述待更新bmc的控制配置,对用于存储所述待更新bmc的固件的存储芯片的控制配置,以及对位于所述待更新bmc和所述存储芯片之间的总线开关的控制配置;

在接收到上位机发送的烧写命令后,控制所述待更新bmc进入复位状态,并控制所述总线开关处于断开状态;

在接收到所述上位机发送的固件文件后,向所述存储芯片写入所述固件文件。

可选的,所述预先完成对所述待更新bmc的控制配置,对用于存储所述待更新bmc的固件的存储芯片的控制配置,以及对位于所述待更新bmc和所述存储芯片之间的总线开关的控制配置,具体为:

接收所述上位机发送的预设配置文件,以完成对所述待更新bmc的控制配置,对所述存储芯片的控制配置,以及对所述总线开关的控制配置。

可选的,所述接收所述上位机发送的预设配置文件,以完成对所述待更新bmc的控制配置,对所述存储芯片的控制配置,以及对所述总线开关的控制配置,具体为:

基于联合测试工作组接口接收所述上位机发送的预设配置文件,以完成对所述待更新bmc的控制配置,对所述存储芯片的控制配置,以及对所述总线开关的控制配置。

可选的,在接收到所述上位机发送的固件文件后,还包括:

按预设规则计算得到所述固件文件的校验数据;

将所述校验数据发送至所述上位机。

可选的,所述向所述存储芯片写入所述固件文件,具体为:

以所述待测bmc要求的预设起始位为起始地址,向所述存储芯片写入所述固件文件,并在写入完成后,将所述存储芯片写操作的起始地址置为所述预设起始位。

可选的,在所述向所述存储芯片写入所述固件文件之后,还包括:

当写入完成后,关闭向所述存储芯片的写入通道,开启所述总线开关,并解除所述待更新bmc的复位状态,以使所述待更新bms重新启动并读取所述存储芯片中的固件文件。

可选的,所述可编程控制器具体为可编程逻辑器件、复杂可编程逻辑器件、现场可编程逻辑门阵列、单片机或arm处理器中的任意一种。

为解决上述技术问题,本发明还提供一种bmc固件的更新装置,包括:

配置单元,用于预先完成对所述待更新bmc的控制配置,对用于存储所述待更新bmc的固件的存储芯片的控制配置,以及对位于所述待更新bmc和所述存储芯片之间的总线开关的控制配置;

控制单元,用于在接收到上位机发送的烧写命令后,控制所述待更新bmc进入复位状态,并控制所述总线开关处于断开状态;

写入单元,用于在接收到所述上位机发送的固件文件后,向所述存储芯片写入所述固件文件。

为解决上述技术问题,本发明还提供一种bmc固件的更新设备,包括:

存储器,用于存储指令,所述指令包括上述任意一项所述bmc固件的更新方法的步骤;

处理器,用于执行所述指令。

为解决上述技术问题,本发明还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述bmc固件的更新方法的步骤。

本发明所提供的bmc固件的更新方法,基于待更新bmc所在电路板一可编程控制器实现,首先对该可编程控制器进行对待更新bmc的控制配置,对用于存储待更新bmc的固件的存储芯片的控制配置,以及对位于待更新bmc和存储芯片之间的总线开关的控制配置,由可编程控制器在接收到上位机发送的烧写命令后,控制待更新bmc进入复位状态,并控制总线开关处于断开状态,继而由可编程控制器在接收到上位机发送的固件文件后,向存储芯片写入固件文件。通过本发明提供的bmc固件的更新方法,无需专用的烧写器,更无需将用于存储bmc固件的存储芯片从所在电路板上取下、烧写后再安装回电路板,基于每个电路板上预先就有的可编程控制器及其线路连接关系就可以完成对bmc固件的烧写,提高了对电路板进行调试的过程中对bmc固件的烧写效率,极大方便了bmc固件更新工作的进行。

本发明还提供一种bmc固件的更新装置、更新设备及存储介质,具有上述有益效果,在此不再赘述。

附图说明

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

图1为本发明实施例提供的一种bmc固件的更新方法的流程图;

图2为本发明实施例提供的一种可编程控制器的控制电路图;

图3为本发明实施例提供的一种bmc固件的更新装置的结构示意图;

图4为本发明实施例提供的一种bmc固件的更新设备的结构示意图。

具体实施方式

本发明的核心是提供一种bmc固件的更新方法、更新装置、更新设备及存储介质,用于提高对电路板进行调试的过程中对bmc固件的烧写效率。

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

图1为本发明实施例提供的一种bmc固件的更新方法的流程图;图2为本发明实施例提供的一种可编程控制器的控制电路图。

如图1所示,基于待更新bmc所在电路板的可编程控制器,本发明实施例提供的bmc固件的更新方法包括:

s101:预先完成对待更新bmc的控制配置,对用于存储待更新bmc的固件的存储芯片的控制配置,以及对位于待更新bmc和存储芯片之间的总线开关的控制配置。

在具体实施中,在待更新bmc所在电路板上择一可编程控制器进行控制配置。视电路板情况,可编程控制器可以选择可编程逻辑器件、复杂可编程逻辑器件、现场可编程逻辑门阵列、单片机或arm处理器中的任意一种,或其他类型的可编程控制器。

需要说明的是,该可编程控制器需与待更新bmc的复位引脚、总线开关的控制端和存储芯片的写入引脚连接。如图2所示,在待更新bmc所在电路板上,待更新bmc通过总线开关(如图2所示的busswitch)与存储芯片(如图2所示的flash)连接。通常,待更新bmc与存储芯片之间通过spi接口连接,而存储芯片置于一个焊接在电路板上的插座(如图2所示的spiflashsocket)中。则选取的可编程控制器的一路控制信号与待更新bmc的复位引脚连接,可编程控制器的另一路控制信号与总线开关的控制端连接,可编程控制器还通过spi接口与该插座的对外spi接口连接。

选择好可编程控制器后,需要赋予该可编程控制器烧写bmc固件的功能,即对该可编程控制器进行配置。该配置工作可以由调试人员利用上位机连接可编程控制器的调试引脚后进行配置,也可以为通过一个预设的配置脚本完成对可编程控制器的配置,从而提高烧写工作的自动化水平,节约人力成本。则步骤s101可以为:可编程控制器接收上位机发送的预设配置文件,以完成对待更新bmc的控制配置,对存储芯片的控制配置,以及对总线开关的控制配置。

进一步的,步骤s101可以为:基于联合测试工作组(jtag)接口接收上位机发送的预设配置文件,以完成对待更新bmc的控制配置,对存储芯片的控制配置,以及对总线开关的控制配置。

s102:在接收到上位机发送的烧写命令后,控制待更新bmc进入复位状态,并控制总线开关处于断开状态。

依据步骤s101中对可编程控制器的配置,实现可编程控制器在接收到上位机发送的烧写命令后,控制待更新bmc进入复位状态,并控制总线开关处于断开状态,避免对存储芯片烧写过程中与待更新bmc产生冲突。

若采用预设配置脚本进行可编程控制器的自动化配置,在配置工作中,还可以赋予可编程控制器配置结束后的反馈功能,使可编程控制器在完成上述配置工作后,向上位机反馈配置完成的信号。

s103:在接收到上位机发送的固件文件后,向存储芯片写入固件文件。

在可编程控制器完成配置后,由上位机向可编程控制器发送要烧写的固件文件。可编程控制器可以基于uart接口接收上位机发送的固件文件。则相应的,基于步骤s101中的配置,可编程控制器对固件文件进行从uart接口到spi接口的转换后,通过预先配置的与存储芯片之间的写入通道,向存储芯片写入固件文件。

为了保证写入的固件文件可以被待更新bmc顺利读取使用,向存储芯片写入固件文件时,应以待测bmc要求的预设起始位为起始地址,向存储芯片写入固件文件,并在写入完成后,将存储芯片写操作的起始地址置为预设起始位。

当写入完成后,可编程控制器关闭向存储芯片的写入通道(如将自身的spi接口的管脚置为高阻态),开启总线开关,并解除待更新bmc的复位状态,以使待更新bms重新启动并读取存储芯片中的固件文件。

基于预先的配置,可编程控制器判断固件文件传输完成的方法可以为:可编程控制器在接收到上位机发送的预先约定的特定字符(组)时,确定固件文件传输完毕。可编程控制器判断固件文件传输完成的方法还可以为:可编程控制器自接收到上位机发送的烧写命令后,在进行数据传输的过程中,若经过预设时长未接收到上位机发送的固件文件数据,或检测到上位机的uart接口超出预设时长处于高电平状态,确定固件文件传输完毕。

本发明实施例提供的bmc固件的更新方法,基于待更新bmc所在电路板一可编程控制器实现,首先对该可编程控制器进行对待更新bmc的控制配置,对用于存储待更新bmc的固件的存储芯片的控制配置,以及对位于待更新bmc和存储芯片之间的总线开关的控制配置,由可编程控制器在接收到上位机发送的烧写命令后,控制待更新bmc进入复位状态,并控制总线开关处于断开状态,继而由可编程控制器在接收到上位机发送的固件文件后,向存储芯片写入固件文件。通过本发明实施例提供的bmc固件的更新方法,无需专用的烧写器,更无需将用于存储bmc固件的存储芯片从所在电路板上取下、烧写后再安装回电路板,基于每个电路板上预先就有的可编程控制器及其线路连接关系就可以完成对bmc固件的烧写,提高了对电路板进行调试的过程中对bmc固件的烧写效率,极大方便了bmc固件更新工作的进行。

在上述实施例的基础上,为保证bmc固件烧写的可靠性,在本发明实施例提供的bmc固件的更新方法中,在步骤s102中接收到上位机发送的固件文件后,还包括:

按预设规则计算得到固件文件的校验数据;将校验数据发送至上位机。

在具体实施中,基于步骤s101中的配置,可编程控制器可以先接收完毕固件文件,进行文件校验,在得到上位机反馈的校验通过的信号时,再向存储芯片写入固件文件。或者,可编程控制器可以边接收固件文件边进行向存储芯片的写入工作,并在传输完成后,再根据接收到的完整的固件文件进行校验,若上位机检查到校验不通过,则可以重新进行烧写。

上文详述了bmc固件的更新方法对应的各个实施例,在此基础上,本发明还公开了与上述方法对应的bmc固件的更新装置、更新设备及存储介质。

图3为本发明实施例提供的一种bmc固件的更新装置的结构示意图。

如图3所示,本发明实施例提供的bmc固件的更新装置包括:

配置单元301,用于预先完成对待更新bmc的控制配置,对用于存储待更新bmc的固件的存储芯片的控制配置,以及对位于待更新bmc和存储芯片之间的总线开关的控制配置;

控制单元302,用于在接收到上位机发送的烧写命令后,控制待更新bmc进入复位状态,并控制总线开关处于断开状态;

写入单元303,用于在接收到上位机发送的固件文件后,向存储芯片写入固件文件。

由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

图4为本发明实施例提供的一种bmc固件的更新设备的结构示意图。

如图4所示,本发明实施例提供的bmc固件的更新设备包括:

存储器410,用于存储指令,所述指令包括上述任意一项实施例所述的bmc固件的更新方法的步骤;

处理器420,用于执行所述指令。

其中,处理器420可以包括一个或多个处理核心,比如3核心处理器、8核心处理器等。处理器420可以采用数字信号处理dsp(digitalsignalprocessing)、现场可编程门阵列fpga(field-programmablegatearray)、可编程逻辑阵列pla(programmablelogicarray)中的至少一种硬件形式来实现。处理器420也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器cpu(centralprocessingunit);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器420可以集成有图像处理器gpu(graphicsprocessingunit),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器420还可以包括人工智能ai(artificialintelligence)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器410可以包括一个或多个存储介质,该存储介质可以是非暂态的。存储器410还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器410至少用于存储以下计算机程序411,其中,该计算机程序411被处理器420加载并执行之后,能够实现前述任一实施例公开的bmc固件的更新方法中的相关步骤。另外,存储器410所存储的资源还可以包括操作系统412和数据413等,存储方式可以是短暂存储或者永久存储。其中,操作系统412可以为windows。数据413可以包括但不限于上述方法所涉及到的数据。

在一些实施例中,bmc固件的更新设备还可包括有显示屏430、电源440、通信接口450、输入输出接口460、传感器470以及通信总线480。

本领域技术人员可以理解,图4中示出的结构并不构成对bmc固件的更新设备的限定,可以包括比图示更多或更少的组件。

本申请实施例提供的bmc固件的更新设备,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如上所述的bmc固件的更新方法,效果同上。

需要说明的是,以上所描述的装置、设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。

为此,本发明实施例还提供一种存储介质,该存储介质上存储有计算机程序,计算机程序被处理器执行时实现如bmc固件的更新方法的步骤。

该存储介质可以包括:u盘、移动硬盘、只读存储器rom(read-onlymemory)、随机存取存储器ram(randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本实施例中提供的存储介质所包含的计算机程序能够在被处理器执行时实现如上所述的bmc固件的更新方法的步骤,效果同上。

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

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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