一种限制基板管理控制器命令的方法及装置的制作方法

文档序号:6557701阅读:213来源:国知局
专利名称:一种限制基板管理控制器命令的方法及装置的制作方法
技术领域
本发明涉及计算机技术领域,特别是指一种限制基板管理控制器(BMC,Baseboard Management Controller)命令的方法及装置。
背景技术
智能平台管理接口(IPMI,Intelligent Platform Management Interface)规范定义了三种标准的系统接口键盘控制器规格(KCS,Keyboard ControllerStyle)接口、系统管理接口芯片(SMIC,System Management Interface Chip)接口和块传递(BT,Block Transfer)接口,用于系统软件和基板管理控制器(BMC,Baseboard Management Controller)之间的通信。通过IPMI规范所定义的系统接口,任何系统软件都可以向基板管理控制器BMC发送命令,用以控制本地或者远程的计算机。
然而,出于安全方面的考虑,在很多情况下希望可以限制某些BMC命令的自由发送,这些BMC命令可能是IPMI规范所定义的,也可能是原始设备生产商(OEM)自己定义的。
目前支持BMC的计算机平台中,BMC通过运行固件(Firmware)支持所有的BMC命令,因此现有技术为了限制某个命令,只有修改BMC固件来,使BMC无法支持该命令。但是,由于固件修改起来比较复杂,且不易反复多次修改,因此这种方法缺乏弹性,无法适应所有的应用场合。另外,对于IPMI强制定义的命令,如果通过修改BMC固件来禁止,则将会违反IPMI的规范,可能引起异常。

发明内容
有鉴于此,本发明的目的在于提供一种限制BMC命令的方法及装置,不需要修改到BMC固件,就可以对所有BMC命令进行弹性的限制。
基于上述目的本发明提供的一种限制基板管理控制器BMC命令的方法,包括
设置BMC命令权限表以规定限制的BMC命令;设置系统中断处理程序以找出受限的BMC命令并进行处理;如果有命令到达系统I/O总线,则触发系统中断,进入系统中断处理程序,搜索BMC命令权限表判断当前到达系统I/O总线的命令是否为被限制的BMC命令,如果是,则阻止当前命令的发送,否则,继续当前命令的发送。
该方法所述触发系统中断过程包括预先设置I/O陷阱以监控所述系统I/O总线,如果有命令到达系统I/O总线,则I/O陷阱触发系统中断,进入系统中断处理程序。
该方法所述I/O陷阱设置在与所述系统I/O总线相连的基本输入输出系统BIOS中。
该方法所述I/O陷阱只对从系统软件发向BMC方向的命令进行监控。
该方法BMC命令权限表中列有所有命令和命令权限的对应关系;所述判断过程包括搜索BMC命令权限表判断当前到达系统I/O总线的命令权限为被禁止还是被允许,如果是被禁止,则阻止当前命令的发送,如果是被允许,则继续当前命令的发送。
该方法所述阻止当前命令的发送的过程中进一步包括将当前命令丢弃。
该方法所述系统的中断处理程序为系统管理中断SMI处理程序。
该方法所述系统的中断处理程序有CPU执行或由BIOS执行。
基于上述目的本发明还提供了一种限制BMC命令的装置,包括存储器,用于存储BMC命令权限表以规定禁止发送的BMC命令,以及系统中断处理程序以找出受限的BMC命令并进行处理;命令处理装置,用于执行系统中断处理程序,搜索BMC命令权限表,判断当前截获的命令是否为被限制的BMC命令,如果是,则阻止该命令的发送,否则,继续该命令的发送;中断执行装置,与系统I/O总线连接,用于截获通过系统I/O总线的命令,产生中断,将截获的命令发送给处理装置进行处理。
从上面所述可以看出,发明提供的一种限制BMC命令的方法和装置通过截获在系统I/O总线上传输的命令,并对命令进行判断等技术手段实现了对所有BMC命令的限制。并具有以下积极效果具有良好的扩展弹性,可以随时通过修改BMC命令的权限,限制或允许系统软件向BMC发送命令,并且不必修改BMC的固件。


