一种BIOS升级方法及相关装置与流程

文档序号:26228524发布日期:2021-08-10 16:28阅读:100来源:国知局
一种BIOS升级方法及相关装置与流程

本申请涉及计算机技术领域,特别涉及一种bios升级方法、bios升级装置、服务器以及计算机可读存储介质。



背景技术:

在服务器中,为了提高bios(basicinputoutputsystem,基本输入输出系统)升级的安全性,通常在升级过程和升级电路中加入安全模块,以便通过安全模块对bios实现更加安全的升级操作。

相关技术中,为了兼容安全模块,在bios的qspi(quardserialperipheralinterface,四通道串行外设接口)路径上放置两级数据选择器(multiplexer,数据选择器)。当存在安全模块的情况下,bios的安全策略由安全模块执行,正常的安全启动/校验路径为安全模块到第一数据选择器到第二数据选择器最后到flash,bios的带外升级路径与校验路径相同,从安全模块到第一数据选择器到第二数据选择器最后到flash。当不存在安全模块时,bios的带外升级路径为bmc(baseboardmanagementcontroller,基板管理控制器)到第二数据选择器再到flash。当正常工作状态时,flash的访问路径pch(主板控制器)到第一数据选择器到第二数据选择器最后到flash。可见,在安全升级/校验模式下,安全模块需要经过两级数据选择器才能访问到flash;正常应用情况时,pch需要经过两级数据选择器才能访问到flash,整个qspi路径时延相对较长,不利于qspi总线的信号完整性及时序控制。

因此,如何降低整个过程的时延是本领域技术人员关注的重点问题。



技术实现要素:

本申请的目的是提供一种bios升级方法、bios升级装置、服务器以及计算机可读存储介质,通过并联设置的第一数据选择器与第二数据选择器,使得当存在安全模块时,bmc或安全模块均通过一级数据选择器即可访问flash,并进行bios升级;当不存在安全模块时,也只用通过一级数据选择器即可访问flash,减少路径中的数据选择器,降低整个过程的时延。

为解决上述技术问题,本申请提供一种bios升级方法,包括:

判断安全模块是否存在;

若是,则控制bmc通过第二数据选择器将待升级文件存入flash中;当所述待升级文件存入所述flash时,控制所述安全模块通过第一数据选择器根据所述待升级文件进行bios升级;

若否,则控制所述bmc通过所述第二数据选择器对bios进行带外升级;其中,所述第一数据选择器与所述第二数据选择器并联设置在电路中。

可选的,控制bmc通过第二数据选择器将待升级文件存入flash中,包括:

控制所述安全模块关闭所述第一数据选择器的输出使能,并打开所述第二数据选择器的输出使能;

控制所述bmc通过所述第二数据选择器将所述待升级文件存入所述flash中。

可选的,当所述待升级文件存入所述flash时,控制所述安全模块通过第一数据选择器根据所述待升级文件进行bios升级,包括:

当所述待升级文件存入所述flash时,控制所述安全模块打开所述第一数据选择器的输出使能,并关闭所述第二数据选择器的输出使能;

控制所述安全模块通过第一数据选择器根据所述待升级文件进行bios升级。

可选的,当所述bios升级完成时,还包括:

当所述安全模块存在时,将所述第一数据选择器的使能设置为打开状态,将所述第二数据选择器的使能设置为关闭状态;

控制所述安全模块将所述第一数据选择器的输出选择设置为pch对应的qspi总线,以便所述pch通过所述第一数据选择器访问所述flash。

可选的,控制所述bmc通过所述第二数据选择器对bios进行带外升级,包括:

将所述第一数据选择器的使能设置为关闭状态;

将所述第二数据选择器的使能设置为打开状态;

控制所述bmc通过所述第二数据选择器对所述bios进行带外升级。

可选的,当所述带外升级完成时,还包括:

当所述安全模块不存在时,将所述第一数据选择器的使能设置为关闭状态,将所述第二数据选择器的使能设置为打开状态;

控制所述bmc将所述第二数据选择器的输出选择设置为pch对应的qspi总线,以便所述pch通过所述第二数据选择器访问所述flash。

可选的,所述第一数据选择器和所述第二数据选择器分别设置在pcb板中同一位置的top层和bottom层。

本申请还提供一种bios升级装置,包括:

安全模块判断单元,用于判断安全模块是否存在;

带内升级单元,用于当所述安全模块存在时,控制bmc通过第二数据选择器将待升级文件存入flash中;当所述待升级文件存入所述flash时,控制所述安全模块通过第一数据选择器根据所述待升级文件进行bios升级;

带外升级单元,用于当所述安全模块不存在时,控制所述bmc通过所述第二数据选择器对bios进行带外升级。

本申请还提供一种服务器,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上所述的bios升级方法的步骤。

本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的bios升级方法的步骤。

本申请所提供的一种bios升级方法,包括:判断安全模块是否存在;若是,则控制bmc通过第二数据选择器将待升级文件存入flash中;当所述待升级文件存入所述flash时,控制所述安全模块通过第一数据选择器根据所述待升级文件进行bios升级;若否,则控制所述bmc通过所述第二数据选择器对bios进行带外升级;其中,所述第一数据选择器与所述第二数据选择器并联设置在电路中。

通过并联设置的第一数据选择器与第二数据选择器,使得当存在安全模块时,bmc或安全模块均通过一级数据选择器即可访问flash,并进行bios升级;当不存在安全模块时,也只用通过一级数据选择器即可访问flash,减少路径中的数据选择器,降低整个过程的时延。

本申请还提供一种bios升级装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不做赘述。

附图说明

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

图1为本申请实施例所提供的一种bios升级方法的流程图;

图2为本申请实施例所提供的一种bios升级电路的示意图;

图3为本申请实施例所提供的一种bios升级装置的结构示意图。

具体实施方式

本申请的核心是提供一种bios升级方法、bios升级装置、服务器以及计算机可读存储介质,通过并联设置的第一数据选择器与第二数据选择器,使得当存在安全模块时,bmc或安全模块均通过一级数据选择器即可访问flash,并进行bios升级;当不存在安全模块时,也只用通过一级数据选择器即可访问flash,减少路径中的数据选择器,降低整个过程的时延。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

相关技术中,为了兼容安全模块,在bios的qspi路径上放置两级数据选择器。当存在安全模块的情况下,bios的安全策略由安全模块执行,正常的安全启动/校验路径为安全模块到第一数据选择器到第二数据选择器最后到flash,bios的带外升级路径与校验路径相同,从安全模块到第一数据选择器到第二数据选择器最后到flash。当不存在安全模块时,bios的带外升级路径为bmc到第二数据选择器再到flash。当正常工作状态时,flash的访问路径pch到第一数据选择器到第二数据选择器最后到flash。可见,在安全升级/校验模式下,安全模块需要经过两级数据选择器才能访问到flash;正常应用情况时,pch需要经过两级数据选择器才能访问到flash,整个qspi路径时延相对较长,不利于qspi总线的信号完整性及时序控制。

因此,本申请提供一种bios升级方法,通过并联设置的第一数据选择器与第二数据选择器,使得当存在安全模块时,bmc或安全模块均通过一级数据选择器即可访问flash,并进行bios升级;当不存在安全模块时,也只用通过一级数据选择器即可访问flash,减少路径中的数据选择器,降低整个过程的时延。

以下通过一个实施例,对本申请提供的一种bios升级方法进行说明。

请参考图1,图1为本申请实施例所提供的一种bios升级方法的流程图。

本实施例中,该方法可以包括:

s101,判断安全模块是否存在;若是,则执行s102;若否,则执行s103;

