掌桥专利:专业的专利平台
掌桥专利
首页

固件更新方法、装置、电子设备和存储介质

文献发布时间:2023-06-19 13:45:04


固件更新方法、装置、电子设备和存储介质

技术领域

本发明实施例涉及固件更新技术领域,尤其涉及一种固件更新方法、装置、电子设备和存储介质。

背景技术

固件是指固化在硬件中的软件,存储着硬件设备最基本的参数。服务器中包括多种硬件设备,例如:基板管理控制器(Baseboard Manager Controller,BMC)芯片、与BMC芯片连接的网络芯片和其他芯片。随着网络技术的发展,需要不定时的对芯片的固件进行更新升级,以修复芯片的软、硬件异常,进而保证服务器的稳定性和可靠性。

现有技术中,更新芯片需要依赖操作系统(Operation System,OS),具体实施时,需要在OS内运行对芯片进行更新。

然而,上述方案中,当OS死机或者基本输入输出系统(Basic Input OutputSystem,BIOS)无法启动时,则无法对芯片进行更新,导致芯片更新具有较大的局限性。

发明内容

本公开提供了一种固件更新方法、装置、电子设备和存储介质,能够打破芯片固件更新的局限性,提升芯片固件更新的便利性。

第一方面,本公开提供了一种固件更新方法,应用于基板管理控制器BMC芯片中,所述BMC芯片通过四个通用输入输出GPIO接口与目标芯片电连接;

所述方法,包括:

获取所述目标芯片的目标固件;

根据第一GPIO接口输出的第一电平信号,导通所述BMC芯片与所述目标芯片的传输路径;

根据第二GPIO接口输出的第二电平信号、第三GPIO接口输出的第三电平信号和第四GPIO接口输出的第四电平信号,擦除所述目标芯片的存储器中存储的固件;

根据所述第二电平信号、所述第三电平信号和所述第四电平信号,在所述存储器中写入所述目标固件。

可选的,所述擦除所述目标芯片的存储器中存储的固件之前,还包括:

根据所述目标固件的所有内容,确定所述目标固件中所有内容的数据量;

根据所述目标固件中所有内容的数据量,确定所述存储器中需要擦除的块的目标数量,所述目标数量为正整数,且所述目标数量的块的容量大于等于所述目标固件中所有内容的数据量;

所述擦除所述目标芯片的存储器中存储的固件,包括:

根据所述目标数量,擦除所述存储器中的相应的目标数量的块。

可选的,所述在所述存储器中写入所述目标固件之前,还包括:

读取所述存储器的写入保护状态;

若所述写入保护状态为启用状态,控制关闭所述存储器的写入保护,以使所述写入保护状态从所述启用状态切换至关闭状态;

所述方法,还包括:

在所述存储器中写入所述目标固件完成后,控制开启所述存储器的写入保护,以使所述写入保护状态从所述关闭状态切换至所述启用状态。

可选的,所述在所述存储器中写入所述目标固件之前,还包括:

获取所述存储器的状态信息,所述状态信息包括工作状态和空闲状态;

若所述存储器处于所述工作状态,控制所述目标固件处于待写入状态,直至所述存储器处于所述空闲状态。

可选的,所述获取所述存储器的状态信息之前,还包括:

读取所述目标芯片的存储器中状态寄存器的数值;

根据所述状态寄存器的数值,获取所述目标芯片的存储器的状态信息。

可选的,所述获取所述目标芯片的目标固件,包括:

通过简单文件传输协议TFTP与外部设备的建立通信连接;

通过所述TFTP接收所述外部设备发送的所述目标固件。

可选的,所述目标芯片包括网络芯片;

所述方法,还包括:

读取并存储所述网络芯片的媒体访问控制MAC地址;

修改存储的所述MAC地址中对应的数据;

擦除所述网络芯片的存储器中存储的MAC地址,并将修改后的MAC地址写入所述网络芯片的存储器中。

第二方面,本公开提供了一种固件更新装置,应用于基板管理控制器BMC芯片中,所述BMC芯片通过四个通用输入输出GPIO接口与目标芯片电连接;

所述固件更新装置,包括:

