基板管理控制器、基本输入输出系统的处理方法和装置转让专利

申请号 : CN202311244088.7

文献号 : CN116991606B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王殿卫刘宝阳陈超凡

申请人 : 苏州元脑智能科技有限公司

摘要 :

本发明提供基板管理控制器、基本输入输出系统的处理方法和装置,应用于服务器,服务器包括基板管理控制器、基本输入输出系统和共享内存空间;基本输入输出系统与基板管理控制器通过PCIe通路连接;基板管理控制器存储有预设的第二字符串;基板管理控制器向基本输入输出系统发送第二设置选项时,基板管理控制器修改第二字符串,得到第二设置选项对应的第三字符串;基板管理控制器将第三字符串存储于共享内存空间;PCIe通路将第三字符串发送至基本输入输出系统;基本输入输出系统解析第三字符串得到第二设置选项;基本输入输出系统基于第二设置选项调整基本输入输出系统;本发明通过PCIe通路传输设置选项,不需要增加硬件模块,又提高设置选项的传输速度。

权利要求 :

1.一种基板管理控制器的处理方法,其特征在于,应用于服务器,所述服务器包括基板管理控制器、基本输入输出系统以及所述基板管理控制器与所述基本输入输出系统之间的共享内存空间;所述基本输入输出系统还提供设置界面;所述基本输入输出系统与所述基板管理控制器通过PCIe通路连接,所述设置界面用于显示设置选项;所述方法包括:在所述基本输入输出系统向所述基板管理控制器发送第一设置选项的情况下,在显示所述设置界面之前和/或通过所述设置界面修改所述设置选项之后,所述基本输入输出系统采集所述第一设置选项,并将所述第一设置选项存储于所述共享内存空间;

所述PCIe通路将所述第一设置选项发送至所述基板管理控制器;

所述基板管理控制器基于所述第一设置选项调整所述基板管理控制器;

其中,所述采集第一设置选项,并将所述第一设置选项存储于所述共享内存空间,还包括:所述基本输入输出系统将采集的所述第一设置选项转换为第一字符串;

所述基本输入输出系统基于所述第一字符串计算所述第一字符串的长度,并判断所述第一字符串的长度是否超出预设的长度范围;

若所述第一字符串的长度未超出所述预设的长度范围,则所述基本输入输出系统将所述第一字符串作为第二字符串。

2.根据权利要求1所述的方法,其特征在于,所述共享内存空间包括第一区域;所述采集第一设置选项,并将所述第一设置选项存储于所述共享内存空间,还包括:所述基本输入输出系统将所述第二字符串存储于所述第一区域。

3.根据权利要求2所述的方法,其特征在于,所述第一区域还存储有所述第一字符串对应的第一数据字段;所述方法还包括:所述基本输入输出系统基于所述第一字符串计算所述第一字符串的第一校验值;

所述基本输入输出系统将所述第一字符串的长度和所述第一校验值存储于所述第一数据字段。

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:

若所述第一字符串的长度超出所述预设的长度范围,则所述基本输入输出系统压缩所述第一字符串,得到压缩字符串;

所述基本输入输出系统将所述第一字符串是否被压缩的信息存储于所述第一数据字段;

所述基本输入输出系统计算所述压缩字符串的长度,并判断所述压缩字符串的长度是否超出所述预设的长度范围;

若所述压缩字符串的长度在所述预设的长度范围之内,则所述基本输入输出系统将所述压缩字符串作为所述第二字符串。

5.根据权利要求3或4所述的方法,其特征在于,所述第一数据字段还包括第一所有者字段;所述第一所有者字段用于表明所述第一区域的所有者;所述将所述第二字符串存储于所述第一区域的步骤,还包括:所述基本输入输出系统读取所述第一所有者字段,得到所述第一区域的所有者:若所述第一区域的所有者是所述基本输入输出系统,则所述基本输入输出系统将所述第二字符串存储于所述第一区域。

6.根据权利要求5所述的方法,其特征在于,所述方法还包括:

若所述第一区域的所有者是所述基板管理控制器,则所述基本输入输出系统暂停将所述第二字符串存储于所述第一区域;

所述基本输入输出系统再次读取所述第一所有者字段,得到所述第一区域的所有者。

7.根据权利要求5所述的方法,其特征在于,所述第一数据字段还包括第一有效性字段;所述第一有效性字段用于表明所述第一区域内的所述第二字符串是否有效;所述将所述第二字符串存储于所述第一区域之后还包括:所述基本输入输出系统通过修改所述第一有效性字段表明所述第一区域的所述第二字符串有效。

8.根据权利要求7所述的方法,其特征在于,所述基板管理控制器基于所述第一设置选项调整所述基板管理控制器之前,还包括:所述基板管理控制器读取所述第一有效性字段,判断所述第二字符串是否有效;

若所述第二字符串有效,所述基板管理控制器读取所述第一所有者字段,得到所述第一区域的所有者;

若所述第一区域的所有者是所述基板管理控制器,则所述基板管理控制器提取所述第二字符串;

所述基板管理控制器解析所述第二字符串得到所述第一设置选项。

9.根据权利要求8所述的方法,其特征在于,所述提取所述第二字符串,还包括:所述基板管理控制器读取所述第一数据字段,得到所述第一字符串的长度以及所述第一字符串是否被压缩的信息;

所述基板管理控制器基于所述第一字符串的长度判断所述第一字符串是否超过预设的长度范围;

若所述第一字符串的长度超过预设的长度范围,则所述基板管理控制器基于所述第一字符串是否被压缩的信息判断所述第一字符串是否被压缩;

若所述第一字符串未被压缩,则所述基板管理控制器忽略所述第二字符串;

若所述第一字符串被压缩,则所述基板管理控制器提取所述第二字符串。

10.根据权利要求8所述的方法,其特征在于,所述解析所述第二字符串得到所述第一设置选项的步骤,还包括:所述基板管理控制器读取所述第一数据字段,得到所述第一字符串的第一校验值;

所述基板管理控制器基于所述第一字符串计算所述第一字符串的第二校验值;

所述基板管理控制器比对所述第一校验值和所述第二校验值,判断所述第一校验值和所述第二校验值是否相同;

若所述第一校验值和所述第二校验值不相同,则所述基板管理控制器忽略所述第二字符串;

若所述第一校验值和所述第二校验值相同,则所述基板管理控制器解析所述第二字符串得到所述第一设置选项。

11.根据权利要求8所述的方法,其特征在于,所述方法还包括:若所述第一区域的所有者是所述基本输入输出系统,则所述基板管理控制器暂停提取所述第二字符串;

所述基板管理控制器再次读取所述第一所有者字段,得到所述第一区域的所有者。

12.一种基本输入输出系统的处理方法,其特征在于,应用于服务器,所述服务器包括基板管理控制器、基本输入输出系统以及所述基板管理控制器与所述基本输入输出系统之间的共享内存空间;所述基本输入输出系统与所述基板管理控制器通过PCIe通路连接;所述基板管理控制器中存储有预设的第二字符串;所述方法包括:在所述基板管理控制器向所述基本输入输出系统发送第二设置选项的情况下,所述基板管理控制器修改所述第二字符串,得到所述第二设置选项对应的第三字符串;

所述基板管理控制器将所述第三字符串存储于所述共享内存空间;

所述PCIe通路将所述第三字符串发送至所述基本输入输出系统;

所述基本输入输出系统解析所述第三字符串得到所述第二设置选项;

所述基本输入输出系统基于所述第二设置选项调整所述基本输入输出系统。

13.根据权利要求12所述的方法,其特征在于,所述共享内存区域还包括第二区域;所述第二区域用于存储所述第三字符串;所述第二区域中还存储有所述第三字符串对应的第二数据字段;所述第二数据字段包括第二所有者字段和第二有效性字段;所述第二所有者字段用于表明所述第二区域的所有者,所述第二有效性字段用于表明所述第二区域内的所述第三字符串是否有效;所述将所述第三字符串存储于所述共享内存空间的步骤,还包括:所述基板管理控制器读取所述第二所有者字段,得到所述第二区域的所有者;

若所述第二区域的所有者是所述基板管理控制器,所述基板管理控制器将所述第三字符串存储于所述第二区域;

所述基板管理控制器通过修改所述第二有效性字段表明所述第三字符串有效。

14.根据权利要求13所述的方法,其特征在于,所述解析所述第三字符串得到所述第二设置选项的步骤之前,还包括:所述基本输入输出系统读取所述第二有效性字段,判断所述第三字符串是否有效;

若所述第三字符串有效,所述基本输入输出系统提取所述第三字符串。

15.根据权利要求14所述的方法,其特征在于,所述共享内存区域还包括第三区域;所述基于所述第二设置选项调整所述基本输入输出系统的步骤,还包括:所述基本输入输出系统判断所述第二设置选项是否满足预设的格式要求;

若所述第二设置选项满足预设的格式要求,则所述基本输入输出系统基于所述第二设置选项调整所述基本输入输出系统;

若所述第二设置选项不满足预设的格式要求,则所述基本输入输出系统将所述第二设置选项转换为第四字符串,并将所述第四字符串存储于所述第三区域;其中,所述第四字符串用于判断所述第二设置选项是否满足预设的格式要求。

16.根据权利要求15所述的方法,其特征在于,所述方法还包括:若所述第二设置选项满足预设的格式要求,所述服务器重启,以使所述服务器适配于所述第二设置选项。

17.一种基板管理控制器的处理方法,其特征在于,应用于服务器,所述服务器包括基板管理控制器、基本输入输出系统以及所述基板管理控制器与所述基本输入输出系统之间的共享内存空间;所述基本输入输出系统与所述基板管理控制器通过PCIe通路连接;所述共享内存空间还包括第三区域;所述第三区域中存储有预设的第四字符串和第三所有者字段;所述方法包括:在所述基本输入输出系统向所述基板管理控制器发送所述第四字符串的情况下,所述PCIe通路将所述第四字符串发送至所述基板管理控制器;

所述基板管理控制器读取所述第三所有者字段,得到所述第三区域的所有者;

若所述第三区域的所有者是所述基板管理控制器,所述基板管理控制器提取所述第四字符串,并基于所述第四字符串判断所述第四字符串对应的第二设置选项是否满足预设的格式要求。

