BIOS与BMC命令交互的方法、BIOS及BMC与流程

文档序号:17357291发布日期:2019-04-09 21:48阅读:2358来源:国知局
BIOS与BMC命令交互的方法、BIOS及BMC与流程

本发明涉及计算机技术领域,特别是涉及一种bios与bmc命令交互的方法、装置、系统、一种bios及一种bmc。



背景技术:

bios(basicinputoutputsystem,基础输入输出系统)是一组固化到计算机内主板上一个rom芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从cmos中读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。此外,bios还向作业系统提供一些系统参数。系统硬件的变化是由bios隐藏,程序使用bios功能而不是直接控制硬件。现代作业系统会忽略bios提供的抽象层并直接控制硬件组件。

bmc(baseboardmanagementcontroller,基板管理控制器)支持行业标准的ipmi规范。该规范描述了已经内置到主板上的管理功能。这些功能包括:本地和远程诊断、控制台支持、配置管理、硬件管理和故障排除。

目前,bios与bmc之间的通信,主要使用的是ipmi,包括pei和dxe(包括dxe后面的)2个阶段,用的是不同的ipmi函数。虽然使用的是ipmi,但是会有两个通道,分别是kcs、bt,一般使用kcs通道。但是bmc不能主动与bios通信,bios会发送ipmi命令给bmc,bmc如果成功接收的话,将向bios返回响应消息。

在上述通信过程中,若出现通信故障一般会出现以下四种情况:确认bios是否发送了ipmi命令给bmc,可以查看bmc返回的completioncode;确认bmc是否收到了bios发送的ipmi命令;如果bios发送了ipmi命令,但是bmc未接收:可能是bmc的ipmi进程正处于忙碌状态,所以丢掉了这条ipmi命令(bios这边如果发送失败,可以尝试多次发送。另外,可以稍微调高kcs通道的延时);如果涉及到了底层协议的具体实现,一条ipmi命令通常涉及到2个底层实现函数,senddatatobmcport()和receivebmcdatafromport()。接收时,bios从kcs的i/o端口读取数据,读完后,会检测kcs寄存器中obf状态寄存器,如果bmc没有写数据,将计数减1,延时5ms,并重试;当bmc一直不写数据时,计数到0,就认为bmc有故障,返回deviceerror。也即,一旦出现通信故障,都要排查bios和bmc的问题,比较繁琐。



技术实现要素:

本发明的目的是提供一种bios与bmc命令交互的方法,用于解决bios与bmc通信中发生故障时排查过程繁琐耗时的问题。

为解决上述技术问题,本发明提供一种bios与bmc命令交互的方法,应用于bios,所述方法包括:

向bmc发送ipmi命令;

判断所述ipmi命令是否发送成功,如果是,则生成指示所述ipmi命令发送成功的第一标识信息;

在所述bmc接收到所述ipmi命令并执行之后,接收所述bmc发送的返回信息。

可选的,在所述bmc接收到所述ipmi命令之后还包括:

所述bmc判断所述ipmi命令是否接收成功,如果是,则生成指示所述ipmi命令接收成功的第二标识信息;

接收所述bmc发送的所述第二标识信息。

可选的,所述生成指示所述ipmi命令发送成功的第一标识信息包括:

在显示界面显示所述第一标识信息,所述第一标识信息为预设第一数值。

本发明还提供一种bios与bmc命令交互的装置,应用于bios,所述装置包括:

命令发送模块,用于向bmc发送ipmi命令;

第一标识模块,用于判断所述ipmi命令是否发送成功,如果是,则生成指示所述ipmi命令发送成功的第一标识信息;

返回信息接收模块,用于在所述bmc接收到所述ipmi命令并执行之后,接收所述bmc发送的返回信息。

本发明还提供一种bios,包括:

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

第一处理器,用于执行所述计算机程序时实现前述公开的bios与bmc命令交互的方法的步骤。