获取模块,用于获取所述目标芯片的目标固件;

执行模块,用于根据第一GPIO接口输出的第一电平信号,导通所述BMC芯片与所述目标芯片的传输路径;根据第二GPIO接口输出的第二电平信号、第三GPIO接口输出的第三电平信号和第四GPIO接口输出的第四电平信号,擦除所述目标芯片的存储器中存储的固件;根据所述第二电平信号、所述第三电平信号和所述第四电平信号,在所述存储器中写入所述目标固件。

第三方面,本公开提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现第一方面提供的任一种方法的步骤。

第四方面,本公开提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的任一种方法的步骤。

本公开提供的技术方案中,通过获取目标芯片的目标固件;根据第一GPIO接口输出的第一电平信号,导通BMC芯片与目标芯片的传输路径;根据第二GPIO接口输出的第二电平信号、第三GPIO接口输出的第三电平信号和第四GPIO接口输出的第四电平信号,擦除目标芯片的存储器中存储的固件;根据第二电平信号、第三电平信号和第四电平信号,在存储器中写入目标固件,如此,基于四个通用输入输出(General Purpose Input Output,GPIO)接口输出的电平信号能够模拟SPI的使能信号、串行数据输入信号、串行数据输出信号和移位时钟信号,BMC芯片能够通过GPIO输出的信号来更新芯片固件,打破了芯片固件升级对操作系统和控制信号的局限性,从而能够提升固件升级的便利性。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

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

图1为本公开提供的一种服务器架构的结构示意图;

图2为本公开提供的一种固件更新方法的流程示意图;

图3为本公开提供的另一种固件更新方法的流程示意图

图4为本公开提供的又一种固件更新方法的流程示意图;

图5为本公开提供的又一种固件更新方法的流程示意图;

图6为本公开提供的又一种固件更新方法的流程示意图;

图7为本公开提供的又一种固件更新方法的流程示意图;

图8为本公开提供的又一种固件更新方法的流程示意图;

图9为本公开提供的一种固件更新装置的结构示意图;

图10为本公开提供的一种计算机设备的内部结构示意图。

具体实施方式

为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。

本公开应用于BMC芯片中,BMC芯片设置于服务器的主板上,图1为本公开提供的一种服务器架构的结构示意图,如图1所示,服务器架构100包括服务器110和外部设备120,服务器110包括BMC芯片111、其他芯片112和参数检测设备113。

BMC芯片111通过GPIO接口与其他芯片112电连接,其他芯片112可以是网络芯片、驱动芯片等。BMC芯片111通过I2C总线与参数检测设备113电连接,参数检测设备113可以是温度传感器、湿度传感器等。BMC芯片111还能够通过局域网(Local Area Network,LAN)与外部设备120通信连接,外部设备可以是电脑、笔记本电脑、平板等。BMC芯片111通过相应的通信协议可以与其他芯片112、参数检测设备113和外部设备120进行数据交换,外部设备120能够向BMC芯片110传输目标固件。

本公开中的目标芯片可以为上述服务器中的其他芯片中的一个,BMC芯片可以通过四个GPIO接口与目标芯片电连接,目标芯片的接口通常通过SPI协议与其他设备进行通信,目标芯片中包括存储器,存储器中存储固件。本公开中的目标固件为目标芯片对应的待更新的固件,即需要写入目标芯片的固件。

本公开中,通过四个GPIO接口中的一个GPIO接口输出的电平信号模拟SPI的使能信号,导通BMC芯片与目标芯片之间的传输路径,以使BMC芯片与目标芯片之间可以进行数据传输。通过四个GPIO接口中的另外三个输出的电平信号分别模拟SPI的串行数据输入信号、串行数据输出信号和移位时钟信号,使得能够将目标芯片的存储器中存储的固件擦除,并将获取到的目标芯片的目标固件写入存储器中,从而完成目标芯片的固件更新。显然,本公开中基于通用输入输出(General Purpose Input Output,GPIO)接口输出的电平信号能够模拟SPI的使能信号、串行数据输入信号、串行数据输出信号和移位时钟信号,BMC芯片能够通过GPIO输出的信号来更新芯片固件,打破了芯片固件升级对操作系统和控制信号的局限性,从而能够提升固件升级的便利性。

