固件升级方法及装置、存储介质及电子设备与流程

文档序号:37464621发布日期:2024-03-28 18:47阅读:10来源:国知局
固件升级方法及装置、存储介质及电子设备与流程

本技术实施例涉及计算机领域,具体而言,涉及一种固件升级方法及装置、存储介质及电子设备。


背景技术:

1、retimer(信号重整器)卡是一种混合信号模拟/数字芯片制作而成的部件,其原理是使用内部的时钟恢复电路,重新定时输入信号以消除时钟偏移和抖动,并校正信号的相位和时间偏差,retimer卡可以用于延长接口的传输距离并提高信号质量,解决在数据高速、远距离传输时,信号时序不齐、损耗大、完整性差等问题。

2、然而,研发制造retimer卡的厂商不止一家,而每家的retimer卡固件升级用到的文件、升级方法以及使用的工具都不一样,从而导致在升级retimer卡固件时需要先手动查询确定其厂商信息,再手动使用对应的升级工具升级相对应的固件文件。由此可见,相关技术中的固件升级方法存在固件升级的效率低的问题。


技术实现思路

1、本技术实施例提供了一种固件升级方法及装置、存储介质及电子设备,以至少解决相关技术中固件升级方法存在固件升级的效率低的问题。

2、根据本技术的一个实施例,提供了一种固件升级方法,包括:基于目标设备的指定信号重整器retimer卡上的指定芯片寄存器的寄存器值,确定第一厂商信息,其中,所述指定芯片寄存器的寄存器值用于标识所述指定retimer卡所属的厂商,所述第一厂商信息所表示的厂商为第一厂商;基于所述指定retimer卡的固件文件,确定第二厂商信息,其中,所述第二厂商信息所表示的厂商为第二厂商;在所述第一厂商和所述第二厂商为同一预设厂商的情况下,通过调用与所述第一厂商对应的目标retimer卡固件升级函数对所述指定retimer卡执行固件升级操作。

3、在一个示例性实施例中,所述基于目标设备的指定信号重整器retimer卡上的指定芯片寄存器的寄存器值,确定第一厂商信息,包括:读取所述指定retimer卡上的输入输出io扩展芯片寄存器的寄存器值;在读取到目标寄存器值、且所述目标寄存器值为一组预设值中的目标值的情况下,将与所述目标值匹配的厂商信息,确定为所述第一厂商信息,其中,所述一组预设值中的每个预设值与一个厂商信息匹配。

4、在一个示例性实施例中,在所述读取所述指定retimer卡上的输入输出io扩展芯片寄存器的寄存器值之后,所述方法还包括:在寄存器值读取失败的情况下,在所述目标设备的基板管理控制器bmc下的指定系统文件中写入指定信息,其中,所述指定系统文件为信号重整器类型文件,所述指定信息用于表示所述目标设备的retimer卡槽位内未插入retimer卡。

5、在一个示例性实施例中,所述基于所述指定retimer卡的固件文件,确定第二厂商信息,包括:以只读方式打开所述指定retimer卡的固件文件,并将读取的所述指定retimer卡的固件文件加载到所述目标设备的基板管理控制器bmc的bmc内存中;读取所述bmc内存中的所述指定retimer卡的固件文件头部开始的连续n个字节,得到初始固件信息,其中,n为大于或者等于1的正整数;对所述初始固件信息进行移位拼接,得到移位拼接后的目标固件信息;在所述目标固件信息为一组预设固件信息中的目标固件信息的情况下,将与所述目标固件信息匹配的厂商信息,确定为所述第二厂商信息,其中,所述一组预设固件信息中的每个预设固件信息与一个厂商信息匹配。

6、在一个示例性实施例中,在所述对所述初始固件信息进行移位拼接,得到移位拼接后的目标固件信息之后,所述方法还包括:在所述目标固件信息不属于所述一组预设固件信息的情况下,打印目标报错信息,其中,所述目标报错信息用于描述所述指定retimer卡的固件升级异常。