18.一种基板管理控制器的处理装置,其特征在于,设置于服务器,所述服务器包括基板管理控制器、基本输入输出系统以及所述基板管理控制器与所述基本输入输出系统之间的共享内存空间;所述基本输入输出系统还提供设置界面;所述基本输入输出系统与所述基板管理控制器通过PCIe通路连接,所述设置界面用于显示设置选项;所述基本输入输出系统包括采集模块,所述PCIe通路包括第一发送模块,所述基板管理控制器包括第一调整模块,所述装置包括:所述采集模块,用于在所述基本输入输出系统向所述基板管理控制器发送第一设置选项的情况下,在显示所述设置界面之前和/或通过所述设置界面修改所述设置选项之后,所述基本输入输出系统采集所述第一设置选项,并将所述第一设置选项存储于所述共享内存空间;

所述第一发送模块,用于使所述PCIe通路将所述第一设置选项发送至所述基板管理控制器;

所述第一调整模块,用于使所述基板管理控制器基于所述第一设置选项调整所述基板管理控制器;

所述采集模块还包括:

第一转换模块,用于使所述基本输入输出系统将采集的所述第一设置选项转换为第一字符串;

第一计算模块,用于使所述基本输入输出系统基于所述第一字符串计算所述第一字符串的长度,并判断所述第一字符串的长度是否超出预设的长度范围;

第一作为模块,用于使若所述第一字符串的长度未超出所述预设的长度范围,则所述基本输入输出系统将所述第一字符串作为第二字符串。

19.一种基本输入输出系统的处理装置,其特征在于,应用于服务器,所述服务器包括基板管理控制器、基本输入输出系统以及所述基板管理控制器与所述基本输入输出系统之间的共享内存空间;所述基本输入输出系统与所述基板管理控制器通过PCIe通路连接;所述基板管理控制器中存储有预设的第二字符串;所述基本输入输出系统包括第三解析模块和第二调整模块,所述PCIe通路包括第二发送模块,所述基板管理控制器包括第二修改模块和第五存储模块;所述装置包括:所述第二修改模块,用于在所述基板管理控制器向所述基本输入输出系统发送第二设置选项的情况下,所述基板管理控制器修改所述第二字符串,得到所述第二设置选项对应的第三字符串;

所述第五存储模块,用于在所述基板管理控制器将所述第三字符串存储于所述共享内存空间;

所述第二发送模块,用于在所述PCIe通路将所述第三字符串发送至所述基本输入输出系统;

所述第三解析模块,用于在所述基本输入输出系统解析所述第三字符串得到所述第二设置选项;

所述第二调整模块,用于所述基本输入输出系统基于所述第二设置选项调整所述基本输入输出系统。

20.一种基板管理控制器的处理装置,其特征在于,应用于服务器,所述服务器包括基板管理控制器、基本输入输出系统以及所述基板管理控制器与所述基本输入输出系统之间的共享内存空间;所述基本输入输出系统与所述基板管理控制器通过PCIe通路连接;所述共享内存空间还包括第三区域;所述第三区域中存储有预设的第四字符串和第三所有者字段;所述PCIe通路包括第三发送模块,所述基板管理控制器包括第三所有者字段读取模块和第四提取模块;所述装置包括:所述第三发送模块,用于在所述基本输入输出系统向所述基板管理控制器发送所述第四字符串的情况下,所述PCIe通路将所述第四字符串发送至所述基板管理控制器;

所述第三所有者字段读取模块,用于使所述基板管理控制器读取所述第三所有者字段,得到所述第三区域的所有者;

所述第四提取模块,用于若所述第三区域的所有者是所述基板管理控制器,使所述基板管理控制器提取所述第四字符串,并基于所述第四字符串判断所述第四字符串对应的第二设置选项是否满足预设的格式要求。

21.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;

所述存储器,用于存放服务器程序;

所述处理器,用于执行存储器上所存放的程序时,实现如权利要求1‑11或12‑16或17任一项所述的方法。

22.一个或多个服务器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1‑11或12‑16或17任一项所述的方法。

说明书 :

基板管理控制器、基本输入输出系统的处理方法和装置

技术领域

[0001] 本发明涉及服务器技术领域,特别是涉及基板管理控制器、基本输入输出系统的处理方法和装置。

背景技术

[0002] 基板管理控制器(BMC)是用于监控和管理服务器的控制器,基本输入输出系统(BIOS)用于为服务器提供最底层的、最直接的硬件设置和控制,以及为基板管理控制器、基本输入输出系统和基本输入输出系统中引导启动的操作系统等提供一些系统参数。其中,系统参数保存于基本输入输出系统的Setup(设置)模块,用户可根据实际需要修改系统参数。
[0003] 现有技术一般采用Redfish通过USB网卡将基板管理控制器与基本输入输出系统相连以传输Setup选项,基板管理控制器利用通过Redfish传输的Setup选项调整基板管理控制器。采用Redfish传输Setup选项需要增加USB网卡硬件模块,且传输Setup选项的速度较慢。

发明内容