下面以几个具体实施例来描述本公开的技术方案:

图2为本公开提供的一种固件更新方法的流程示意图,如图2所示的方法实施例应用BMC芯片中,BMC芯片通过四个通用输入输出GPIO接口与目标芯片电连接,具体步骤包括:

S101,获取所述目标芯片的目标固件。

接收外部设备发送的目标芯片的目标固件,并将目标固件存储于BMC芯片内的存储器中,这里的存储器可以是Flash存储器、可擦除可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)等。

S103,根据第一GPIO接口输出的第一电平信号,导通所述BMC芯片与所述目标芯片的传输路径。

第一GPIO接口输出的第一电平信号可以模拟SPI中的使能信号,第一电平信号可以是低电平信号也可以是高电平信号,主要取决于目标芯片,例如,若目标芯片在SPI协议下低电平信号有效,则第一电平信号为低电平信号,若目标芯片在SPI协议下高电平信号有效,则第一电平信号为高电平信号。根据第一电平信号,选中目标芯片,即导通BMC芯片与目标芯片的传输路径,使得BMC芯片与目标芯片之间可以进行数据传输。

S105,根据第二GPIO接口输出的第二电平信号、第三GPIO接口输出的第三电平信号和第四GPIO接口输出的第四电平信号,擦除所述目标芯片的存储器中存储的固件。

第二GPIO接口输出的第二电平信号、第三GPIO接口输出的第三电平信号和第四GPIO接口输出的第四电平信号,可以分别模拟SPI中的串行数据输入信号、串行数据输出信号和移位时钟信号。则通过第二电平信号、第三电平信号和第四电平信号的高、低电平信号控制,可以控制擦除目标芯片的存储器中原来存储的固件,为写入目标固件做准备。需要说明的是,目标芯片的存储器可以是Flash存储器、EEPROM等。

S107,根据所述第二电平信号、所述第三电平信号和所述第四电平信号,在所述存储器中写入所述目标固件。

基于上述实施例,根据第二电平信号、第三电平信号和第四电平信号的高、低电平的控制,还可以控制向目标芯片的存储器中写入目标固件,写入完成后实现芯片固件的更新。

本实施例中,通过获取目标芯片的目标固件;根据第一GPIO接口输出的第一电平信号,导通BMC芯片与目标芯片的传输路径;根据第二GPIO接口输出的第二电平信号、第三GPIO接口输出的第三电平信号和第四GPIO接口输出的第四电平信号,擦除目标芯片的存储器中存储的固件;根据第二电平信号、第三电平信号和第四电平信号,在存储器中写入目标固件,如此,基于四个GPIO接口输出的电平信号来模拟SPI的四个信号,使能信号、串行数据输入信号、串行数据输出信号和移位时钟信号,BMC芯片能够通过GPIO输出的信号来更新芯片固件,打破了芯片固件升级对操作系统和控制信号的局限性,从而能够提升固件升级的便利性。

图3为本公开提供的另一种固件更新方法的流程示意图,图3为图2所示实施例的基础上,执行S105之前,还包括:

S1041,根据所述目标固件的所有内容,确定所述目标固件中所有内容的数据量。

获取到目标固件后,可以读取目标固件的所有内容,基于读取到的所有内容确定出这些内容所占的空间,即所有内容的数据量。还可以根据目标固件在BMC的存储器中所占的存储空间的大小,确定目标固件的所有内容的数据量。

S1042,根据所述目标固件中所有内容的数据量,确定所述存储器中需要擦除的块的目标数量。

目标数量为正整数,且目标数量的块的容量大于等于目标固件中所有内容的数据量。

擦除目标芯片的存储器中的数据时以块为单位,存储器中擦除一定数量的块中的数据后,在擦除区域需要存储目标固件,如此,擦除的区域的容量需要大于等于目标固件中所有内容的数据量,以确保目标固件的所有内容均可以写入存储器中,据此,可以根据目标固件中所有内容的数据量确定擦除的块的数量。