本发明还提供一种bios与bmc命令交互的方法,应用于bmc,所述方法包括:

接收bios发送的ipmi命令;

判断所述ipmi命令是否接收成功,如果是,则生成指示所述ipmi命令接收成功的第二标识信息;

向所述bios发送所述第二标识信息;

按照接收到的所述ipmi命令执行,向所述bios发送返回信息。

可选的,所述生成指示所述ipmi命令接收成功的第二标识信息包括:

在显示界面显示所述第二标识信息,所述第二标识信息为预设第二数值。

本发明还提供一种bios与bmc命令交互的装置,应用于bmc,所述装置包括:

命令接收模块,用于接收bios发送的ipmi命令;

第二标识模块,用于判断所述ipmi命令是否接收成功,如果是,则生成指示所述ipmi命令接收成功的第二标识信息;

标识信息发送模块,用于向所述bios发送所述第二标识信息;

返回信息发送模块,用于按照接收到的所述ipmi命令执行,向所述bios发送返回信息。

本发明还提供一种bmc,其特征在于,包括:

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

第二处理器,用于执行所述计算机程序时实现前述公开的bios与bmc命令交互的方法的步骤。

本发明还提供一种bios与bmc命令交互的系统,包括:bios与bmc;

其中,所述bios用于向所述bmc发送ipmi命令;判断所述ipmi命令是否发送成功,如果是,则生成指示所述ipmi命令发送成功的第一标识信息;

所述bmc用于接收bios发送的ipmi命令;判断所述ipmi命令是否接收成功,如果是,则生成指示所述ipmi命令接收成功的第二标识信息;向所述bios发送所述第二标识信息;按照接收到的所述ipmi命令执行,并向所述bios发送返回信息。

本发明所提供的bios与bmc命令交互的方法,应用于bios,向bmc发送ipmi命令;判断所述ipmi命令是否发送成功,如果是,则生成指示所述ipmi命令发送成功的第一标识信息;在所述bmc接收到所述ipmi命令并执行之后,接收所述bmc发送的返回信息。本发明通过用于表征ipmi命令发送成功的第一标识信息,在bios与bmc命令交互过程中若发生故障,能够快速定位到故障区域,避免了排查故障的繁琐过程,从而节省开发时间,提高研发效率和问题处理速率。此外,本发明还提供了具有上述技术效果的bios与bmc命令交互的装置、系统及一种bios、一种bmc。

附图说明

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

图1为本发明所提供的一种bios与bmc命令交互的方法的流程图;

图2为本发明所提供的另一种bios与bmc命令交互的方法的流程图;

图3为本发明实施例提供的bios与bmc命令交互的装置的结构框图;

图4为本发明所提供的又一种bios与bmc命令交互的方法的流程图;

图5为本发明实施例提供的bios与bmc命令交互的装置的结构框图;

图6为本发明实施例提供的bios与bmc命令交互的系统示意图。

具体实施方式

现有技术中,bios与bmc命令交互过程中一旦出现通信故障,均需要排查bios和bmc的问题,比较繁琐。鉴于此,本发明的核心是提供一种bios与bmc命令交互的方法、装置、系统及一种bios、一种bmc,以解决上述问题。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1所示,图1为本发明所提供的一种bios与bmc命令交互的方法的流程图。

本实施例所提供的bios与bmc命令交互的方法,应用于bios,包括:

步骤s101:向bmc发送ipmi命令;

本实施例中,bios向bmc发送用于通信的ipmi命令。

步骤s102:判断所述ipmi命令是否发送成功,如果是,则生成指示所述ipmi命令发送成功的第一标识信息;

在本实施例发送ipmi命令之后,判断ipmi命令是否发送成功。如果判定发送成功,则生成第一标识信息,其中,第一标识信息表征ipmi命令已发送成功。

