CN114564225A - 固件更新方法、固件更新装置、计算机设备及介质 - Google Patents
固件更新方法、固件更新装置、计算机设备及介质 Download PDFInfo
- Publication number
- CN114564225A CN114564225A CN202210224309.3A CN202210224309A CN114564225A CN 114564225 A CN114564225 A CN 114564225A CN 202210224309 A CN202210224309 A CN 202210224309A CN 114564225 A CN114564225 A CN 114564225A
- Authority
- CN
- China
- Prior art keywords
- chip
- firmware
- target
- memory
- storage
- 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
- 230000008569 process Effects 0.000 claims abstract description 19
- 230000015654 memory Effects 0.000 claims description 43
- 238000004891 communication Methods 0.000 claims description 23
- 238000012216 screening Methods 0.000 claims description 14
- 238000012795 verification Methods 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 9
- 238000001514 detection method Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种固件更新方法、固件更新装置、计算机设备及介质。固件更新方法包括:固件更新的过程中控制目标存储芯片与控制芯片连通,以使控制芯片将目标驱动芯片的新版固件写入目标存储芯片内。根据目标存储芯片中新版固件的存储数据与控制芯片中新版固件的完整数据之间的对比结果,确定新版固件是否成功写入目标存储芯片内。若新版固件未完全写入目标存储芯片内,则控制目标驱动芯片与目标驱动芯片的历史存储芯片连通。通过本发明提供的方法,能够在固件更新失败的情况下,目标驱动芯片仍可以采用历史固件进行启动或者运行,进而避免新版固件存储失败影响目标驱动芯片正常工作的情况发生,从而有助于降低维护成本,减少服务器的安全风险。
Description
技术领域
本发明涉及固件更新技术领域,具体涉及一种固件更新方法、固件更新装置、计算机设备及介质。
背景技术
伴随云计算应用的发展,信息化逐渐覆盖到社会的各个领域。云计算时代需要更多数量的服务器参与运算、存储工作,目前我国已有千万台服务器在数据中心运行。如此庞大的服务器数量在线运行,要求服务器在具备更好的计算性能、良好的运行稳定性的同时,也需要支持便捷的维修保养方式。
在服务器维保中,更新固件是一种常见的维护方式。但在实际应用中,若固件更新存在异常时,则容易导致固件对应的驱动芯片无法启动运行。相关技术中,更新固件时,需将服务器下架、返厂,将存储芯片拆除后,采用离线烧录的方式,将存储芯片进行更新,进而完成固件的更新,从而导致维护成本提高,装置损坏风险加大。
发明内容
因此,本发明要解决的技术问题在于克服现有技术中固件更新失败,导致驱动芯片无法启动、运行的缺陷,从而提供一种固件更新方法、固件更新装置、计算机设备及介质。
根据第一方面,本发明提供一种固件更新方法,所述方法包括:
固件更新的过程中控制目标存储芯片与控制芯片连通,以使所述控制芯片将目标驱动芯片的新版固件写入所述目标存储芯片内;
根据所述目标存储芯片中所述新版固件的存储数据与控制芯片中所述新版固件的完整数据之间的对比结果,确定所述新版固件是否成功写入所述目标存储芯片内;
若所述新版固件未完全写入所述目标存储芯片内,则控制所述目标驱动芯片与所述目标驱动芯片的历史存储芯片连通。
在该方式中,能够在固件更新失败的情况下,目标驱动芯片仍可以采用历史存储芯片中的历史固件进行启动或者运行,进而避免新版固件存储失败影响目标驱动芯片正常工作的情况发生,从而有助于降低维护成本,减少服务器的安全风险。
结合第一方面,在第一方面的第一实施例中,所述固件更新的过程中控制目标存储芯片与控制芯片连通包括:
接收所述控制芯片发送的固件更新指令,以确定待进行固件更新的目标驱动芯片;
从多个存储芯片中筛选出所述目标存储芯片;
将所述目标存储芯片与所述控制芯片连通。
结合第一方面的第一实施例,在第一方面的第二实施例中,所述从多个存储芯片中筛选出所述目标存储芯片包括:
检测多个存储芯片中每一个存储芯片与驱动芯片的连通关系,将未与驱动芯片连通的一个存储芯片确定为目标存储芯片。
结合第一方面的第二实施例,在第一方面的第三实施例中,所述检测多个存储芯片中每一个存储芯片与驱动芯片的连通关系包括:
检测每一个存储芯片的身份标识;
若当前存储芯片的身份标识为第一标识,则确定所述当前存储芯片存在与其对应连通的驱动芯片;
若所述当前存储芯片的身份标识为第二标识,则确定所述当前存储芯片不存在与其对应连通的驱动芯片,所述当前存储芯片为备用存储芯片。
结合第一方面,在第一方面的第四实施例中,所述方法还包括:
若所述新版固件完全写入所述目标存储芯片内,则确定固件更新成功,并将所述目标驱动芯片与所述目标存储芯片连通,完成固件更新。
在该方式中,在更新固件的过程中,是将目标驱动芯片的新版固件写入至目标存储芯片中,历史存储芯片中的历史固件并未更改,进而在线更新的过程中,可以根据固件更新的情况,确定与目标驱动芯片连通的存储芯片,以使无论固件更新是否成功,目标驱动芯片均有完整且可供其正常工作的固件,从而使固件更新的方式更安全更可靠,更有助于降低维护成本,减少返厂拆焊存储固芯片烧录的情况发生,有利于提升用户的使用体验。
结合第一方面的第四实施例,在第一方面的第五实施例中,所述将所述目标驱动芯片与所述目标存储芯片连通包括:
断开所述目标驱动芯片与所述历史存储芯片之间的连通;
将所述目标存储芯片与所述驱动芯片连通。
在该方式中,将目标驱动芯片与历史存储芯片之间的连通断开,将目标驱动芯片与目标存储芯片连通,以使目标驱动芯片后续正常工作时,是基于目标存储芯片中的新版固件进行驱动,进而实现固件的在线更新。
结合第一方面的第五实施例,在第一方面的第六实施例中,所述方法还包括:
向所述目标驱动芯片发送复位信号,以控制所述目标驱动芯片加载所述目标存储芯片中的所述新版固件。
根据第二方面,本发明还提供一种固件更新装置,所述装置包括:
第一控制单元,用于固件更新的过程中控制目标存储芯片与控制芯片连通,以使所述控制芯片将目标驱动芯片的新版固件写入所述目标存储芯片内;
校验单元,用于根据所述目标存储芯片中所述新版固件的存储数据与控制芯片中所述新版固件的完整数据之间的对比结果,确定所述新版固件是否成功写入所述目标存储芯片内;
第二控制单元,用于若所述新版固件未完全写入所述目标存储芯片内,则控制所述目标驱动芯片与所述目标驱动芯片的历史存储芯片连通。
结合第二方面,在第二方面的第一实施例中,所述第一控制单元包括:
接收单元,用于接收所述控制芯片发送的固件更新指令,以确定待进行固件更新的目标驱动芯片;
筛选单元,用于从多个存储芯片中筛选出所述目标存储芯片;
连通单元,用于将所述目标存储芯片与所述控制芯片连通。
结合第二方面的第一实施例,在第二方面的第二实施例中,所述筛选单元包括:
筛选子单元,用于检测多个存储芯片中每一个存储芯片与驱动芯片的连通关系,将未与驱动芯片连通的一个存储芯片确定为目标存储芯片。
结合第二方面的第二实施例,在第二方面的第三实施例中,所述筛选子单元包括:
检测单元,用于检测每一个存储芯片的身份标识;
第一确定单元,用于若当前存储芯片的身份标识为第一标识,则确定所述当前存储芯片存在与其对应连通的驱动芯片;
第二确定单元,用于若所述当前存储芯片的身份标识为第二标识,则确定所述当前存储芯片不存在与其对应连通的驱动芯片,所述当前存储芯片为备用存储芯片。
结合第二方面,在第二方面的第四实施例中,所述装置还包括:
第三控制单元,用于若所述新版固件完全写入所述目标存储芯片内,则确定固件更新成功,并将所述目标驱动芯片与所述目标存储芯片连通,完成固件更新。
结合第二方面的第四实施例,在第二方面的第五实施例中,所述第三控制单元包括:
控制子单元,用于断开所述目标驱动芯片与所述历史存储芯片之间的连通;
连通单元,用于将所述目标存储芯片与所述驱动芯片连通。
结合第二方面的第五实施例,在第二方面的第六实施例中,所述装置还包括:
发送单元,用于向所述目标驱动芯片发送复位信号,以控制所述目标驱动芯片加载所述目标存储芯片中的所述新版固件。
根据第三方面,本发明实施方式还提供一种计算机设备,包括存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面及其可选实施方式中任一项的固件更新方法。
根据第四方面,本发明实施方式还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面及其可选实施方式中任一项的固件更新方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例提出的一种固件系统的结构示意图。
图2是根据一示例性实施例提出的一种固件更新方法的流程图。
图3是根据一示例性实施例提出的另一种固件更新方法的流程图。
图4是根据一示例性实施例提出的又一种固件更新方法的流程图。
图5是根据一示例性实施例提出的另一种固件系统的结构示意图。
图6是根据一示例性实施例提出的又一种固件更新方法的流程图。
图7是根据一示例性实施例提出的一种固件更新装置的结构框图。
图8是根据一示例性实施例提出的一种计算机设备的硬件结构示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,服务器内部固件系统的结构可以如图1所示。图1是根据一示例性实施例提出的一种固件系统的结构示意图。在固件系统中,可以通过基板管理控制器(Baseboard Management Controller,BMC)对驱动芯片的固件进行在线烧录。例如:若驱动芯片为BMC,则BMC可以基于串行外设接口(Serial Peripheral Interface,SPI)协议直接将BMC固件烧录至存储BMC固件的存储芯片(Flash)中。若驱动芯片为南桥(PlatformController Hub,PCH),则BMC也可以通过命令控制逻辑控制芯片(例如:FPGA(FieldProgrammable Gate Array)芯片)将PCH基于SPI协议通信的开关控制(Switch)芯片与基本输入输出系统(Basic Input Output System,BIOS)之间的连接断开,通过Switch芯片将BMC与存储BIOS固件的Flash建立连接,进而将BIOS固件烧录至该Flash中。
但采用在线烧录的方式更新固件时,若固件更新发生异常,例如:固件损坏或者误将其他固件存入指定驱动芯片的存储芯片中时,则需将服务器下架、返厂,将该存储芯片拆除后,采用离线烧录的方式,将存储芯片进行更新,进而完成固件的更新,从而导致维护成本提高,装置损坏风险加大。
为解决上述问题,本发明实施例中提供一种固件更新方法,用于计算机设备中,需要说明的是,其执行主体可以是固件更新装置,该装置可以通过软件、硬件或者软硬件结合的方式实现成为计算机设备的部分或者全部,其中,该计算机设备可以是终端或客户端或服务器,服务器可以是一台服务器,也可以为由多台服务器组成的服务器集群,本申请实施例中的终端可以是智能手机、个人电脑、平板电脑、可穿戴设备以及智能机器人等其他智能硬件设备。下述方法实施例中,均以执行主体是计算机设备为例来进行说明。
本发明实施例中的计算机设备中,每一个驱动芯片对应一个存储芯片,驱动芯片的存储芯片中存储有用于启动或者运行驱动芯片的固件。通过本发明提供的固件更新方法,在更新目标驱动芯片的固件时,将控制芯片与目标存储芯片连通,以使控制芯片将目标驱动芯片的新版固件存储至目标存储芯片中,并根据目标存储芯片中新版固件的存储数据的完整性确定新版固件是否成功写入。当确定新版固件未完全写入目标存储芯片时,控制目标驱动芯片与其历史存储芯片连通,以使目标驱动芯片仍可以采用历史存储芯片中的历史固件进行启动或者运行,进而避免新版固件存储失败影响目标驱动芯片启动或者运行的情况发生,从而有助于降低维护成本,减少服务器的安全风险。
图2是根据一示例性实施例提出的一种固件更新方法的流程图。如图2所示,固件更新方法包括如下步骤S201至步骤S203。
在步骤S201中,固件更新的过程中控制目标存储芯片与控制芯片连通。
在本发明实施例中,目标存储芯片可以理解为是单独用于存储新版固件的存储芯片。采用目标存储芯片存储新版固件,有助于避免在固件更新的过程中发生新版固件误存储的情况发生。因此,在固件更新的过程中,控制目标存储芯片与控制芯片建立连通关系,以使控制芯片可以将目标驱动芯片的新版固件写入目标存储芯片内,以便后续目标驱动芯片可以通过读取该目标存储芯片中的新版固件进行启动或者运行。在一例中,存储芯片可以是Flash芯片,或者任意一种具有实现快速存储、擦除数据的存储芯片,在本发明中不进行限制。
在步骤S202中,根据目标存储芯片中新版固件的存储数据与控制芯片中新版固件的完整数据之间的对比结果,确定新版固件是否成功写入目标存储芯片内。
在本发明实施例中,当目标存储芯片完成新版固件的写入后,控制芯片采用回读的方式,读取目标存储芯片中新版固件的存储数据,并将该存储数据与其内部的新版固件的完整数据进行对比,根据对比结果,确定新版固件是否成功写入目标存储芯片内。由于固件更新的本质,是将驱动芯片的新版固件完全写入至对应的存储芯片中。因此,通过对比结果,可以确定在固件更新的过程中,是否存在更新异常的情况发生。例如:若对比结果为存储数据与完整数据相同,则可以确定新版固件完全写入至目标存储芯片中,新版固件写入成功。若对比结果为存储数据少于完整数据,则可以确定在写入过程中发生更新异常,导致新版固件未完全写入至目标存储芯片中,新版固件写入失败。
在步骤S203中,若新版固件未完全写入目标存储芯片内,则控制目标驱动芯片与目标驱动芯片的历史存储芯片连通。
在本发明实施例中,目标存储芯片和历史存储芯片为两个不同的芯片。无论新版固件是否完全写入目标存储芯片中,均不影响历史存储芯片中历史固件的完整性。其中,历史存储芯片可以理解为是存储目标驱动芯片的历史固件的芯片,历史固件可以理解为是目标驱动芯片在进行固件更新之前所驱动的固件。
根据对比结果,若确定新版固件未完全写入目标存储芯片内,则可以确定固件更新失败,因此,为保证目标驱动芯片的正常运行,则控制目标驱动芯片与目标驱动芯片的历史存储芯片连通,以便目标驱动芯片能够根据历史存储芯片中的历史固件进行启动或者运行,进而有助于避免当固件更新失败后,目标驱动芯片无法正常工作的情况发生,从而有助于降低维护成本。
通过上述实施例,能够在固件更新失败的情况下,目标驱动芯片仍可以采用历史存储芯片中的历史固件进行启动或者运行,进而避免新版固件存储失败影响目标驱动芯片正常工作的情况发生,从而有助于降低维护成本,减少服务器的安全风险。
在一实施例中,在固件更新的过程中,可以通过逻辑控制芯片控制控制芯片与目标存储芯片连通,以及控制目标驱动芯片与目标存储芯片或者历史存储芯片之间的连通。
在另一实施例中,控制目标存储芯片与控制芯片连通时,逻辑控制芯片在接收到控制芯片发送的固件更新指令后,有助于明确待进行固件更新的目标驱动芯片,进而从多个芯片中筛选出适用于存储该目标驱动芯片的新版固件的目标存储芯片,并将该目标存储芯片与控制芯片连通,以便控制芯片能够将新版固件写入至目标存储芯片中。
在一示例中,在多个存储芯片中筛选目标存储芯片时,可以根据存储芯片与驱动芯片之间的连通关系进行筛选。检测多个存储芯片中每一存储芯片与驱动芯片的连通关系,若存储芯片与驱动芯片具有连通关系,则表征该存储芯片中的固件不能更改,若更改则容易影响其对应连通的驱动芯片的正常工作。若存储芯片与驱动芯片不具有连通关系,则表征该存储芯片中的固件可以更改。并且,由于该存储芯片未与驱动芯片连通,因此,更新该存储芯片中的固件时,也不影响驱动芯片的正常工作。故,可以将未与驱动芯片连通的一个存储芯片确定为目标存储芯片,进而有助于避免更新固件误写入的情况发生。并且,由于目标存储芯片未与驱动芯片连通,因此,当更新固件的过程中存在更新异常时,仍可以重新更新固件,不影响目标驱动芯片的正常工作,有助于降低维护成本。
在另一示例中,检测多个存储芯片中每一个存储芯片与驱动芯片的连通关系时,可以根据各存储芯片的身份标识进行检测。在检测的过程中,若当前存储芯片的身份标识为第一标识,则确定可以当前存储芯片存在与其连通的驱动芯片。若当前存储芯片的身份标识为第二标识,则确定当前存储芯片不存在与其对应连通的驱动芯片,当前存储芯片为备用存储芯片。在一例中,存储芯片的身份标识可以存储至存储芯片存储空间中最后指定个数字节中。例如:最后16个字节中。在另一例中,第一标识中可以包括其存储的固件对应的驱动芯片名称,进而通过该第一标识可以明确当前存储芯片对应连通的驱动芯片。例如:第一标识为BIOS Flash,则表征该当前存储芯片存储的固件为BIOS固件,进而可以明确与该当前存储芯片对应连通的驱动芯片为PCH芯片。第二标识是用于标识当前存储芯片为备用存储芯片的标识,因此可以采用“Back Flash”进行代替,进而当检测到该第二标识时,便可以确定当前存储芯片为备用存储芯片,其内部数据可以进行更改。在又一例中,可以通过逻辑控制芯片限制第一标识和第二标识的访问权限,仅允许逻辑控制芯片读取或者更改存储芯片的身份标识,进而通过身份标识筛选目标存储芯片时,有助于限制控制芯片对存储芯片的访问权限,避免身份标识为第一标识的存储芯片中的固件被更改,影响预期连通的驱动芯片的正常工作,进而有助于增强信息安全。
图3是根据一示例性实施例提出的另一种固件更新方法的流程图。如图3所示,固件更新方法包括如下步骤。
在步骤S301中,固件更新的过程中控制目标存储芯片与控制芯片连通。
在步骤S302中,根据目标存储芯片中新版固件的存储数据与控制芯片中新版固件的完整数据之间的对比结果,确定新版固件是否成功写入目标存储芯片内。
在步骤S3031中,若新版固件未完全写入目标存储芯片内,则控制目标驱动芯片与目标驱动芯片的历史存储芯片连通。
在步骤S3032中,若新版固件完全写入目标存储芯片内,则确定固件更新成功,并将目标驱动芯片与目标存储芯片连通,完成固件更新。
在本发明实施例中,若新版固件完全写入目标存储芯片内,则可以确定固件更新成功。因此,可以将目标驱动芯片与目标存储芯片连通,以使目标驱动芯片启动或者运行时,能够通过读取目标存储芯片中的新版固件进行启动或者运行,进而完成固件更新。
通过上述实施例,在更新固件的过程中,是将目标驱动芯片的新版固件写入至目标存储芯片中,历史存储芯片中的历史固件并未更改,进而在线更新的过程中,可以根据固件更新的情况,确定与目标驱动芯片连通的存储芯片,以使无论固件更新是否成功,目标驱动芯片均有完整且可供其正常工作的固件,从而使固件更新的方式更安全更可靠,更有助于降低维护成本,减少返厂拆焊存储固芯片烧录的情况发生,有利于提升用户的使用体验。
在一实施例中,为保证目标驱动芯片的正常工作,则在固件更新的过程中,保持目标驱动芯片与历史存储芯片之间的连通。当固件更新完成后,且确定固件更新成功,则将目标驱动芯片与历史存储芯片之间的连通断开,将目标驱动芯片与目标存储芯片连通,以使目标驱动芯片后续正常工作时,是基于目标存储芯片中的新版固件进行驱动,进而实现固件的在线更新。
在另一实施例中,历史存储芯片的身份标识为第一标识,表征该历史存储芯片是与目标驱动芯片连通的存储芯片,目标存储芯片的身份标识为第二标识,表征该目标存储芯片是备用存储芯片。
为避免目标存储芯片的身份标识与历史存储芯片的身份标识混淆,影响其他驱动芯片更新固件,则在建立目标驱动芯片与目标存储芯片的连通之前,将目标存储芯片的身份标识由第二标识更改为与目标驱动芯片相对应的第一标识,将历史存储芯片的身份标识由与目标驱动芯片相对应的第一标识更改为第二标识,进而后续有其他驱动芯片需要更新固件时,便可以采用身份标识为第二标识的历史存储芯片进行固件更新,从而有助于保证后续其他驱动芯片的固件更新的有序进行。
图4是根据一示例性实施例提出的又一种固件更新方法的流程图。如图4所示,固件更新方法包括如下步骤。
在步骤S401中,固件更新的过程中控制目标存储芯片与控制芯片连通。
在步骤S402中,根据目标存储芯片中新版固件的存储数据与控制芯片中新版固件的完整数据之间的对比结果,确定新版固件是否成功写入目标存储芯片内。
在步骤S4031中,若新版固件未完全写入目标存储芯片内,则控制目标驱动芯片与目标驱动芯片的历史存储芯片连通。
在步骤S4032中,若新版固件完全写入目标存储芯片内,则确定固件更新成功,并将目标驱动芯片与目标存储芯片连通,完成固件更新。
在步骤S404中,向目标驱动芯片发送复位信号。
在本发明实施例中,向目标驱动芯片发送复位(Reset)信号,以使目标驱动芯片能够根据新版固件重新配置,进而后续正常工作时,通过加载的目标存储芯片中的新版固件进行启动或者运行。
通过上述实施例,使固件更新的方式更加安全可靠、更有助于降低维护成本。
在一实施场景中,以控制芯片为BMC、目标驱动芯片为PCH芯片为例,用于更新固件的固件系统的结构示意图可以如图5所示。图5是根据一示例性实施例提出的另一种固件系统的结构示意图。在该固件系统中,包括三颗存储芯片,分别为Flash1、Flash2和Flash3。其中,Flash1的身份标识为与BMC连通的第一标识,在该Flash1中存储有BMC固件。Flash2的身份标识为与PCH连通的第一标识,在该Flash2中存储有BIOS固件。Flash3的身份标识为第二标识,即,该Flash3为备用存储芯片。其中,FPGA为逻辑控制芯片,用于控制存储芯片与BMC和PCH之间的连通。其中,FPGA与BMC、PCH或者存储芯片交互时,是基于SPI协议进行交互。当固件更新完成后,FPGA可以向PCH发送Reset信号,控制PCH重启,加载Flash3中BIOS的新版固件。在一例中,若驱动芯片为BMC,则当固件更新完成后,FPGA可以向BMC发送Reset信号,控制BMC重启,加载Flash3中BMC的新版固件。
在另一实施场景中,基于图5所示的固件系统,以控制芯片为BMC、目标驱动芯片为PCH芯片为例的固件更新过程可以如图6所示。图6是根据一示例性实施例提出的又一种固件更新方法的流程图。
在步骤S601中,BMC向FPGA发送更新BIOS固件的固件更新指令。
在步骤S602中,检测多个存储芯片中每一个存储芯片与驱动芯片的连通关系,将未与驱动芯片连通的一个存储芯片确定为目标存储芯片。
在本发明实施例中,FPGA分别检测Flash1、Flash2和Flash3与驱动芯片之间的连通关系。当检测到Flash1与BMC连通,Flash2与PCH连通,Flash3未与驱动芯片连通时,则将Flash3确定为目标存储芯片。
在步骤S603中,将Flash3与BMC连通。
在本发明实施例中,将Flash3与BMC连通,以便BMC将BIOS的新版固件写入中Flash3中。
在步骤S604中,根据Flash3中新版固件的存储数据与BMC中新版固件的完整数据之间的对比结果,确定新版固件是否成功写入Flash3内。
在步骤S6051中,若新版固件未完全写入Flash3内,则控制PCH与Flash2连通。
在步骤S6052中,若新版固件完全写入Flash3内,则FPGA将Flash3的身份标识修改为与PCH连通的第一标识,将Flash2的身份标识修改为第二标识。
在步骤S606中,FPGA内部断开PCH芯片与Flash2之间的连通,并将PCH与Flash3连通。
在步骤S607中,FPGA向PCH发送Reset信号以复位PCH。
在本发明实施例中,FPGA向PCH发送Reset信号以复位PCH,以使PCH能够重启,加载Flash3中BIOS的新版固件,完成固件更新。
通过上述实施例,能够解决用户更新固件时遇到异常断电或重启,导致BMC和PCH无法启动运行的问题。并且,若更新固件失败,则固件系统也可以自动使用历史固件,以确保BMC和PCH可以启动和正常运行。
基于相同发明构思,本发明还提供一种固件更新装置。
图7是根据一示例性实施例提出的一种固件更新装置的结构框图。如图7所示,固件更新装置包括第一控制单元701、校验单元702和第二控制单元703。
第一控制单元701,用于固件更新的过程中控制目标存储芯片与控制芯片连通,以使控制芯片将目标驱动芯片的新版固件写入目标存储芯片内;
校验单元702,用于根据目标存储芯片中新版固件的存储数据与控制芯片中新版固件的完整数据之间的对比结果,确定新版固件是否成功写入目标存储芯片内;
第二控制单元703,用于若新版固件未完全写入目标存储芯片内,则控制目标驱动芯片与目标驱动芯片的历史存储芯片连通。
在一实施例中,第一控制单元701包括:接收单元,用于接收控制芯片发送的固件更新指令,以确定待进行固件更新的目标驱动芯片。筛选单元,用于从多个存储芯片中筛选出目标存储芯片。连通单元,用于将目标存储芯片与控制芯片连通。
在另一实施例中,筛选单元包括:筛选子单元,用于检测多个存储芯片中每一个存储芯片与驱动芯片的连通关系,将未与驱动芯片连通的一个存储芯片确定为目标存储芯片。
在又一实施例中,筛选子单元包括:检测单元,用于检测每一个存储芯片的身份标识。第一确定单元,用于若当前存储芯片的身份标识为第一标识,则确定当前存储芯片存在与其对应连通的驱动芯片。第二确定单元,用于若当前存储芯片的身份标识为第二标识,则确定当前存储芯片不存在与其对应连通的驱动芯片,当前存储芯片为备用存储芯片。
在又一实施例中,装置还包括:第三控制单元,用于若新版固件完全写入目标存储芯片内,则确定固件更新成功,并将目标驱动芯片与目标存储芯片连通,完成固件更新。
在又一实施例中,第三控制单元包括:控制子单元,用于断开目标驱动芯片与历史存储芯片之间的连通。连通单元,用于将目标存储芯片与驱动芯片连通。
在又一实施例中,装置还包括:发送单元,用于向目标驱动芯片发送复位信号,以控制目标驱动芯片加载目标存储芯片中的新版固件。
上述固件更新装置的具体限定以及有益效果可以参见上文中对于固件更新方法的限定,在此不再赘述。上述各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图8是根据一示例性实施例提出的一种计算机设备的硬件结构示意图。如图8所示,该设备包括一个或多个处理器810以及存储器820,存储器820包括持久内存、易失内存和硬盘,图8中以一个处理器810为例。该设备还可以包括:输入装置830和输出装置840。
处理器810、存储器820、输入装置830和输出装置840可以通过总线或者其他方式连接,图8中以通过总线连接为例。
处理器810可以为中央处理器(Central Processing Unit,CPU)。处理器810还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器820作为一种非暂态计算机可读存储介质,包括持久内存、易失内存和硬盘,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施例中的业务管理方法对应的程序指令/模块。处理器810通过运行存储在存储器820中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述任意一种固件更新方法。
存储器820可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据、需要使用的数据等。此外,存储器820可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器820可选包括相对于处理器810远程设置的存储器,这些远程存储器可以通过网络连接至数据处理装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置830可接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键信号输入。输出装置840可包括显示屏等显示设备。
一个或者多个模块存储在存储器820中,当被一个或者多个处理器810执行时,执行如图1-图6所示的方法。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,具体可参见如图1-图6所示的实施例中的相关描述。
本发明实施例还提供了一种非暂态计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的认证方法。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccess Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (10)
1.一种固件更新方法,其特征在于,所述方法包括:
固件更新的过程中控制目标存储芯片与控制芯片连通,以使所述控制芯片将目标驱动芯片的新版固件写入所述目标存储芯片内;
根据所述目标存储芯片中所述新版固件的存储数据与控制芯片中所述新版固件的完整数据之间的对比结果,确定所述新版固件是否成功写入所述目标存储芯片内;
若所述新版固件未完全写入所述目标存储芯片内,则控制所述目标驱动芯片与所述目标驱动芯片的历史存储芯片连通。
2.根据权利要求1所述的方法,其特征在于,所述固件更新的过程中控制目标存储芯片与控制芯片连通包括:
接收所述控制芯片发送的固件更新指令,以确定待进行固件更新的目标驱动芯片;
从多个存储芯片中筛选出所述目标存储芯片;
将所述目标存储芯片与所述控制芯片连通。
3.根据权利要求2所述的方法,其特征在于,所述从多个存储芯片中筛选出所述目标存储芯片包括:
检测多个存储芯片中每一个存储芯片与驱动芯片的连通关系,将未与驱动芯片连通的一个存储芯片确定为目标存储芯片。
4.根据权利要求3所述的方法,其特征在于,所述检测多个存储芯片中每一个存储芯片与驱动芯片的连通关系包括:
检测每一个存储芯片的身份标识;
若当前存储芯片的身份标识为第一标识,则确定所述当前存储芯片存在与其对应连通的驱动芯片;
若所述当前存储芯片的身份标识为第二标识,则确定所述当前存储芯片不存在与其对应连通的驱动芯片,所述当前存储芯片为备用存储芯片。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述新版固件完全写入所述目标存储芯片内,则确定固件更新成功,并将所述目标驱动芯片与所述目标存储芯片连通,完成固件更新。
6.根据权利要求5所述的方法,其特征在于,所述将所述目标驱动芯片与所述目标存储芯片连通包括:
断开所述目标驱动芯片与所述历史存储芯片之间的连通;
将所述目标存储芯片与所述驱动芯片连通。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
向所述目标驱动芯片发送复位信号,以控制所述目标驱动芯片加载所述目标存储芯片中的所述新版固件。
8.一种固件更新装置,其特征在于,所述装置包括:
第一控制单元,用于固件更新的过程中控制目标存储芯片与控制芯片连通,以使所述控制芯片将目标驱动芯片的新版固件写入所述目标存储芯片内;
校验单元,用于根据所述目标存储芯片中所述新版固件的存储数据与控制芯片中所述新版固件的完整数据之间的对比结果,确定所述新版固件是否成功写入所述目标存储芯片内;
第二控制单元,用于若所述新版固件未完全写入所述目标存储芯片内,则控制所述目标驱动芯片与所述目标驱动芯片的历史存储芯片连通。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-7中任一项所述的固件更新方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的固件更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210224309.3A CN114564225A (zh) | 2022-03-09 | 2022-03-09 | 固件更新方法、固件更新装置、计算机设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210224309.3A CN114564225A (zh) | 2022-03-09 | 2022-03-09 | 固件更新方法、固件更新装置、计算机设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114564225A true CN114564225A (zh) | 2022-05-31 |
Family
ID=81717862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210224309.3A Pending CN114564225A (zh) | 2022-03-09 | 2022-03-09 | 固件更新方法、固件更新装置、计算机设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114564225A (zh) |
-
2022
- 2022-03-09 CN CN202210224309.3A patent/CN114564225A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9367412B2 (en) | Non-disruptive controller replacement in network storage systems | |
TWI633487B (zh) | 自動回復基本輸入輸出系統映像檔的方法及電腦系統 | |
TWI740158B (zh) | 伺服器系統、集中式快閃記憶體模組以及更新快閃韌體映像檔的方法 | |
CN103488498A (zh) | 一种计算机启动方法及计算机 | |
CN108984349B (zh) | 主节点选举方法及装置、介质和计算设备 | |
CN101364193A (zh) | 自动恢复bios的方法以及使用该方法的电脑与系统 | |
RU2602378C9 (ru) | Стойка с множеством модулей управления стойкой и способ обновления встроенного программного обеспечения, используемого для стойки | |
TW202030602A (zh) | 基本輸入/輸出系統的恢復及更新的方法及系統 | |
CN111897697A (zh) | 服务器硬件故障修复方法和装置 | |
US10803001B2 (en) | Electronic device and operating method thereof | |
CN113377702A (zh) | 两节点集群启动的方法及装置、电子设备和存储介质 | |
CN113438111A (zh) | 基于Raft分布式恢复RabbitMQ网络分区的方法及应用 | |
CN111404780B (zh) | 一种远程直接存储器访问网络集群的功能测试方法和装置 | |
CN110968456B (zh) | 分布式存储系统中故障磁盘的处理方法及装置 | |
CN109032673A (zh) | 自动回复基本输入输出系统映像档的方法及计算机系统 | |
CN111385613B (zh) | 一种电视系统修复方法、存储介质及应用服务器 | |
CN114564225A (zh) | 固件更新方法、固件更新装置、计算机设备及介质 | |
JP2006113754A (ja) | ソフトウェア更新装置及び方法 | |
TW201629757A (zh) | 端點伺服器的控制模組及其韌體更新方法 | |
CN115904831A (zh) | 一种服务器固件的启动方法及终端 | |
US9529581B2 (en) | Circuit and method for writing program codes of basic input/output system | |
GB2532076A (en) | Backup method, pre-testing method for environment updating and system thereof | |
CN117891563A (zh) | 虚拟机的控制方法和装置、存储介质及电子装置 | |
CN117714276A (zh) | Redis集群部署方法、装置、存储介质和电子设备 | |
CN116893833A (zh) | 远程升级复杂可编程逻辑器件操作系统、方法及介质 |
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 |