若目标固件中所有内容的数据量不为整数块的容量时,示例性的,目标固件中所有内容的数据量为M,一个块的容量为M’,且N*M’

基于上述实施例,执行S105时的一种可能的实现方式的具体描述如图3所示:

S105’,根据所述目标数量,擦除所述存储器中的相应的目标数量的块。

在目标芯片的存储器中擦除目标数量的块,以使目标芯片的存储器中留有足够的空间来存储目标固件的所有内容。

本实施例中,通过根据目标固件的所有内容,确定目标固件中所有内容的数据量;根据目标固件中所有内容的数据量,确定存储器中需要擦除的块的目标数量,目标数量为正整数,且目标数量的块的容量大于等于目标固件中所有内容的数据量;根据目标数量,擦除存储器中的相应的目标数量的块,使得存储器中擦除的块对应的容量大于等于存储目标固件所需的空间,确保写入的目标固件的完整性,从而能够确保目标芯片中的目标固件能够正常工作。

图4为本公开提供的又一种固件更新方法的流程示意图,图4为图2所示实施例的基础上,执行S107之前,还包括:

S1061,读取所述存储器的写入保护状态。

读取目标芯片的存储器当前的写入保护的状态,写入保护的状态包括启用状态和关闭状态,若目标芯片的存储器当前处于写入保护启动状态,则无法对目标芯片的存储器进行写入操作,若目标芯片的存储器当前处于写入保护关闭状态,则可以对目标芯片的存储器进行写入操作。

S1062,若所述写入保护状态为启用状态,控制关闭所述存储器的写入保护,以使所述写入保护状态从所述启用状态切换至关闭状态。

若目标芯片的存储器当前处于写入保护启动状态,则控制改变写入保护状态,使得目标芯片的存储器的写入保护状态从启用状态切换至关闭状态,确保后续能够将目标固件写入目标芯片的存储器中。

基于上述实施例,执行S107之后,如图4所示,还包括:

S108,在所述存储器中写入所述目标固件完成后,控制开启所述存储器的写入保护,以使所述写入保护状态从所述关闭状态切换至所述启用状态。

将目标固件全部写入目标芯片的存储器后,此时,目标芯片的存储器的写入保护仍为关闭状态,需要控制切换目标芯片的存储器当前写入保护的状态,使得目标芯片的存储器的写入保护从关闭状态切换至启用状态,防止对目标芯片的存储器误写入。

本实施例中,通过读取存储器的写入保护状态;若写入保护状态为启用状态,控制关闭存储器的写入保护,以使写入保护状态从启用状态切换至关闭状态;在存储器中写入目标固件完成后,控制开启存储器的写入保护,以使写入保护状态从关闭状态切换至启用状态,能够对目标芯片的存储器的写入进行保护,避免误写入对目标固件的运行造成影响。

图5为本公开提供的又一种固件更新方法的流程示意图,图5为图2所示实施例的基础上,执行S107之前,还包括:

S201,获取所述存储器的状态信息。

状态信息包括工作状态和空闲状态。

获取目标芯片的存储器当前的状态信息,若目标芯片的存储器当前有数据的传输,则说明目标芯片的存储器当前处于工作状态,若目标芯片的存储器当前没有数据的传输,则说明目标芯片的存储器当前处于空闲状态。

S202,若所述存储器处于所述工作状态,控制所述目标固件处于待写入状态,直至所述存储器处于所述空闲状态。

当目标芯片的存储器处于空闲状态时,将目标固件写入目标芯片的存储器中。当目标芯片的存储器处于工作状态时,目标固件不会传输至目标芯片的存储器中,此时,目标固件处于等待写入的状态,直至目标芯片的存储器处于空闲状态,再将目标固件写入目标芯片的存储器中。

本实施例中,通过获取存储器的状态信息,状态信息包括工作状态和空闲状态;若存储器处于所述工作状态,控制目标固件处于待写入状态,直至存储器处于空闲状态,使得目标固件在目标芯片的存储器处于空闲状态时才会写入,防止固件更新对目标芯片的正常工作造成影响,维持目标芯片正常工作。

