CN113190482A - 一种ipmi通信方法、用于ipmi通信的发送***及接收*** - Google Patents
一种ipmi通信方法、用于ipmi通信的发送***及接收*** Download PDFInfo
- Publication number
- CN113190482A CN113190482A CN202110270253.0A CN202110270253A CN113190482A CN 113190482 A CN113190482 A CN 113190482A CN 202110270253 A CN202110270253 A CN 202110270253A CN 113190482 A CN113190482 A CN 113190482A
- Authority
- CN
- China
- Prior art keywords
- data
- area
- request data
- bmc
- handshake
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4286—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种IPMI通信方法、用于IPMI通信的发送***及接收***,该方法包括:利用LPC总线连接硬件上的BMC与主机的南桥芯片;将BMC的SuperIO配置为Mailbox寄存器;将Mailbox寄存器划分为数据区域和握手区域;生成请求数据;利用数据区域和握手区域,将请求数据传输至BMC;BMC读取所获取的请求数据,并在握手区域对已接收的请求数据进行标记;BMC生成应答数据;利用数据区域和握手区域将应答数据传输至主机侧的BIOS。该发送***包括:LPC总线、Mailbox寄存器配置模块、寄存器划分模块、请求数据生成模块和请求数据传输模块。该接收***包括:LPC总线、请求数据获取模块、应答数据生成模块和应答数据传输模块。通过本申请,能够有效提高信息传输速度,大大提高数据传输效率。
Description
技术领域
本申请涉及服务器通信技术领域,特别是涉及一种IPMI(Intelligent PlatformManagement Interface,智能平台管理接口)通信方法、用于IPMI通信的发送***及接收***。
背景技术
在服务器通信领域,IPMI接口是用于服务器远程监视、控制的开放接口。随着服务器技术的发展,运维人员通过BMC远程管理服务器,就可以通过IPMI接口向BMC(BaseboardManagement Controller,基板管理控制器)发送命令和获取信息。因此,如何实现主机侧BIOS(Basic Input Output System,基本输入输出***)与BMC之间的IPMI通信,是个重要的技术问题。
目前,实现主机侧BIOS与BMC之间IPMI通信的方法,通常是:BMC与服务器外部大多采用LAN(Local Area Network,局域网)接口,服务器内部多采用KCS(KeyboardController Style Interface,键盘控制器式界面)接口,从而减少主机与BMC之间的连线。
然而,目前实现主机侧BIOS与BMC之间IPMI通信的方法中,由于KCS接口是面向Byte的传输,一次传输最多只有256字节,数据传输速度较慢,从而导致IPMI数据传输效率较低。
发明内容
本申请提供了一种IPMI通信方法、用于IPMI通信的发送***及接收***,以解决现有技术中IPMI数据传输效率较低的问题。
为了解决上述技术问题,本申请实施例公开了如下技术方案:
一种IPMI通信方法,所述通信方法用于BIOS和BMC之间的IPMI通信,所述通信方法包括:
利用LPC(Low pin count Bus,低引脚数总线)总线连接硬件上的BMC与主机的南桥芯片;
利用主机侧的BIOS将BMC的SuperIO逻辑设备配置为Mailbox寄存器;
根据所获取的IPMI命令,将所述Mailbox寄存器划分为数据区域和握手区域;
主机侧根据IPMI规范生成请求数据;
利用所述数据区域和握手区域,将所述请求数据传输至BMC;
BMC读取所获取的请求数据,并在所述握手区域对已接收的请求数据进行标记,所述已接收的请求数据为读取后的请求数据;
BMC根据请求数据的总长度、已接收的请求数据和IPMI规范生成应答数据;
利用所述数据区域和握手区域,将所述应答数据传输至主机侧的BIOS。
可选地,利用所述数据区域和握手区域,将所述请求数据传输至BMC的方法,包括:
将所述请求数据写入所述数据区域;
通过所述握手区域将请求数据的总长度和已发送的请求数据长度传输至BMC;
轮询读取所述握手区域中已发送的请求数据长度;
判断所述请求数据的总长度和已发送的请求数据长度是否相等;
如果是,判定请求数据已全部传输至BMC;
如果否,返回继续轮询读取所述握手区域中已发送的请求数据长度。
可选地,将所述请求数据写入所述数据区域的方法包括:
根据Mailbox寄存器中数据区域的容量,定义每次写满Mailbox寄存器的数据区域即为传输完毕一个数据片的请求数据;
判断Mailbox寄存器当前的数据区域是否写满;
如果是,判定已发送完毕一个数据片的请求数据,且硬件产生BMC中断;
继续传输下一个数据片的请求数据;
如果否,继续传输当前数据片的请求数据,且硬件不产生BMC中断。
可选地,利用所述数据区域和握手区域,将所述应答数据传输至主机侧的BIOS的方法,包括:
将所述应答数据写入所述数据区域;
通过所述握手区域将应答数据的总长度和已发送的应答数据长度传输至主机侧的BIOS;
轮询读取所述握手区域中已发送的应答数据长度;
判断所述应答数据的总长度和已发送的应答数据长度是否相等;
如果是,判定应答数据已全部传输至主机侧的BIOS;
如果否,返回继续轮询读取所述握手区域中已发送的应答数据长度。
可选地,将所述应答数据写入所述数据区域的方法,包括:
根据Mailbox寄存器中数据区域的容量,定义每次写满Mailbox寄存器的数据区域即为传输完毕一个数据片的应答数据;
判断Mailbox寄存器当前的数据区域是否写满;
如果是,判定已发送完毕一个数据片的应答数据,且硬件产生主机中断;
继续传输下一个数据片的应答数据;
如果否,继续传输当前数据片的应答数据,且硬件不产生主机中断。
一种用于IPMI通信的发送***,所述发送***包括:
LPC总线,用于连接硬件上的BMC和主机的南桥芯片;
Mailbox寄存器配置模块,用于将BMC的SuperIO逻辑设备配置为Mailbox寄存器;
寄存器划分模块,用于通过IPMI命令,将所述Mailbox寄存器划分为数据区域和握手区域;
请求数据生成模块,用于根据IPMI规范生成请求数据;
请求数据传输模块,用于利用所述数据区域和握手区域,将所述请求数据传输至BMC。
可选地,所述请求数据传输模块包括:
请求数据写入单元,用于将所述请求数据写入所述数据区域;
第一发送单元,用于通过所述握手区域将请求数据的总长度和已发送的请求数据长度传输至BMC;
第一轮询单元,用于轮询读取所述握手区域中已发送的请求数据长度;
第一判断单元,用于判断所述请求数据的总长度和已发送的请求数据长度是否相等,如果是,判定请求数据已全部传输至BMC,如果否,返回第一轮询单元。
可选地,请求数据写入单元包括:
第一定义子单元,用于根据Mailbox寄存器中数据区域的容量,定义每次写满Mailbox寄存器的数据区域即为传输完毕一个数据片的请求数据;
第一判断子单元,用于判断Mailbox寄存器当前的数据区域是否写满;
BMC中断子单元,用于当Mailbox寄存器当前的数据区域写满时,判定已发送完毕一个数据片的请求数据,硬件产生BMC中断;
第一传输子单元,用于硬件产生BMC中断后,继续传输下一个数据片的请求数据,以及,当Mailbox寄存器当前的数据区域没有写满时,继续传输当前数据片的请求数据。
一种用于IPMI通信的接收***,所述接收***包括:
LPC总线,用于连接硬件上的BMC和主机的南桥芯片;
请求数据获取模块,用于读取所获取的请求数据,并在所述握手区域对已接收的请求数据进行标记,所述已接收的请求数据为读取后的请求数据;
应答数据生成模块,用于根据请求数据的总长度、已接收的请求数据和IPMI规范生成应答数据;
应答数据传输模块,用于利用所述数据区域和握手区域,将所述应答数据传输至主机侧的BIOS。
可选地,所述应答数据传输模块,包括:
应答数据写入单元,用于将所述应答数据写入所述数据区域;
第二发送单元,用于通过所述握手区域将应答数据的总长度和已发送的应答数据长度传输至主机侧的BIOS;
第二轮询单元,用于轮询读取所述握手区域中已发送的应答数据长度;
第二判断单元,用于判断所述应答数据的总长度和已发送的应答数据长度是否相等,如果是,判定应答数据已全部传输至主机侧的BIOS,否则,返回第二轮询单元
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请提供一种IPMI通信方法,该通信方法首先利用LPC总线连接硬件上的BMC与主机的南桥芯片,为后续实现IPMI通信提供硬件基础。然后利用主机侧的BIOS对BMC的SuperIO逻辑设备进行配置,配置为Mailbox寄存器,并将Mailbox寄存器划分为数据区域和握手区域,主机侧生成请求数据后,利用Mailbox寄存器将请求数据从主机侧传输至BMC;对于BMC侧,读取所获取的请求数据后再握手区域进行标记,并生成应答数据,并利用Mailbox寄存器将应答数据从BMC传输至主机侧BIOS。从而利用Mailbox寄存器实现IPMI通信,这种通信方式采用了Mai lbox寄存器,相比于KCS信息传输方式,本实施例中的通信方法一次数据传输最多可达65534字节,能够大大提高信息传输速度,提高数据传输效率。且由于Mailbox硬件的中断方式响应快,能够进一步减少主机CPU和BMC CPU的轮询时间,从而提高数据传输效率。另外,由于Mailbox寄存器为硬件寄存器,不单独占用内存,也就不会破坏主机和BMC内存空间的数据,还有利于提高通信的安全性。
本申请还提供一种用于IPMI通信的发送***,该发送***主要包括:LPC总线、Mailbox寄存器配置模块、寄存器划分模块、请求数据生成模块和请求数据传输模块。通过Mailbox寄存器配置模块能够启用BMC的Mailbox寄存器,其信息传输速度高,有利于大大提高数据传输效率。通过寄存器划分模块,将Mailbox寄存器划分为握手区域和数据区域,使得Mailbox寄存器内不同的字节控制不同的操作,避免信息混淆,有利于提高信息传输的准确性。通过请求数据传输模块,能够及时而准确地利用Mailbox寄存器的数据区域和握手区域将数据发送至接收端。
本申请还提供一种用于IPMI通信的接收***,主要包括:LPC总线、请求数据获取模块、应答数据生成模块和应答数据传输模块。通过请求数据获取模块,能够及时读取并标记已接收的请求数据,便于及时监控信息传输过程;通过应答数据生成模块,能够及时对发送端进行响应,有利于提高数据传输速度;通过应答数据传输模块,能够及时而准确地利用Mailbox寄存器的数据区域和握手区域将应答数据反馈至发送端。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种IPMI通信方法的流程示意图;
图2是主机侧BIOS数据处理流程示意图;
图3是BMC数据处理流程示意图;
图4为本申请实施例所提供的一种用于IPMI通信的发送***的结构示意图;
图5为本申请实施例所提供的一种用于IPMI通信的接收***的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
为了更好地理解本申请,下面结合附图来详细解释本申请的实施方式。
实施例一
参见图1,图1为本申请实施例所提供的一种IPMI通信方法的流程示意图。由图1可知,该实施例中所提供的IPMI通信方法,主要包括如下过程:
S1:利用LPC总线连接硬件上的BMC与主机的南桥芯片。
本实施例中的IPMI通信方法主要应用于BIOS和BMC之间的IPMI通信。主机侧的BIOS和硬件上的BMC芯片之间通过LPC总线连接。
S2:利用主机侧的BIOS将BMC的SuperIO逻辑设备配置为Mailbox寄存器。
Mailbox寄存器为BMC的SuperIO内置的硬件寄存器,该硬件寄存器可以由主机和BMC两方访问,并可以向主机CPU和BMC CPU发起中断。
具体地,步骤S2包括如下过程:
S21:主机侧上电后,利用BIOS将BMC的SuperIO逻辑设备初始化。
S22:将SuperIO逻辑设备配置为Mailbox寄存器。
相比于KCS信息传输方式,本实施例利用Mailbox进行BIOS和BMC之间的IPMI通信信息传输,一次数据传输最多可达65534字节,能够大大提高信息传输速度,提高数据传输效率。且由于Mailbox硬件的中断方式响应快,能够进一步减少主机CPU和BMC CPU的轮询时间,从而提高数据传输效率。另外,由于Mailbox寄存器为硬件寄存器,不单独占用内存,也就不会破坏主机和BMC内存空间的数据,有利于提高通信的安全性。
继续参见图1可知,利用主机侧的BIOS将BMC的SuperIO逻辑设备配置为Mailbox寄存器之后,执行步骤S3:根据所获取的IPMI命令,将Mailbox寄存器划分为数据区域和握手区域。
本实施例中Mailbox寄存器为BMC芯片上的硬件寄存器,不同BMC芯片上Mailbox寄存器的字节数不同,本实施例中以16位字节的Mailbox寄存器为例,即:Mailbox寄存器中包括16个Mailbox。通过对Mailbox寄存器进行区域划分,将其划分为传输数据片的数据区域和记录数据传输信息的握手区域,能够避免不同信息的干扰和混淆,有利于提高数据传输的准确性。
S4:主机侧根据IPMI规范生成请求数据。
主机侧根据IPMI规范生成请求数据,将请求数据填入数据区域并通过握手区域通知BMC请求数据的长度。
S5:利用数据区域和握手区域,将请求数据传输至BMC。
具体地,步骤S5包括如下过程:
S51:将请求数据写入数据区域。
其中,步骤S51又包括:
S511:根据Mailbox寄存器中数据区域的容量,定义每次写满Mailbox寄存器的数据区域即为传输完毕一个数据片的请求数据。
S512:判断Mailbox寄存器当前的数据区域是否写满。
如果Mailbox寄存器当前的数据区域已写满,执行步骤S513:判定已发送完毕一个数据片的请求数据,且硬件产生BMC中断。
S514:继续传输下一个数据片的请求数据。
如果Mailbox寄存器当前的数据区域未写满,执行步骤S515:继续传输当前数据片的请求数据,且硬件不产生BMC中断。
由以上步骤S511-S514可知,将请求数据写入数据区域的过程中,通常情况下请求数据的容量会大于BMC芯片中Mailbox寄存器的容量,每次BMC芯片中Mailbox寄存器的数据区域写满时,就产生一次BMC中断,表示完成一个数据片的请求数据传输,然后继续下一个数据片的请求数据传输。通过中断方式,能够避免主机CPU再次轮询已经发送完毕的请求数据,从而减少轮询时间,提高信息传输速率。
S52:通过握手区域将请求数据的总长度和已发送的请求数据长度传输至BMC。
S53:轮询读取握手区域中已发送的请求数据长度。
S54:判断请求数据的总长度和已发送的请求数据长度是否相等。
如果请求数据的总长度和已发送的请求数据长度相等,执行步骤S55:判定请求数据已全部传输至BMC。
如果请求数据的总长度和已发送的请求数据长度不相等,说明请求数据没有发送完毕,返回步骤S53:轮询读取握手区域中已发送的请求数据长度。
根据步骤S5中的方法,本实施例中主机侧BIOS的数据处理流程可以参见图2所示。由图2可知,主机BIOS侧的数据处理过程中,是以每传输完毕一个数据片产生一个BMC中断,当全部请求数据传输完毕后,将0xFFFFFFFF写入握手区域,表示数据传输完毕。
继续参见图1可知,主机侧BIOS利用数据区域和握手区域,将请求数据传输至BMC之后,执行步骤S6:BMC读取所获取的请求数据,并在握手区域对已接收的请求数据进行标记,已接收的请求数据为读取后的请求数据。
通过对已接收的请求数据进行标记,能够准确记录已接收数据和未接收数据,从而及时获取请求数据的发送进程,从而准确把控数据传输速率。
S7:BMC根据请求数据的总长度、已接收的请求数据和IPMI规范生成应答数据。
S8:利用数据区域和握手区域,将应答数据传输至主机侧的BIOS。
具体地,步骤S8包括如下过程:
S81:将应答数据写入数据区域。
具体地,步骤S81又包括:
S811:根据Mailbox寄存器中数据区域的容量,定义每次写满Mailbox寄存器的数据区域即为传输完毕一个数据片的应答数据;
S812:判断Mailbox寄存器当前的数据区域是否写满;
如果Mailbox寄存器当前的数据区域已写满,执行步骤S813:判定已发送完毕一个数据片的应答数据,且硬件产生主机中断;
S814:继续传输下一个数据片的应答数据;
如果Mailbox寄存器当前的数据区域未写满,执行步骤S815:继续传输当前数据片的应答数据,且硬件不产生主机中断。
S82:通过握手区域将应答数据的总长度和已发送的应答数据长度传输至主机侧的BIOS。
S83:轮询读取握手区域中已发送的应答数据长度。
S84:判断应答数据的总长度和已发送的应答数据长度是否相等。
如果应答数据的总长度和已发送的应答数据长度相等,执行步骤S85:判定应答数据已全部传输至主机侧的BIOS。
如果应答数据的总长度和已发送的应答数据长度不相等,通常是已发送的应答数据长度小于应答数据的总长度,说明应答数据没有发送完毕,返回步骤S83:轮询读取握手区域中已发送的应答数据长度。
根据步骤S8中的方法,本实施例中BMC侧的数据处理流程可以参见图3所示。由图3可知,BMC侧的数据处理过程中,是以每传输完毕一个数据片产生一个主机中断,当全部应答数据传输完毕后,将0xFFFFFFFF写入握手区域,表示数据传输完毕。
实施例二
在图1-图3所示实施例的基础上参见图4,图4为本申请实施例所提供的一种用于IPMI通信的发送***的结构示意图。由图4可知,本实施例中用于IPMI通信的发送***主要包括:LPC总线、Mailbox寄存器配置模块、寄存器划分模块、请求数据生成模块和请求数据传输模块。其中,LPC总线,用于连接硬件上的BMC和主机的南桥芯片;Mailbox寄存器配置模块,用于将BMC的SuperIO逻辑设备配置为Mailbox寄存器;寄存器划分模块,用于通过IPMI命令,将Mailbox寄存器划分为数据区域和握手区域;请求数据生成模块,用于根据IPMI规范生成请求数据;请求数据传输模块,用于利用数据区域和握手区域,将请求数据传输至BMC。
本实施例中Mailbox寄存器配置模块、寄存器划分模块、请求数据生成模块和请求数据传输模块设置于主机侧BIOS上。
进一步地,请求数据传输模块包括:请求数据写入单元、第一发送单元、第一轮询单元和第一判断单元。其中,请求数据写入单元,用于将请求数据写入数据区域;第一发送单元,用于通过握手区域将请求数据的总长度和已发送的请求数据长度传输至BMC;第一轮询单元,用于轮询读取握手区域中已发送的请求数据长度;第一判断单元,用于判断请求数据的总长度和已发送的请求数据长度是否相等,如果是,判定请求数据已全部传输至BMC,如果否,返回第一轮询单元。
请求数据写入单元又包括:第一定义子单元、第一判断子单元、BMC中断子单元和第一传输子单元。其中,第一定义子单元,用于根据Mailbox寄存器中数据区域的容量,定义每次写满Mailbox寄存器的数据区域即为传输完毕一个数据片的请求数据;第一判断子单元,用于判断Mailbox寄存器当前的数据区域是否写满;BMC中断子单元,用于当Mailbox寄存器当前的数据区域写满时,判定已发送完毕一个数据片的请求数据,硬件产生BMC中断;第一传输子单元,用于硬件产生BMC中断后,继续传输下一个数据片的请求数据,以及,当Mailbox寄存器当前的数据区域没有写满时,继续传输当前数据片的请求数据。
该实施例中用于IPMI通信的发送***的工作原理和工作方法,在图1-图2所示的实施例中已经详细阐述,在此不再赘述。
实施例三
在图1-图4所示实施例的基础之上参见图5,图5为本申请实施例所提供的一种用于IPMI通信的接收***的结构示意图。由图5可知,本实施例中用于IPMI通信的接收***主要包括:LPC总线、请求数据获取模块、应答数据生成模块和应答数据传输模块。
其中,LPC总线,用于连接硬件上的BMC和主机的南桥芯片;请求数据获取模块,用于读取所获取的请求数据,并在握手区域对已接收的请求数据进行标记,已接收的请求数据为读取后的请求数据;应答数据生成模块,用于根据请求数据的总长度、已接收的请求数据和IPMI规范生成应答数据;应答数据传输模块,用于利用数据区域和握手区域,将应答数据传输至主机侧的BIOS。
本实施例的请求数据获取模块、应答数据生成模块和应答数据传输模块设置于硬件上的BMC中。
应答数据传输模块包括:应答数据写入单元、第二发送单元、第二轮询单元和第二判断单元。其中,应答数据写入单元,用于将应答数据写入数据区域;第二发送单元,用于通过握手区域将应答数据的总长度和已发送的应答数据长度传输至主机侧的BIOS;第二轮询单元,用于轮询读取握手区域中已发送的应答数据长度;第二判断单元,用于判断应答数据的总长度和已发送的应答数据长度是否相等,如果是,判定应答数据已全部传输至主机侧的BIOS,否则,返回第二轮询单元。
进一步地,应答数据写入单元又包括:第二定义子单元、第二判断子单元、主机中断子单元和第二传输子单元。其中,第二定义子单元,用于根据Mailbox寄存器中数据区域的容量,定义每次写满Mailbox寄存器的数据区域即为传输完毕一个数据片的应答数据;第二判断子单元,用于判断Mailbox寄存器当前的数据区域是否写满;主机中断子单元用于当Mailbox寄存器当前的数据区域写满时,判定已发送完毕一个数据片的应答数据,且硬件产生主机中断;第二传输子单元,用于硬件产生主机中断后,继续传输下一个数据片的应答数据,以及当Mailbox寄存器当前的数据区域没有写满时,继续传输当前数据片的应答数据。
该实施例中用于IPMI通信的接收***的工作原理和工作方法,在图1-图4所示的实施例中已经详细阐述,在此不再赘述。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种IPMI通信方法,其特征在于,所述通信方法用于BIOS和BMC之间的IPMI通信,所述通信方法包括:
利用LPC总线连接硬件上的BMC与主机的南桥芯片;
利用主机侧的BIOS将BMC的SuperIO逻辑设备配置为Mailbox寄存器;
根据所获取的IPMI命令,将所述Mailbox寄存器划分为数据区域和握手区域;
主机侧根据IPMI规范生成请求数据;
利用所述数据区域和握手区域,将所述请求数据传输至BMC;
BMC读取所获取的请求数据,并在所述握手区域对已接收的请求数据进行标记,所述已接收的请求数据为读取后的请求数据;
BMC根据请求数据的总长度、已接收的请求数据和IPMI规范生成应答数据;
利用所述数据区域和握手区域,将所述应答数据传输至主机侧的BIOS。
2.根据权利要求1所述的一种IPMI通信方法,其特征在于,利用所述数据区域和握手区域,将所述请求数据传输至BMC的方法,包括:
将所述请求数据写入所述数据区域;
通过所述握手区域将请求数据的总长度和已发送的请求数据长度传输至BMC;
轮询读取所述握手区域中已发送的请求数据长度;
判断所述请求数据的总长度和已发送的请求数据长度是否相等;
如果是,判定请求数据已全部传输至BMC;
如果否,返回继续轮询读取所述握手区域中已发送的请求数据长度。
3.根据权利要求2所述的一种IPMI通信方法,其特征在于,将所述请求数据写入所述数据区域的方法包括:
根据Mailbox寄存器中数据区域的容量,定义每次写满Mailbox寄存器的数据区域即为传输完毕一个数据片的请求数据;
判断Mailbox寄存器当前的数据区域是否写满;
如果是,判定已发送完毕一个数据片的请求数据,且硬件产生BMC中断;
继续传输下一个数据片的请求数据;
如果否,继续传输当前数据片的请求数据,且硬件不产生BMC中断。
4.根据权利要求1所述的一种IPMI通信方法,其特征在于,利用所述数据区域和握手区域,将所述应答数据传输至主机侧的BIOS的方法,包括:
将所述应答数据写入所述数据区域;
通过所述握手区域将应答数据的总长度和已发送的应答数据长度传输至主机侧的BIOS;
轮询读取所述握手区域中已发送的应答数据长度;
判断所述应答数据的总长度和已发送的应答数据长度是否相等;
如果是,判定应答数据已全部传输至主机侧的BIOS;
如果否,返回继续轮询读取所述握手区域中已发送的应答数据长度。
5.根据权利要求4所述的一种IPMI通信方法,其特征在于,将所述应答数据写入所述数据区域的方法,包括:
根据Mailbox寄存器中数据区域的容量,定义每次写满Mailbox寄存器的数据区域即为传输完毕一个数据片的应答数据;
判断Mailbox寄存器当前的数据区域是否写满;
如果是,判定已发送完毕一个数据片的应答数据,且硬件产生主机中断;
继续传输下一个数据片的应答数据;
如果否,继续传输当前数据片的应答数据,且硬件不产生主机中断。
6.一种用于IPMI通信的发送***,其特征在于,所述发送***包括:
LPC总线,用于连接硬件上的BMC和主机的南桥芯片;
Mailbox寄存器配置模块,用于将BMC的SuperIO逻辑设备配置为Mailbox寄存器;
寄存器划分模块,用于通过IPMI命令,将所述Mailbox寄存器划分为数据区域和握手区域;
请求数据生成模块,用于根据IPMI规范生成请求数据;
请求数据传输模块,用于利用所述数据区域和握手区域,将所述请求数据传输至BMC。
7.根据权利要求6所述的一种用于IPMI通信的发送***,其特征在于,所述请求数据传输模块包括:
请求数据写入单元,用于将所述请求数据写入所述数据区域;
第一发送单元,用于通过所述握手区域将请求数据的总长度和已发送的请求数据长度传输至BMC;
第一轮询单元,用于轮询读取所述握手区域中已发送的请求数据长度;
第一判断单元,用于判断所述请求数据的总长度和已发送的请求数据长度是否相等,如果是,判定请求数据已全部传输至BMC,如果否,返回第一轮询单元。
8.根据权利要求7所述的一种用于IPMI通信的发送***,其特征在于,请求数据写入单元包括:
第一定义子单元,用于根据Mailbox寄存器中数据区域的容量,定义每次写满Mailbox寄存器的数据区域即为传输完毕一个数据片的请求数据;
第一判断子单元,用于判断Mailbox寄存器当前的数据区域是否写满;
BMC中断子单元,用于当Mailbox寄存器当前的数据区域写满时,判定已发送完毕一个数据片的请求数据,硬件产生BMC中断;
第一传输子单元,用于硬件产生BMC中断后,继续传输下一个数据片的请求数据,以及,当Mai lbox寄存器当前的数据区域没有写满时,继续传输当前数据片的请求数据。
9.一种用于IPMI通信的接收***,其特征在于,所述接收***包括:
LPC总线,用于连接硬件上的BMC和主机的南桥芯片;
请求数据获取模块,用于读取所获取的请求数据,并在所述握手区域对已接收的请求数据进行标记,所述已接收的请求数据为读取后的请求数据;
应答数据生成模块,用于根据请求数据的总长度、已接收的请求数据和IPMI规范生成应答数据;
应答数据传输模块,用于利用所述数据区域和握手区域,将所述应答数据传输至主机侧的BIOS。
10.根据权利要求9所述的一种用于IPMI通信的接收***,其特征在于,所述应答数据传输模块,包括:
应答数据写入单元,用于将所述应答数据写入所述数据区域;
第二发送单元,用于通过所述握手区域将应答数据的总长度和已发送的应答数据长度传输至主机侧的BIOS;
第二轮询单元,用于轮询读取所述握手区域中已发送的应答数据长度;
第二判断单元,用于判断所述应答数据的总长度和已发送的应答数据长度是否相等,如果是,判定应答数据已全部传输至主机侧的BIOS,否则,返回第二轮询单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110270253.0A CN113190482B (zh) | 2021-03-12 | 2021-03-12 | 一种ipmi通信方法、用于ipmi通信的发送***及接收*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110270253.0A CN113190482B (zh) | 2021-03-12 | 2021-03-12 | 一种ipmi通信方法、用于ipmi通信的发送***及接收*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113190482A true CN113190482A (zh) | 2021-07-30 |
CN113190482B CN113190482B (zh) | 2023-03-14 |
Family
ID=76973178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110270253.0A Active CN113190482B (zh) | 2021-03-12 | 2021-03-12 | 一种ipmi通信方法、用于ipmi通信的发送***及接收*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113190482B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153768A (zh) * | 2021-11-26 | 2022-03-08 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据传输方法、装置、设备及计算机可读存储介质 |
CN115080490A (zh) * | 2022-06-17 | 2022-09-20 | 苏州浪潮智能科技有限公司 | 一种自适应调优的spi通信方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103955441A (zh) * | 2014-04-02 | 2014-07-30 | 华为技术有限公司 | 一种设备管理***、方法及一种io扩展接口 |
CN106648958A (zh) * | 2015-10-30 | 2017-05-10 | 广达电脑股份有限公司 | 基本输入输出***回复管理***及其方法以及程序产品 |
CN108062234A (zh) * | 2017-12-07 | 2018-05-22 | 郑州云海信息技术有限公司 | 一种通过mailbox协议实现服务器主机访问BMC FLASH的***及方法 |
CN109558157A (zh) * | 2017-09-26 | 2019-04-02 | 广达电脑股份有限公司 | 于固件更新期间保存固件设置 |
CN110941323A (zh) * | 2018-09-25 | 2020-03-31 | 广达电脑股份有限公司 | 计算机实施方法、计算装置及计算机可读取储存介质 |
-
2021
- 2021-03-12 CN CN202110270253.0A patent/CN113190482B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103955441A (zh) * | 2014-04-02 | 2014-07-30 | 华为技术有限公司 | 一种设备管理***、方法及一种io扩展接口 |
CN106648958A (zh) * | 2015-10-30 | 2017-05-10 | 广达电脑股份有限公司 | 基本输入输出***回复管理***及其方法以及程序产品 |
CN109558157A (zh) * | 2017-09-26 | 2019-04-02 | 广达电脑股份有限公司 | 于固件更新期间保存固件设置 |
CN108062234A (zh) * | 2017-12-07 | 2018-05-22 | 郑州云海信息技术有限公司 | 一种通过mailbox协议实现服务器主机访问BMC FLASH的***及方法 |
CN110941323A (zh) * | 2018-09-25 | 2020-03-31 | 广达电脑股份有限公司 | 计算机实施方法、计算装置及计算机可读取储存介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153768A (zh) * | 2021-11-26 | 2022-03-08 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据传输方法、装置、设备及计算机可读存储介质 |
CN115080490A (zh) * | 2022-06-17 | 2022-09-20 | 苏州浪潮智能科技有限公司 | 一种自适应调优的spi通信方法及*** |
CN115080490B (zh) * | 2022-06-17 | 2023-07-18 | 苏州浪潮智能科技有限公司 | 一种自适应调优的spi通信方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN113190482B (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113190482B (zh) | 一种ipmi通信方法、用于ipmi通信的发送***及接收*** | |
CN100366029C (zh) | 通信控制器、主机端控制器、通信设备、通信***和方法 | |
CN106959935B (zh) | 一种兼容i2c通信与ipmb通信的方法 | |
CN106100703B (zh) | 电力计量现场检测数据蓝牙通讯方法 | |
CN102404306B (zh) | 一种配置协议的方法及装置 | |
CN204374963U (zh) | 一种基于tcm芯片的服务器加密模块 | |
CN114564427A (zh) | 一种ahb总线到i2c总线的总线桥、***及方法 | |
CN111221765A (zh) | 一种防止i2c总线地址冲突的通信方法及通信*** | |
JP2002016613A (ja) | 電子機器、電子機器システムおよび通信制御方法 | |
CN102413008B (zh) | 基于电力104规约的测试方法及*** | |
US11943658B2 (en) | Multi-protocol communication network | |
CN202018576U (zh) | 单片机通信模块 | |
CN112579506A (zh) | Bios与bmc通信的方法、bios、bmc和服务器 | |
US20070198762A1 (en) | A bus interface converter capable of converting amba ahb bus protocol into i960-like bus protocol | |
CN117033277A (zh) | 一种单线通讯控制装置和数据处理方法 | |
CN115543755B (zh) | 一种性能监管方法、装置、***、设备和介质 | |
JP3655597B2 (ja) | 電子機器、電子カード、及びカード識別方法 | |
CN115827543A (zh) | 一种基于FPGA实现eSPI通信方法、***、设备及介质 | |
CN109542812A (zh) | 数据通信控制方法、装置及终端设备 | |
KR20220032612A (ko) | 패킷 네트워크 내에서 플러시 요청들을 프로세싱하기 위한 장치 및 방법 | |
CN109257251B (zh) | 多板卡多模块心跳检测方法、装置、***及计算机存储介质 | |
US20240251290A1 (en) | Multi-protocol communication network | |
CN114726932B (zh) | 一种数据传输方法、装置与电子设备 | |
CN212969697U (zh) | 一种4g路由摄像头传输模组 | |
CN117170994B (zh) | Ipmi接口协议的故障预测扩展方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |