一种电源固件的升级方法、装置及存储介质与流程

文档序号:24305199发布日期:2021-03-17 00:57阅读:86来源:国知局
一种电源固件的升级方法、装置及存储介质与流程

本发明涉及服务器技术领域,特别是涉及一种电源固件的升级方法、装置及存储介质。



背景技术:

psu(powersupplyunit,电源模块)是服务器的重要部件,负责将市电或者高压直流电转化为12v或48v的电能,并提供至服务器。psu本身具备fw(firmware,固件),第一个主要用途是进行psu本身的控制,比如日志记录、对外通信接口、上下电时序控制等;第二个主要用途是保障电压转换过程中良好的动态响应,同时控制输出纹波在一定范围,因此,psu的fw非常重要,也会存在较多的升级fw的需求。

目前的服务器psu固件升级方案包括线上和线下两种。线下升级需要使用专用治具,将psu插入治具中进行fw的升级,这种方式可维护性差,逐渐被淘汰。线上升级通常是利用bmc直接对psu的fw进行升级,可参阅图1,bmc(boardmanagementcontroller,基板管理控制器)直接将固件升级数据刷入pmu(powermanagementunit,电源管理单元)中,pmu是pcu的控制单元,这种升级方式成本低,但是稳定性差。例如存在信号传输的质量问题、bmc升级过程中挂死情况等。由于是直接将固件升级数据刷入pmu中,因此一旦升级过程出现异常,pmu便会失效,进而造成整个psu功能异常,也无法通过bmc重新下刷固件升级数据至pmu实现补救,此时要么废弃该psu,要么需要通过专门的工具实现pmu的恢复,操作复杂且成本高昂。

综上所述,如何有效地提高电源固件升级的稳定性,是目前本领域技术人员急需解决的技术问题。



技术实现要素:

本发明的目的是提供一种电源固件的升级方法、装置及存储介质,以有效地提高电源固件升级的稳定性。

为解决上述技术问题,本发明提供如下技术方案:

一种电源固件的升级方法,包括:

从第一存储空间和第二存储空间中选取出本次升级的目标存储空间;其中,当本次升级前的最新版本的固件升级数据存储在所述第一存储空间时,选取出的本次升级的目标存储空间为第二存储空间,当本次升级前的最新版本的固件升级数据存储在所述第二存储空间时,选取出的本次升级的目标存储空间为第一存储空间;

接收本次升级的固件升级数据并存储至选取出的所述目标存储空间中,并判断是否存储成功;

如果是,则将所述目标存储空间中的数据传递给pmu使用;

如果否,则将本次升级前的最新版本的固件升级数据传递给pmu使用。

优选的,所述第一存储空间为第一eeprom的存储空间,所述第二存储空间为第二eeprom的存储空间。

优选的,所述判断是否存储成功,包括:

判断存储至选取出的所述目标存储空间中的本次升级的固件升级数据是否通过crc校验。

优选的,所述接收本次升级的固件升级数据,包括:

通过pmbus接收bmc发送的本次升级的固件升级数据。

优选的,在判断出存储成功之后,还包括:向bmc输出第一信息;

在判断出存储不成功之后,还包括:向bmc输出第二信息。

一种电源固件的升级装置,包括:

具有第一存储空间和第二存储空间的存储设备;

与所述存储设备连接的控制器,用于:从第一存储空间和第二存储空间中选取出本次升级的目标存储空间;接收本次升级的固件升级数据并存储至选取出的所述目标存储空间中,并判断是否存储成功;如果是,则将所述目标存储空间中的数据传递给pmu使用;如果否,则将本次升级前的最新版本的固件升级数据传递给pmu使用;

其中,当本次升级前的最新版本的固件升级数据存储在所述第一存储空间时,选取出的本次升级的目标存储空间为第二存储空间,当本次升级前的最新版本的固件升级数据存储在所述第二存储空间时,选取出的本次升级的目标存储空间为第一存储空间。

优选的,所述存储设备包括第一eeprom和第二eeprom;

所述第一存储空间为所述第一eeprom的存储空间,所述第二存储空间为所述第二eeprom的存储空间。

优选的,所述控制器判断是否存储成功,具体包括:

判断存储至选取出的所述目标存储空间中的本次升级的固件升级数据是否通过crc校验。

优选的,所述控制器接收本次升级的固件升级数据,具体包括:

通过pmbus接收bmc发送的本次升级的固件升级数据。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的电源固件的升级方法的步骤。

应用本发明实施例所提供的技术方案,为了避免在进行电源固件升级时彻底损坏pmu,并不是直接将固件升级数据写入pmu中,而是设置了第一存储空间和第二存储空间实现热备份,保障pmu能够使用到正确的固件升级数据。具体的,本申请会从第一存储空间和第二存储空间中选取出本次升级的目标存储空间;其中,当本次升级前的最新版本的固件升级数据存储在第一存储空间时,选取出的本次升级的目标存储空间为第二存储空间,当本次升级前的最新版本的固件升级数据存储在第二存储空间时,选取出的本次升级的目标存储空间为第一存储空间。然后接收本次升级的固件升级数据并存储至选取出的目标存储空间中,并判断是否存储成功;如果存储成功,则说明目标存储空间中存储了正确、完整的本次升级的固件升级数据,因此,可以将目标存储空间中的数据传递给pmu使用,从而完成了本次升级。如果判断并未存储成功,说明目标存储空间中存储的不是正确完整的本次升级的固件升级数据,此时,虽然本次升级未成功,但是,本申请会将本次升级前的最新版本的固件升级数据传递给pmu使用,保障pmu不会因为使用到错误的升级数据而发生彻底损坏的情况。综上可知,本申请的方案有效地提高了电源固件升级的稳定性。