[0004] 本发明实施例是提供基板管理控制器、基本输入输出系统的处理方法和装置,以解决基板管理控制器利用通过Redfish传输的Setup选项调整基板管理控制器时,采用Redfish传输Setup选项需要增加USB网卡硬件模块,且传输Setup选项的速度较慢的问题。
[0005] 本发明实施例公开了一种基板管理控制器的处理方法,应用于服务器,所述服务器包括基板管理控制器、基本输入输出系统以及所述基板管理控制器与所述基本输入输出系统之间的共享内存空间;所述基本输入输出系统还提供设置界面;所述基本输入输出系统与所述基板管理控制器通过PCIe通路连接,所述设置界面用于显示设置选项;所述方法包括:
[0006] 在所述基本输入输出系统向所述基板管理控制器发送第一设置选项的情况下,在显示所述设置界面之前和/或通过所述设置界面修改所述设置选项之后,所述基本输入输出系统采集所述第一设置选项,并将所述第一设置选项存储于所述共享内存空间;
[0007] 所述PCIe通路将所述第一设置选项发送至所述基板管理控制器;
[0008] 所述基板管理控制器基于所述第一设置选项调整所述基板管理控制器。
[0009] 可选地,所述共享内存空间包括第一区域;所述采集第一设置选项,并将所述第一设置选项存储于所述共享内存空间,还包括:
[0010] 所述基本输入输出系统将采集的所述第一设置选项转换为第一字符串;
[0011] 所述基本输入输出系统基于所述第一字符串计算所述第一字符串的长度,并判断所述第一字符串的长度是否超出预设的长度范围;
[0012] 若所述第一字符串的长度未超出所述预设的长度范围,则所述基本输入输出系统将所述第一字符串作为第二字符串;
[0013] 所述基本输入输出系统将所述第二字符串存储于所述第一区域。
[0014] 可选地,所述第一区域还存储有所述第一字符串对应的第一数据字段;所述方法还包括:
[0015] 所述基本输入输出系统基于所述第一字符串计算所述第一字符串的第一校验值;
[0016] 所述基本输入输出系统将所述第一字符串的长度和所述第一校验值存储于所述第一数据字段。
[0017] 可选地,所述方法还包括:
[0018] 若所述第一字符串的长度超出所述预设的长度范围,则所述基本输入输出系统压缩所述第一字符串,得到压缩字符串;
[0019] 所述基本输入输出系统将所述第一字符串是否被压缩的信息存储于所述第一数据字段;
[0020] 所述基本输入输出系统计算所述压缩字符串的长度,并判断所述压缩字符串的长度是否超出所述预设的长度范围;
[0021] 若所述压缩字符串的长度在所述预设的长度范围之内,则所述基本输入输出系统将所述压缩字符串作为所述第二字符串。
[0022] 可选地,所述第一数据字段还包括第一所有者字段;所述第一所有者字段用于表明所述第一区域的所有者;所述将所述第二字符串存储于所述第一区域的步骤,还包括:
[0023] 所述基本输入输出系统读取所述第一所有者字段,得到所述第一区域的所有者:
[0024] 若所述第一区域的所有者是所述基本输入输出系统,则所述基本输入输出系统将所述第二字符串存储于所述第一区域。
[0025] 可选地,所述方法还包括:
[0026] 若所述第一区域的所有者是所述基板管理控制器,则所述基本输入输出系统暂停将所述第二字符串存储于所述第一区域;
[0027] 所述基本输入输出系统再次读取所述第一所有者字段,得到所述第一区域的所有者。
[0028] 可选地,所述第一数据字段还包括第一有效性字段;所述第一有效性字段用于表明所述第一区域内的所述第二字符串是否有效;所述将所述第二字符串存储于所述第一区域之后还包括:
[0029] 所述基本输入输出系统通过修改所述第一有效性字段表明所述第一区域的所述第二字符串有效。
[0030] 可选地,所述基板管理控制器基于所述第一设置选项调整所述基板管理控制器之前,还包括:
[0031] 所述基板管理控制器读取所述第一有效性字段,判断所述第二字符串是否有效;
[0032] 若所述第二字符串有效,所述基板管理控制器读取所述第一所有者字段,得到所述第一区域的所有者;
[0033] 若所述第一区域的所有者是所述基板管理控制器,则所述基板管理控制器提取所述第二字符串;
[0034] 所述基板管理控制器解析所述第二字符串得到所述第一设置选项。
[0035] 可选地,所述提取所述第二字符串,还包括:
[0036] 所述基板管理控制器读取所述第一数据字段,得到所述第一字符串的长度以及所述第一字符串是否被压缩的信息;
[0037] 所述基板管理控制器基于所述第一字符串的长度判断所述第一字符串是否超过预设的长度范围;
[0038] 若所述第一字符串的长度超过预设的长度范围,则所述基板管理控制器基于所述第一字符串是否被压缩的信息判断所述第一字符串是否被压缩;
[0039] 若所述第一字符串未被压缩,则所述基板管理控制器忽略所述第二字符串;
[0040] 若所述第一字符串被压缩,则所述基板管理控制器提取所述第二字符串。
[0041] 可选地,所述解析所述第二字符串得到所述第一设置选项的步骤,还包括:
[0042] 所述基板管理控制器读取所述第一数据字段,得到所述第一字符串的第一校验值;
[0043] 所述基板管理控制器基于所述第一字符串计算所述第一字符串的第二校验值;
[0044] 所述基板管理控制器比对所述第一校验值和所述第二校验值,判断所述第一校验值和所述第二校验值是否相同;
[0045] 若所述第一校验值和所述第二校验值不相同,则所述基板管理控制器忽略所述第二字符串;
[0046] 若所述第一校验值和所述第二校验值相同,则所述基板管理控制器解析所述第二字符串得到所述第一设置选项。
[0047] 可选地,所述方法还包括:
[0048] 若所述第一区域的所有者是所述基本输入输出系统,则所述基板管理控制器暂停提取所述第二字符串;
[0049] 所述基板管理控制器再次读取所述第一所有者字段,得到所述第一区域的所有者。
[0050] 本发明实施例还公开了一种基本输入输出系统的处理方法,应用于服务器,所述服务器包括基板管理控制器、基本输入输出系统以及所述基板管理控制器与所述基本输入输出系统之间的共享内存空间;所述基本输入输出系统与所述基板管理控制器通过PCIe通路连接;所述基板管理控制器中存储有预设的第二字符串;所述方法包括:
[0051] 在所述基板管理控制器向所述基本输入输出系统发送第二设置选项的情况下,所述基板管理控制器修改所述第二字符串,得到所述第二设置选项对应的第三字符串;
[0052] 所述基板管理控制器将所述第三字符串存储于所述共享内存空间;
[0053] 所述PCIe通路将所述第三字符串发送至所述基本输入输出系统;
[0054] 所述基本输入输出系统解析所述第三字符串得到所述第二设置选项;
[0055] 所述基本输入输出系统基于所述第二设置选项调整所述基本输入输出系统。
[0056] 可选地,所述共享内存区域还包括第二区域;所述第二区域用于存储所述第三字符串;所述第二区域中还存储有所述第三字符串对应的第二数据字段;所述第二数据字段包括第二所有者字段、第二有效性字段;所述第二所有者字段用于表明所述第二区域的所有者,所述第二有效性字段用于表明所述第二区域内的所述第三字符串是否有效;所述将所述第三字符串存储于所述共享内存空间的步骤,还包括:
[0057] 所述基板管理控制器读取所述第二所有者字段,得到所述第二区域的所有者;
[0058] 若所述第二区域的所有者是所述基板管理控制器,所述基板管理控制器将所述第三字符串存储于所述第二区域;
[0059] 所述基板管理控制器通过修改所述第二有效性字段表明所述第三字符串有效。
[0060] 可选地,所述解析所述第三字符串得到所述第二设置选项的步骤之前,还包括:
[0061] 所述基本输入输出系统读取所述第二有效性字段,判断所述第三字符串是否有效;
[0062] 若所述第三字符串有效,所述基本输入输出系统提取所述第三字符串;
[0063] 所述基本输入输出系统解析所述第三字符串得到所述第二设置选项。
[0064] 可选地,所述共享内存区域还包括第三区域;所述基于所述第二设置选项调整所述基本输入输出系统的步骤,还包括:
[0065] 所述基本输入输出系统判断所述第二设置选项是否满足预设的格式要求;
[0066] 若所述第二设置选项满足预设的格式要求,则所述基本输入输出系统基于所述第二设置选项调整所述基本输入输出系统;
[0067] 若所述第二设置选项不满足预设的格式要求,则所述基本输入输出系统将所述第二设置选项转换为第四字符串,并将所述第四字符串存储于所述第三区域;其中,所述第四字符串用于判断所述第二设置选项是否满足预设的格式要求。
[0068] 可选地,所述方法还包括:
[0069] 若所述第二设置选项满足预设的格式要求,所述服务器重启,以使所述服务器适配于所述第二设置选项。
[0070] 本发明实施例还公开了另一种基板管理控制器的处理方法,应用于服务器,所述服务器包括基板管理控制器、基本输入输出系统以及所述基板管理控制器与所述基本输入输出系统之间的共享内存空间;所述基本输入输出系统与所述基板管理控制器通过PCIe通路连接;所述共享内存空间存储有预设的第四字符串;所述方法包括:
[0071] 在所述基本输入输出系统向所述基板管理控制器发送所述第四字符串的情况下,所述PCIe通路将所述第四字符串发送至所述基板管理控制器;
[0072] 所述基板管理控制器提取所述第四字符串,并基于所述第四字符串判断所述第四字符串对应的第二设置选项是否满足预设的格式要求。
[0073] 本发明实施例还公开了一种基板管理控制器的处理装置,设置于服务器,所述服务器包括基板管理控制器、基本输入输出系统以及所述基板管理控制器与所述基本输入输出系统之间的共享内存空间;所述基本输入输出系统还提供设置界面;所述基本输入输出系统与所述基板管理控制器通过PCIe通路连接,所述设置界面用于显示所述设置选项;所述基本输入输出系统包括采集模块,所述PCIe通路包括第一发送模块,所述基板管理控制器包括第一调整模块,所述装置包括:
[0074] 所述采集模块,用于在所述基本输入输出系统向所述基板管理控制器发送第一设置选项的情况下,在显示所述设置界面之前和/或通过所述设置界面修改所述设置选项之后,所述基本输入输出系统采集所述第一设置选项,并将所述第一设置选项存储于所述共享内存空间;
[0075] 所述第一发送模块,用于使所述PCIe通路将所述第一设置选项发送至所述基板管理控制器;
[0076] 所述第一调整模块,用于使所述基板管理控制器基于所述第一设置选项调整所述基板管理控制器。
[0077] 可选地,所述共享内存空间包括第一区域;所述采集模块还包括:
[0078] 所述第一转换模块,用于使所述基本输入输出系统将采集的所述第一设置选项转换为第一字符串;
[0079] 所述第一计算模块,用于使所述基本输入输出系统基于所述第一字符串计算所述第一字符串的长度,并判断所述第一字符串的长度是否超出预设的长度范围;
[0080] 所述第一作为模块,用于使若所述第一字符串的长度未超出所述预设的长度范围,则所述基本输入输出系统将所述第一字符串作为第二字符串;
[0081] 所述第一存储模块,用于使所述基本输入输出系统将所述第二字符串存储于所述第一区域。
[0082] 可选地,所述第一区域还存储有所述第一字符串对应的第一数据字段;所述基本输入输出系统包括第二计算模块和第二存储模块,所述装置还包括:
[0083] 所述第二计算模块,用于使所述基本输入输出系统基于所述第一字符串计算所述第一字符串的第一校验值;
[0084] 所述第二存储模块,用于使所述基本输入输出系统将所述第一字符串的长度和所述第一校验值存储于所述第一数据字段。
[0085] 可选地,所述基本输入输出系统包括压缩模块、第三存储模块、第三计算模块和第二作为模块,所述装置还包括:
[0086] 所述压缩模块,用于若所述第一字符串的长度超出所述预设的长度范围,则所述基本输入输出系统压缩所述第一字符串,得到压缩字符串;
[0087] 所述第三存储模块,用于使所述基本输入输出系统将所述第一字符串是否被压缩的信息存储于所述第一数据字段;
[0088] 所述第三计算模块,用于使所述基本输入输出系统计算所述压缩字符串的长度,并判断所述压缩字符串的长度是否超出所述预设的长度范围;
[0089] 所述第二作为模块,用于若所述压缩字符串的长度在所述预设的长度范围之内,则所述基本输入输出系统将所述压缩字符串作为所述第二字符串。
[0090] 可选地,所述第一数据字段还包括第一所有者字段;所述第一所有者字段用于表明所述第一区域的所有者;所述第一存储模块还包括:
[0091] 所述第一读取模块,用于使所述基本输入输出系统读取所述第一所有者字段,得到所述第一区域的所有者:
[0092] 所述第四存储模块,用于使若所述第一区域的所有者是所述基本输入输出系统,则所述基本输入输出系统将所述第二字符串存储于所述第一区域。
[0093] 可选地,所述基本输入输出系统包括第一暂停模块和第二读取模块,所述装置还包括:
[0094] 所述第一暂停模块,若所述第一区域的所有者是所述基板管理控制器,则所述基本输入输出系统暂停将所述第二字符串存储于所述第一区域;
[0095] 所述第二读取模块,用于使所述基本输入输出系统再次读取所述第一所有者字段,得到所述第一区域的所有者。
[0096] 可选地,所述第一数据字段还包括第一有效性字段;所述第一有效性字段用于表明所述第一区域内的所述第二字符串是否有效;所述基本输入输出系统包括第一修改模块,所述装置还包括:
[0097] 所述第一修改模块,用于使所述基本输入输出系统通过修改所述第一有效性字段表明所述第一区域的所述第二字符串有效。
[0098] 可选地,所述基板管理控制器还包括第三读取模块、第四读取模块、第一提取模块、第一解析模块,所述装置还包括:
[0099] 所述第三读取模块,用于使所述基板管理控制器读取所述第一有效性字段,判断所述第二字符串是否有效;
[0100] 所述第四读取模块,用于使若所述第二字符串有效,所述基板管理控制器读取所述第一所有者字段,得到所述第一区域的所有者;
[0101] 所述第一提取模块,用于使若所述第一区域的所有者是所述基板管理控制器,则所述基板管理控制器提取所述第二字符串;
[0102] 所述第一解析模块,用于使所述基板管理控制器解析所述第二字符串得到所述第一设置选项。
[0103] 可选地,所述第一提取模块,还包括:
[0104] 所述第五读取模块用于使所述基板管理控制器读取所述第一数据字段,得到所述第一字符串的长度以及所述第一字符串是否被压缩的信息;
[0105] 所述第一判断模块,用于使所述基板管理控制器基于所述第一字符串的长度判断所述第一字符串是否超过预设的长度范围;
[0106] 所述第二判断模块,用于使若所述第一字符串的长度超过预设的长度范围,则所述基板管理控制器基于所述第一字符串是否被压缩的信息判断所述第一字符串是否被压缩;
[0107] 所述第二忽略模块,用于若所述第一字符串未被压缩,则所述基板管理控制器忽略所述第二字符串;
[0108] 所述第二提取模块,用于使若所述第一字符串被压缩,则所述基板管理控制器提取所述第二字符串。
[0109] 可选地,所述第一解析模块,还包括:
[0110] 所述第五读取模块,用于使所述基板管理控制器读取所述第一数据字段,得到所述第一字符串的第一校验值;
[0111] 所述第四计算模块,用于使所述基板管理控制器基于所述第一字符串计算所述第一字符串的第二校验值;
[0112] 所述第三判断模块,用于使所述基板管理控制器比对所述第一校验值和所述第二校验值,判断所述第一校验值和所述第二校验值是否相同;
[0113] 所述第二忽略模块,用于使若所述第一校验值和所述第二校验值不相同,则所述基板管理控制器忽略所述第二字符串;
[0114] 所述第二解析模块,用于使若所述第一校验值和所述第二校验值相同,则所述基板管理控制器解析所述第二字符串得到所述第一设置选项。
[0115] 可选地,所述基板管理控制器还包括第二暂停模块和第六读取模块,所述装置还包括:
[0116] 所述第二暂停模块,用于使若所述第一区域的所有者是所述基本输入输出系统,则所述基板管理控制器暂停提取所述第二字符串;
[0117] 所述第六读取模块,用于使所述基板管理控制器再次读取所述第一所有者字段,得到所述第一区域的所有者。
[0118] 本发明实施例还公开了一种基本输入输出系统的处理装置,应用于服务器,所述服务器包括基板管理控制器、基本输入输出系统以及所述基板管理控制器与所述基本输入输出系统之间的共享内存空间;所述基本输入输出系统与所述基板管理控制器通过PCIe通路连接;所述基板管理控制器中存储有预设的第二字符串;所述基本输入输出系统包括第三解析模块、第二调整模块,所述PCIe通路包括第二发送模块,所述基板管理控制器包括第二修改模块、第五存储模块;所述装置包括:
[0119] 所述第二修改模块,用于在所述基板管理控制器向所述基本输入输出系统发送第二设置选项的情况下,所述基板管理控制器修改所述第二字符串,得到所述第二设置选项对应的第三字符串;
[0120] 所述第五存储模块,用于在所述基板管理控制器将所述第三字符串存储于所述共享内存空间;
[0121] 所述第二发送模块,用于在所述PCIe通路将所述第三字符串发送至所述基本输入输出系统;
[0122] 所述第三解析模块,用于在所述基本输入输出系统解析所述第三字符串得到所述第二设置选项;
[0123] 所述第二调整模块,用于所述基本输入输出系统基于所述第二设置选项调整所述基本输入输出系统。
[0124] 可选地,所述共享内存区域还包括第二区域;所述第二区域用于存储所述第三字符串;所述第二区域中还存储有所述第三字符串对应的第二数据字段;所述第二数据字段包括第二所有者字段、第二有效性字段;所述第二所有者字段用于表明所述第二区域的所有者,所述第二有效性字段用于表明所述第二区域内的所述第三字符串是否有效;所述第五存储模块还包括:
[0125] 第七读取模块,用于使所述基板管理控制器读取所述第二所有者字段,得到所述第二区域的所有者;
[0126] 第六存储模块,用于若所述第二区域的所有者是所述基板管理控制器,所述基板管理控制器将所述第三字符串存储于所述第二区域;
[0127] 第三修改模块,用于使所述基板管理控制器通过修改所述第二有效性字段表明所述第三字符串有效。
[0128] 可选地,所述基本输入输出系统还包括第八读取模块、第三提取模块、第四解析模块,所述装置还包括:
[0129] 所述第八读取模块,用于使所述基本输入输出系统读取所述第二有效性字段,判断所述第三字符串是否有效;
[0130] 所述第三提取模块,用于使若所述第三字符串有效,所述基本输入输出系统提取所述第三字符串;
[0131] 可选地,所述共享内存区域还包括第三区域;所述第二调整模块还包括:
[0132] 第四判断模块,用于使所述基本输入输出系统判断所述第二设置选项是否满足预设的格式要求;
[0133] 第三调整模块,用于使若所述第二设置选项满足预设的格式要求,则所述基本输入输出系统基于所述第二设置选项调整所述基本输入输出系统;
[0134] 第二转换模块,用于使若所述第二设置选项不满足预设的格式要求,则所述基本输入输出系统将所述第二设置选项转换为第四字符串,并将所述第四字符串存储于所述第三区域;其中,所述第四字符串用于判断所述第二设置选项是否满足预设的格式要求。
[0135] 可选地,所述装置还包括:
[0136] 所述重启模块,用于若所述第二设置选项满足预设的格式要求,所述服务器重启,以使所述服务器适配于所述第二设置选项。
[0137] 本发明实施例还公开了一种基板管理控制器的处理装置,应用于服务器,所述服务器包括基板管理控制器、基本输入输出系统以及所述基板管理控制器与所述基本输入输出系统之间的共享内存空间;所述基本输入输出系统与所述基板管理控制器通过PCIe通路连接;所述共享内存空间存储有预设的第四字符串;所述PCIe通路包括第三发送模块,所述基板管理控制器包括第四提取模块;所述装置包括:
[0138] 所述第三发送模块,用于在所述基本输入输出系统向所述基板管理控制器发送所述第四字符串的情况下,所述PCIe通路将所述第四字符串发送至所述基板管理控制器;
[0139] 所述第四提取模块,用于使所述基板管理控制器提取所述第四字符串,并基于所述第四字符串判断所述第四字符串对应的第二设置选项是否满足预设的格式要求。
[0140] 本发明实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;
[0141] 所述存储器,用于存放计算机程序;
[0142] 所述处理器,用于执行存储器上所存放的程序时,实现如本发明实施例所述的方法。
[0143] 本发明实施例还公开了一个或多个计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本发明实施例所述的方法。
[0144] 本发明实施例包括以下优点:
[0145] 本发明提供了基板管理控制器、基本输入输出系统的处理方法和装置,应用于服务器,服务器包括基板管理控制器、基本输入输出系统以及基板管理控制器与基本输入输出系统之间共享内存空间;基本输入输出系统还提供设置界面;基本输入输出系统与基板管理控制器通过PCIe通路连接,设置界面用于显示设置选项;在基本输入输出系统向基板管理控制器发送设置选项的情况下,在显示设置界面之前和/或通过设置界面修改设置选项之后,基本输入输出系统采集第一设置选项,并将第一设置选项存储于共享内存空间;PCIe通路将第一设置选项发送至基板管理控制器;基板管理控制器基于第一设置选项调整基板管理控制器。本发明通过PCIe通路传输设置选项,不需要增加硬件模块,又提高了设置选项的传输速度,且传输设置选项的过程更加安全可靠。