图1为本发明所涉及的限制BMC命令的方法的结构框图;图2为本发明限制BMC命令发送方法实施例的流程示意图。
具体实施例方式
IPMI定义的三种系统接口,即KCS接口、SMIC接口和BT接口,都通过系统输入/输出(I/O)端口来实现BMC命令的传送并取得返回值。参见图1所示,当系统软件6发出目的地为BMC 4的BMC命令后,CPU 1会把该BMC命令送往北桥芯片2;北桥芯片2接着把BMC命令送往南桥芯片3;南桥芯片3收到BMC命令后,把该BMC命令送往相应的系统I/O端口,于是BMC命令就被放到了系统I/O总线5上;BMC命令经过了系统I/O总线5的传送,最终到达了BMC4。
因此,本发明的思路为当系统软件往系统I/O口发送命令时,立刻触发系统中断处理程序;并且在系统中断处理程序中取得系统软件发出的BMC命令,检查该命令的权限是否属于限制发送的范围,并决定是否进行限制。从而不需要修改到BMC固件,就可以对所有BMC命令进行弹性的限制。
本发明提供的限制BMC命令方法的主要包括设置BMC命令权限表以规定限制的BMC命令;设置系统中断处理程序以找出受限的BMC命令并进行处理;如果有命令到达系统I/O总线,则触发系统中断,进入系统中断处理程序,搜索BMC命令权限表判断当前到达系统I/O总线的命令是否为被限制的BMC命令,如果是,则阻止当前命令的发送,否则,继续当前命令的发送。
下面结合图1和图2对本发明较佳实施例进行详细描述。
预先设置BMC命令权限表8以规定限制的BMC命令;以及系统中断处理程序以找出受限的BMC命令并进行处理。参见图1所示,BMC命令权限表8中列出所有可能经过系统I/O总线的命令以及这些命令的权限,即被允许还是被禁止,以便于系统中断处理程序查找,系统中断处理程序可以通过系统管理中断(SMI)程序实现,主要操作是搜索BMC命令权限表8,对命令权限进行判断,以决定对命令的进一步处理。
其中,这里列出的BMC命令权限表8形式只是举例,还可以采取其他形式,比如只列出被限制的BMC命令,这样系统中断处理程序可以通过判断当前命令是否存在于BMC命令权限表8中,来确定当前的命令是否被禁止发送。
步骤201,系统软件6向BMC 4发送“命令B”时,CPU 1把“命令B”依次发送到北桥芯片2、南桥芯片3,南桥芯片3将命令通过系统I/O总线发送到BMC。
步骤202,在“命令B”到达系统I/O总线5时,触发系统中断进入预先设置的SMI程序。
该中断的触发功能可以有多种实现方式,这里优选通过设置I/O陷阱来实现。现在的计算机系统芯片都有I/O陷阱功能,该功能可以实现侦测当前计算机系统I/O总线上的I/O操作,当I/O总线上的I/O操作满足其设定的要求时,该功能可以实现拦截当前I/O操作,并触发系统管理中断,由系统管理中断程序来决定该I/O操作的结果。
优选可将I/O陷阱设置在基本输入输出系统(BIOS)中,由于BIOS与系统I/O总线5连接,因此可以很方便的截获到通过系统I/O总线5的命令。并且如果需要,通过设置I/O陷阱还可以截获由BMC发往系统软件方向的命令。
步骤203~205,通过I/O陷阱触发SMI,执行SMI处理程序7,SMI处理程序7通过搜索BMC命令权限表8,找到“命令B”的权限为“N”,表示“命令B”是被限制发送给BMC 4的,于是SMI处理程序7丢弃“命令B”,不把“命令B”放回到系统I/O总线,BMC4也就因此无法接收到“命令B”。如果当前命令在BMC命令权限表8中的权限为“Y”,则把该命令放回系统I/O总线5,使其发送到BMC4。
上述SMI处理程序7可以存储在BIOS中由BIOS执行该SMI处理程序7;另外,也可以存储在其他存储设备中,由CPU 1来执行所述SMI处理程序7。
基于该方法本发明还提供了一种限制基板管理控制器BMC命令的装置,包括存储器,用于存储BMC命令权限表以规定禁止发送的BMC命令,以及系统中断处理程序以找出受限的BMC命令并进行处理;命令处理装置,用于执行系统中断处理程序,搜索BMC命令权限表,判断当前截获的命令是否为被限制的BMC命令,如果是,则阻止该命令的发送,否则,继续该命令的发送;中断执行装置,与系统I/O总线连接,用于截获通过系统I/O总线的命令,产生中断,将截获的命令发送给处理装置进行处理。
总之上面所述仅为本发明较佳实施例而已并非用以限定本发明。
权利要求
1.一种限制基板管理控制器BMC命令的方法,其特征在于,包括设置BMC命令权限表以规定限制的BMC命令;设置系统中断处理程序以找出受限的BMC命令并进行处理;如果有命令到达系统I/O总线,则触发系统中断,进入系统中断处理程序,搜索BMC命令权限表判断当前到达系统I/O总线的命令是否为被限制的BMC命令,如果是,则阻止当前命令的发送,否则,继续当前命令的发送。
2.根据权利要求1所述的方法,其特征在于,所述触发系统中断过程包括预先设置I/O陷阱以监控所述系统I/O总线,如果有命令到达系统I/O总线,则I/O陷阱触发系统中断,进入系统中断处理程序。
3.根据权利要求2所述的方法,其特征在于,所述I/O陷阱设置在与所述系统I/O总线相连的基本输入输出系统BIOS中。
4.根据权利要求2所述的方法,其特征在于,所述I/O陷阱只对从系统软件发向BMC方向的命令进行监控。
5.根据权利要求1所述的方法,其特征在于,BMC命令权限表中列有所有命令和命令权限的对应关系;所述判断过程包括搜索BMC命令权限表判断当前到达系统I/O总线的命令权限为被禁止还是被允许,如果是被禁止,则阻止当前命令的发送,如果是被允许,则继续当前命令的发送。
6.根据权利要求1所述的方法,其特征在于,所述阻止当前命令的发送的过程中进一步包括将当前命令丢弃。
7.根据权利要求1所述的方法,其特征在于,所述系统的中断处理程序为系统管理中断SMI处理程序。
8.根据权利要求1所述的方法,其特征在于,所述系统的中断处理程序由CPU执行或由BIOS执行。
9.一种限制BMC命令的装置,其特征在于,包括存储器,用于存储BMC命令权限表以规定禁止发送的BMC命令,以及系统中断处理程序以找出受限的BMC命令并进行处理;命令处理装置,用于执行系统中断处理程序,搜索BMC命令权限表,判断当前截获的命令是否为被限制的BMC命令,如果是,则阻止该命令的发送,否则,继续该命令的发送;中断执行装置,与系统I/O总线连接,用于截获通过系统I/O总线的命令,产生中断,将截获的命令发送给处理装置进行处理。
全文摘要
本发明公开了一种本发明提供的限制基板管理控制器(BMC)命令方法的包括设置BMC命令权限表以规定限制的BMC命令;设置系统中断处理程序;如果有命令到达系统I/O总线,则触发系统中断,进入系统中断处理程序,搜索BMC命令权限表判断当前到达系统I/O总线的命令是否为被限制的BMC命令,如果是,则阻止当前命令的发送,否则,继续当前命令的发送。同时还公开了一种限制BMC命令的装置,包括存储器,用于存储BMC命令权限表以及系统中断处理程序;命令处理装置,用于执行系统中断处理程序;中断执行装置,与系统I/O总线连接,用于产生中断,将截获的命令发送给处理装置进行处理。通过本发明不需要修改到BMC固件,就可以对所有BMC命令进行弹性的限制。
文档编号G06F9/48GK101046785SQ20061006706
公开日2007年10月3日 申请日期2006年3月31日 优先权日2006年3月31日
发明者柯海滨 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1