附图说明

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

图1为传统的电源固件的升级方式示意图;

图2为本发明中一种电源固件的升级方法的实施流程图;

图3为本发明一种具体实施方式中的电源固件的升级装置的结构示意图。

具体实施方式

本发明的核心是提供一种电源固件的升级方法,有效地提了高电源固件升级的稳定性。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图2,图2为本发明中一种电源固件的升级方法的实施流程图,该电源固件的升级方法可以包括以下步骤:

步骤s201:从第一存储空间和第二存储空间中选取出本次升级的目标存储空间;

其中,当本次升级前的最新版本的固件升级数据存储在第一存储空间时,选取出的本次升级的目标存储空间为第二存储空间,当本次升级前的最新版本的固件升级数据存储在第二存储空间时,选取出的本次升级的目标存储空间为第一存储空间。

本申请通常可以由控制器执行步骤s201至步骤s204,控制器的具体类型可以根据实际需要进行设定和调整,例如具体可以选取为mcu。

本申请并不将固件升级数据写入pmu中,而是利用第一存储空间和第二存储空间进行存储。为了保障电源固件升级的稳定性,在步骤s201时,从第一存储空间和第二存储空间中选取出的本次升级的目标存储空间,是后续步骤中用于存储本次升级的固件升级数据的存储空间,可以理解的是,选取出的目标存储空间应当与本次升级之前的最新版本的固件升级数据所在的存储空间不同,从而保障如果将本次升级的固件升级数据刷写到目标存储空间中出现异常时,还能够有此前最新版本的固件升级数据传递给pmu使用。

并且可以理解的是,如果是第一次执行固件升级,即第一存储空间和第二存储空间中均没有存储过固件升级数据时,则可以任意选取一个作为目标存储空间,或者是按照设定的策略,例如在第一次时指定将第一存储空间作为目标存储空间。

第一存储空间和第二存储空间可以是一个存储器件中的不同空间,也可以位于不同的存储器件中。并且需要说明的是,如果第一存储空间和第二存储空间是一个存储器件中的不同空间,当某一个存储空间与bmc通信异常时,则另一个存储空间与bmc通信异常的概率也很高,因此,作为优选的实施方案,第一存储空间和第二存储空间通常位于不同的存储器件中。再考虑到第一存储空间和第二存储空间对于容量的需求都不高,因此通常可以选用成本较低的eeprom来实现。即在本发明的一种具体实施方式中,第一存储空间为第一eeprom的存储空间,第二存储空间为第二eeprom的存储空间。

此外需要说明的是,当控制器选取为mcu,第一存储空间和第二存储空间分别选用第一eeprom和第二eeprom来实现时,mcu和这两eeprom可以集成在psu内部,降低本申请方案对空间的占用情况。例如本申请的图3的实施方式中,便是将第一eeprom301,第二eeprom302以及mcu303集成在psu内部。

步骤s202:接收本次升级的固件升级数据并存储至选取出的目标存储空间中,并判断是否存储成功。

通常,控制器接收bmc发送的本次升级的固件升级数据,且通常是通过pmbus(powermanagementbus,电源管理总线)接收,即步骤s201中描述的接收本次升级的固件升级数据,可以具体包括:通过pmbus接收bmc发送的本次升级的固件升级数据。

在接收了本次升级的固件升级数据并存储至选取出的目标存储空间之后,需要判断是否存储成功,即,是否将本次升级的固件升级数据正确、完整地存储到了选取出的目标存储空间中。

判断是否存储成功的方式可以有多种,通常采用的是便于实施的数据完整性校验的方式,该方式具体采用的算法也可以根据实际需要进行设定和选取,例如在本发明的一种具体实施方式中,步骤s201中描述的判断是否存储成功,可以具体包括:判断存储至选取出的目标存储空间中的本次升级的固件升级数据是否通过crc校验。通过crc校验实现判断,简单易实施,且不容易出现误判的情况,通过了crc校验则可以认为存储成功,反之则认为存储不成功。

如果判断存储成功,则可以执行步骤s203:将目标存储空间中的数据传递给pmu使用;

否则执行步骤s204:将本次升级前的最新版本的固件升级数据传递给pmu使用。

将目标存储空间中的数据传递给pmu使用,表示的是本次升级的固件升级数据已经成功地写入了目标存储空间中,升级已经完成,后续psu在运行时,便可以利用目标存储空间中的数据。当然,在实际应用中,通常会在判断出存储成功之后,进行一次psu的重启来保障psu成功完成固件升级。