附图说明

[0146] 图1是本发明实施例中提供的一种基板管理控制器的处理方法的步骤流程图;
[0147] 图2是本发明实施例中提供的一种基本输入输出系统的处理方法的步骤流程图;
[0148] 图3是本发明实施例中提供的另一种基板管理控制器的处理方法的步骤流程图;
[0149] 图4是本发明实施例中提供的一种基板管理控制器的处理装置的结构框图;
[0150] 图5是本发明实施例中提供的一种基本输入输出系统的处理装置的结构框图;
[0151] 图6是本发明实施例中提供的另一种基板管理控制器的处理装置的结构框图;
[0152] 图7是本发明实施例提供的一种设置界面的示意图;
[0153] 图8是本发明实施例提供的一种第一数据字段的示意图;
[0154] 图9是本发明实施例提供的一种第二字符串的格式示意图;
[0155] 图10是本发明实施例提供的一种第四字符串的格式示意图;
[0156] 图11是本发明实施例提供的一种基本输入输出系统向基板管理控制器发送第一设置选项的流程示意图;
[0157] 图12是本发明实施例提供的一种基板管理控制器接收基本输入输出系统发送的第一设置选项的流程示意图;
[0158] 图13是本发明实施例提供的一种基板管理控制器向基本输入输出系统发送第二设置选项的流程示意图;
[0159] 图14是本发明实施例提供的一种基本输入输出系统处理第二设置选项的流程示意图;
[0160] 图15是本发明实施例中提供的一种电子设备的框图;
[0161] 图16是本发明实施例中提供的一种计算机可读介质的示意图。

具体实施方式