7、在一个示例性实施例中,所述方法还包括:判断所述第一厂商信息和所述第二厂商信息是否为相同的厂商信息;在所述第一厂商信息和所述第二厂商信息为相同的厂商信息的情况下,将一组预设厂商信息作为当前厂商信息循环执行以下的匹配操作,其中,所述一组预设厂商信息中的每个厂商信息为一个预设厂商的厂商信息:在所述第一厂商信息和所述第二厂商信息与所述当前厂商信息相同的情况下,确定所述第一厂商和所述第二厂商为同一预设厂商,结束循环;在所述第一厂商信息和所述第二厂商信息与所述当前厂商信息不相同、且所述一组预设厂商信息中存在未执行过所述匹配操作的预设厂商信息的情况下,继续执行下一轮的所述匹配操作;在所述第一厂商信息和所述第二厂商信息与所述当前厂商信息不相同、且所述一组预设厂商信息中不存在未执行过所述匹配操作的预设厂商信息的情况下,结束循环;

8、所述在所述第一厂商和所述第二厂商为同一预设厂商的情况下,通过调用与所述第一厂商对应的目标retimer卡固件升级函数对所述指定retimer卡执行固件升级操作,包括:在所述第一厂商和所述第二厂商为同一预设厂商的情况下,调用所述目标设备的基板管理控制器bmc的bmc内存中,与所述第一厂商对应的所述目标retimer卡固件升级函数,以由所述目标retimer卡固件升级函数从对应的bmc内存位置中读取出固件升级文件,并使用读取的所述固件升级文件执行所述固件升级操作。

9、在一个示例性实施例中,在所述通过调用与所述第一厂商对应的目标retimer卡固件升级函数对所述指定retimer卡执行固件升级操作之后,所述方法还包括:基于所述目标retimer卡固件升级函数的函数返回值,确定所述固件升级操作的升级操作执行结果,并打印执行结果信息,其中,所述执行结果信息用于指示所述升级操作执行结果。

10、根据本技术的另一个实施例,提供了一种固件升级装置,包括:第一确定单元,用于基于目标设备的指定信号重整器retimer卡上的指定芯片寄存器的寄存器值,确定第一厂商信息,其中,所述指定芯片寄存器的寄存器值用于标识所述指定retimer卡所属的厂商,所述第一厂商信息所表示的厂商为第一厂商;第二确定单元,用于基于所述指定retimer卡的固件文件,确定第二厂商信息,其中,所述第二厂商信息所表示的厂商为第二厂商;第一执行单元,用于在所述第一厂商和所述第二厂商为同一预设厂商的情况下,通过调用与所述第一厂商对应的目标retimer卡固件升级函数对所述指定retimer卡执行固件升级操作。

11、在一个示例性实施例中,所述第一确定单元包括:第一读取模块,用于读取所述指定retimer卡上的输入输出io扩展芯片寄存器的寄存器值;第一确定模块,用于在读取到目标寄存器值、且所述目标寄存器值为一组预设值中的目标值的情况下,将与所述目标值匹配的厂商信息,确定为所述第一厂商信息,其中,所述一组预设值中的每个预设值与一个厂商信息匹配。

12、在一个示例性实施例中,所述装置还包括:写入单元,用于在所述读取所述指定retimer卡上的输入输出io扩展芯片寄存器的寄存器值之后,在寄存器值读取失败的情况下,在所述目标设备的基板管理控制器bmc下的指定系统文件中写入指定信息,其中,所述指定系统文件为信号重整器类型文件,所述指定信息用于表示所述目标设备的retimer卡槽位内未插入retimer卡。