图6为本公开提供的又一种固件更新方法的流程示意图,图6为图5所示实施例的基础上,执行S201时一种可能的实现方式的具体描述,如下:

S2011,读取所述目标芯片的存储器中状态寄存器的数值。

目标芯片的存储器中包括状态寄存器,状态寄存器当前的数值反映了目标芯片的存储器的状态信息。通过读取目标芯片的存储器中状态寄存器的数值,可以获取到目标芯片的存储器当前的状态信息。

S2012,根据所述状态寄存器的数值,获取所述目标芯片的存储器的状态信息。

状态寄存器中的不同数值对应不同的状态信息,例如,若状态寄存器的数值为0,则表示目标芯片的存储器当前处于空闲状态,若状态寄存器的数值为1,则表示目标芯片的存储器当前处于工作状态。

图7为本公开提供的又一种固件更新方法的流程示意图,图7为图2所示实施例的基础上,执行S101之前,还包括:

S301,通过简单文件传输协议TFTP与外部设备建立通信连接。

BMC芯片中包括简单文件传输协议(Trivial File Transfer Protocol,TFTP)客户端程序,外部设备支持TFTP,外部设备通过TFTP与BMC芯片配对后,建立BMC芯片与外部设备的通信连接,外部设备可以为电脑、平板、笔记本电脑等。

S302,通过所述TFTP接收所述外部设备发送的所述目标固件。

外部设备中准备好目标固件,通过TFTP向BMC芯片发送目标固件,由此BMC芯片可以接收到目标固件,故无需打开OS即可以获取到目标固件。

本实施例中,通过简单文件传输协议TFTP与外部设备建立通信连接,通过TFTP接收外部设备发送的目标固件,在不开启OS时能够获取到目标固件,提升了目标固件获取渠道的多样性。

图8为本公开提供的又一种固件更新方法的流程示意图,图8为图2所示实施例的基础上,还包括:

S401,读取并存储所述网络芯片的媒体访问控制MAC地址。

可选的,目标芯片包括网络芯片,每个网络芯片对应有一个媒体访问控制(MediaAccess Control,MAC)地址,网络芯片的存储器中存储有各自的MAC地址。BMC芯片读取网络芯片的MAC地址,并存储该MAC地址。

S402,修改存储的所述MAC地址中对应的数据。

BMC芯片内存储的MAC地址是可修改的,对于需要修改的MAC地址,在BMC芯片内进行相应数据的修改,形成新的MAC地址。

S403,擦除所述网络芯片的存储器中存储的MAC地址,并将修改后的MAC地址写入所述网络芯片的存储器中。

擦除网络芯片的存储器中存储的MAC地址,并将BMC芯片内存储的新的MAC地址写入网络芯片的存储器中,从而更新网络芯片的MAC地址。

本实施例中,通过读取并存储网络芯片的媒体访问控制MAC地址;修改存储的MAC地址中对应的数据;擦除网络芯片的存储器中存储的MAC地址,并将修改后的MAC地址写入网络芯片的存储器中,如此,BMC芯片能够对网络芯片的MAC地址进行更新,打破了网络芯片MAC地址对操作系统的局限性,从而能够比较便利地修改网络芯片的MAC地址。

本公开还提供了一种固件更新装置,图9为本公开提供的一种固件更新装置的结构示意图,图9所示的实施例应用于BMC芯片中,BMC芯片通过四个通用输入输出GPIO接口与目标芯片电连接。固件更新装置200,如图9所示,包括:

获取模块210,用于获取所述目标芯片的目标固件。

执行模块220,用于根据第一GPIO接口输出的第一电平信号,导通所述BMC芯片与所述目标芯片的传输路径;根据第二GPIO接口输出的第二电平信号、第三GPIO接口输出的第三电平信号和第四GPIO接口输出的第四电平信号,擦除所述目标芯片的存储器中存储的固件;根据所述第二电平信号、所述第三电平信号和所述第四电平信号,在所述存储器中写入所述目标固件。

