首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种通过mailbox协议实现服务器主机访问BMC FLASH的系统及方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:郑州云海信息技术有限公司

摘要:本发明实施例公开了一种通过mailbox协议实现服务器主机访问BMCFLASH的系统及方法,通过使用SoCFPGA完成服务器BMC功能的实施过程中,解决了服务器HOST通过BMC控制FLASH的问题,本发明使用VerilogHDL语言开发的mailbox协议模块逻辑可以很好的与其他模块对接,且具有很好的可移植性。

主权项:一种通过mailbox协议实现服务器主机访问BMC FLASH的系统,实现服务器主机对BMC控制的FLASH访问,其特征是,包括位于SOC FPGA的ARM控制器、mailbox模块、LPC控制器和服务器HOST,所述ARM控制器与APB总线连接,APB总线分别与BMC SPI控制器、mailbox模块和LPC控制器连接,所述BMC SPI控制器与FLASH连接,所述mailbox模块与LPC控制器连接,所述LPC控制器与服务器HOST连接。

全文数据:一种通过maiIbox协议实现服务器主机访问BMCFLASH的系统及方法技术领域[0001]本发明涉及服务器技术领域,特别是涉及一种通过mailbox协议实现服务器主机访问BMCFLASH的系统及方法。背景技术[0002]服务器中的BMCBaseboardManagementControlIer基板管理控制器)担负着监测和控制服务器的功能,标准中服务器主机通过LPC接口实现与BMC的通信。同时,存在着这样的一种应用场景:服务器主机需要读取或者更新BMC控制的FLASH中的内容,该FLASH中存储着系统的固件信息,即BIOS,从而实现服务器主机对BIOS的信息获取和升级功能。[0003]在BMC国产化的过程中,使用SoCSystemonchip片上系统FPGA替代原有BMC芯片,实现BMC功能中的各个接口功能,已成为现实。SoCFPGA是一种集成了ARMMPU、内核和各种设备的可编程逻辑系统,具有较高的集成性和较低的成本,并且使得产品开发周期大大缩短。在使用SoCFPGA完成的BMC功能中,同样需要实现HOST控制FLASH的功能。目前现有的方式为HOST通过LPCLowPinCount,一种接口协议接口直接控制BMC中的SPI控制器,从而通过SPI接口实现对FLASH的控制。但是这种方式存在诸多问题,比如:访问冲突问题、BMC重启时带来的问题、访问速度慢的问题以及存在安全隐患。发明内容[0004]本发明实施例中提供了一种通过maiIbox协议实现服务器主机访问BMCFLASH的系统及方法,以解决现有技术中的BMC在国产化过程中mailbox协议的逻辑实现的问题。[0005]为了解决上述技术问题,本发明实施例公开了如下技术方案:[0006]本发明第一发明提供了一种通过maiIbox协议实现服务器主机访问BMCFLASH的系统,实现服务器主机对BMC控制的FLASH访问,包括位于SOCFPGA的ARM控制器、maiIbox模块、LPC控制器和服务器HOST,所述ARM控制器与AI3B总线连接,AI3B总线分别与BMCSPI控制器、maiIbox模块和LPC控制器连接,所述BMCSPI控制器与FLASH连接,所述maiIbox模块与LPC控制器连接,所述LPC控制器与服务器HOST连接。[0007]结合第一方面,在第一方面第一种可能的实现方式中,maiIbox模块包括写FIFO模块、读FIFO模块、写操作控制器、读操作控制器和寄存器模块,所述写FIFO模块与LPC控制器连接,存储LPC控制器接收到的读写FLASH命令和数据;写操作控制器检测写FIFO模块是否有数据;寄存器模块存储写操作控制器发送的数据和ARM控制器写入的数据;读操作控制器读取寄存器模块ARM控制器写入的数据并将数据存储到读FIFO模块。[0008]结合第一方面,在第一方面的第二种可能的实现方式中,所述寄存器模块包括读寄存器单元和写寄存器单元,所述读寄存器单元分别与ARM控制器和读操作控制器连接,读寄存器单元通过APB总线接收ARM控制器写入的地址和数据,将数据发送给读操作控制器;所述写寄存器单元分别与写操作控制器和ARM控制器连接,接收写操作控制器发送的地址和数据,通过APB总线发送给ARM控制器。[0009]本发明第二方面提供了一种通过mailbox协议实现服务器主机访问BMCFLASH的方法,包括以下步骤:[0010]服务器HOST通过mailbox模块发送控制FLASH指令到ARM控制器;[0011]ARM控制器将FLASH数据通过mailbox模块发送到服务器HOST。[0012]结合第二方面,在第二方面第一种可能的实现方式中,所述服务器HOST通过maiIbox模块发送控制FLASH指令到ARM控制器,包括,[0013]服务器HOST发送控制FLASH的命令到LPC控制器;[0014]LPC控制器对接收到的命令解析后发送到mailbox模块;[0015]maiIbox模块根据maiIbox协议对命令进行处理,通知ARM控制器读取命令;[0016]ARM控制器读取命令后根据命令内容对BMC控制器进行操作,实现BMC控制器对FLASH的读写操作。[0017]进一步地,所述maiIbox模块根据maiIbox协议对命令进行处理,通知ARM控制器读取命令,包括:[0018]写FIFO接收LPC控制器的数据,写操作控制器从写FIFO中读取地址和数据,通过写寄存器操作接口送到寄存器模块;写寄存器单元接收写操作控制器发送的地址和数据,写入相应寄存器,并且通过置位中断寄存器,通知ARM通过APB总线读取相应寄存器中的内容。[0019]结合第二方面,在第二方面第二种可能的实现方式中,所述ARM控制器将FLASH数据通过maiIbox模块发送到服务器HOST,包括,[0020]ARM控制器将读取的FLASH数据发送到maiIbox模块;[0021]maiIbox模块根据maiIbox协议对接收的数据进行处理,通知LPC控制器读取数据;[0022]LPC控制器将读取数据发送到服务器HOST。[0023]进一步地,所述maiIbox模块根据maiIbox协议对接收的数据进行处理,通知LPC控制器读取数据,包括,读寄存器单元通过APB总线接收ARM控制器写入的地址和数据,写入相应寄存器,并且通过设置中断寄存器,通知读操作控制器读取相应寄存器内容;读操作控制器通过读中断寄存器的内容,检测寄存器模块中的写信号,如果为高,则将读取寄存器中的内容,并将读取的数据写入读FIFO。[0024]由以上技术方案可见,本发明在使用SoCFPGA完成服务器BMC功能的实施过程中,很好的解决了服务器HOST通过BMC控制FLASH的问题,本发明使用VeriIogHDL语言开发的mailbox协议模块逻辑可以很好的与其他模块对接,且具有很好的可移植性。本发明具有很好的可移植性和可操作性行,是BMC芯片国产化的重要组成部分。附图说明[0025]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0026]图1为本发明实施例结构示意图;[0027]图2为本发明maiIbox模块内部实现示意图;[0028]图3是本发明方法实施例步骤流程图。具体实施方式[0029]为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。[0030]MaiIbox协议是一种HOST可以通过BMC控制FLASH的方式,其主要特点是HOST和BMC通过maiIbox中规定的寄存器进行信息交互,从而HOST将数据和命令通过maiIbox传递给BMC,然后BMC单独对FLASH进行操作,操作后的结果通过mailbox中的寄存器再返回给HOST,从而对FLASH的操作完全由BMC完成。本发明则主要完成mailbox协议在SoCFPGA上的设计与实现。[0031]如图1所示,一种通过mailbox协议实现服务器主机访问BMCFLASH的系统,实现服务器主机对BMC控制的FLASH访问,包括位于SOCFPGA的ARM控制器、maiIbox模块、LPC控制器和服务器HOST,所述ARM控制器与AI3B总线连接,AI3B总线分别与BMCSPI控制器、mailbox模块和LPC控制器连接,所述BMCSPI控制器与FLASH连接,所述maiIbox模块与LPC控制器连接,所述LPC控制器与服务器HOST连接。[0032]如图2所示,mailbox模块包括写FIFO模块、读FIFO模块、写操作控制器、读操作控制器和寄存器模块,所述写FIFO模块与LPC控制器连接,存储LPC控制器接收到的读写FLASH命令和数据;写操作控制器检测写FIFO模块是否有数据;寄存器模块存储写操作控制器发送的数据和ARM控制器写入的数据;读操作控制器读取寄存器模块ARM控制器写入的数据并将数据存储到读FIFO模块。[0033]寄存器模块包括读寄存器单元和写寄存器单元,所述读寄存器单元分别与ARM控制器和读操作控制器连接,读寄存器单元通过APB总线接收ARM控制器写入的地址和数据,将数据发送给读操作控制器;所述写寄存器单元分别与写操作控制器和ARM控制器连接,接收写操作控制器发送的地址和数据,通过APB总线发送给ARM控制器。[0034]如图3所示,一种通过maiIbox协议实现服务器主机访问BMCFLASH的方法,包括以下步骤:[0035]Sl、服务器HOST发送控制FLASH的命令到LPC控制器;[0036]S2、LPC控制器对接收到的命令解析后发送到mailbox模块;[0037]S3、maiIbox模块根据maiIbox协议对命令进行处理,通知ARM控制器读取命令;[0038]S4、ARM控制器读取命令后根据命令内容对BMC控制器进行操作,实现BMC控制器对FLASH的读写操作。[0039]S5、ARM控制器将读取的FLASH数据发送到mailbox模块;[0040]S6、maiIbox模块根据maiIbox协议对接收的数据进行处理,通知LPC控制器读取数据;[0041]S7、LPC控制器将读取数据发送到服务器HOST。[0042]步骤S3中,maiIbox模块根据maiIbox协议对命令进行处理,通知ARM控制器读取命令,包括:写FIFO接收LPC控制器的数据,当LPC控制器接收到HOST发送的控制FLASH的命令和数据后,会将命令和数据写入到写FIFO中。写操作控制器检测写FIFO中的empty信号,让empty信号置0,表示FIFO中有数据,此时写操作控制器从写FIFO中读取地址和数据,然后通过写寄存器操作接口送到寄存器模块。[0043]写寄存器单元接收写操作控制器发送的地址和数据,写入相应寄存器,并且通过置位中断寄存器,通知ARM通过APB总线读取相应寄存器中的内容。[0044]步骤S6中,mailbox模块根据mailbox协议对接收的数据进行处理,通知LPC控制器读取数据,包括,读寄存器单元通过APB总线接收ARM控制器写入的地址和数据,写入相应寄存器,并且通过设置中断寄存器,通知读操作控制器读取相应寄存器内容。[0045]读操作控制器通过读中断寄存器的内容,检测寄存器模块中的写信号,如果为高,则将读取寄存器中的内容,并将读取的数据写入读FIFO。读FIFO接收读操作控制器的数据,并且等待LPC模块读取FIFO中的数据。[0046]本发明的逻辑模块的接口信号如下表1所示:[0047]表Imailbox模块接口信号表[0050]以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