[0162] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0163] 为便于理解本申请实施例的技术方案和技术效果,下面将对本申请的现有技术进行简要说明。
[0164] 基板管理控制器是用于监控和管理服务器的控制器,基本输入输出系统用于为服务器提供最底层的、最直接的硬件设置和控制,以及为基板管理控制器、基本输入输出系统和基本输入输出系统中引导启动的操作系统等提供一些系统参数。其中,系统参数保存于基本输入输出系统的设置模块,用户可根据实际需要修改系统参数。现有技术一般采用Redfish通过USB网卡将基板管理控制器与基本输入输出系统相连以传输设置选项,设置选项的数据量较大,在100KB字节以上。Redfish是一种基于HTTPs服务的管理标准,采用Redfish传输设置选项需要增加USB网卡硬件模块,且传输设置选项的速度较慢。
[0165] 参照图1,示出了本发明实施例中提供的一种基板管理控制器的处理方法的步骤流程图,应用于服务器,所述服务器包括基板管理控制器、基本输入输出系统以及所述基板管理控制器与所述基本输入输出系统之间的共享内存空间;所述基本输入输出系统还提供设置界面;所述基本输入输出系统与所述基板管理控制器通过PCIe通路连接,所述设置界面用于显示设置选项;具体可以包括如下步骤:
[0166] 步骤101,在所述基本输入输出系统向所述基板管理控制器发送第一设置选项的情况下,在显示所述设置界面之前和/或通过所述设置界面修改所述设置选项之后,所述基本输入输出系统采集所述第一设置选项,并将所述第一设置选项存储于所述共享内存空间;
[0167] 在本发明实施例中,服务器包括基板管理控制器、基本输入输出系统和共享内存空间。基本输入输出系统还提供设置界面,设置界面可以显示设置选项。用户通过设置界面观察设置选项,并根据需要修改设置选项以修改设置选项对应的系统参数。设置选项包括设置选项的名字以及设置选项对应的值。不同的设置选项有不同的格式要求,如设置选项的名字以及是/否、设置选项的名字以及1至10中的任一数字等。
[0168] 基板管理控制器与基本输入输出系统之间通过PCIe通路相连接,基本输入输出系统在服务器主机中运行,而基板管理控制器是PCIe通路的一个终端设备,独立于服务器主机运行。PCIe是一种高速串行计算机扩展总线标准。基板管理控制器向基本输入输出系统发送申请地址空间的指令,基本输入输出系统通过基本输入输出系统中的PCIe配置空间中的基地址寄存器向服务器主机申请一段第一地址空间,基板管理控制器中也具有与第一地址空间对应的第二地址空间,第一地址空间与第二地址空间共同构成基板管理控制器与基本输入输出系统之间的共享内存空间。
[0169] 基本输入输出系统的设置模块保存了大量的基板管理控制器的系统参数,用户可根据需要修改设置选项以修改系统参数。在基本输入输出系统需要向基板管理控制器发送设置选项时,在基本输入输出系统进入设置界面之间和/或用户根据实际需要修改设置选项以修改系统参数后,基本输入输出系统采集所有设置选项作为第一设置选项,并将第一设置选项存储于共享内存空间。
[0170] 步骤102,所述PCIe通路将所述第一设置选项发送至所述基板管理控制器;
[0171] 在本发明实施例中,PCIe总线硬件将存储于共享内存空间的第一设置选项发送至基板管理控制器。
[0172] 步骤103,所述基板管理控制器基于所述第一设置选项调整所述基板管理控制器。
[0173] 基板管理控制器在接收到第一设置选项后,会对第一设置选项进行分析,找到与基板管理控制器相关的第一设置选项,并根据与基板管理控制器相关的第一设置选项对应的系统参数对基板管理控制器进行调整。基板管理控制器还会将接收到的第一设置选项保存在文件中,并将文件命名为current_setting.json。
[0174] 在本发明实施例中,服务器包括基板管理控制器、基本输入输出系统以及基板管理控制器与基本输入输出系统之间的共享内存空间;基本输入输出系统与基板管理控制器通过PCIe通路连接;基本输入输出系统还提供设置界面,设置界面用于显示设置选项;在基本输入输出系统向基板管理控制器发送第一设置选项的情况下,在服务器显示设置界面之前和/或通过设置界面修改设置选项之后,基本输入输出系统采集第一设置选项,并将第一设置选项存储于共享内存空间;PCIe通路将第一设置选项发送至基板管理控制器;基板管理控制器基于第一设置选项调整基板管理控制器。本发明通过PCIe通路传输设置选项,不需要增加硬件模块,提供了设置选项的传输速度,且设置选项的传输过程更加安全可靠。
[0175] 进一步地,在上述任一实施例中,所述共享内存空间包括第一区域;步骤101,还包括:
[0176] 子步骤S21,所述基本输入输出系统将采集的所述第一设置选项转换为第一字符串。
[0177] 子步骤S22,所述基本输入输出系统基于所述第一字符串计算所述第一字符串的长度,并判断所述第一字符串的长度是否超出预设的长度范围;
[0178] 子步骤S23,若所述第一字符串的长度未超出所述预设的长度范围,则所述基本输入输出系统将所述第一字符串作为第二字符串;
[0179] 子步骤S24,所述基本输入输出系统将所述第二字符串存储于所述第一区域。
[0180] 在本发明实施例中,共享内存区域包括第一区域,又称为当前设置区域,用于存放基本输入输出系统向基板管理控制器发送的设置选项。
[0181] 基本输入输出系统将采集的第一设置选项转换为Json格式的第一字符串,并计算第一字符串的长度。基本输入输出系统基于第一字符串的长度判断第一字符串是否超过预设的长度范围,即共享内存空间中第一区域的长度范围。若第一字符串在预设的长度范围内,基本输入输出系统将第一字符串作为第二字符串。基本输入输出系统将第二字符串存储于第一区域。本发明实施例将在预设的长度范围的第一字符串存储在第一区域,保证了第一字符串能够顺利存储于第一区域,并顺利发送至基板管理控制器。
[0182] 进一步地,在上述任一实施例中,所述第一区域还存储有所述第一字符串对应的第一数据字段;所述方法还包括:
[0183] 所述基本输入输出系统基于所述第一字符串计算所述第一字符串的第一校验值;
[0184] 所述基本输入输出系统将所述第一字符串的长度和所述第一校验值存储于所述第一数据字段。
[0185] 在本发明实施例中,第一区域还存储有第一字符串对应的第一数据字段,即第一区域的数据头。基本输入输出系统将采集的第一设置选项转换为Json格式的第一字符串,并计算第一字符串的第一校验值。基本输入输出系统还将第一字符串的长度和第一校验值存储于第一数据字段,便于基板管理控制器在接收第一设置选项时,判断第一设置选项对应的第一字符串是否正确。
[0186] 进一步地,在上述任一实施例中,所述方法还包括:
[0187] 若所述第一字符串的长度超出所述预设的长度范围,则所述基本输入输出系统压缩所述第一字符串,得到压缩字符串;
[0188] 所述基本输入输出系统将所述第一字符串是否被压缩的信息存储于所述第一数据字段;
[0189] 所述基本输入输出系统计算所述压缩字符串的长度,并判断所述压缩字符串的长度是否超出所述预设的长度范围;
[0190] 若所述压缩字符串的长度在所述预设的长度范围之内,则所述基本输入输出系统将所述压缩字符串作为所述第二字符串。
[0191] 在本发明实施例中,基本输入输出系统基于第一字符串的长度判断第一字符串是否超过预设的长度范围,即共享内存空间中第一区域的长度范围。若第一字符串的长度超过预设的长度范围,则将第一字符串进行压缩得到压缩字符串。基本输入输出系统再次判断压缩字符串的长度是否超过预设的长度范围。若压缩字符串的长度仍超过预设的长度范围,则基本输入输出系统退出向基板管理控制器发送第一设置选项的流程,并向基本输入输出系统发送错误信息。若压缩字符串的长度在预设的长度范围内,基本输入输出系统将压缩字符串作为第二字符串。基本输入输出系统将第二字符串存储于第一区域。本发明实施例将在预设的长度范围的压缩字符串存储在第一区域,保证了压缩字符串能够顺利存储于第一区域,并顺利发送至基板管理控制器。
[0192] 进一步地,在上述任一实施例中,所述第一数据字段还包括第一所有者字段;所述第一所有者字段用于表明所述第一区域的所有者;所述将所述第二字符串存储于所述第一区域的步骤,还包括:
[0193] 所述基本输入输出系统读取所述第一所有者字段,得到所述第一区域的所有者:
[0194] 若所述第一区域的所有者是所述基本输入输出系统,则所述基本输入输出系统将所述第二字符串存储于所述第一区域。
[0195] 在本发明实施例中,第一数据字段还包括第一所有者字段,第一所有者字段表明第一区域的所有者。在基本输入输出系统将第二字符串存储于第一区域之前,基本输入输出系统读取第一所有者字段,得到第一区域的所有者。若第一区域的所有者是基本输入输出系统或者第一区域未被使用,则基本输入输出系统将第二字符串存储于第一区域,保证了存储过程的顺利进行。
[0196] 进一步地,在上述任一实施例中,所述方法还包括:
[0197] 若所述第一区域的所有者是所述基板管理控制器,则所述基本输入输出系统暂停将所述第二字符串存储于所述第一区域;
[0198] 所述基本输入输出系统再次读取所述第一所有者字段,得到所述第一区域的所有者。
[0199] 在本发明实施例中,第一数据字段还包括第一所有者字段,第一所有者字段表明第一区域的所有者。在基本输入输出系统将第二字符串存储于第一区域之前,基本输入输出系统读取第一所有者字段,得到第一区域的所有者。若第一区域的所有者是基板管理控制器,则基本输入输出系统暂停将第二字符串存储于所述第一区域,睡眠两秒,再次读取所述第一所有者字段,判断第一区域的所有者,直至第一区域的所有者是基本输入输出系统或者第一区域未被使用,基本输入输出系统将第二字符串存储于第一区域。若重试3次后第一区域的所有者是基板管理控制器,则基本输入输出系统退出向基板管理控制器发送第一设置选项的流程,并向基本输入输出系统发送错误信息。
[0200] 进一步地,在上述任一实施例中,所述第一数据字段还包括第一有效性字段;所述第一有效性字段用于表明所述第一区域内的所述第二字符串是否有效;所述将所述第二字符串存储于所述第一区域之后还包括:
[0201] 所述基本输入输出系统通过修改所述第一有效性字段表明所述第一区域的所述第二字符串有效。
[0202] 在本发明实施例中,第一数据字段还包括第一有效性字段,第一有效性字段可以表明第二字符串是否有效。基本输入输出系统将第二字符串存储于第一区域后,基本输入输出系统修改第一有效性字段为1,表明第二字符串有效,便于基板管理控制器在接收第一设置选项时,判断第一设置选项对应的第二字符串是否有效。
[0203] 基本输入输出系统还会修改第一所有者字段,解除基本输入输出系统的使用。
[0204] 进一步地,在上述任一实施例中,步骤103之前,还包括:
[0205] 所述基板管理控制器读取所述第一有效性字段,判断所述第二字符串是否有效;
[0206] 若所述第二字符串有效,所述基板管理控制器读取所述第一所有者字段,判断所述第一区域的所有者;
[0207] 若所述第一区域的所有者是所述基板管理控制器,则所述基板管理控制器提取所述第二字符串;
[0208] 所述基板管理控制器解析所述第二字符串得到所述第一设置选项。
[0209] 在本发明实施例中,在基板管理控制器接收第一设置选项时,首先读取第一有效性字段,若第一有效性字段为0,表明第二字符串无效,则基板管理控制器退出接收第一设置选项的流程。若第一有效性字段为1,表明第二字符串有效,则基板管理控制器读取第一所有者字段,得到第一区域的所有者。若第一区域的所有者是基板管理控制器或者第一区域未被使用,则修改第一所有者字段表明第一区域的所有者是基板管理控制器,并提取第二字符串。基板管理控制器提取第二字符串之后,将第一有效性字段修改为0,并修改第一所有者字段解除基板管理控制器的使用。基板管理控制器解析第二字符串,得到第二字符串对应的第一设置选项。
[0210] 进一步地,在上述任一实施例中,所述提取所述第二字符串,还包括:
[0211] 所述基板管理控制器读取所述第一数据字段,得到所述第一字符串的长度以及所述第一字符串是否被压缩的信息;
[0212] 所述基板管理控制器基于所述第一字符串的长度判断所述第一字符串是否超过预设的长度范围;
[0213] 若所述第一字符串的长度超过预设的长度范围,则所述基板管理控制器基于所述第一字符串是否被压缩的信息判断所述第一字符串是否被压缩;
[0214] 若所述第一字符串未被压缩,则所述基板管理控制器忽略所述第二字符串;
[0215] 若所述第一字符串被压缩,则所述基板管理控制器提取所述第二字符串。
[0216] 在本发明实施例中,在基板管理控制器接收第一设置选项时,基板管理控制器读取第一数据字段,得到第一字符串的长度,以及第一字符串是否被压缩的信息。若第一字符串的长度超过预设的长度范围,且第一字符串未被压缩,则第二字符串出现问题,基板管理控制器不再提取第二字符串。若第一字符串的长度超过预设的长度范围,且第一字符串被压缩,则基板管理控制器提取第二字符串,并对第二字符串解压缩。若第一字符串未超过预设的长度范围,则直接提取第二字符串,保证了基板管理控制器提取的第二字符串正确,基板管理控制器基于第一设置选项调整基板管理控制器的顺利进行。
[0217] 进一步地,在上述任一实施例中,所述解析所述第二字符串得到所述第一设置选项的步骤,还包括:
[0218] 所述基板管理控制器读取所述第一数据字段,得到所述第一字符串的第一校验值;
[0219] 所述基板管理控制器基于所述第一字符串计算所述第一字符串的第二校验值;
[0220] 所述基板管理控制器比对所述第一校验值和所述第二校验值,判断所述第一校验值和所述第二校验值是否相同;
[0221] 若所述第一校验值和所述第二校验值不相同,则所述基板管理控制器忽略所述第二字符串;
[0222] 若所述第一校验值和所述第二校验值相同,则所述基板管理控制器解析所述第二字符串得到所述第一设置选项。
[0223] 在本发明实施例中,在基板管理控制器接收第一设置选项时,基板管理控制器读取第一数据字段,得到第一字符串的第一校验值,并计算第一字符串的第二校验值。基板管理控制器判断所述第一校验值和所述第二校验值是否相同;若第一校验值和第二校验值不相同,则第二字符串出现问题,基板管理控制器忽略所述第二字符串;若第一校验值和第二校验值相同,则基板管理控制器解析第二字符串得到第一设置选项。基板管理控制器找到与基板管理控制器相关的第一设置选项,并根据与基板管理控制器相关的第一设置选项对应的系统参数调用基板管理控制器中相关的功能模块对基板管理控制器进行调整。基板管理控制器还会将第二字符串保存在current_setting.json中。
[0224] 进一步地,在上述任一实施例中,所述方法还包括:
[0225] 若所述第一区域的所有者是所述基本输入输出系统,则所述基板管理控制器暂停提取所述第二字符串;
[0226] 所述基板管理控制器再次读取所述第一所有者字段,得到所述第一区域的所有者。
[0227] 在本发明实施例中,若第一区域的所有者是基本输入输出系统,则基板管理控制器暂停提取第二字符串,睡眠两秒,再次读取所述第一所有者字段,判断第一区域的所有者,直至第一区域的所有者是基板管理控制器或者第一区域未被使用,基板管理控制器提取第二字符串。若重试3次后第一区域的所有者是基本输入输出系统,则基板管理控制器退出提取第二字符串的流程。
[0228] 参照图2,示出了本发明实施例中提供的一种基本输入输出系统的处理方法,应用于服务器,所述服务器包括基板管理控制器、基本输入输出系统以及所述基板管理控制器与所述基本输入输出系统之间的共享内存空间;所述基本输入输出系统与所述基板管理控制器通过PCIe通路连接;所述基板管理控制器中存储有预设的第二字符串;具体可以包括如下步骤:
[0229] 步骤201,在所述基板管理控制器向所述基本输入输出系统发送第二设置选项的情况下,所述基板管理控制器修改所述第二字符串,得到所述第二设置选项对应的第三字符串;
[0230] 在本发明实施例中,服务器包括基板管理控制器、基本输入输出系统。基板管理控制器的磁盘中存储有基本输入输出系统发送的第一设置选项对应的第二字符串,第二字符串存储于current_setting.json文件中。基板管理控制器可以修改从基本输入输出系统接收到的第一设置选项,并将修改后的第一设置选项作为第二设置选项,将第二设置选项发送至基本输入输出系统。在基板管理控制器向基本输入输出系统发送第二设置选项时,基板管理控制器修改current_setting.json文件中用户指定的内容,即第二字符串中用户指定修改的内容,得到future_setting.json文件。future_setting.json文件中存储有第二设置选项对应的第三字符串。
[0231] 步骤202,所述基板管理控制器将所述第三字符串存储于所述共享内存空间;
[0232] 在本发明实施例中,服务器还包括共享内存空间,基板管理控制器可以将第三字符串存储于共享内存空间。
[0233] 步骤203,所述PCIe通路将所述第三字符串发送至所述基本输入输出系统;
[0234] 在本发明实施例中,PCIe总线硬件可以将存储于共享内存空间的第三字符串发送至基本输入输出系统。
[0235] 步骤204,所述基本输入输出系统解析所述第三字符串得到所述第二设置选项;
[0236] 在本发明实施例中,基本输入输出系统可以接收第三字符串,并解析第三字符串,得到多个节点构成的数据链表,每个节点均由第二设置选项对应的参数名称和参数值构成。
[0237] 步骤205,所述基本输入输出系统基于所述第二设置选项调整所述基本输入输出系统。
[0238] 基板管理控制器可以基于第二设置选项对应的系统参数对基板管理控制器进行调整。
[0239] 进一步地,在上述任一实施例中,所述共享内存区域还包括第二区域;所述第二区域用于存储所述第三字符串;所述第二区域中还存储有所述第三字符串对应的第二数据字段;所述第二数据字段包括第二所有者字段、第二有效性字段;所述第二所有者字段用于表明所述第二区域的所有者,所述第二有效性字段用于表明所述第二区域内的所述第三字符串是否有效;所述步骤202还包括:
[0240] 子步骤S31,所述基板管理控制器读取所述第二所有者字段,得到所述第二区域的所有者;
[0241] 子步骤S32,若所述第二区域的所有者是所述基板管理控制器,所述基板管理控制器将所述第三字符串存储于所述第二区域;
[0242] 子步骤S33,所述基板管理控制器通过修改所述第二有效性字段表明所述第三字符串有效。
[0243] 在本发明实施例中,共享内存区域包括第二区域,又称为修改设置区域,用于存放基板管理控制器向基本输入输出系统发送的设置选项,即第三字符串。第二区域中还存储有第三字符串对应的第二数据字段;第二数据字段包括第二所有者字段、第二有效性字段;其中,第二所有者字段用于表明第二区域的所有者,第二有效性字段用于表明第三字符串是否有效。
[0244] 在基板管理控制器向基本输入输出系统发送第三字符串时,基板管理控制器第三字符串,并检查第三字符串是否满足预设的格式要求,设置选项包括设置选项的名字以及设置选项对应的值。不同的设置选项有不同的格式要求,如设置选项的名字以及是/否、设置选项的名字以及1至10中的任一数字等。
[0245] 基板管理控制器还具有屏幕。若第三字符串不满足格式要求,则在基板管理控制器的屏幕上显示错误信息并退出向基本输入输出系统发送第三字符串的流程。若第三字符串不满足格式要求,则基板管理控制器计算第三字符串的长度和第三校验值。
[0246] 在基板管理控制器将第三字符串发送至基本输入输出系统时,基板管理控制器需要将第三字符串存储于第二区域。在基板管理控制器将第三字符串存储于第二区域之前,基板管理控制器读取第二所有者字段,得到第二区域的所有者。若第二区域的所有者是基板管理控制器或者第二区域未被使用,则修改第二所有者字段表明第二区域的所有者是基板管理控制器,并将第三字符串存储于第二区域。基板管理控制器将第三字符串存储于第二区域之后,将第二有效性字段修改为1,并修改第二所有者字段解除基板管理控制器的使用。
[0247] 若第二区域的所有者是基本输入输出系统,则基本输入输出系统暂停将第三字符串存储于所述第二区域,睡眠两秒,再次读取所述第二所有者字段,判断第二区域的所有者,直至第二区域的所有者是基板管理控制器或者第二区域未被使用,基板管理控制器将第三字符串存储于第二区域。若重试3次后第二区域的所有者是基本输入输出系统,则基板管理控制器退出向基本输入输出系统发送第二设置选项的流程。
[0248] 进一步地,在上述任一实施例中,步骤204之前,所述方法还包括:
[0249] 所述基本输入输出系统读取所述第二有效性字段,判断所述第三字符串是否有效;
[0250] 若所述第三字符串有效,所述基本输入输出系统提取所述第三字符串;
[0251] 在本发明实施例中,基本输入输出系统循环查看修改设置区域即第二区域中的第二有效性字段,当第二有效性字段变为1之后,基本输入输出系统读取第二所有者字段,得到第二区域的所有者。若第二区域的所有者是基本输入输出系统或者第二区域未被使用,则修改第二所有者字段表明第二区域的所有者是基本输入输出系统,并提取第三字符串。基本输入输出系统提取第三字符串之后,将第二有效性字段修改为0,并修改第二所有者字段解除基本输入输出系统的使用。基本输入输出系统解析第三字符串,得到多个节点构成的数据链表,每个节点均由第二设置选项对应的参数名称和参数值构成。
[0252] 进一步地,在上述任一实施例中,所述共享内存区域还包括第三区域;所述步骤205还包括:
[0253] 子步骤S31,所述基本输入输出系统判断所述第二设置选项是否满足预设的格式要求;
[0254] 子步骤S32,若所述第二设置选项满足预设的格式要求,则所述基本输入输出系统基于所述第二设置选项调整所述基本输入输出系统;
[0255] 子步骤S33,若所述第二设置选项不满足预设格式要求,则所述基本输入输出系统将所述第二设置选项转换为第四字符串,并将所述第四字符串存储于所述第三区域;其中,所述第四字符串用于判断所述第二设置选项是否满足预设的格式要求。
[0256] 在本发明实施例中,基本输入输出系统解析第三字符串,得到多个节点构成的数据链表,每个节点均由第二设置选项对应的参数名称和参数值构成。基本输入输出系统校验每个节点的参数名称与参数的值,若符合设置选项的格式要求,则将其放入非易失存储介质的指定位置。在下一次基本输入输出系统启动时,基本输入输出系统可以从非易失存储介质中读出到符合要求的第二设置选项对应的参数名称和参数值,以指导基本输入输出系统运行。若不符合设置选项的格式要求,则将不符合要求的第二设置选项对应的参数名称和参数值以及不符合的原因转换为第四字符串,并将第四字符串放入错误列表中。
[0257] 在本发明实施例中,共享内存空间还包括第三区域。在基本输入输出系统将第四字符串发送至基板管理控制器时,基本输入输出系统需要将第四字符串存储于第三区域,即设置结果区域。在基本输入输出系统将第四字符串存储于第三区域之前,基本输入输出系统读取第三区域的所有者字段,得到第三区域的所有者。若第三区域的所有者是基本输入输出系统或者第三区域未被使用,则修改第三区域的所有者字段表明第三区域的所有者是基本输入输出系统,并将第四字符串存储于第三区域。基本输入输出系统将第四字符串存储于第三区域之后,将第三区域的有效性字段修改为1,并修改第三区域的所有者字段解除基本输入输出系统的使用。
[0258] 进一步地,在上述任一实施例中,所述方法还包括:
[0259] 若所述第二设置选项符合设置选项的格式要求,所述服务器重启,以使所述服务器适配于所述第二设置选项。
[0260] 在本发明实施例中,若第二设置选项符合设置选项的格式要求,则由于第二设置选项对应的系统参数可能与正在运行的系统参数不同,所以需要重新启动服务器,以适配第二设置选项对应的系统参数。
[0261] 参照图3,示出了本发明实施例提供的一种基板管理控制器的处理方法,应用于服务器,所述服务器包括基板管理控制器、基本输入输出系统以及所述基板管理控制器与所述基本输入输出系统之间的共享内存空间;所述基本输入输出系统与所述基板管理控制器通过PCIe通路连接;所述共享内存空间存储有预设的第四字符串;具体步骤如下:
[0262] 步骤301,在所述基本输入输出系统向所述基板管理控制器发送所述第四字符串的情况下,所述PCIe通路将所述第四字符串发送至所述基板管理控制器;
[0263] 步骤302,所述基板管理控制器提取所述第四字符串,并基于所述第四字符串判断所述第四字符串对应的第二设置选项是否满足预设的格式要求。
[0264] 在本发明实施例中,服务器包括基板管理控制器、基本输入输出系统和共享内存空间。基板管理控制器和基本输入输出系统之间通过PCIe通路连接,共享内存空间包括第三区域,第三区域中还存储有第四字符串,PCIe通路可以将第四字符串发送至基板管理控制器。基板管理控制器循环查看第三区域中的有效性字段,当有效性字段变为1之后,基板管理控制器读取第三区域中所有者字段,得到第三区域的所有者。若第三区域的所有者是基板管理控制器或者第三区域未被使用,则修改第三区域中的所有者字段表明第三区域的所有者是基板管理控制器,并提取第四字符串。基板管理控制器提取第四字符串之后,将第三区域的有效性字段修改为0,并修改第三区域的所有者字段解除基板管理控制器的使用。基板管理控制器解析第四字符串,若第四字符串表明第二设置选项有问题,则通过基板管理控制器的屏幕向用户显示设置错误的参数名与错误原因。若第二设置选项无问题,则向用户展示设置成功,并将第四字符串保存为文件,命名为setting_result.json。
[0265] 需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0266] 参照图4,示出了本发明实施例中提供的一种基板管理控制器的处理装置的结构框图,具体可以包括如下模块:
[0267] 所述采集模块401,用于在所述基本输入输出系统向所述基板管理控制器发送第一设置选项的情况下,在显示所述设置界面之前和/或通过所述设置界面修改所述设置选项之后,所述基本输入输出系统采集所述第一设置选项,并将所述第一设置选项存储于所述共享内存空间;
[0268] 所述第一发送模块402,用于使所述PCIe通路将所述第一设置选项发送至所述基板管理控制器;
[0269] 所述第一调整模块403,用于使所述基板管理控制器基于所述第一设置选项调整所述基板管理控制器。
[0270] 可选地,所述共享内存空间包括第一区域;所述采集模块还包括:
[0271] 所述第一转换模块,用于使所述基本输入输出系统将采集的所述第一设置选项转换为第一字符串;
[0272] 所述第一计算模块,用于使所述基本输入输出系统基于所述第一字符串计算所述第一字符串的长度,并判断所述第一字符串的长度是否超出预设的长度范围;
[0273] 所述第一作为模块,用于使若所述第一字符串的长度未超出所述预设的长度范围,则所述基本输入输出系统将所述第一字符串作为第二字符串;
[0274] 所述第一存储模块,用于使所述基本输入输出系统将所述第二字符串存储于所述第一区域。
[0275] 可选地,所述第一区域还存储有所述第一字符串对应的第一数据字段;所述基本输入输出系统包括第二计算模块和第二存储模块,所述装置还包括:
[0276] 所述第二计算模块,用于使所述基本输入输出系统基于所述第一字符串计算所述第一字符串的第一校验值;
[0277] 所述第二存储模块,用于使所述基本输入输出系统将所述第一字符串的长度和所述第一校验值存储于所述第一数据字段。
[0278] 可选地,所述基本输入输出系统包括压缩模块、第三存储模块、第三计算模块和第二作为模块,所述装置还包括:
[0279] 所述压缩模块,用于若所述第一字符串的长度超出所述预设的长度范围,则所述基本输入输出系统压缩所述第一字符串,得到压缩字符串;
[0280] 所述第三存储模块,用于使所述基本输入输出系统将所述第一字符串是否被压缩的信息存储于所述第一数据字段;
[0281] 所述第三计算模块,用于使所述基本输入输出系统计算所述压缩字符串的长度,并判断所述压缩字符串的长度是否超出所述预设的长度范围;
[0282] 所述第二作为模块,用于若所述压缩字符串的长度在所述预设的长度范围之内,则所述基本输入输出系统将所述压缩字符串作为所述第二字符串。
[0283] 可选地,所述第一数据字段还包括第一所有者字段;所述第一所有者字段用于表明所述第一区域的所有者;所述第一存储模块还包括:
[0284] 所述第一读取模块,用于使所述基本输入输出系统读取所述第一所有者字段,得到所述第一区域的所有者:
[0285] 所述第四存储模块,用于使若所述第一区域的所有者是所述基本输入输出系统,则所述基本输入输出系统将所述第二字符串存储于所述第一区域。
[0286] 可选地,所述基本输入输出系统包括第一暂停模块和第二读取模块,所述装置还包括:
[0287] 所述第一暂停模块,若所述第一区域的所有者是所述基板管理控制器,则所述基本输入输出系统暂停将所述第二字符串存储于所述第一区域;
[0288] 所述第二读取模块,用于使所述基本输入输出系统再次读取所述第一所有者字段,得到所述第一区域的所有者。
[0289] 可选地,所述第一数据字段还包括第一有效性字段;所述第一有效性字段用于表明所述第一区域内的所述第二字符串是否有效;所述基本输入输出系统包括第一修改模块,所述装置还包括:
[0290] 所述第一修改模块,用于使所述基本输入输出系统通过修改所述第一有效性字段表明所述第一区域的所述第二字符串有效。
[0291] 可选地,所述基板管理控制器还包括第三读取模块、第四读取模块、第一提取模块、第一解析模块,所述装置还包括:
[0292] 所述第三读取模块,用于使所述基板管理控制器读取所述第一有效性字段,判断所述第二字符串是否有效;
[0293] 所述第四读取模块,用于使若所述第二字符串有效,所述基板管理控制器读取所述第一所有者字段,得到所述第一区域的所有者;
[0294] 所述第一提取模块,用于使若所述第一区域的所有者是所述基板管理控制器,则所述基板管理控制器提取所述第二字符串;
[0295] 所述第一解析模块,用于使所述基板管理控制器解析所述第二字符串得到所述第一设置选项。
[0296] 可选地,所述第一提取模块,还包括:
[0297] 所述第五读取模块用于使所述基板管理控制器读取所述第一数据字段,得到所述第一字符串的长度以及所述第一字符串是否被压缩的信息;
[0298] 所述第一判断模块,用于使所述基板管理控制器基于所述第一字符串的长度判断所述第一字符串是否超过预设的长度范围;
[0299] 所述第二判断模块,用于使若所述第一字符串的长度超过预设的长度范围,则所述基板管理控制器基于所述第一字符串是否被压缩的信息判断所述第一字符串是否被压缩;
[0300] 所述第二忽略模块,用于若所述第一字符串未被压缩,则所述基板管理控制器忽略所述第二字符串;
[0301] 所述第二提取模块,用于使若所述第一字符串被压缩,则所述基板管理控制器提取所述第二字符串。
[0302] 可选地,所述第一解析模块,还包括:
[0303] 所述第五读取模块,用于使所述基板管理控制器读取所述第一数据字段,得到所述第一字符串的第一校验值;
[0304] 所述第四计算模块,用于使所述基板管理控制器基于所述第一字符串计算所述第一字符串的第二校验值;
[0305] 所述第三判断模块,用于使所述基板管理控制器比对所述第一校验值和所述第二校验值,判断所述第一校验值和所述第二校验值是否相同;
[0306] 所述第二忽略模块,用于使若所述第一校验值和所述第二校验值不相同,则所述基板管理控制器忽略所述第二字符串;
[0307] 所述第二解析模块,用于使若所述第一校验值和所述第二校验值相同,则所述基板管理控制器解析所述第二字符串得到所述第一设置选项。
[0308] 可选地,所述基板管理控制器还包括第二暂停模块和第六读取模块,所述装置还包括:
[0309] 所述第二暂停模块,用于使若所述第一区域的所有者是所述基本输入输出系统,则所述基板管理控制器暂停提取所述第二字符串;
[0310] 所述第六读取模块,用于使所述基板管理控制器再次读取所述第一所有者字段,得到所述第一区域的所有者。
[0311] 参照图5,示出了本发明实施例中提供的一种基本输入输出系统的处理装置的结构框图,具体可以包括如下模块:
[0312] 所述第二修改模块501,用于在所述基板管理控制器向所述基本输入输出系统发送第二设置选项的情况下,所述基板管理控制器修改所述第二字符串,得到所述第二设置选项对应的第三字符串;
[0313] 所述第五存储模块502,用于在所述基板管理控制器将所述第三字符串存储于所述共享内存空间;
[0314] 所述第二发送模块503,用于在所述PCIe通路将所述第三字符串发送至所述基本输入输出系统;
[0315] 所述第三解析模块504,用于在所述基本输入输出系统解析所述第三字符串得到所述第二设置选项;
[0316] 所述第二调整模块505,用于所述基本输入输出系统基于所述第二设置选项调整所述基本输入输出系统。
[0317] 可选地,所述共享内存区域还包括第二区域;所述第二区域用于存储所述第三字符串;所述第二区域中还存储有所述第三字符串对应的第二数据字段;所述第二数据字段包括第二所有者字段、第二有效性字段;所述第二所有者字段用于表明所述第二区域的所有者,所述第二有效性字段用于表明所述第二区域内的所述第三字符串是否有效;所述第五存储模块还包括:
[0318] 第七读取模块,用于使所述基板管理控制器读取所述第二所有者字段,得到所述第二区域的所有者;
[0319] 第六存储模块,用于若所述第二区域的所有者是所述基板管理控制器,所述基板管理控制器将所述第三字符串存储于所述第二区域;
[0320] 第三修改模块,用于使所述基板管理控制器通过修改所述第二有效性字段表明所述第三字符串有效。
[0321] 可选地,所述基本输入输出系统还包括第八读取模块、第三提取模块、第四解析模块,所述装置还包括:
[0322] 所述第八读取模块,用于使所述基本输入输出系统读取所述第二有效性字段,判断所述第三字符串是否有效;
[0323] 所述第三提取模块,用于使若所述第三字符串有效,所述基本输入输出系统提取所述第三字符串;
[0324] 可选地,所述共享内存区域还包括第三区域;所述第二调整模块还包括:
[0325] 第四判断模块,用于使所述基本输入输出系统判断所述第二设置选项是否满足预设的格式要求;
[0326] 第三调整模块,用于使若所述第二设置选项满足预设的格式要求,则所述基本输入输出系统基于所述第二设置选项调整所述基本输入输出系统;
[0327] 第二转换模块,用于使若所述第二设置选项不满足预设的格式要求,则所述基本输入输出系统将所述第二设置选项转换为第四字符串,并将所述第四字符串存储于所述第三区域;其中,所述第四字符串用于判断所述第二设置选项是否满足预设的格式要求。
[0328] 可选地,所述装置还包括:
[0329] 所述重启模块,用于若所述第二设置选项满足预设的格式要求,所述服务器重启,以使所述服务器适配于所述第二设置选项。
[0330] 参照图6,示出了本发明实施例中提供的另一种基板管理控制器的处理装置的结构框图,具体可以包括如下模块:
[0331] 所述第三发送模块601,用于在所述基本输入输出系统向所述基板管理控制器发送所述第四字符串的情况下,所述PCIe通路将所述第四字符串发送至所述基板管理控制器;
[0332] 所述第四提取模块602,用于使所述基板管理控制器提取所述第四字符串,并基于所述第四字符串判断所述第四字符串对应的第二设置选项是否满足预设的格式要求。
[0333] 对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0334] 作为本发明提供的一种示例,图7示出了本发明实施例提供的一种设置界面的示意图,设置界面用于显示设置选项,设置选项用于保存系统参数。设置选项包括设置选项的名字以及设置选项对应的值。不同的设置选项有不同的格式要求,如设置选项的名字以及是/否、设置选项的名字以及1至10中的任一数字等。图7中的Boot Mode(启动模式)为设置选项,Legacy Support(遗留支持)为Boot Mode对应的值;Boot Priority(启动优先级)为设置选项,UEFI First(统一的可扩展固件接口优先)为Boot Priority对应的值;USB Boot(USB引导)为设置选项,Enabled(使能够)为USB Boot对应的值;UEFI Boot priority order(uefi引导优先级顺序)为设置选项,Windows Boot Manager(windows启动管理器)为UEFI Boot priority order对应的值;Legacy Boot priority order(旧版启动优先级顺序)为设置选项,HGST HTS545032A7E380 Realtek PXE BO3 D00为UEFI Boot priority order对应的值。
[0335] 作为本发明提供的一种示例,图8示出了本发明实施例提供的一种第一数据字段的示意图。typedef struct是定义一个标识符及关键字的别名,无具体含义。第一数据字段,即第一区域的数据头,包括UserAndOwner(所有者),FileType(文件类型),ValidFlag(有效性),Reserve(保留),FileSize(文件大小),Crc(校验值)。其中,UserAndOwner(所有者)为基板管理控制器与基本输入输出系统之间的第一区域的所有者。若第一区域的所有者为基板管理控制器,则基本输入输出系统则无法向第一区域存储字符串;若第一区域的所有者为基本输入输出系统,则基板管理控制器无法向第一区域存储字符串,若第一区域的没有所有者,则基板管理控制器和基本输入输出系统均可以向第一区域存储字符串。在基板管理控制器或基本输入输出系统向第一区域存储字符串时需要修改所有者字段表明第一区域的所有者。FileType(文件类型)可以表明第一字符串是否经过压缩,若第一字符串经过压缩,则FileType为1,若第一字符串未经压缩,则FileType为1。ValidFlag(有效性)可以表明第二字符串是否有效。当基本输入输出系统向基板管理控制器发送第二字符串结束时,将ValidFlag修改为1,表示第二字符串有效。当基板管理控制器读取到ValidFlag变为1后,开始解析第二字符串。Reserve(保留)为保留字段,没有意义。FileSize(文件大小)表示第二字符串的大小。Crc(校验值)为第一字符串的第一校验值。
[0336] 作为本发明提供的一种示例,图9示出了本发明实施例提供的一种第二字符串的格式示意图。Parameter name1(参数名字1)为设置选项,Parameter value1(参数值1)为Parameter name1对应的值;Parameter name2(参数名字2)为设置选项,Parameter value2(参数值2)为Parameter name2对应的值。
[0337] 作为本发明提供的一种示例,图10示出了本发明实施例提供的一种第四字符串的格式示意图。设置正确时的数据格式为{"Result" : "EFI_SUCCESS"};设置错误的数据格式如图10所示:Parameter name1(参数名字1)为设置选项,失败原因为Parameter name1对应的值;Parameter name2(参数名字2)为设置选项,失败原因为Parameter name2对应的值。
[0338] 参见图11示出了本发明实施例提供的一种基本输入输出系统向基板管理控制器发送第一设置选项的流程示意图。
[0339] 步骤1101,进入设置界面之前或用户修改设置选项之后,基本输入输出系统收集设置选项数据;
[0340] 步骤1102,基本输入输出系统将设置选项数据转化为Json字符串格式;
[0341] 步骤1103,基本输入输出系统计算字符串长度与校验值;
[0342] 步骤1104,若字符串长度是否过大,基本输入输出系统进行压缩并将数据头的文件类型置为1;若压缩后仍过大,进行步骤1109。
[0343] 步骤1105,基本输入输出系统判断共享内存是否被占用。若共享内存被占用,且重试次数小于3次,睡眠两秒,重新判断共享内存是否被占用;若重试次数大于3次,进行步骤1109。若共享内存未被占用,占用共享内存;
[0344] 步骤1106,基本输入输出系统写入数据头与字符串到共享内存空间;
[0345] 步骤1107,基本输入输出系统将数据头的有效性字段置为1;
[0346] 步骤1108,基本输入输出系统解除共享内存占用。
[0347] 步骤1109,结束。
[0348] 参见图12示出了本发明实施例提供的一种基板管理控制器接收基本输入输出系统发送的第一设置选项的流程示意图。
[0349] 步骤1201,开始;
[0350] 步骤1202,基板管理控制器查看数据头中的有效性字段;
[0351] 步骤1203,基板管理控制器判断数据是否有效;若数据有效,进行步骤1204;若数据无效,进行步骤
[0352] 步骤1204,基板管理控制器等待BIOS占用结束;
[0353] 步骤1205,基板管理控制器占用共享内存;
[0354] 步骤1206,基板管理控制器将数据头与数据体读出;
[0355] 步骤1207,基板管理控制器将数据头的有效性字段置为0;
[0356] 步骤1208,基板管理控制器解除占用共享内存;
[0357] 步骤1209,基板管理控制器判断文件长度是否超长;若文件类型不超长,进行步骤1211,若文件长度超长,判断文件类型是否为压缩。若文件类型为压缩,进行步骤1210;若文件类型不为压缩,进行步骤1216;
[0358] 步骤1210,基板管理控制器将数据解压缩;
[0359] 步骤1211,基板管理控制器判断文件校验是否成功;若成功,进行步骤1201;若失败,进行步骤1216;
[0360] 步骤1212,基板管理控制器解析Json字符串;
[0361] 步骤1213,基板管理控制器查找BMC相关的设置;
[0362] 步骤1214,基板管理控制器调用相关功能模块相应设置;
[0363] 步骤1215,基板管理控制器将Json字符串保存到文件cumrent_setting.jsom中;
[0364] 步骤1216,结束。
[0365] 参见图13示出了本发明实施例提供的一种基板管理控制器向基本输入输出系统发送第二设置选项的流程示意图。
[0366] 步骤1301,开始;
[0367] 步骤1302,BMC读取数据,future_setting.json内容格式是否正确;
[0368] 步骤1303,基板管理控制器校验future_setting.jaon内容格式是否正确;
[0369] 步骤1304,若内容格式正确,基板管理控制器计算Json文件的长度与校验值;若内容格式不正确,进行步骤1309;
[0370] 步骤1305,基板管理控制器判断共享内存是否被占用。若共享内存被占用,且重试次数小于3次,睡眠两秒,重新判断共享内存是否被占用;若重试次数大于3次,进行步骤1309。若共享内存未被占用,占用共享内存;
[0371] 步骤1306,基板管理控制器写入数据头与字符串到内存空间;
[0372] 步骤1307,基板管理控制器将数据头的有效性字段置为1;
[0373] 步骤1308,基板管理控制器解除共享内存占用。
[0374] 步骤1309,结束。
[0375] 参见图14示出了本发明实施例提供的一种基本输入输出系统处理第二设置选项的流程示意图。
[0376] 步骤1401,开始;
[0377] 步骤1402,基本输入输出系统判断数据是否有效;
[0378] 步骤1403,基本输入输出系统读取数据;
[0379] 步骤1404,基本输入输出系统解析数据;
[0380] 步骤1405,基本输入输出系统校验数据中的参数与参数的值是否正确;
[0381] 步骤1406,若校验数据中的参数与参数的值正确,基本输入输出系统将参数放入非易失存储介质中相应位置中;若校验数据中的参数与参数的值不正确,将参数与错误原因放入错误列表中;
[0382] 步骤1407,基本输入输出系统判断校验数据中的参数是否是最后一个参数;
[0383] 步骤1408,基本输入输出系统将错误列表结构化为Json格式;
[0384] 步骤1409,基本输入输出系统将Json格式的错误列表转换成字符串;
[0385] 步骤1410,基本输入输出系统将字符串放入共享内存中;
[0386] 步骤1411,服务器重新启动;
[0387] 步骤1412,结束。
[0388] 另外,本发明实施例还提供一种电子设备,如图15所示,包括处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信,
[0389] 存储器1503,用于存放计算机程序;
[0390] 处理器1501,用于执行存储器1503上所存放的程序时,实现本发明实施例所述的方法。
[0391] 上述终端提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0392] 通信接口用于上述终端与其他设备之间的通信。
[0393] 存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non‑volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0394] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0395] 如图16所示,在本发明提供的又一实施例中,还提供了一种计算机可读存储介质1601,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行本发明实施例所述的方法。
[0396] 在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本发明实施例所述的方法。
[0397] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
[0398] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0399] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0400] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。