可选的,执行模块220,还用于根据所述目标固件的所有内容,确定所述目标固件中所有内容的数据量;根据所述目标固件中所有内容的数据量,确定所述存储器中需要擦除的块的目标数量,所述目标数量为正整数,且所述目标数量的块的容量大于等于所述目标固件中所有内容的数据量;根据所述目标数量,擦除所述存储器中的相应的目标数量的块。

可选的,获取模块210,还用于读取所述存储器的写入保护状态。

执行模块220,还用于若所述写入保护状态为启用状态,控制关闭所述存储器的写入保护,以使所述写入保护状态从所述启用状态切换至关闭状态;在所述存储器中写入所述目标固件完成后,控制开启所述存储器的写入保护,以使所述写入保护状态从所述关闭状态切换至所述启用状态。

可选的,执行模块220,还用于获取所述存储器的状态信息,所述状态信息包括工作状态和空闲状态;若所述存储器处于所述工作状态,控制所述目标固件处于待写入状态,直至所述存储器处于所述空闲状态。

可选的,获取模块210,进一步用于读取所述目标芯片的存储器中状态寄存器的数值;根据所述状态寄存器的数值,获取所述目标芯片的存储器的状态信息。

可选的,执行模块220,还用于通过简单文件传输协议TFTP与外部设备建立通信连接;通过所述TFTP接收所述外部设备发送的所述目标固件。

可选的,获取模块210,还用于读取并存储所述网络芯片的媒体访问控制MAC地址。

执行模块220,还用于修改存储的所述MAC地址中对应的数据;擦除所述网络芯片的存储器中存储的MAC地址,并将修改后的MAC地址写入所述网络芯片的存储器中。

本实施例提供的固件更新装置,用于执行上述任一方法实施例的步骤,具备方法实施例具有的技术方案和技术效果,这里不再赘述。

本发明实施例还提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、近场通信(NFC)或其他技术实现。该计算机程序被处理器执行时以实现一种定制应用的切换方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的固件更新装置可以实现为一种计算机程序的形式,计算机程序可在如图10所示的计算机设备上运行。计算机设备的存储器中可存储组成该切换装置的各个程序模块,比如,图9所示的获取模块110和执行模块120。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的固件更新方法中的步骤。

例如,图10所示的计算机设备可以通过如图9所示的固件更新装置中的获取模块110执行步骤S101。计算机设备可通过执行模块120执行步骤S103、S105和S107。

本发明实施例还提供了一种电子设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

S101,获取所述目标芯片的目标固件。

S103,根据第一GPIO接口输出的第一电平信号,导通所述BMC芯片与所述目标芯片的传输路径。

S105,根据第二GPIO接口输出的第二电平信号、第三GPIO接口输出的第三电平信号和第四GPIO接口输出的第四电平信号,擦除所述目标芯片的存储器中存储的固件。

S107,根据所述第二电平信号、所述第三电平信号和所述第四电平信号,在所述存储器中写入所述目标固件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

S1041,根据所述目标固件的所有内容,确定所述目标固件中所有内容的数据量。

S1042,根据所述目标固件中所有内容的数据量,确定所述存储器中需要擦除的块的目标数量,所述目标数量为正整数,且所述目标数量的块的容量大于等于所述目标固件中所有内容的数据量。

S105’,根据所述目标数量,擦除所述存储器中的相应的目标数量的块。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

S1061,读取所述存储器的写入保护状态。

S1062,若所述写入保护状态为启用状态,控制关闭所述存储器的写入保护,以使所述写入保护状态从所述启用状态切换至关闭状态。

S108,在所述存储器中写入所述目标固件完成后,控制开启所述存储器的写入保护,以使所述写入保护状态从所述关闭状态切换至所述启用状态。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

S201,获取所述存储器的状态信息。

S202,若所述存储器处于所述工作状态,控制所述目标固件处于待写入状态,直至所述存储器处于所述空闲状态。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

S2011,读取所述目标芯片的存储器中状态寄存器的数值。

S2012,根据所述状态寄存器的数值,获取所述目标芯片的存储器的状态信息。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

S301,通过简单文件传输协议TFTP与外部设备建立通信连接。

S302,通过所述TFTP接收所述外部设备发送的所述目标固件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

S401,读取并存储所述网络芯片的媒体访问控制MAC地址。