可以理解的是,本实施例在判断ipmi命令是否发送成功后,对于发送成功将生成第一标识信息,也即,若为生成第一标识信息,则可判断bios出现故障,进一步对bios代码进行分析,以定位到故障区域并处理故障。

步骤s103:在所述bmc接收到所述ipmi命令并执行之后,接收所述bmc发送的返回信息。

进一步地,ipmi命令发送成功后,bmc按照接收到的ipmi命令执行,并将执行结果返回至bios。

本发明所提供的bios与bmc命令交互的方法,应用于bios,向bmc发送ipmi命令;判断所述ipmi命令是否发送成功,如果是,则生成指示所述ipmi命令发送成功的第一标识信息;在所述bmc接收到所述ipmi命令并执行之后,接收所述bmc发送的返回信息。本发明通过用于表征ipmi命令发送成功的第一标识信息,在bios与bmc命令交互过程中若发生故障,能够快速定位到故障区域,避免了排查故障的繁琐过程,从而节省开发时间,提高研发效率和问题处理速率。

参见图2所示,图2为本发明所提供的另一种bios与bmc命令交互的方法的流程图。

本实施例所提供的bios与bmc命令交互的方法,应用于bios,包括:

步骤s201:向bmc发送ipmi命令;

步骤s202:判断所述ipmi命令是否发送成功,如果是,则生成指示所述ipmi命令发送成功的第一标识信息;

步骤s203:在所述bmc接收到所述ipmi命令之后,所述bmc判断所述ipmi命令是否接收成功,如果是,则生成指示所述ipmi命令接收成功的第二标识信息;

本实施例中,所述bmc接收到ipmi命令之后,将判断ipmi命令是否成功接收,如果是,则生成第二标识信息,其中,第二标识信息用于表征ipmi命令接收成功。

具体地,本实施例判断ipmi命令是否成功接收,成功接收则生成第二标识信息。也即,若未生成第二标识信息,则可判定bmc存在故障,进一步对bmc进行故障定位与排查。

步骤s204:接收所述bmc发送的所述第二标识信息;

进一步地,若bmc生成第二标识信息,则将所述第二标识信息返回至bios,以通知bios当前bmc已成功接收到ipmi命令。

步骤s205:在所述bmc按照所述ipmi命令执行之后,接收所述bmc发送的返回信息。

在上述实施例公开的bios与bmc命令交互的方法中,针对生成第一标识信息的步骤进行进一步阐述,具体为:在显示界面显示所述第一标识信息,所述第一标识信息为预设第一数值。

可以理解的是,在判定ipmi命令发送成功之后,生成用于指示命令发送成功的第一标识信息,并将所述第一标识信息进行显示。其中,所述第一标识信息可以具体为预设第一数值,例如,利用数值1作为第一标识信息来表征命令发送成功。

下面对本发明实施例提供的bios与bmc命令交互的装置进行介绍,下文描述的bios与bmc命令交互的装置与上文描述的bios与bmc命令交互的方法可相互对应参照。

图3为本发明实施例提供的bios与bmc命令交互的装置的结构框图,所述bios与bmc命令交互的装置应用于bios,参照图3bios与bmc命令交互的装置可以包括:

命令发送模块100,用于向bmc发送ipmi命令;

第一标识模块200,用于判断所述ipmi命令是否发送成功,如果是,则生成指示所述ipmi命令发送成功的第一标识信息;

返回信息接收模块300,用于在所述bmc接收到所述ipmi命令并执行之后,接收所述bmc发送的返回信息。

本实施例的bios与bmc命令交互的装置用于实现前述的bios与bmc命令交互的方法,因此bios与bmc命令交互的装置中的具体实施方式可见前文中的bios与bmc命令交互的方法的实施例部分,例如,命令发送模块100,第一标识模块200,返回信息接收模块300,分别用于实现上述bios与bmc命令交互的方法中步骤s101,s102和s103,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

本发明还提供一种bios,包括:

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

第一处理器,用于执行所述计算机程序时实现前述公开的bios与bmc命令交互的方法的步骤。