可见,本步骤中旨在判断是否存在对应的安全模块。也就是在,bios电路中是否设置有安全模块,并且安全模块是否开启;其中,第一数据选择器与第二数据选择器并联设置在电路中。

其中,安全模块可以是采用pfr(platformfirmwareresilence,平台固件快速恢复)技术的安全模块。当对计算机的主线结构采用安全模块时,该安全模块会对总线结构以及相关的处理过程造成影响,导致总线的拓扑结构可以存在多种结构,同时,也会导致相应的处理过程存在多种多样的处理方式。而在不同的处理过程中,存在处理时延较长的问题。在本实施例中,由于第一数据选择器与第二数据选择器并联设置在电路中,使得在链路中访问flash只需要进过一个数据选择器即可,降低了数据传输时延。

进一步的,为了减少第一数据选择器与第二数据选择器共同输入pch_qspi的分叉带来的信号短桩对于信号的影响。本实施例中的第一数据选择器和第二数据选择器分别设置在pcb板中同一位置的top层和bottom层。pch_qspi输入数据选择器前在数据选择器输入管脚附近打过孔,在数据选择器的输出端就近打过孔合并两个数据选择器的输出。这样同时减小了pch侧和flash侧的qspi走线分叉来带的stub影响。

s102,控制bmc通过第二数据选择器将待升级文件存入flash中;当待升级文件存入flash时,控制安全模块通过第一数据选择器根据待升级文件进行bios升级;

在s101的基础上,本步骤旨在当存在对应的安全模块时,通过第一数据选择器和第二数据选择器执行不同的数据操作,实现只需要通过一个数据选择器就可以对bios进行升级。进一步的,本步骤中首先控制bmc通过第二数据选择器将待升级文件存入flash中。也就是,通过第二数据选择器控将待升级文件从bmc写入到flash中。当待升级文件存入flash时,控制安全模块通过第一数据选择器根据待升级文件进行bios升级。可见,本步骤中的无论是bmc还是安全模块,均通过一个数据选择器即可实现对应的数据操作,而不是通过两级数据选择器,降低数据传输的时延。也就是,执行带内升级。

进一步的,为了实现本实施例中的步骤,本步骤可以包括:

步骤1,控制安全模块关闭第一数据选择器的输出使能,并打开第二数据选择器的输出使能;

步骤2,控制bmc通过第二数据选择器将待升级文件存入flash中;

步骤3,当待升级文件存入flash时,控制安全模块打开第一数据选择器的输出使能,并关闭第二数据选择器的输出使能;

步骤4,控制安全模块通过第一数据选择器根据待升级文件进行bios升级。

可见,本可选方案主要是对如何通过安全模块实现bios升级进行说明。本可选方案中,首先控制安全模块关闭第一数据选择器的输出使能,并打开第二数据选择器的输出使能;然后,控制bmc通过第二数据选择器将待升级文件存入flash中。也就是,关闭第一数据选择器,打开第二数据选择器,以便使得bmc通过第二数据选择器将待升级文件写入到flash中。当待升级文件存入flash时,控制安全模块打开第一数据选择器的输出使能,并关闭第二数据选择器的输出使能;最后,控制安全模块通过第一数据选择器根据待升级文件进行bios升级。

其中,第一数据选择器和第二数据选择器的输出使能,主要是控制第一数据选择器和第二数据选择器的输出开关,当打开输出使能时,可以向flash传输数据,当关闭时则无法进行数据传输。

进一步的,当进行了bios升级后,就可以执行对应的数据读写操作,即pch读取flash中的数据。因此,本实施例还可以包括:

步骤1,当安全模块存在时,将第一数据选择器的使能设置为打开状态,将第二数据选择器的使能设置为关闭状态;

步骤2,控制安全模块将第一数据选择器的输出选择设置为pch对应的qspi总线,以便pch通过第一数据选择器访问flash。

