CN115794182A - 固件带外升级方法、装置、电子设备及存储介质 - Google Patents
固件带外升级方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115794182A CN115794182A CN202211364394.XA CN202211364394A CN115794182A CN 115794182 A CN115794182 A CN 115794182A CN 202211364394 A CN202211364394 A CN 202211364394A CN 115794182 A CN115794182 A CN 115794182A
- Authority
- CN
- China
- Prior art keywords
- firmware
- target
- server
- register
- band
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000012544 monitoring process Methods 0.000 claims abstract description 52
- 230000008859 change Effects 0.000 claims description 40
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012790 confirmation Methods 0.000 claims description 10
- 230000001939 inductive effect Effects 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供一种固件带外升级方法、装置、电子设备及存储介质,所述方法包括:获取目标固件的更新信息;确认所述服务器为开机状态,将所述更新信息存储至目标寄存器;监测所述服务器的工作状态,得到监测结果;基于所述监测结果确认所述服务器中的目标服务器为重启状态,读取所述目标寄存器中的更新信息,实现所述目标服务器的目标固件的自动升级。本发明能够根据服务器不同的运行状态,实现对目标固件进行无感升级。
Description
技术领域
本发明涉及服务器技术领域,尤其涉及一种固件带外升级方法、装置、电子设备及存储介质。
背景技术
当前服务器BMC带外升级,用户通过Web网页或者带外工具将需要升级的CPLD文件上传至BMC处,BMC接受到固件文件后,找到对应固件的存储芯片,对存储芯片进行擦除、写入、检验等操作。
刷新完成后,会下发Refresh命令,使对应CPLD重启,进而生效,完成全部固件更新操作。因为refresh CPLD会使CPLD重启或断电(取决于CPLD是否支持Hitless),若***处于开机状态,可能造成***异常。因此更新CPLD后,需确认***处于关机状态才能refreshCPLD。
因此,带外升级固件一般都是在业务未正常开展时进行,此时进行带外升级不会影响到业务进行。但是,使用应用场景中,往往是在服务器已经上线后,固件迭代更新有更稳定,功能更多的版本需要升级。此时由于业务已经运行,为了保持业务不停,只能选择暂时不更新,待机房统一切换时再进行更新,这样会对业务切换,服务器升级时的运维工作有较高的要求。同时,如果已上线服务器的固件已发现有严重问题,必需紧急升级时,只能临时调整业务。
发明内容
本发明提供一种固件带外升级方法、装置、电子设备及存储介质,用以解决现有技术中固件升级需要在服务器关机情况下进行的缺陷,实现根据服务器不同的运行状态,实现对目标固件进行无感升级。
本发明提供一种固件带外升级方法,应用于服务器的基板管理控制器BMC,所述方法包括:
获取目标固件的更新信息;
确认所述服务器为开机状态,将所述更新信息存储至目标寄存器;
监测所述服务器的工作状态,得到监测结果;
基于所述监测结果确认所述服务器中的目标服务器为重启状态,读取所述目标寄存器中的更新信息,实现所述目标服务器的目标固件的自动升级。
根据本发明提供的一种固件带外升级方法,所述确认所述服务器为开机状态,将所述更新信息存储至目标寄存器,包括:
确认所述服务器为开机状态,将所述更新信息存储至第一寄存器和第二寄存器中;
其中,所述第一寄存器为带电可擦可编程只读存储器EEPROM,所述第二寄存器为目标固件寄存器。
根据本发明提供的一种固件带外升级方法,所述基于所述监测结果确认所述服务器中的目标服务器为重启状态,读取所述目标寄存器中的更新信息,实现所述目标服务器的目标固件的自动升级,包括:
基于所述监测结果确认所述服务器中的目标服务器为重启状态,读取所述EEPROM的更新信息,基于所述EEPROM的记载数据获取所述目标固件是否需要进行升级的判断结果;
读取所述目标固件寄存器的更新信息,并获取所述目标固件寄存器的设定数据的变化信息,基于所述变化信息实现所述目标服务器的目标固件的自动升级。
根据本发明提供的一种固件带外升级方法,所述基于所述EEPROM的记载数据获取所述目标固件是否需要进行升级的判断结果,包括:
对所述EEPROM的记载数据从低位到高位进行bit数据的读取;
在bit数据为0的情况下,确认所述目标固件需要更新,生成更新标记并输出确认结果。
根据本发明提供的一种固件带外升级方法,所述读取所述目标固件寄存器的设定数据的变化信息,基于所述变化信息实现所述目标服务器的目标固件的自动升级,包括:
读取所述目标固件寄存器的设定数据,在第一预设值变为第二预设值的情况下,得到所述变化信息;
基于所述变化信息确认所述目标固件寄存器中存在所述更新信息,并根据所述更新信息实现所述目标服务器的目标固件的自动升级。
根据本发明提供的一种固件带外升级方法,所述实现所述目标服务器的目标固件的自动升级之后,所述方法还包括:
清空所述EEPROM中存储的更新标记;
确认所述目标固件自动升级完成并自动重启的情况下,将所述第二预设值重新调整为所述第一预设值。
根据本发明提供的一种固件带外升级方法,所述获取目标固件的更新信息,包括:
在确认成功更新目标固件的情况下,获取所述目标固件的更新信息;其中,所述目标固件为复杂可编程逻辑器件CPLD、基本输入输出***BIOS以及电源供应单元PSU的任一种。
本发明还提供一种固件带外升级装置,应用于服务器的基板管理控制器BMC,所述装置包括:
第一模块,用于获取目标固件的更新信息;
第二模块,用于确认所述服务器为开机状态,将所述更新信息存储至目标寄存器;
第三模块,用于监测所述服务器的工作状态,得到监测结果;
第四模块,用于基于所述监测结果确认所述服务器中的目标服务器为重启状态,读取所述目标寄存器中的更新信息,实现所述目标服务器的目标固件的自动升级。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述固件带外升级方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述固件带外升级方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述固件带外升级方法。
本发明提供的固件带外升级方法、装置、电子设备及存储介质,通过获取目标固件的更新信息,并确认服务器为开机状态,将更新信息存储至目标寄存器,然后监测服务器的工作状态,得到监测结果,基于监测结果确认目标服务器重启时,读取目标寄存器中的更新信息,实现目标服务器的目标固件的自动升级。本发明能够根据服务器不同的运行状态,实现对目标固件进行无感升级。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的固件带外升级方法的流程示意图之一;
图2是本发明提供的固件带外升级方法的流程示意图之二;
图3是本发明提供的固件带外升级方法的流程示意图之三;
图4是本发明提供的固件带外升级装置的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,需指出在现有技术中,服务器上固件,比如CPLD固件的更新重启,由于其生效一定需要服务器重启或掉电,所以都会影响到***的运行。因此,带外升级固件一般都是在业务未正常开展时进行,此时进行带外升级不会影响到业务进行。但是,使用应用场景中,往往是在服务器已经上线后,固件迭代更新更稳定,功能更多的版本需要升级。此时由于业务已经运行,为了保持业务不停,只能选择暂时不更新,待机房统一切换时再进行更新,这样会对业务切换,服务器升级时的运维工作有较高的要求。同时,如果已上线服务器的固件已发现有严重问题,必需紧急升级时,只能临时调整业务。
因此,需要通过本发明提供的固件带外升级方法,实现在业务正常运行时,批量通过带外工具升级服务器固件(CPLD),同时不会批量导致服务器重启,影响到业务。待单台服务器因业务需要进行重启时,自动实现固件生效动作,实现无感升级。同时本发明提供的固件带外升级方法不依赖于服务器固件(CPLD)是否支持Hitless,对于不支持Hitless即Refresh需断电的服务器固件(CPLD),通过本发明也可实现无感升级。一方面可在业务正常运行状态下保证服务器固件版本的及时性稳定性,另一方面可大大减少运维人员工作量,提高运维效率,减少支出。
其次,对本发明涉及到的服务器***的相关设备名称进行介绍。
BMC(Baseboard Management Controller,基板管理控制器)是服务器特有的管理控制器,BMC可以自动监控服务器运行状态,并及时根据当前状态进行调控。BMC是一个完整的嵌入式Linux***,有自己的芯片,内存,网络及存储空间,用户可以通过网络带外访问BMC,也可以在服务器***下访问BMC。
参照图1,本发明提供的固件带外升级方法,应用于服务器的基板管理控制器BMC,所述方法包括以下步骤:
步骤110、获取目标固件的更新信息;
步骤120、确认所述服务器为开机状态,将所述更新信息存储至目标寄存器;
步骤130、监测所述服务器的工作状态,得到监测结果;
步骤140、基于所述监测结果确认所述服务器中的目标服务器为重启状态,读取所述目标寄存器中的更新信息,实现所述目标服务器的目标固件的自动升级。
需要指出的是,本发明实施例提供的固件带外升级方法,是应用于BMC中的,也就是说BMC的主要功能除了实时监控外,还包括固件的带外更新和升级。并且,不只是BMC本身的固件,服务器上的其他固件,如CPLD,BIOS,PSU等固件,都可以通过BMC实现带外升级功能。BMC带外升级固件,不需要***权限或者现场操作,远程即可完成全部升级流程,且可以借助脚本实现批量升级。因此,在运维或线上业务中,BMC的带外升级功能是最常用的升级方法。
在上述步骤110中,BMC首先需要确认已完成目标固件的更新,并获取目标固件的更新信息。
在一些实施例中,所述获取目标固件的更新信息,包括:
在确认成功更新目标固件的情况下,获取所述目标固件的更新信息;其中,所述目标固件为复杂可编程逻辑器件CPLD、基本输入输出***BIOS以及电源供应单元PSU的任一种。
需要说明的是,CPLD、BIOS以及PSU均可以通过BMC完成带外升级。CPLD,ComplexProgrammable logic device,即复杂可编程逻辑器件;BIOS,Basic Input/OutputSystem,即基本输入输出***;PSU,Power supply unit,即电源供应单元。
然后,通过上述步骤120,确认服务器当前为开机状态,也就是在运行状态下,将更新信息存储到目标寄存器中。反之,若确认服务器当前为关机状态,则可直接进度固件的升级。
进一步地,在上述步骤130中,监测服务器的工作状态的变化,得到监测结果。监测结果其一为状态不变,也就是服务器保持工作状态运行,监测结果其二为状态改变,也就是存在批量的服务器为停止运行状态。
最后,通过上述步骤140,确认目标服务器,即有批量的服务器(服务器整体中的任一个或多个)为停止运行状态,则可以读取目标寄存器中的更新信息,目标寄存器会生成一个升级标志,BMC会根据该升级标志实现这些批量停止运行的服务器的的目标固件的自动升级。
需要说明的是,本实施例在服务器运行中不会进行固件的更新升级,而是将更新信息进行寄存,因此便不会造成服务器的异常。等待服务器关闭时再进行固件的升级,因此不会因固件升级而造成***停止运行。
本发明提供的固件带外升级方法,通过获取目标固件的更新信息,并确认服务器为开机状态,将更新信息存储至目标寄存器,然后监测服务器的工作状态,得到监测结果,基于监测结果确认目标服务器重启时,读取目标寄存器中的更新信息,实现目标服务器的目标固件的自动升级。本发明能够根据服务器不同的运行状态,实现对目标固件进行无感升级。
在一些实施例中,所述确认所述服务器为开机状态,将所述更新信息存储至目标寄存器,包括:
确认所述服务器为开机状态,将所述更新信息存储至第一寄存器和第二寄存器中;
其中,所述第一寄存器为带电可擦可编程只读存储器EEPROM,所述第二寄存器为目标固件寄存器。
需要说明的是,本实施例为更新信息的寄存过程。
为了提高固件升级的准确度,本实施例将固件的更新信息寄存至两个不同的寄存器中,分别为EEPROM以及目标固件寄存器(Register)。
在确认服务器当前为开机状态,也就是在运行状态下,将更新信息存储到EEPROM和目标固件寄存器中。在后续存在批量的服务器为关闭状态的情况下,可先后读取两个不同的寄存器,从而精准地判断目标固件是否需要升级。
本发明实施例提供的固件带外升级方法,通过将固件的更新信息寄存至不同的寄存器中,在进行后续的固件更新升级的判断时,能够通过不同寄存器的多次确认,保证固件升级判断无误的情况下再进行固件的升级,以提高固件升级的准确度和效率。
参照图2,在一些实施例中,所述基于所述监测结果确认所述服务器中的目标服务器为重启状态,读取所述目标寄存器中的更新信息,实现所述目标服务器的目标固件的自动升级,包括以下步骤:
步骤210、基于所述监测结果确认所述服务器中的目标服务器为重启状态,读取所述EEPROM的更新信息,基于所述EEPROM的记载数据获取所述目标固件是否需要进行升级的判断结果;
步骤220、读取所述目标固件寄存器的更新信息,并获取所述目标固件寄存器的设定数据的变化信息,基于所述变化信息实现所述目标服务器的目标固件的自动升级。
可以理解的是,本实施例为读取寄存器以实现固件自动升级的具体过程。
首先,基于监测结果确认批量的目标服务器为重启状态,也就是开机状态经由短暂的关机状态之后又变成开机状态。
然后,读取EEPROM的更新信息,并根据EEPROM的记载数据,即bit数据得到确认结果,也就是通过读取EEPROM中的数据,从而确认升级标记,判断目标固件是否需要更新。
最后,再读取目标寄存器中设定数据的变化信息,根据变化信息进行固件升级地二次判断,从而最终确定目标固件是否需要进行更新升级,经过两次读取和判断,从而提高固件升级判断结果的准确性,并且能够大大减少运维人员工作量,提高运维效率,减少支出。
在一些实施例中,所述基于所述EEPROM的记载数据获取所述目标固件是否需要进行升级的判断结果,包括:
对所述EEPROM的记载数据从低位到高位进行bit数据的读取;
在bit数据为0的情况下,确认所述目标固件需要更新,生成更新标记并输出确认结果。
可以理解的是,本实施例为读取EEPROM的具体过程。
需要说明的是,EEPROM保留的前1024byte空间,使用第二个page(offset 0x80)作为refresh机制纪录。
从低位到高位进行bit数据的读取,EEPROM default出厂值皆为0xFF状态,也就是说读取的数据默认为“1”,当读取的数据为“0”时,则表示EEPROM中的固件更新标记为需要更新,并输出固件需要更新的确认结果。
可选地,所述读取所述目标固件寄存器的设定数据的变化信息,基于所述变化信息实现所述目标服务器的目标固件的自动升级,包括:
读取所述目标固件寄存器的设定数据,在第一预设值变为第二预设值的情况下,得到所述变化信息;
基于所述变化信息确认所述目标固件寄存器中存在所述更新信息,并根据所述更新信息实现所述目标服务器的目标固件的自动升级。
可以理解的是,本实施例为读取目标固件寄存器的具体过程。
需要说明的是,目标固件寄存器的每张板卡皆定义0x0801 bit 0作为更新升级使用,也就是说,目标固件寄存器的默认值为“0”。
在读取目标寄存器的设定数据时,当设定值为“1”的时候,便生成变化信息,说明此时需要进行目标固件的更新升级。反之,当设定值一直为“0”保持不变的情况下,则说明无需进行目标固件的更新升级。
本发明实施例提供的固件带外升级方法,通过先后读取EEPROM的数据变化情况以及目标固件寄存器的设定值变化情况,从而确定目标固件是否需要进行更新升级,从而提高固件升级判断结果的准确性,保障了固件升级的效率。
在一些实施例中,所述实现所述目标服务器的目标固件的自动升级之后,所述方法还包括:
清空所述EEPROM中存储的更新标记;
确认所述目标固件自动升级完成并自动重启的情况下,将所述第二预设值重新调整为所述第一预设值。
具体地,在读取EEPROM之后,需要将EEPROM中的更新标记进行清零处理,也就是将bit数据重新调整至默认值的0xFF状态,以便于下次进行读取EEPROM时,仍可根据默认值的变化情况来确认目标固件是否需要更新。
并且,在目标固件完成升级且完成自动重启的情况下,需要将目标固件寄存器中的第二预设值重新调整为第一预设值,也就是将“1”重新调整为“0”,便于下次进行读取目标固件寄存器时,仍可根据默认值的变化情况来确认目标固件是否需要更新。
本发明实施例提供的固件带外升级方法,通过先后清空EEPROM中存储的更新标记,以及将第二预设值重新调整为第一预设值,以便于下次进行读取EEPROM和目标固件寄存器时,仍可根据默认值和设定值的变化情况来确认目标固件是否需要更新。
参照图3,图3是本发明提供的固件带外升级方法的流程示意图之三,包括以下步骤:
步骤310、开始;
步骤320、BMC检查电源状态;
步骤330、判断***是否断电;若是,则执行步骤340;若否,则返回步骤320;
步骤340、判断是否获取CPLD刷新信息;若是,则执行步骤350;若否,则返回步骤320;
步骤350、升级CPLD固件。
下面对本发明提供的固件带外升级装置进行描述,下文描述的固件带外升级装置与上文描述的固件带外升级方法可相互对应参照。
参照图4,本发明提供的固件带外升级装置,应用于服务器的基板管理控制器BMC,所述装置包括:第一模块410、第二模块420、第三模块430以及第四模块440;
第一模块410,用于获取目标固件的更新信息;
第二模块420,用于确认所述服务器为开机状态,将所述更新信息存储至目标寄存器;
第三模块430,用于监测所述服务器的工作状态,得到监测结果;
第四模块440,用于基于所述监测结果确认所述服务器中的目标服务器为重启状态,读取所述目标寄存器中的更新信息,实现所述目标服务器的目标固件的自动升级。
需要指出的是,本发明实施例提供的固件带外升级装置,是应用于BMC中的,也就是说BMC的主要功能除了实时监控外,还包括固件的带外更新和升级。并且,不只是BMC本身的固件,服务器上的其他固件,如CPLD,BIOS,PSU等固件,都可以通过BMC实现带外升级功能。BMC带外升级固件,不需要***权限或者现场操作,远程即可完成全部升级流程,且可以借助脚本实现批量升级。因此,在运维或线上业务中,BMC的带外升级功能是最常用的升级方法。
在上述第一模块410中,BMC首先需要确认已完成目标固件的更新,并获取目标固件的更新信息。
在一些实施例中,所述获取目标固件的更新信息,包括:
在确认成功更新目标固件的情况下,获取所述目标固件的更新信息;其中,所述目标固件为复杂可编程逻辑器件CPLD、基本输入输出***BIOS以及电源供应单元PSU的任一种。
需要说明的是,CPLD、BIOS以及PSU均可以通过BMC完成带外升级。CPLD,ComplexProgrammable logic device,即复杂可编程逻辑器件;BIOS,Basic Input/OutputSystem,即基本输入输出***;PSU,Power supply unit,即电源供应单元。
然后,通过上述第二模块420,确认服务器当前为开机状态,也就是在运行状态下,将更新信息存储到目标寄存器中。反之,若确认服务器当前为关机状态,则可直接进度固件的升级。
进一步地,在上述第三模块430中,监测服务器的工作状态的变化,得到监测结果。监测结果其一为状态不变,也就是服务器保持工作状态运行,监测结果其二为状态改变,也就是存在批量的服务器为停止运行状态。
最后,通过上述第四模块440,确认有批量的服务器为停止运行状态,则可以读取目标寄存器中的更新信息,目标寄存器会生成一个升级标志,BMC会根据该升级标志实现这些批量停止运行的服务器的的目标固件的自动升级。
需要说明的是,本实施例在服务器运行中不会进行固件的更新升级,而是将更新信息进行寄存,因此便不会造成服务器的异常。等待服务器关闭时再进行固件的升级,因此不会因固件升级而造成***停止运行。
本发明提供的固件带外升级装置,通过获取目标固件的更新信息,并确认服务器为开机状态,将更新信息存储至目标寄存器,然后监测服务器的工作状态,得到监测结果,基于监测结果确认目标服务器重启时,读取目标寄存器中的更新信息,实现目标服务器的目标固件的自动升级。本发明能够根据服务器不同的运行状态,实现对目标固件进行无感升级。
在一些实施例中,所述第二模块具体用于:
确认所述服务器为开机状态,将所述更新信息存储至第一寄存器和第二寄存器中;
其中,所述第一寄存器为带电可擦可编程只读存储器EEPROM,所述第二寄存器为目标固件寄存器。
需要说明的是,本实施例为更新信息的寄存过程。
为了提高固件升级的准确度,本实施例将固件的更新信息寄存至两个不同的寄存器中,分别为EEPROM以及目标固件寄存器(Register)。
在确认服务器当前为开机状态,也就是在运行状态下,将更新信息存储到EEPROM和目标固件寄存器中。在后续存在批量的服务器为关闭状态的情况下,可先后读取两个不同的寄存器,从而精准地判断目标固件是否需要升级。
本发明实施例提供的固件带外升级装置,通过将固件的更新信息寄存至不同的寄存器中,在进行后续的固件更新升级的判断时,能够通过不同寄存器的多次确认,保证固件升级判断无误的情况下再进行固件的升级,以提高固件升级的准确度和效率。
在一些实施例中,所述第四模块具体用于:
基于所述监测结果确认所述服务器中的目标服务器为重启状态,读取所述EEPROM的更新信息,基于所述EEPROM的记载数据获取所述目标固件是否需要进行升级的判断结果;
读取所述目标固件寄存器的更新信息,并获取所述目标固件寄存器的设定数据的变化信息,基于所述变化信息实现所述目标服务器的目标固件的自动升级。
可以理解的是,本实施例为读取寄存器以实现固件自动升级的具体过程。
首先,基于监测结果确认批量的目标服务器为重启状态,也就是开机状态经由短暂的关机状态之后又变成开机状态。
然后,读取EEPROM的更新信息,并根据EEPROM的记载数据,即bit数据得到确认结果,也就是通过读取EEPROM中的数据,从而确认升级标记,判断目标固件是否需要更新。
最后,再读取目标寄存器中设定数据的变化信息,根据变化信息进行固件升级地二次判断,从而最终确定目标固件是否需要进行更新升级,经过两次读取和判断,从而提高固件升级判断结果的准确性。
在一些实施例中,所述第四模块进一步用于:
对所述EEPROM的记载数据从低位到高位进行bit数据的读取;
在bit数据为0的情况下,确认所述目标固件需要更新,生成更新标记并输出确认结果。
可以理解的是,本实施例为读取EEPROM的具体过程。
需要说明的是,EEPROM保留的前1024byte空间,使用第二个page(offset 0x80)作为refresh机制纪录。
从低位到高位进行bit数据的读取,EEPROM default出厂值皆为0xFF状态,也就是说读取的数据默认为“1”,当读取的数据为“0”时,则表示EEPROM中的固件更新标记为需要更新,并输出固件需要更新的确认结果。
在一些实施例中,所述第四模块进一步用于:
读取所述目标固件寄存器的设定数据,在第一预设值变为第二预设值的情况下,得到所述变化信息;
基于所述变化信息确认所述目标固件寄存器中存在所述更新信息,并根据所述更新信息实现所述目标服务器的目标固件的自动升级。
可以理解的是,本实施例为读取目标固件寄存器的具体过程。
需要说明的是,目标固件寄存器的每张板卡皆定义0x0801 bit 0作为更新升级使用,也就是说,目标固件寄存器的默认值为“0”。
在读取目标寄存器的设定数据时,当设定值为“1”的时候,便生成变化信息,说明此时需要进行目标固件的更新升级。反之,当设定值一直为“0”保持不变的情况下,则说明无需进行目标固件的更新升级。
本发明实施例提供的固件带外升级装置,通过先后读取EEPROM的数据变化情况以及目标固件寄存器的设定值变化情况,从而确定目标固件是否需要进行更新升级,从而提高固件升级判断结果的准确性,保障了固件升级的效率。
在一些实施例中,所述装置还包括第五模块,所述第五模块具体用于:
清空所述EEPROM中存储的更新标记;
确认所述目标固件自动升级完成并自动重启的情况下,将所述第二预设值重新调整为所述第一预设值。
具体地,在读取EEPROM之后,需要将EEPROM中的更新标记进行清零处理,也就是将bit数据重新调整至默认值的0xFF状态,以便于下次进行读取EEPROM时,仍可根据默认值的变化情况来确认目标固件是否需要更新。
并且,在目标固件完成升级且完成自动重启的情况下,需要将目标固件寄存器中的第二预设值重新调整为第一预设值,也就是将“1”重新调整为“0”,便于下次进行读取目标固件寄存器时,仍可根据默认值的变化情况来确认目标固件是否需要更新。
本发明实施例提供的固件带外升级装置,通过先后清空EEPROM中存储的更新标记,以及将第二预设值重新调整为第一预设值,以便于下次进行读取EEPROM和目标固件寄存器时,仍可根据默认值和设定值的变化情况来确认目标固件是否需要更新。
在一些实施例中,所述第一模块具体用于:
在确认成功更新目标固件的情况下,获取所述目标固件的更新信息;其中,所述目标固件为复杂可编程逻辑器件CPLD、基本输入输出***BIOS以及电源供应单元PSU的任一种。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行固件带外升级方法,该方法包括:
获取目标固件的更新信息;
确认所述服务器为开机状态,将所述更新信息存储至目标寄存器;
监测所述服务器的工作状态,得到监测结果;
基于所述监测结果确认所述服务器中的目标服务器为重启状态,读取所述目标寄存器中的更新信息,实现所述目标服务器的目标固件的自动升级。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的固件带外升级方法,该方法包括:
获取目标固件的更新信息;
确认所述服务器为开机状态,将所述更新信息存储至目标寄存器;
监测所述服务器的工作状态,得到监测结果;
基于所述监测结果确认所述服务器中的目标服务器为重启状态,读取所述目标寄存器中的更新信息,实现所述目标服务器的目标固件的自动升级。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的固件带外升级方法,该方法包括:
获取目标固件的更新信息;
确认所述服务器为开机状态,将所述更新信息存储至目标寄存器;
监测所述服务器的工作状态,得到监测结果;
基于所述监测结果确认所述服务器中的目标服务器为重启状态,读取所述目标寄存器中的更新信息,实现所述目标服务器的目标固件的自动升级。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种固件带外升级方法,其特征在于,应用于服务器的基板管理控制器BMC,所述方法包括:
获取目标固件的更新信息;
确认所述服务器为开机状态,将所述更新信息存储至目标寄存器;
监测所述服务器的工作状态,得到监测结果;
基于所述监测结果确认所述服务器中的目标服务器为重启状态,读取所述目标寄存器中的更新信息,实现所述目标服务器的目标固件的自动升级。
2.根据权利要求1所述的固件带外升级方法,其特征在于,所述确认所述服务器为开机状态,将所述更新信息存储至目标寄存器,包括:
确认所述服务器为开机状态,将所述更新信息存储至第一寄存器和第二寄存器中;
其中,所述第一寄存器为带电可擦可编程只读存储器EEPROM,所述第二寄存器为目标固件寄存器。
3.根据权利要求2所述的固件带外升级方法,其特征在于,所述基于所述监测结果确认所述服务器中的目标服务器为重启状态,读取所述目标寄存器中的更新信息,实现所述目标服务器的目标固件的自动升级,包括:
基于所述监测结果确认所述服务器中的目标服务器为重启状态,读取所述EEPROM的更新信息,基于所述EEPROM的记载数据获取所述目标固件是否需要进行升级的判断结果;
读取所述目标固件寄存器的更新信息,并获取所述目标固件寄存器的设定数据的变化信息,基于所述变化信息实现所述目标服务器的目标固件的自动升级。
4.根据权利要求3所述的固件带外升级方法,其特征在于,所述基于所述EEPROM的记载数据获取所述目标固件是否需要进行升级的判断结果,包括:
对所述EEPROM的记载数据从低位到高位进行bit数据的读取;
在bit数据为0的情况下,确认所述目标固件需要更新,生成更新标记并输出确认结果。
5.根据权利要求3所述的固件带外升级方法,其特征在于,所述读取所述目标固件寄存器的设定数据的变化信息,基于所述变化信息实现所述目标服务器的目标固件的自动升级,包括:
读取所述目标固件寄存器的设定数据,在第一预设值变为第二预设值的情况下,得到所述变化信息;
基于所述变化信息确认所述目标固件寄存器中存在所述更新信息,并根据所述更新信息实现所述目标服务器的目标固件的自动升级。
6.根据权利要求5所述的固件带外升级方法,其特征在于,所述实现所述目标服务器的目标固件的自动升级之后,所述方法还包括:
清空所述EEPROM中存储的更新标记;
确认所述目标固件自动升级完成并自动重启的情况下,将所述第二预设值重新调整为所述第一预设值。
7.根据权利要求3所述的固件带外升级方法,其特征在于,所述获取目标固件的更新信息,包括:
在确认成功更新目标固件的情况下,获取所述目标固件的更新信息;其中,所述目标固件为复杂可编程逻辑器件CPLD、基本输入输出***BIOS以及电源供应单元PSU的任一种。
8.一种固件带外升级装置,其特征在于,应用于服务器的基板管理控制器BMC,所述装置包括:
第一模块,用于获取目标固件的更新信息;
第二模块,用于确认所述服务器为开机状态,将所述更新信息存储至目标寄存器;
第三模块,用于监测所述服务器的工作状态,得到监测结果;
第四模块,用于基于所述监测结果确认所述服务器中的目标服务器为重启状态,读取所述目标寄存器中的更新信息,实现所述目标服务器的目标固件的自动升级。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述固件带外升级方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述固件带外升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211364394.XA CN115794182A (zh) | 2022-11-02 | 2022-11-02 | 固件带外升级方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211364394.XA CN115794182A (zh) | 2022-11-02 | 2022-11-02 | 固件带外升级方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115794182A true CN115794182A (zh) | 2023-03-14 |
Family
ID=85435003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211364394.XA Pending CN115794182A (zh) | 2022-11-02 | 2022-11-02 | 固件带外升级方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115794182A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116185459A (zh) * | 2023-04-24 | 2023-05-30 | 苏州浪潮智能科技有限公司 | 启动固件更新方法、装置及设备和介质 |
-
2022
- 2022-11-02 CN CN202211364394.XA patent/CN115794182A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116185459A (zh) * | 2023-04-24 | 2023-05-30 | 苏州浪潮智能科技有限公司 | 启动固件更新方法、装置及设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8713296B2 (en) | Apparatus for restoring setting information of a board management controller from a backup memory before loading an OS when a system board is replaced | |
US20130007430A1 (en) | Server and firmware updating method | |
CN112040476B (zh) | 物联网终端的升级方法及装置 | |
CN113641378B (zh) | 光模块程序升级方法、装置、设备及可读存储介质 | |
US9864596B2 (en) | Network switch system and operating method thereof | |
CN105468390B (zh) | Boot在线升级装置及方法 | |
KR20090120541A (ko) | 운영체제(os) 자동복구기능을 갖는 임베디드 시스템 및운영체제 자동복구 방법 | |
CN106201773A (zh) | 实例***、云***及实例***的升级或恢复方法 | |
CN111104147A (zh) | 一种bmc升级方法、装置、终端及存储介质 | |
CN112433769A (zh) | 一种bmc启动方法、装置、计算机设备及存储介质 | |
CN115794182A (zh) | 固件带外升级方法、装置、电子设备及存储介质 | |
CN111338698A (zh) | 一种bios准确引导服务器启动的方法及*** | |
CN111090546A (zh) | 一种操作***重启方法、装置、设备及可读存储介质 | |
CN117289963A (zh) | 在线更新服务器平台服务固件的目标区域的方法及设备 | |
CN112035171B (zh) | 基于uefi固件的恢复出厂设置方法及*** | |
CN106528114B (zh) | 一种安卓固件应用装置和安卓固件升级方法 | |
CN117130672A (zh) | 服务器启动流程控制方法、***、终端及存储介质 | |
CN115421750A (zh) | 一种服务器固件无感升级方法、装置、终端及存储介质 | |
CN111078452A (zh) | 一种bmc固件镜像恢复方法与装置 | |
CN107943575A (zh) | Spi‑nand中的多任务监管方法和装置 | |
JP2016173744A (ja) | ブレードサーバ、ブレードシステム、bmc、チップセットおよびエンクロージャマネージャ | |
CN102760064A (zh) | 网卡更新装置及方法 | |
CN113867753B (zh) | 一种服务器的固件更新方法及*** | |
JPH0689181A (ja) | ダウンロードによるプログラム更新方式 | |
JP7260191B2 (ja) | コンピュータシステムにおけるbiosの設定変更システム及び設定変更方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |