技術(shù)領(lǐng)域
本發(fā)明涉及服務(wù)器技術(shù)領(lǐng)域,具體的說是檢測多路服務(wù)器UEFI BIOS版本一致的方法。
背景技術(shù):
對于X86架構(gòu)平臺,無論是單路CPU還是多路CPU的,一般都是掛接一個(gè)BIOS 文件,BIOS文件可能根據(jù)Flash ROM的大小,存放在兩顆Flash Rom中。比方說一顆Flash Rom8M,另一顆4M,他們存放的內(nèi)容是不一樣的,這樣整個(gè)BIOS文件就是12M的,多路系統(tǒng)的其他CPU會共用這個(gè)12M的BIOS文件,這是X86架構(gòu)常用的設(shè)計(jì)。
但是Cavium ARM的架構(gòu)設(shè)計(jì)不同于X86架構(gòu),其每路CPU都要掛接一個(gè)完整的BIOS文件,如果是二路CPU就要掛接兩個(gè)這樣的完整的BIOS文件,二路以上理論上就要掛接多個(gè)Flash 芯片,但目前Cavium ARM最高做成二路。為了防止出現(xiàn)異常的情況,一般要保證兩顆CPU下面掛接的Flash ROM中的BIOS文件要一致,這樣會在刷寫B(tài)IOS的時(shí)候,盡量把兩個(gè)Flash ROM刷寫成同一個(gè)版本的BIOS。但是這樣存在一個(gè)問題,如果在更新BIOS時(shí)一個(gè)更新成功,另一個(gè)不成功,或者說是直接忘記更新其中的一顆的話,這樣造成的系統(tǒng)異常通常不容易找出root cause,這就會給產(chǎn)品debug工作造成很大的麻煩。
假設(shè)一顆Flash ROM中的BIOS版本是1.0.1版,另一個(gè)是1.0.2版,這兩個(gè)BIOS中對CPU和內(nèi)存的配置是不一樣的,雖然這種情況下啟動系統(tǒng)是沒問題的,但是由于配置的不一樣,就可能會產(chǎn)生系統(tǒng)的異常。通過查看Cavium的代碼,發(fā)現(xiàn)并沒有檢查兩顆CPU下面掛接的BIOS文件是否一致的機(jī)制,整個(gè)過程是,首先檢查flash rom存儲的介質(zhì),是掛在SPI下面還是掛在eMMC下面,或者其他的介質(zhì),然后就是讀取介質(zhì)里面的BIOS文件,然后就是boot這個(gè)image,并沒有檢查BIOS版本一致性的機(jī)制。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對目前技術(shù)發(fā)展的需求和不足之處,提供一種ARM平臺檢測多路服務(wù)器UEFI BIOS版本一致的方法。
本發(fā)明所述檢測多路服務(wù)器UEFI BIOS版本一致的方法,解決上述技術(shù)問題采用的技術(shù)方案如下:所述檢測多路服務(wù)器UEFI BIOS版本一致的方法,通過更改CPLD的邏輯,并在BMC中添加程序,使得系統(tǒng)具備BIOS文件一致性檢查功能,通過CPLD使得兩個(gè)CPU分別掛接兩顆Flash ROM,讓BMC分別和兩顆Flash ROM連通,并讀取兩顆Flash ROM的BIOS文件,最后由BMC比較這兩個(gè)BIOS文件,,進(jìn)而檢測多路服務(wù)器UEFI BIOS版本是否一致。
優(yōu)選的,Cavium ARM的架構(gòu)中設(shè)置的兩個(gè)CPU記為CPU0和CPU1,首先CPLD開通CPU0 FLASH ROM,使得BMC能夠通過SPI總線訪問CPU0 FLASH ROM;通過BMC讀取CPU0 FLASH ROM中的BIOS文件,并Search文件中的BIOS Date:和Ver:字串,存入Buffer0中。
優(yōu)選的,然后CPLD開通CPU1 FLASH ROM,使得BMC能夠通過SPI總線訪問CPU1 FLASH ROM;通過BMC讀取CPU1 FLASH ROM中的BIOS文件,并Search文件中的BIOS Date:和Ver:字串,存入Buffer1中。
優(yōu)選的,最后由BMC負(fù)責(zé)比較buffer0和buffer1中的BIOS Date:和Ver:字串,一致則不處理,不一致則發(fā)出報(bào)警信息通知用戶或者工程師。
本發(fā)明所述檢測多路服務(wù)器UEFI BIOS版本一致的方法與現(xiàn)有技術(shù)相比具有的有益效果是:本發(fā)明不會增加硬件器件和線路,完全由BMC和CPLD的軟件代碼配合完成,通過BMC和兩顆Flash ROM連通讀取Flash ROM的BIOS文件,來比較兩個(gè)BIOS文件是否一致,實(shí)現(xiàn)多路服務(wù)器UEFI BIOS版本一致性檢測;解決了現(xiàn)有技術(shù)沒有檢查兩顆CPU下面掛接的BIOS文件是否一致的問題,便于系統(tǒng)故障維護(hù)操作,提供了系統(tǒng)運(yùn)行安全性,完善了服務(wù)器產(chǎn)品功能;所有服務(wù)器均可采用本發(fā)明實(shí)現(xiàn)UEFI BIOS版本一致性檢測,適用范圍大,具有很好的通用性實(shí)用性。
說明書附圖
附圖1為所述檢測多路服務(wù)器UEFI BIOS版本一致的方法的流程圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,對本發(fā)明所述檢測多路服務(wù)器UEFI BIOS版本一致的方法進(jìn)一步詳細(xì)說明。
通常Cavium ARM的架構(gòu)中設(shè)置有兩個(gè)CPU,在服務(wù)器系統(tǒng)設(shè)計(jì)時(shí),F(xiàn)lash ROM是通過CPLD和CPU連接的,同時(shí)CPLD也通過SPI總線連接到BMC。本發(fā)明所述檢測多路服務(wù)器UEFI BIOS版本一致的方法,通過更改CPLD的邏輯,并在BMC中添加程序,使得系統(tǒng)具備BIOS文件一致性檢查功能,通過CPLD使得兩個(gè)CPU分別掛接兩顆Flash ROM,讓BMC分別和兩顆Flash ROM連通,并讀取兩顆Flash ROM的BIOS文件,最后由BMC比較這兩個(gè)BIOS文件,進(jìn)而檢測多路服務(wù)器UEFI BIOS版本是否一致。
實(shí)施例:
Cavium ARM的架構(gòu)中設(shè)置的兩個(gè)CPU記為CPU0和CPU1,本實(shí)施例所述檢測多路服務(wù)器UEFI BIOS版本一致的方法,通過更改CPLD的邏輯,并在BMC中添加程序,進(jìn)行BIOS文件一致性檢測;如附圖1所示其具體過程包括如下步驟:
1)首先,CPLD開通CPU0 FLASH ROM,使得BMC能夠通過SPI總線訪問CPU0 FLASH ROM;
2)BMC讀取CPU0 FLASH ROM中的BIOS文件,并Search文件中的BIOS Date:和Ver:字串,存入Buffer0中;
3)然后,CPLD開通CPU1 FLASH ROM,使得BMC能夠通過SPI總線訪問CPU1 FLASH ROM;4)BMC讀取CPU1 FLASH ROM中的BIOS文件,并Search文件中的BIOS Date:和Ver:字串,存入Buffer1中;
5)最后由BMC負(fù)責(zé)比較buffer0和buffer1中的數(shù)據(jù)(BIOS Date:和Ver:字串),一致則不處理,不一致則發(fā)出報(bào)警信息通知用戶或者工程師。
上述具體實(shí)施方式僅是本發(fā)明的具體個(gè)案,本發(fā)明的專利保護(hù)范圍包括但不限于上述具體實(shí)施方式,任何符合本發(fā)明的權(quán)利要求書的且任何所屬技術(shù)領(lǐng)域的普通技術(shù)人員對其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專利保護(hù)范圍。