可见,本实施例中主要是对bios升级后的数据读写进行说明。本可选方案中当安全模块存在时,将第一数据选择器的使能设置为打开状态,将第二数据选择器的使能设置为关闭状态;然后控制安全模块将第一数据选择器的输出选择设置为pch对应的qspi总线,以便pch通过第一数据选择器访问flash。

s103,控制bmc通过第二数据选择器对bios进行带外升级。

可见,本步骤旨在当不存在安全模块时,控制bmc通过第二数据选择器对bios进行带外升级。也就是,采用bmc通过该第二数据选择器进行带外升级。其中,带外升级的操作可以参考现有技术提供的任意一种带外升级的操作方式,在此不做具体限定。

进一步的,本步骤可以包括:

步骤1,将第一数据选择器的使能设置为关闭状态;

步骤2,将第二数据选择器的使能设置为打开状态;

步骤3,控制bmc通过第二数据选择器对bios进行带外升级。

可见,本可选方案中主要是对如何进行带外升级做说明。本可选方案中将第一数据选择器的使能设置为关闭状态;然后,将第二数据选择器的使能设置为打开状态;最后,控制bmc通过第二数据选择器对bios进行带外升级。

进一步的,为了后续读取数据的速度和效率,本实施例当带外升级完成时,还可以包括:

步骤1,当安全模块不存在时,将第一数据选择器的使能设置为关闭状态,将第二数据选择器的使能设置为打开状态;

步骤2,控制bmc将第二数据选择器的输出选择设置为pch对应的qspi总线,以便pch通过第二数据选择器访问flash。

可见,本可选方案中主要是对执行完成带外升级后,当安全模块不存在时,将第一数据选择器的使能设置为关闭状态,将第二数据选择器的使能设置为打开状态;然后,控制bmc将第二数据选择器的输出选择设置为pch对应的qspi总线,以便pch通过第二数据选择器访问flash。

综上,本实施例通过并联设置的第一数据选择器与第二数据选择器,使得当存在安全模块时,bmc或安全模块均通过一级数据选择器即可访问flash,并进行bios升级;当不存在安全模块时,也只用通过一级数据选择器即可访问flash,减少路径中的数据选择器,降低整个过程的时延。

以下通过一个具体的实施例,对本申请提供的一种bios升级方法进行说明。

请参考图2,图2为本申请实施例所提供的一种bios升级电路的示意图。

本实施例中,在pch到bios的flash的访问路径上,存在两个并联的数据选择器,分别为第一数据选择器(即图2中的mux1)和第二数据选择器(即,图2中的mux2),第一数据选择器及第二数据选择器的oe(outputenable,输出使能)输出均受安全模块控制,并且这个控制信号是同一个来源但是逻辑相反;第一数据选择器的输出选择sel(select,输出选择)受安全模块控制,第二数据选择器的输出选择sel受bmc控制。

安全模块存在时,flash的oob(outofband,带外)升级分两步。

第一步,bmc通过第二数据选择器上传待升级文件;

第二步,安全模块通过第一数据选择器路径执行安全升级。带外升级路径由现有技术方案的两级数据选择器级联变成只有一级数据选择器,减小了qspi路径延时。

安全模块不存在时,flash的oob升级路径为bmc通过控制第二数据选择器获得qspi控制权,直接执行升级,升级路径上只有一级数据选择器。

正常工作模式也分为安全模块有无两种情况。

安全模块存在,pch通过第一数据选择器通道访问flash,安全模块不存在,pch通过第二数据选择器访问flash。两种情况pch对flash访问都只经过一级数据选择器,减少了qspi路径延时。

基于上述电路图,在pcb布局时注意,为了减少第一数据选择器与第二数据选择器共同输入pch_qspi的分叉带来的信号短桩影响,将第一数据选择器和第二数据选择器在pcb的top和bottom同位置正反放置。pch_qspi输入数据选择器前在数据选择器输入管脚附近打过孔,在数据选择器的输出端就近打过孔合并两个数据选择器的输出。这样同时减小了pch侧和flash侧的qspi走线分叉来带的stub影响。