S402,修改存储的所述MAC地址中对应的数据。

S403,擦除所述网络芯片的存储器中存储的MAC地址,并将修改后的MAC地址写入所述网络芯片的存储器中。

本实施例提供的技术方案中,通过获取目标芯片的目标固件;根据第一GPIO接口输出的第一电平信号,导通BMC芯片与目标芯片的传输路径;根据第二GPIO接口输出的第二电平信号、第三GPIO接口输出的第三电平信号和第四GPIO接口输出的第四电平信号,擦除目标芯片的存储器中存储的固件;根据第二电平信号、第三电平信号和第四电平信号,在存储器中写入目标固件,如此,基于四个通用输入输出(General Purpose Input Output,GPIO)接口输出的电平信号能够模拟SPI的使能信号、串行数据输入信号、串行数据输出信号和移位时钟信号,BMC芯片能够通过GPIO输出的信号来更新芯片固件,打破了芯片固件升级对操作系统和控制信号的局限性,从而能够提升固件升级的便利性。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

S101,获取所述目标芯片的目标固件。

S103,根据第一GPIO接口输出的第一电平信号,导通所述BMC芯片与所述目标芯片的传输路径。

S105,根据第二GPIO接口输出的第二电平信号、第三GPIO接口输出的第三电平信号和第四GPIO接口输出的第四电平信号,擦除所述目标芯片的存储器中存储的固件。

S107,根据所述第二电平信号、所述第三电平信号和所述第四电平信号,在所述存储器中写入所述目标固件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

S1041,根据所述目标固件的所有内容,确定所述目标固件中所有内容的数据量。

S1042,根据所述目标固件中所有内容的数据量,确定所述存储器中需要擦除的块的目标数量,所述目标数量为正整数,且所述目标数量的块的容量大于等于所述目标固件中所有内容的数据量。

S105’,根据所述目标数量,擦除所述存储器中的相应的目标数量的块。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

S1061,读取所述存储器的写入保护状态。

S1062,若所述写入保护状态为启用状态,控制关闭所述存储器的写入保护,以使所述写入保护状态从所述启用状态切换至关闭状态。

S108,在所述存储器中写入所述目标固件完成后,控制开启所述存储器的写入保护,以使所述写入保护状态从所述关闭状态切换至所述启用状态。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

S201,获取所述存储器的状态信息。

S202,若所述存储器处于所述工作状态,控制所述目标固件处于待写入状态,直至所述存储器处于所述空闲状态。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

S2011,读取所述目标芯片的存储器中状态寄存器的数值。

S2012,根据所述状态寄存器的数值,获取所述目标芯片的存储器的状态信息。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

S301,通过简单文件传输协议TFTP与外部设备建立通信连接。

S302,通过所述TFTP接收所述外部设备发送的所述目标固件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

S401,读取并存储所述网络芯片的媒体访问控制MAC地址。

S402,修改存储的所述MAC地址中对应的数据。

S403,擦除所述网络芯片的存储器中存储的MAC地址,并将修改后的MAC地址写入所述网络芯片的存储器中。

本发明实施例提供的技术方案中,通过获取目标芯片的目标固件;根据第一GPIO接口输出的第一电平信号,导通BMC芯片与目标芯片的传输路径;根据第二GPIO接口输出的第二电平信号、第三GPIO接口输出的第三电平信号和第四GPIO接口输出的第四电平信号,擦除目标芯片的存储器中存储的固件;根据第二电平信号、第三电平信号和第四电平信号,在存储器中写入目标固件,如此,基于四个通用输入输出(General Purpose InputOutput,GPIO)接口输出的电平信号能够模拟SPI的使能信号、串行数据输入信号、串行数据输出信号和移位时钟信号,BMC芯片能够通过GPIO输出的信号来更新芯片固件,打破了芯片固件升级对操作系统和控制信号的局限性,从而能够提升固件升级的便利性。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,比如静态随机存取存储器(Static Random Access Memory,SRAM)和动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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

以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 电子设备的固件更新方法、芯片、电子设备及存储介质
  • 固件更新方法、装置、电子设备及存储介质
技术分类

06120113793238