专利名称::基板管理控制器的固件自动配置系统及方法
技术领域:
:本发明涉及一种固件自动配置的系统及方法,尤其是涉及一种符合IPMI(IntelligentPlatformManagementInterface,智能化平台管理接口)规范的基板管理控制器固件自动配置系统及方法。
背景技术:
:新经济时代企业面临的一个主要问题是既要保证应用系统不间断运行,又要不断降低运行成本。谁能更好地控制网络管理成本,谁就有可能在竞争中站在前列。市场的需求决定着技术与产业的发展方向。业界的一些主要厂商从1997年开始联手,步入服务器管理智能化的研发之路。它们的出发点是解决服务器硬件管理能力低的问题。经过数年努力,于2001年推出了IPMI(IntelligentPlatformManagementInterface,智能化平台管理接口)标准。IPMI是使硬件管理具备智能化的新一代通用接口标准。用户可以利用IPMI监视服务器的物理健康特征,如温度、电压、电扇工作状态、电源供应以及机箱入侵等,为系统管理、恢复以及资产管理提供信息。IPMI技术的“智能化”来自于一个管理微控制器。在一个主机系统里,这个控制器被称为BMC(BaseboardManagementController,基板管理控制器)。BMC可以用来提供智能平台管理的智能,控制系统的管理软件和平台管理硬件之间的接口,提供自主监视、事件记录和恢复控制功能,并可作为系统管理软件和IPMB(智能平台管理总线)与ICMB(智能机箱管理总线)接口间的网关使用。BMC自备电源,并自动地监控系统健康状况。如果发现任何被控单元异常,它能立即采取行动,例如记录事件、报警、自动关机或重启动。与BMC相关联的是一组无源内存,用来存储传感器的数据(SensorDataRecords,SDR)、系统事件记录文件,以及一些单元信息如序列号和部件号信息等。IPMI通过指定通用、精简、基于消息的接口,将信息传输到管理微控制器,实现软件与硬件信息的分离。平时BMC会收集有关系统健康和系统状态信息,当有严重事件发生时可以执行纠正动作。通常,系统健康监视功能是利用菲利浦的I2C数字传感器(如LM75、LM85、LM84、LM86)实现的,它能监视不同的系统电压、温度和风扇速度。BMC采用主动轮询的方式来发现是否存在超出范围的传感器。为了使监视工作切实有效,BMC可以根据不同的门限值进行配置。例如,当BMC检测到温度超过某个告警门限时它就提高风扇速度,如果纠正不够,温度就会超过另一个紧急门限,此时BMC会切断系统电源、记录事件过程并通过LAN或串行调制解调器向远程终端发告警。BMC由许多模块组成,与硬件密切相关,并且其模块之间具有千丝万缕的联系。在BMC配置过程中,需要选择主板硬件芯片,然后选择相应的驱动模块,选择需要的接口,命令,SDR,OEM命令,将各个模块组合起来,编译出BMC的固件(固件firmware,也被称为分位、韧体,是储存于机台中的控制机台做读盘等动作的硬件与软件的结合,界于硬件与软件之间)。目前,没有一个合适的配置工具,BMC的配置过程只能依靠手工完成,由于完全依赖人脑,容易出错,效率低下,并且一些隐含的错误无法得到及时发现,品质无法得到保证。因此,如何提供一种BMC固件的自动配置系统已经成为业界亟待解决的问题。
发明内容本发明所要解决的技术问题是提供一种基板管理控制器的固件自动配置系统及方法,解决现有技术没有一个合适的BMC配置工具,BMC的配置过程只能依靠手工完成,由于完全依赖人脑,容易出错,效率低下,并且一些隐含的错误无法得到及时发现,品质无法得到保证的问题。为达到上述目的,本发明提供了一种基板管理控制器的固件自动配置系统,用以灵活管理硬件信息,自动完成基板管理控制器固件的合理配置,其特点在于,包括一硬件选项模块,储存有可供选择的硬件选项,用以针对不同的硬件环境的支持管理,使用者可以根据实际需要选择相应的硬件;一接口选项模块,储存有可供选择的通讯接口选项,用以针对不同的通讯接口支持,使用者可以根据实际需要选择相应的通讯接口;一命令选项模块,储存有可供选择的命令选项,用以支持智能化平台管理接口规范的命令集合,使用者可以根据实际需要选择相应的命令;一传感器数据记录模块,用以配置传感器数据记录的各个类型,用户可以根据实际需要自行输入或选择;一原始设备制造商模块,用以对原始设备制造商的命令和接口进行配置;一配置文件,记录有每一模块的每一选项的关联与限制;一Makefile文件生成模块,用以根据使用者的选择通过该配置文件而生成Makefile文件;及一基板管理控制器固件生成模块,用以根据使用者的选择以及Makefile文件在编译环境中生成基板管理控制器固件数据。上述的系统,其特点在于,该硬件选项模块、接口选项模块、命令选项模块、传感器数据记录模块以及原始设备制造商模块被分别分成单独的目录。上述的系统,其特点在于,该配置文件相对该硬件选项模块、接口选项模块、命令选项模块、传感器数据记录模块以及原始设备制造商模块而分别设置。上述的系统,其特点在于,该配置文件中包含的信息包括当前模块名、依赖的模块位置及模块名、关联的模块位置及模块名,限制条件。为了更好地实现本发明的目的,本发明还提供了一种基板管理控制器的固件自动配置方法,用以灵活管理硬件信息,自动完成基板管理控制器固件的合理配置,其特点在于,包括如下步骤将基板管理控制器需要使用的硬件、接口、命令、传感器数据记录以及原始设备制造商数据按类分为硬件模块、接口模块、命令模块、传感器数据记录模块以及原始设备制造商模块;根据该模块之间的关联与限制生成一配置文件并将每一模块分别分成单独的目录;初始化并生成一空的Makefile文件;读取配置文件内容,列出树型列表;当用户选中一模块中的选项时,检查该配置文件中的关联与限制内容;根据该配置文件在接口上动态显示关联模块的选项,并在该Makefile文件上记录相关联的选项;及根据使用者的选择及当前Makefile文件在编译环境下生成基板管理控制器固件数据。上述的方法,其特点在于,该配置文件中包含的信息包括当前模块名、依赖的模块位置及模块名、关联的模块位置及模块名,限制条件。上述的方法,其特点在于,还包括当使用者删除一模块选项时,从Makefile文件中删除相应的内容的步骤。上述的方法,其特点在于,该配置文件相对该硬件选项模块、接口选项模块、命令选项模块、传感器数据记录模块以及原始设备制造商模块而分别设置。本发明的技术效果在于本发明通过将BMC需要的硬件、接口、命令、SDR以及OEM数据分类封装并设置关联,可以灵活的管理各个硬件模块,适应各种需求,为各个模块提供统一的调用接口,灵活的替换硬件,甚至可以导入标准配置模板,在其基础上进行修改配置,从而提高了生产率。下面结合附图进一步详细说明本发明的具体实施例。图1为本发明的BMC固件自动配置系统示意图;图2为本发明的基板管理控制器固件自动配置方法流程图;图3为本发明的硬件选项模块的结构示意图;图4为本发明中的接口选项模块结构示意图;图5为本发明中的命令选项模块结构示意图;图6为本发明中的SDR模块结构示意图;图7为本发明的配置接口示意图;及图8A、8B为本发明的SDR配置向导示意图。其中,附图标记说明如下101硬件选项模块102接口选项模块103命令选项模块104传感器数据记录模块105OEM模块106配置文件107Makefile文件生成模块108BMC固件生成模块步骤201将BMC需要使用的硬件、接口、命令、SDR以及OEM数据按类分为硬件模块、接口模块、命令模块、SDR模块以及OEM模块步骤202根据该模块之间的关联与限制生成一配置文件并将每一模块分别分成单独的目录步骤203初始化并生成一空的Makefile文件步骤204读取配置文件内容,列出树型列表步骤205当用户选中一模块中的选项时,检查该配置文件中的关联与限制内容步骤206根据该配置文件在接口上动态显示关联模块的选项,并在该Makefile文件上记录相关联的选项步骤207根据使用者的选择及当前Makefile文件在编译环境下生成BMC固件数据具体实施方式本发明提供了一种基板管理控制器的固件自动配置系统,用以灵活管理硬件信息,自动完成BMC固件的合理配置,如图1所示,为本发明BMC固件自动配置系统示意图,该系统包括一硬件选项模块101、一接口选项模块102、一命令选项模块103、一传感器数据记录(SensorDataRecord,SDR)模块104、一OEM(OriginalEquipmentManufacturer)模块105、一配置文件106、一Makefile文件生成模块107、一BMC固件生成模块108。其中,该硬件选项模块101储存有可供选择的硬件选项,用以针对不同的硬件环境的支持管理,使用者可以根据实际需要选择相应的硬件;接口选项模块102储存有可供选择的通讯接口选项,用以针对不同的通讯接口支持,使用者可以根据实际需要选择相应的通讯接口;命令选项模块103储存有可供选择的命令选项,用以支持IPMI规范的命令集合,使用者可以根据实际需要选择相应的命令;传感器数据记录模块104用以配置SDR的各个类型,用户可以根据实际需要自行输入或选择;OEM模块105用以对OEM的命令和接口进行配置;配置文件106记录有每一模块的每一选项的关联与限制;Makefile文件生成模块107用以根据使用者的选择通过该配置文件而生成Makefile文件;BMC固件生成模块108用以根据使用者的选择以及Makefile文件在编译环境中生成BMC固件数据。请参阅图2,为本发明的基板管理控制器固件自动配置方法流程图,首先将BMC需要使用的硬件、接口、命令、SDR以及OEM数据按类分为硬件模块、接口模块、命令模块、SDR模块以及OEM模块(步骤201);然后根据该模块之间的关联与限制生成一配置文件并将每一模块分别分成单独的目录(步骤202);初始化并生成一空的Makefile文件(步骤203);读取配置文件内容,列出树型列表(步骤204);当用户选中一模块中的选项时,检查该配置文件中的关联与限制内容(步骤205);根据该配置文件在接口上动态显示关联模块的选项,并在该Makefile文件上记录相关联的选项(步骤206);最后根据使用者的选择及当前Makefile文件在编译环境下生成BMC固件数据(步骤207)。本发明的配置文件106可以是统一为所有模块而创建的一个单一文件,也可以是分开为硬件选项模块101、接口选项模块102、命令选项模块103、SDR模块104以及OEM模块105而分别设置。本方法的实施例是以分别设置来说明的。其中该配置文件中包含的信息包括当前模块名、依赖的模块位置及模块名、关联的模块位置及模块名,限制条件。依据本发明,可以事先对各种支持的硬件、接口、命令等以统一的形式进行封装,保证不冲突、不遗漏。如图3所示,为本发明中的硬件选项模块的结构示意图。图4所示为本发明中的接口选项模块结构示意图。图5所示为本发明所中的命令选项模块结构示意图。图6所示为本发明中的SDR模块结构示意图。本发明的实施例将各个模块分成单独的一个目录,比如硬件型号目录2168,接口目录kcs,lan,命令目录command,SDR目录sdr,OEM目录oem。在每个目录中设置一个配置文件Config,其内容是当前模块名,依赖的模块位置,模块名,关联的模块位置,模块名,限制条件等。本发明的配置系统启动之后,生成一个空的Makefile文件,然后去读取每个目录的Config文件,列出树形列表。当用户选中其中一项时,本发明会去检查该项的Config文件,查找出其依赖,关联模块,并在显示接口上动态的体现出来。同时,在Makefile文件上记录相关联的项。每个配置文件至少包含当前模块名,依赖模块名和位置,关联模块名和位置。还有各自特殊的字段,例如,SDR配置文件的形式如下//通用字段[ModuleName]“Name”=strsdr.c[DepModule]“Name”=strxxxx“Position”=strxxxx....“Name”=strxxxx“Posititon”=strxxxx....//以下是对SDR表的具体描述....″ByteNumber″=dword12″BitLength″=dword8″FieldName″=strSensorCapabilities″Description″=str[7]1b=IgnoresensorifEntityisnotpresentordisabled[6]1b=AutoRe-armSupport[5:4]00b=Nohysteresis01b=hysteresisisreadable10b=readableandsettable11b=Fixed,unreadable,hysteresis[3:2]00b=nothresholds01b=thresholdsarereadable10b=readableandsettable11b=Fixedandunreadable[1:0]00b=perthreshold/discrete-stateeventenable/disablecontrol01b=entiresensoronly10b=globaldisableonly11b=noevents″ReferTable″=strNULL″DetailNumber″=dword5<Detail1>″Detail″=dword1″DetailDes″=strIgnoresensor″From″=dword7″Length″=dword1″0″=strignoresensorifEntityisnotpresentordisabled″1″=strdon′tignoresensor[Realation]″RByteNumber″=dword34″RFrom″=dword7″RLength″=dword3″RValue″=string010<Detail2>″Detail″=dword2″DetailDes″=strSensorAutoRe-armSupport″From″=dword6″Length″=dword1″0″=strno(manual)″1″=stryes(auto)<Detail3>″Detail″=dword3″DetailDes″=strSensorHysteresisSupport″From″=dword5″Length″=dword2″00″=strNohysteresis″01″=strhysteresisisreadable″10″=strhysteresisisreadableandsettable″11″=strFixed,unreadable,hysteresis<Detail4>″Detail″=dword4″DetailDes″=strSensorThresholdAccessSupport″From″=dword3″Length″=dword2″00″=strnothresholds″01″=strthresholdsarereadable″10″=strreserved″11″=strFixed,unreaadble,thresholds.<Detail5>″Detail″=dword5″DetailDes″=strSensorEventMessageControlSupport″From″=dword1″Length″=dword2″00″=strperthreshold/discrete-stateeventenable/disablecontrol″01″=strentiresensoronly″10″=strglobaldisableonly″11″=strnoevnetsfromsensor....这样,当使用者填写完SDR的一个字段之后,本发明就会根据SDR的Config文件,将填写的值的具体含义告知用户,并且将在Config文件中指定的相关联的字段赋值,这样,就能保证SDR表的内在逻辑的正确性。同时,将这一操作告知使用者。makefile文件是许多编译器,包括WindowsNT下的编译器,维护编译信息的常用方法。Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。本发明的Makefile文件在系统启动的时候自动建立,并且在选择具体模块的时候进行修改,例如,选择i2c之后,会在Makefile文件中添加....\OBJ=obj/di2c.o\obj/EEProm.o\obj/IPMB.o\obj/ADM1029.o\obj/LanSmb.o当然,这些内容,是在i2c的Config文件里指定的。在选中一个模块时,将其本身的模块,依赖的模块,关联的模块同时从相应Config文件里读出,写入Makefile。同样,删除一个模块时,删除相关内容。应用本发明所提供的自动配置系统可以方便、灵活、快捷的进行BMC配置,如图7所示,为本发明的配置接口示意图。只需直观的选择一种硬件,比如直接选择Hitachi2186芯片(在一个列表中选定一种硬件后,和该硬件相关联的接口就会出现在下一级列表中),类似的,接下来只需直观的选择一个接口,比如选择Kcs接口,只需直观的选择所需命令,比如需要Global,Event,Sel,Watchdog命令等。对于SDR表,如果不使用本发明,要填写一个SDRTypel的传感器,需要手工填写64字节的十六进制数,对程序员来说,不易理解,也就容易出错,遗漏,而且,由于其中一些字节的一些位互相关联着,比如前面选择了不支持eentityinstance,那么后面关于entityinstance的字节都必须作相应得调整,非常繁琐。而通过利用本发明,请参阅图8A、图8B,为SDR配置向导示意图,只需填写关键部分的SDR表的内容即可,并且全过程都有智能在线帮助,不用再另行查阅规范,并且保证所生成的SDR表的内在逻辑联系没有错误,可以很直观的完成这64字节的填充,并且好多字节能够根据前面的设置自动完成,保证配置的快捷,正确性。以上所述,仅为本发明中的较佳实施例而已,并非用来限定本发明的实施范围;即凡依本发明的内容和精神所作的均等变化与修饰,皆为本发明的范围所涵盖。权利要求1.一种基板管理控制器的固件自动配置系统,用以灵活管理硬件信息,自动完成基板管理控制器固件的合理配置,其特征在于,包括一硬件选项模块,储存有可供选择的硬件选项,用以针对不同的硬件环境的支持管理,使用者可以根据实际需要选择相应的硬件;一接口选项模块,储存有可供选择的通讯接口选项,用以针对不同的通讯接口支持,使用者可以根据实际需要选择相应的通讯接口;一命令选项模块,储存有可供选择的命令选项,用以支持智能化平台管理接口规范的命令集合,使用者可以根据实际需要选择相应的命令;一传感器数据记录模块,用以配置传感器数据记录的各个类型,用户可以根据实际需要自行输入或选择;一原始设备制造商模块,用以对原始设备制造商的命令和接口进行配置;一配置文件,记录有每一模块的每一选项的关联与限制;一Makefile文件生成模块,用以根据使用者的选择通过该配置文件而生成Makefile文件;及一基板管理控制器固件生成模块,用以根据使用者的选择以及Makefile文件在编译环境中生成基板管理控制器固件数据。2.根据权利要求1所述的系统,其特征在于,该硬件选项模块、接口选项模块、命令选项模块、传感器数据记录模块以及原始设备制造商模块被分别分成单独的目录。3.根据权利要求1所述的系统,其特征在于,该配置文件相对该硬件选项模块、接口选项模块、命令选项模块、传感器数据记录模块以及原始设备制造商模块而分别设置。4.根据权利要求1所述的系统,其特征在于,该配置文件中包含的信息包括当前模块名、依赖的模块位置及模块名、关联的模块位置及模块名,限制条件。5.一种基板管理控制器的固件自动配置方法,用以灵活管理硬件信息,自动完成基板管理控制器固件的合理配置,其特征在于,包括如下步骤将基板管理控制器需要使用的硬件、接口、命令、传感器数据记录以及原始设备制造商数据按类分为硬件模块、接口模块、命令模块、传感器数据记录模块以及原始设备制造商模块;根据该模块之间的关联与限制生成一配置文件并将每一模块分别分成单独的目录;初始化并生成一空的Makefile文件;读取配置文件内容,列出树型列表;当用户选中一模块中的选项时,检查该配置文件中的关联与限制内容;根据该配置文件在接口上动态显示关联模块的选项,并在该Makefile文件上记录相关联的选项;及根据使用者的选择及当前Makefile文件在编译环境下生成基板管理控制器固件数据。6.根据权利要求5所述的方法,其特征在于,该配置文件中包含的信息包括当前模块名、依赖的模块位置及模块名、关联的模块位置及模块名,限制条件。7.根据权利要求5所述的方法,其特征在于,还包括当使用者删除一模块选项时,从Makefile文件中删除相应的内容的步骤。8.根据权利要求5所述的方法,其特征在于,该配置文件相对该硬件选项模块、接口选项模块、命令选项模块、传感器数据记录模块以及原始设备制造商模块而分别设置。全文摘要本发明公开了一种基板管理控制器的固件自动配置系统及方法,首先按类封装硬件模块、接口模块、命令模块、SDR模块以及OEM模块,再生成一配置文件并将每一模块分别分成单独的目录,初始化并生成一空的Makefile文件,读取配置文件内容,当用户选中一模块中的选项时,检查该配置文件并在接口上动态显示关联模块的选项,并在Makefile文件上记录相关联的选项,最后生成BMC固件数据,根据本发明可灵活管理硬件信息,自动完成BMC固件的配置。文档编号G06F9/44GK1641568SQ20041000063公开日2005年7月20日申请日期2004年1月13日优先权日2004年1月13日发明者刘文涵,陈玄同,岑驾科申请人:英业达股份有限公司