当安全模块存在时,bios的qspi访问路径可以如下:

flash的oob安全升级模式。安全模块首先关闭第一数据选择器的oe,切断第一数据选择器的输出,此时第二数据选择器的oe输出使能。bmc控制第二数据选择器的sel接管flash的qspi总线控制权,将待升级的文件存放在flash暂存分区中。放置完毕后bmc通知安全模块可以启动安全升级流程,安全模板收到bmc发出的指令后,将第二数据选择器的oe关闭,同时打开了第一数据选择器的oe,将第一数据选择器切换到安全模板控制下,从而执行bios的安全升级。

正常工作模式。第二数据选择器oe一直disable,第一数据选择器oe一直使能,安全模块控制第一数据选择器的sel选择pch输出控制qspi总线访问flash。

可见,无论是bmc放置升级文件或者安全模块升级bios,或者pch正常访问flash,对flash的访问路径都只经过一级数据选择器,qspi访问路径短,很好的解决了现有技术方案中两级数据选择器级联带来的qspi时延过大,可能的时序风险。

当安全模块不存在,即传统的bmcoob升级biosflash情况。第一数据选择器oe设置成disable状态,第二数据选择器的oe一直使能。当进行bios的oob升级时,bmc将第二数据选择器的sel选择成bmc控制,从而实现直接oob升级flash;当正常工作时,bmc将第二数据选择器的sel选择成pch控制。此种情况对flash的操作均是只有一级数据选择器。

可见,本实施例可以通过并联设置的第一数据选择器与第二数据选择器,使得当存在安全模块时,bmc或安全模块均通过一级数据选择器即可访问flash,并进行bios升级;当不存在安全模块时,也只用通过一级数据选择器即可访问flash,减少路径中的数据选择器,降低整个过程的时延。

下面对本申请实施例提供的bios升级装置进行介绍,下文描述的bios升级装置与上文描述的bios升级方法可相互对应参照。

请参考图3,图3为本申请实施例所提供的一种bios升级装置的结构示意图。

本实施例中,该装置可以包括:

安全模块判断单元100,用于判断安全模块是否存在;

带内升级单元200,用于当安全模块存在时,控制bmc通过第二数据选择器将待升级文件存入flash中;当待升级文件存入flash时,控制安全模块通过第一数据选择器根据待升级文件进行bios升级;

带外升级单元300,用于当安全模块不存在时,控制bmc通过第二数据选择器对bios进行带外升级。

可选的,该带内升级单元200,具体用于控制安全模块关闭第一数据选择器的输出使能,并打开第二数据选择器的输出使能;控制bmc通过第二数据选择器将待升级文件存入flash中;当待升级文件存入flash时,控制安全模块打开第一数据选择器的输出使能,并关闭第二数据选择器的输出使能;控制安全模块通过第一数据选择器根据待升级文件进行bios升级。

可选的,该装置还可以包括:

第一数据访问模块,用于当安全模块存在时,将第一数据选择器的使能设置为打开状态,将第二数据选择器的使能设置为关闭状态;控制安全模块将第一数据选择器的输出选择设置为pch对应的qspi总线,以便pch通过第一数据选择器访问flash。

可选的,该带外升级单元300,具体用于将第一数据选择器的使能设置为关闭状态;将第二数据选择器的使能设置为打开状态;控制bmc通过第二数据选择器对bios进行带外升级。

可选的,该装置还可以包括:

第二数据访问模块,用于当安全模块不存在时,将第一数据选择器的使能设置为关闭状态,将第二数据选择器的使能设置为打开状态;控制bmc将第二数据选择器的输出选择设置为pch对应的qspi总线,以便pch通过第二数据选择器访问flash。

本申请实施例还提供一种服务器,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上所述的bios升级方法的步骤。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的bios升级方法的步骤。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

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

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的一种bios升级方法、bios升级装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

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