权利要求:1.一种通过maiIbox协议实现服务器主机访问BMCFLASH的系统,实现服务器主机对BMC控制的FLASH访问,其特征是,包括位于SOCFPGA的ARM控制器、maiIbox模块、LPC控制器和服务器HOST,所述ARM控制器与APB总线连接,AI3B总线分别与BMCSPI控制器、maiIbox模块和LPC控制器连接,所述BMCSPI控制器与FLASH连接,所述maiIbox模块与LPC控制器连接,所述LPC控制器与服务器HOST连接。2.如权利要求1所述的一种通过maiIbox协议实现服务器主机访问BMCFLASH的系统,其特征是,maiIbox模块包括写FIFO模块、读FIFO模块、写操作控制器、读操作控制器和寄存器模块,所述写FIFO模块与LPC控制器连接,存储LPC控制器接收到的读写FLASH命令和数据;写操作控制器检测写FIFO模块是否有数据;寄存器模块存储写操作控制器发送的数据和ARM控制器写入的数据;读操作控制器读取寄存器模块ARM控制器写入的数据并将数据存储到读FIFO模块。3.如权利要求2所述的一种通过maiIbox协议实现服务器主机访问BMCFLASH的系统,其特征是,所述寄存器模块包括读寄存器单元和写寄存器单元,所述读寄存器单元分别与ARM控制器和读操作控制器连接,读寄存器单元通过APB总线接收ARM控制器写入的地址和数据,将数据发送给读操作控制器;所述写寄存器单元分别与写操作控制器和ARM控制器连接,接收写操作控制器发送的地址和数据,通过APB总线发送给ARM控制器。4.一种通过maiIbox协议实现服务器主机访问BMCFLASH的方法,其特征是,包括以下步骤:服务器HOST通过maiIbox模块发送控制FLASH指令到ARM控制器;ARM控制器将FLASH数据通过maiIbox模块发送到服务器HOST。5.如权利要求4所述的一种通过maiIbox协议实现服务器主机访问BMCFLASH的方法,其特征是,所述服务器HOST通过maiIbox模块发送控制FLASH指令到ARM控制器,包括,服务器HOST发送控制FLASH的命令到LPC控制器;LPC控制器对接收到的命令解析后发送到maiIbox模块;maiIbox模块根据maiIbox协议对命令进行处理,通知ARM控制器读取命令;ARM控制器读取命令后根据命令内容对BMC控制器进行操作,实现BMC控制器对FLASH的读写操作。6.如权利要求5所述的一种通过maiIbox协议实现服务器主机访问BMCFLASH的方法,其特征是,所述maiIbox模块根据maiIbox协议对命令进行处理,通知ARM控制器读取命令,包括:写FIFO接收LPC控制器的数据,写操作控制器从写FIFO中读取地址和数据,通过写寄存器操作接口送到寄存器模块;写寄存器单元接收写操作控制器发送的地址和数据,写入相应寄存器,并且通过置位中断寄存器,通知ARM通过APB总线读取相应寄存器中的内容。7.如权利要求4所述的一种通过maiIbox协议实现服务器主机访问BMCFLASH的方法,其特征是,所述ARM控制器将FLASH数据通过maiIbox模块发送到服务器HOST,包括,ARM控制器将读取的FLASH数据发送到maiIbox模块;maiIbox模块根据maiIbox协议对接收的数据进行处理,通知LPC控制器读取数据;LPC控制器将读取数据发送到服务器HOST。8.如权利要求7所述的一种通过maiIbox协议实现服务器主机访问BMCFLASH的方法,其特征是,所述mailbox模块根据mailbox协议对接收的数据进行处理,通知LPC控制器读取数据,包括,读寄存器单元通过APB总线接收ARM控制器写入的地址和数据,写入相应寄存器,并且通过设置中断寄存器,通知读操作控制器读取相应寄存器内容;读操作控制器通过读中断寄存器的内容,检测寄存器模块中的写信号,如果为高,则将读取寄存器中的内容,并将读取的数据写入读FIFO。

百度查询: 郑州云海信息技术有限公司 一种通过mailbox协议实现服务器主机访问BMC FLASH的系统及方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。