13、在一个示例性实施例中,所述第二确定单元包括:第一执行模块,用于以只读方式打开所述指定retimer卡的固件文件,并将读取的所述指定retimer卡的固件文件加载到所述目标设备的基板管理控制器bmc的bmc内存中;第二读取模块,用于读取所述bmc内存中的所述指定retimer卡的固件文件头部开始的连续n个字节,得到初始固件信息,其中,n为大于或者等于1的正整数;第二执行模块,用于对所述初始固件信息进行移位拼接,得到移位拼接后的目标固件信息;第二确定模块,用于在所述目标固件信息为一组预设固件信息中的目标固件信息的情况下,将与所述目标固件信息匹配的厂商信息,确定为所述第二厂商信息,其中,所述一组预设固件信息中的每个预设固件信息与一个厂商信息匹配。

14、在一个示例性实施例中,所述装置还包括:打印单元,用于在所述对所述初始固件信息进行移位拼接,得到移位拼接后的目标固件信息之后,在所述目标固件信息不属于所述一组预设固件信息的情况下,打印目标报错信息,其中,所述目标报错信息用于描述所述指定retimer卡的固件升级异常。

15、在一个示例性实施例中,所述装置还包括:判断单元,用于判断所述第一厂商信息和所述第二厂商信息是否为相同的厂商信息;第二执行单元,用于在所述第一厂商信息和所述第二厂商信息为相同的厂商信息的情况下,将一组预设厂商信息作为当前厂商信息循环执行以下的匹配操作,其中,所述一组预设厂商信息中的每个厂商信息为一个预设厂商的厂商信息:在所述第一厂商信息和所述第二厂商信息与所述当前厂商信息相同的情况下,确定所述第一厂商和所述第二厂商为同一预设厂商,结束循环;在所述第一厂商信息和所述第二厂商信息与所述当前厂商信息不相同、且所述一组预设厂商信息中存在未执行过所述匹配操作的预设厂商信息的情况下,继续执行下一轮的所述匹配操作;在所述第一厂商信息和所述第二厂商信息与所述当前厂商信息不相同、且所述一组预设厂商信息中不存在未执行过所述匹配操作的预设厂商信息的情况下,结束循环;

16、所述第一执行单元包括:第三执行模块,用于在所述第一厂商和所述第二厂商为同一预设厂商的情况下,调用所述目标设备的基板管理控制器bmc的bmc内存中,与所述第一厂商对应的所述目标retimer卡固件升级函数,以由所述目标retimer卡固件升级函数从对应的bmc内存位置中读取出固件升级文件,并使用读取的所述固件升级文件执行所述固件升级操作。

17、在一个示例性实施例中,所述装置还包括:第三执行单元,用于在所述通过调用与所述第一厂商对应的目标retimer卡固件升级函数对所述指定retimer卡执行固件升级操作之后,基于所述目标retimer卡固件升级函数的函数返回值,确定所述固件升级操作的升级操作执行结果,并打印执行结果信息,其中,所述执行结果信息用于指示所述升级操作执行结果。

18、根据本技术的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

19、根据本技术的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

20、通过本技术,采用在确定retimer卡与固件文件属于同一厂商的情况下,调用该厂商对应的retimer卡固件升级函数执行固件升级操作的方式,基于目标设备的指定信号重整器retimer卡上的指定芯片寄存器的寄存器值,确定第一厂商信息,其中,指定芯片寄存器的寄存器值用于标识指定retimer卡所属的厂商,第一厂商信息所表示的厂商为第一厂商;基于指定retimer卡的固件文件,确定第二厂商信息,其中,第二厂商信息所表示的厂商为第二厂商;在第一厂商和第二厂商为同一预设厂商的情况下,通过调用与第一厂商对应的目标retimer卡固件升级函数对指定retimer卡执行固件升级操作,由于先获取当前设备上安装的retimer卡厂商信息以及固件厂商信息,并判断是否匹配再决定进行升级,可以解决retimer卡更新固件效率低下、易出错、易报错的问题,即,解决相关技术中的固件升级方法存在固件升级的效率低的问题。

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