参见图4所示,图4为本发明所提供的另一种bios与bmc命令交互的方法的流程图。

本实施例所提供的bios与bmc命令交互的方法,应用于bmc,包括:

步骤s301:接收bios发送的ipmi命令;

步骤s302:判断所述ipmi命令是否接收成功,如果是,则生成指示所述ipmi命令接收成功的第二标识信息;

本实施例中,bmc接收bios发送的ipmi命令,并进一步判断ipmi命令是否接收成功,如果是,则生成第二标识信息。其中,第二标识信息表征ipmi命令成功接收。

步骤s303:向所述bios发送所述第二标识信息;

进一步地,生成所述第二标识信息后,将第二标识信息发送至bios。

步骤s304:按照接收到的所述ipmi命令执行,向所述bios发送返回信息。

具体地,bmc按照接受到的ipmi命令执行,并将执行后的返回信息发送至bios,完成bios与bmc的命令交互。

在上述实施例公开的bios与bmc命令交互的方法中,针对生成第二标识信息的步骤进行进一步阐述,具体为:在显示界面显示所述第二标识信息,所述第二标识信息为预设第二数值。

可以理解的是,本实施例生成第二标识信息后,可以将第二标识信息在显示界面进行显示。具体地,所述第二标识可以为预设第二数值,例如,利用数值2作为第二标识信息来表征ipmi命令接收成功。

下面对本发明实施例提供的bios与bmc命令交互的装置进行介绍,下文描述的bios与bmc命令交互的装置与上文描述的bios与bmc命令交互的方法可相互对应参照。

图5为本发明实施例提供的bios与bmc命令交互的装置的结构框图,所述bios与bmc命令交互的装置应用于bmc,参照图5bios与bmc命令交互的装置可以包括:

命令接收模块400,用于接收bios发送的ipmi命令;

第二标识模块500,用于判断所述ipmi命令是否接收成功,如果是,则生成指示所述ipmi命令接收成功的第二标识信息;

标识信息发送模块600,用于向所述bios发送所述第二标识信息;

返回信息发送模块700,用于按照接收到的所述ipmi命令执行,向所述bios发送返回信息。

本实施例的bios与bmc命令交互的装置用于实现前述的bios与bmc命令交互的方法,因此bios与bmc命令交互的装置中的具体实施方式可见前文中的bios与bmc命令交互的方法的实施例部分,例如,命令接收模块400,第二标识模块500,标识信息发送模块600,返回信息发送模块700,分别用于实现上述bios与bmc命令交互的方法中步骤s301,s302,s303和s304,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

本发明还提供一种bmc,其特征在于,包括:

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

第二处理器,用于执行所述计算机程序时实现前述公开的bios与bmc命令交互的方法的步骤。

如图6本发明实施例提供的bios与bmc命令交互的系统示意图所示,本发明还提供一种bios与bmc命令交互的系统,包括:bios1与bmc2;

其中,所述bios1用于向所述bmc2发送ipmi命令;判断所述ipmi命令是否发送成功,如果是,则生成指示所述ipmi命令发送成功的第一标识信息;

所述bmc2用于接收bios1发送的ipmi命令;判断所述ipmi命令是否接收成功,如果是,则生成指示所述ipmi命令接收成功的第二标识信息;向所述bios1发送所述第二标识信息;按照接收到的所述ipmi命令执行,并向所述bios1发送返回信息。

本发明提供的bios与bmc命令交互的系统,通过bios向bmc发送ipmi指令,并接收bmc根据ipmi指令的执行结果,完成bios与bmc的命令交互。在交互过程中,本实施例通过第一标识信息和第二标识信息用于判断ipmi命令是否发送成功、接收成功,从而若发生故障,可以根据是否生成第一标识信息和第二标识信息来快速定位故障发生区域,无需对bios和bmc均进行排查,节省开发时间。

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

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

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

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

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