相应的,判断存储未成功,则说明本次升级的固件升级数据并没有成功地写入目标存储空间中,为了保障psu依然能够正常运行,不会出现pmu彻底损坏的情况,本申请将本次升级前的最新版本的固件升级数据传递给pmu使用。

需要说明的是,无论是执行步骤s203将目标存储空间中的数据传递给pmu使用,还是执行步骤s204将本次升级前的最新版本的固件升级数据传递给pmu使用,本申请均不需要将固件升级数据存储到pmu中,从而避免pmu彻底损坏的情况,本申请利用第一存储空间和第二存储空间进行固件升级数据的存储,在psu的运行过程中,pmu通过控制器便可以使用到第一存储空间或第二存储空间中的固件升级数据。

在本发明的一种具体实施方式中,在判断出存储成功之后,还可以包括:向bmc输出第一信息;

在判断出存储不成功之后,还可以包括:向bmc输出第二信息。

例如,mcu可以将本次升级成功与否的结果写入至固定地址的寄存器中,bmc通过该寄存器的数值,便可以得知mcu输出的是第一信息还是第二信息。并且需要说明的是,由于本申请并不是直接将固件升级数据刷写进pmu中,因此,当工作人员通过bmc发现本次升级失败时,可以重新向目标存储空间下刷本次固件升级数据,即重新进行升级,并不会为pmu带来风险。

此外,通过向bmc输出第一信息或者第二信息,可以使得远程的工作人员及时获知本次升级情况,在实际应用中,也可以设置与控制器连接的指示灯,使得现场的工作人员可以通过指示灯直观方便地得知升级情况。例如图3的方案中,led为电源固件升级指示灯,通过mcu303的gpio引脚进行控制,led可以为双色led,其中绿色常亮表示第一eeprom301可用,黄色常亮表示第二eeprom302可用,红色且按照1hz的频率闪烁表示正在进行电源固件升级中。

应用本发明实施例所提供的技术方案,为了避免在进行电源固件升级时彻底损坏pmu,并不是直接将固件升级数据写入pmu中,而是设置了第一存储空间和第二存储空间实现热备份,保障pmu能够使用到正确的固件升级数据。具体的,本申请会从第一存储空间和第二存储空间中选取出本次升级的目标存储空间;其中,当本次升级前的最新版本的固件升级数据存储在第一存储空间时,选取出的本次升级的目标存储空间为第二存储空间,当本次升级前的最新版本的固件升级数据存储在第二存储空间时,选取出的本次升级的目标存储空间为第一存储空间。然后接收本次升级的固件升级数据并存储至选取出的目标存储空间中,并判断是否存储成功;如果存储成功,则说明目标存储空间中存储了正确、完整的本次升级的固件升级数据,因此,可以将目标存储空间中的数据传递给pmu使用,从而完成了本次升级。如果判断并未存储成功,说明目标存储空间中存储的不是正确完整的本次升级的固件升级数据,此时,虽然本次升级未成功,但是,本申请会将本次升级前的最新版本的固件升级数据传递给pmu使用,保障pmu不会因为使用到错误的升级数据而发生彻底损坏的情况。综上可知,本申请的方案有效地提高了电源固件升级的稳定性。

相应于上面的方法实施例,本发明实施例还提供了一种电源固件的升级装置,可与上文相互对应参照。

该电源固件的升级装置可以包括:

具有第一存储空间和第二存储空间的存储设备;

与存储设备连接的控制器,用于:从第一存储空间和第二存储空间中选取出本次升级的目标存储空间;接收本次升级的固件升级数据并存储至选取出的目标存储空间中,并判断是否存储成功;如果是,则将目标存储空间中的数据传递给pmu使用;如果否,则将本次升级前的最新版本的固件升级数据传递给pmu使用;

其中,当本次升级前的最新版本的固件升级数据存储在第一存储空间时,选取出的本次升级的目标存储空间为第二存储空间,当本次升级前的最新版本的固件升级数据存储在第二存储空间时,选取出的本次升级的目标存储空间为第一存储空间。

在本发明的一种具体实施方式中,存储设备包括第一eeprom和第二eeprom;

第一存储空间为第一eeprom的存储空间,第二存储空间为第二eeprom的存储空间。

例如图3为一种具体实施方式中的电源固件的升级装置的结构示意图,该实施方式中存储设备便是由第一eeprom301和第二eeprom302构成,控制器则具体选取为mcu303。

在本发明的一种具体实施方式中,控制器判断是否存储成功,具体包括:

判断存储至选取出的目标存储空间中的本次升级的固件升级数据是否通过crc校验。

在本发明的一种具体实施方式中,控制器接收本次升级的固件升级数据,具体包括:

通过pmbus接收bmc发送的本次升级的固件升级数据。

在本发明的一种具体实施方式中,控制器在判断出存储成功之后,还用于:向bmc输出第一信息;

控制器在判断出存储不成功之后,还用于:向bmc输出第二信息。

相应于上面的方法和装置的实施例,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例中的电源固件的升级方法的步骤。。这里所说的计算机可读存储介质包括随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质。

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

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

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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