專利名稱:一種限制基板管理控制器命令的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是指一種限制基板管理控制器(BMC,Baseboard Management Controller)命令的方法及裝置。
背景技術(shù):
智能平臺(tái)管理接口(IPMI,Intelligent Platform Management Interface)規(guī)范定義了三種標(biāo)準(zhǔn)的系統(tǒng)接口鍵盤控制器規(guī)格(KCS,Keyboard ControllerStyle)接口、系統(tǒng)管理接口芯片(SMIC,System Management Interface Chip)接口和塊傳遞(BT,Block Transfer)接口,用于系統(tǒng)軟件和基板管理控制器(BMC,Baseboard Management Controller)之間的通信。通過IPMI規(guī)范所定義的系統(tǒng)接口,任何系統(tǒng)軟件都可以向基板管理控制器BMC發(fā)送命令,用以控制本地或者遠(yuǎn)程的計(jì)算機(jī)。
然而,出于安全方面的考慮,在很多情況下希望可以限制某些BMC命令的自由發(fā)送,這些BMC命令可能是IPMI規(guī)范所定義的,也可能是原始設(shè)備生產(chǎn)商(OEM)自己定義的。
目前支持BMC的計(jì)算機(jī)平臺(tái)中,BMC通過運(yùn)行固件(Firmware)支持所有的BMC命令,因此現(xiàn)有技術(shù)為了限制某個(gè)命令,只有修改BMC固件來(lái),使BMC無(wú)法支持該命令。但是,由于固件修改起來(lái)比較復(fù)雜,且不易反復(fù)多次修改,因此這種方法缺乏彈性,無(wú)法適應(yīng)所有的應(yīng)用場(chǎng)合。另外,對(duì)于IPMI強(qiáng)制定義的命令,如果通過修改BMC固件來(lái)禁止,則將會(huì)違反IPMI的規(guī)范,可能引起異常。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種限制BMC命令的方法及裝置,不需要修改到BMC固件,就可以對(duì)所有BMC命令進(jìn)行彈性的限制。
基于上述目的本發(fā)明提供的一種限制基板管理控制器BMC命令的方法,包括
設(shè)置BMC命令權(quán)限表以規(guī)定限制的BMC命令;設(shè)置系統(tǒng)中斷處理程序以找出受限的BMC命令并進(jìn)行處理;如果有命令到達(dá)系統(tǒng)I/O總線,則觸發(fā)系統(tǒng)中斷,進(jìn)入系統(tǒng)中斷處理程序,搜索BMC命令權(quán)限表判斷當(dāng)前到達(dá)系統(tǒng)I/O總線的命令是否為被限制的BMC命令,如果是,則阻止當(dāng)前命令的發(fā)送,否則,繼續(xù)當(dāng)前命令的發(fā)送。
該方法所述觸發(fā)系統(tǒng)中斷過程包括預(yù)先設(shè)置I/O陷阱以監(jiān)控所述系統(tǒng)I/O總線,如果有命令到達(dá)系統(tǒng)I/O總線,則I/O陷阱觸發(fā)系統(tǒng)中斷,進(jìn)入系統(tǒng)中斷處理程序。
該方法所述I/O陷阱設(shè)置在與所述系統(tǒng)I/O總線相連的基本輸入輸出系統(tǒng)BIOS中。
該方法所述I/O陷阱只對(duì)從系統(tǒng)軟件發(fā)向BMC方向的命令進(jìn)行監(jiān)控。
該方法BMC命令權(quán)限表中列有所有命令和命令權(quán)限的對(duì)應(yīng)關(guān)系;所述判斷過程包括搜索BMC命令權(quán)限表判斷當(dāng)前到達(dá)系統(tǒng)I/O總線的命令權(quán)限為被禁止還是被允許,如果是被禁止,則阻止當(dāng)前命令的發(fā)送,如果是被允許,則繼續(xù)當(dāng)前命令的發(fā)送。
該方法所述阻止當(dāng)前命令的發(fā)送的過程中進(jìn)一步包括將當(dāng)前命令丟棄。
該方法所述系統(tǒng)的中斷處理程序?yàn)橄到y(tǒng)管理中斷SMI處理程序。
該方法所述系統(tǒng)的中斷處理程序有CPU執(zhí)行或由BIOS執(zhí)行。
基于上述目的本發(fā)明還提供了一種限制BMC命令的裝置,包括存儲(chǔ)器,用于存儲(chǔ)BMC命令權(quán)限表以規(guī)定禁止發(fā)送的BMC命令,以及系統(tǒng)中斷處理程序以找出受限的BMC命令并進(jìn)行處理;命令處理裝置,用于執(zhí)行系統(tǒng)中斷處理程序,搜索BMC命令權(quán)限表,判斷當(dāng)前截獲的命令是否為被限制的BMC命令,如果是,則阻止該命令的發(fā)送,否則,繼續(xù)該命令的發(fā)送;中斷執(zhí)行裝置,與系統(tǒng)I/O總線連接,用于截獲通過系統(tǒng)I/O總線的命令,產(chǎn)生中斷,將截獲的命令發(fā)送給處理裝置進(jìn)行處理。
從上面所述可以看出,發(fā)明提供的一種限制BMC命令的方法和裝置通過截獲在系統(tǒng)I/O總線上傳輸?shù)拿睿?duì)命令進(jìn)行判斷等技術(shù)手段實(shí)現(xiàn)了對(duì)所有BMC命令的限制。并具有以下積極效果具有良好的擴(kuò)展彈性,可以隨時(shí)通過修改BMC命令的權(quán)限,限制或允許系統(tǒng)軟件向BMC發(fā)送命令,并且不必修改BMC的固件。
圖1為本發(fā)明所涉及的限制BMC命令的方法的結(jié)構(gòu)框圖;圖2為本發(fā)明限制BMC命令發(fā)送方法實(shí)施例的流程示意圖。
具體實(shí)施例方式
IPMI定義的三種系統(tǒng)接口,即KCS接口、SMIC接口和BT接口,都通過系統(tǒng)輸入/輸出(I/O)端口來(lái)實(shí)現(xiàn)BMC命令的傳送并取得返回值。參見圖1所示,當(dāng)系統(tǒng)軟件6發(fā)出目的地為BMC 4的BMC命令后,CPU 1會(huì)把該BMC命令送往北橋芯片2;北橋芯片2接著把BMC命令送往南橋芯片3;南橋芯片3收到BMC命令后,把該BMC命令送往相應(yīng)的系統(tǒng)I/O端口,于是BMC命令就被放到了系統(tǒng)I/O總線5上;BMC命令經(jīng)過了系統(tǒng)I/O總線5的傳送,最終到達(dá)了BMC4。
因此,本發(fā)明的思路為當(dāng)系統(tǒng)軟件往系統(tǒng)I/O口發(fā)送命令時(shí),立刻觸發(fā)系統(tǒng)中斷處理程序;并且在系統(tǒng)中斷處理程序中取得系統(tǒng)軟件發(fā)出的BMC命令,檢查該命令的權(quán)限是否屬于限制發(fā)送的范圍,并決定是否進(jìn)行限制。從而不需要修改到BMC固件,就可以對(duì)所有BMC命令進(jìn)行彈性的限制。
本發(fā)明提供的限制BMC命令方法的主要包括設(shè)置BMC命令權(quán)限表以規(guī)定限制的BMC命令;設(shè)置系統(tǒng)中斷處理程序以找出受限的BMC命令并進(jìn)行處理;如果有命令到達(dá)系統(tǒng)I/O總線,則觸發(fā)系統(tǒng)中斷,進(jìn)入系統(tǒng)中斷處理程序,搜索BMC命令權(quán)限表判斷當(dāng)前到達(dá)系統(tǒng)I/O總線的命令是否為被限制的BMC命令,如果是,則阻止當(dāng)前命令的發(fā)送,否則,繼續(xù)當(dāng)前命令的發(fā)送。
下面結(jié)合圖1和圖2對(duì)本發(fā)明較佳實(shí)施例進(jìn)行詳細(xì)描述。
預(yù)先設(shè)置BMC命令權(quán)限表8以規(guī)定限制的BMC命令;以及系統(tǒng)中斷處理程序以找出受限的BMC命令并進(jìn)行處理。參見圖1所示,BMC命令權(quán)限表8中列出所有可能經(jīng)過系統(tǒng)I/O總線的命令以及這些命令的權(quán)限,即被允許還是被禁止,以便于系統(tǒng)中斷處理程序查找,系統(tǒng)中斷處理程序可以通過系統(tǒng)管理中斷(SMI)程序?qū)崿F(xiàn),主要操作是搜索BMC命令權(quán)限表8,對(duì)命令權(quán)限進(jìn)行判斷,以決定對(duì)命令的進(jìn)一步處理。
其中,這里列出的BMC命令權(quán)限表8形式只是舉例,還可以采取其他形式,比如只列出被限制的BMC命令,這樣系統(tǒng)中斷處理程序可以通過判斷當(dāng)前命令是否存在于BMC命令權(quán)限表8中,來(lái)確定當(dāng)前的命令是否被禁止發(fā)送。
步驟201,系統(tǒng)軟件6向BMC 4發(fā)送“命令B”時(shí),CPU 1把“命令B”依次發(fā)送到北橋芯片2、南橋芯片3,南橋芯片3將命令通過系統(tǒng)I/O總線發(fā)送到BMC。
步驟202,在“命令B”到達(dá)系統(tǒng)I/O總線5時(shí),觸發(fā)系統(tǒng)中斷進(jìn)入預(yù)先設(shè)置的SMI程序。
該中斷的觸發(fā)功能可以有多種實(shí)現(xiàn)方式,這里優(yōu)選通過設(shè)置I/O陷阱來(lái)實(shí)現(xiàn)?,F(xiàn)在的計(jì)算機(jī)系統(tǒng)芯片都有I/O陷阱功能,該功能可以實(shí)現(xiàn)偵測(cè)當(dāng)前計(jì)算機(jī)系統(tǒng)I/O總線上的I/O操作,當(dāng)I/O總線上的I/O操作滿足其設(shè)定的要求時(shí),該功能可以實(shí)現(xiàn)攔截當(dāng)前I/O操作,并觸發(fā)系統(tǒng)管理中斷,由系統(tǒng)管理中斷程序來(lái)決定該I/O操作的結(jié)果。
優(yōu)選可將I/O陷阱設(shè)置在基本輸入輸出系統(tǒng)(BIOS)中,由于BIOS與系統(tǒng)I/O總線5連接,因此可以很方便的截獲到通過系統(tǒng)I/O總線5的命令。并且如果需要,通過設(shè)置I/O陷阱還可以截獲由BMC發(fā)往系統(tǒng)軟件方向的命令。
步驟203~205,通過I/O陷阱觸發(fā)SMI,執(zhí)行SMI處理程序7,SMI處理程序7通過搜索BMC命令權(quán)限表8,找到“命令B”的權(quán)限為“N”,表示“命令B”是被限制發(fā)送給BMC 4的,于是SMI處理程序7丟棄“命令B”,不把“命令B”放回到系統(tǒng)I/O總線,BMC4也就因此無(wú)法接收到“命令B”。如果當(dāng)前命令在BMC命令權(quán)限表8中的權(quán)限為“Y”,則把該命令放回系統(tǒng)I/O總線5,使其發(fā)送到BMC4。
上述SMI處理程序7可以存儲(chǔ)在BIOS中由BIOS執(zhí)行該SMI處理程序7;另外,也可以存儲(chǔ)在其他存儲(chǔ)設(shè)備中,由CPU 1來(lái)執(zhí)行所述SMI處理程序7。
基于該方法本發(fā)明還提供了一種限制基板管理控制器BMC命令的裝置,包括存儲(chǔ)器,用于存儲(chǔ)BMC命令權(quán)限表以規(guī)定禁止發(fā)送的BMC命令,以及系統(tǒng)中斷處理程序以找出受限的BMC命令并進(jìn)行處理;命令處理裝置,用于執(zhí)行系統(tǒng)中斷處理程序,搜索BMC命令權(quán)限表,判斷當(dāng)前截獲的命令是否為被限制的BMC命令,如果是,則阻止該命令的發(fā)送,否則,繼續(xù)該命令的發(fā)送;中斷執(zhí)行裝置,與系統(tǒng)I/O總線連接,用于截獲通過系統(tǒng)I/O總線的命令,產(chǎn)生中斷,將截獲的命令發(fā)送給處理裝置進(jìn)行處理。
總之上面所述僅為本發(fā)明較佳實(shí)施例而已并非用以限定本發(fā)明。
權(quán)利要求
1.一種限制基板管理控制器BMC命令的方法,其特征在于,包括設(shè)置BMC命令權(quán)限表以規(guī)定限制的BMC命令;設(shè)置系統(tǒng)中斷處理程序以找出受限的BMC命令并進(jìn)行處理;如果有命令到達(dá)系統(tǒng)I/O總線,則觸發(fā)系統(tǒng)中斷,進(jìn)入系統(tǒng)中斷處理程序,搜索BMC命令權(quán)限表判斷當(dāng)前到達(dá)系統(tǒng)I/O總線的命令是否為被限制的BMC命令,如果是,則阻止當(dāng)前命令的發(fā)送,否則,繼續(xù)當(dāng)前命令的發(fā)送。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述觸發(fā)系統(tǒng)中斷過程包括預(yù)先設(shè)置I/O陷阱以監(jiān)控所述系統(tǒng)I/O總線,如果有命令到達(dá)系統(tǒng)I/O總線,則I/O陷阱觸發(fā)系統(tǒng)中斷,進(jìn)入系統(tǒng)中斷處理程序。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述I/O陷阱設(shè)置在與所述系統(tǒng)I/O總線相連的基本輸入輸出系統(tǒng)BIOS中。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述I/O陷阱只對(duì)從系統(tǒng)軟件發(fā)向BMC方向的命令進(jìn)行監(jiān)控。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,BMC命令權(quán)限表中列有所有命令和命令權(quán)限的對(duì)應(yīng)關(guān)系;所述判斷過程包括搜索BMC命令權(quán)限表判斷當(dāng)前到達(dá)系統(tǒng)I/O總線的命令權(quán)限為被禁止還是被允許,如果是被禁止,則阻止當(dāng)前命令的發(fā)送,如果是被允許,則繼續(xù)當(dāng)前命令的發(fā)送。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述阻止當(dāng)前命令的發(fā)送的過程中進(jìn)一步包括將當(dāng)前命令丟棄。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述系統(tǒng)的中斷處理程序?yàn)橄到y(tǒng)管理中斷SMI處理程序。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述系統(tǒng)的中斷處理程序由CPU執(zhí)行或由BIOS執(zhí)行。
9.一種限制BMC命令的裝置,其特征在于,包括存儲(chǔ)器,用于存儲(chǔ)BMC命令權(quán)限表以規(guī)定禁止發(fā)送的BMC命令,以及系統(tǒng)中斷處理程序以找出受限的BMC命令并進(jìn)行處理;命令處理裝置,用于執(zhí)行系統(tǒng)中斷處理程序,搜索BMC命令權(quán)限表,判斷當(dāng)前截獲的命令是否為被限制的BMC命令,如果是,則阻止該命令的發(fā)送,否則,繼續(xù)該命令的發(fā)送;中斷執(zhí)行裝置,與系統(tǒng)I/O總線連接,用于截獲通過系統(tǒng)I/O總線的命令,產(chǎn)生中斷,將截獲的命令發(fā)送給處理裝置進(jìn)行處理。
全文摘要
本發(fā)明公開了一種本發(fā)明提供的限制基板管理控制器(BMC)命令方法的包括設(shè)置BMC命令權(quán)限表以規(guī)定限制的BMC命令;設(shè)置系統(tǒng)中斷處理程序;如果有命令到達(dá)系統(tǒng)I/O總線,則觸發(fā)系統(tǒng)中斷,進(jìn)入系統(tǒng)中斷處理程序,搜索BMC命令權(quán)限表判斷當(dāng)前到達(dá)系統(tǒng)I/O總線的命令是否為被限制的BMC命令,如果是,則阻止當(dāng)前命令的發(fā)送,否則,繼續(xù)當(dāng)前命令的發(fā)送。同時(shí)還公開了一種限制BMC命令的裝置,包括存儲(chǔ)器,用于存儲(chǔ)BMC命令權(quán)限表以及系統(tǒng)中斷處理程序;命令處理裝置,用于執(zhí)行系統(tǒng)中斷處理程序;中斷執(zhí)行裝置,與系統(tǒng)I/O總線連接,用于產(chǎn)生中斷,將截獲的命令發(fā)送給處理裝置進(jìn)行處理。通過本發(fā)明不需要修改到BMC固件,就可以對(duì)所有BMC命令進(jìn)行彈性的限制。
文檔編號(hào)G06F9/48GK101046785SQ20061006706
公開日2007年10月3日 申請(qǐng)日期2006年3月31日 優(yōu)先權(quán)日2006年3月31日
發(fā)明者柯海濱 申請(qǐng)人:聯(lián)想(北京)有限公司