国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種集中更新BIOS固件的方法與流程

      文檔序號(hào):11917752閱讀:772來源:國知局

      本發(fā)明涉及服務(wù)器管理技術(shù)領(lǐng)域,具體涉及一種集中更新BIOS固件的方法。



      背景技術(shù):

      刀片服務(wù)器和整機(jī)柜服務(wù)器由于具有刀片密度高、部署靈活快速的優(yōu)點(diǎn),在互聯(lián)網(wǎng)領(lǐng)域得到了廣泛的應(yīng)用。服務(wù)器的每個(gè)刀片上往往都有一顆BMC(Baseboard Management Controller,基板管理控制器)對(duì)服務(wù)器進(jìn)行管理,BMC又被管理載板上的SMC(System Management Controller,系統(tǒng)管理控制器)通過Web管理界面集中管理。存放BMC固件所使用的Flash芯片與存放BIOS固件所使用的Flash芯片可以是相同的,而且Flash都是具有SPI接口的串行Nor Flash,通過BMC的SPI控制器可以更新BMC的固件,因此通過BMC的SPI控制器也就可以更新BIOS固件。每個(gè)刀片的運(yùn)行都需要BIOS的支持,如何簡單高效地對(duì)服務(wù)器中多個(gè)刀片上的BIOS固件進(jìn)行更新是一個(gè)需要解決的技術(shù)問題。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明要解決的技術(shù)問題是:本發(fā)明針對(duì)以上問題,提供一種集中更新BIOS固件的方法。

      本發(fā)明所采用的技術(shù)方案為:

      一種集中更新BIOS固件的方法,所述方法通過SMC和多個(gè)BMC構(gòu)成的服務(wù)器管理系統(tǒng),通過操作SMC的Web管理界面,借助SMC的固件中繼作用,由SMC對(duì)BIOS固件進(jìn)行中繼進(jìn)而分發(fā)到各個(gè)計(jì)算單元的BMC上,通過計(jì)算單元BMC的SPI控制器執(zhí)行具體的BIOS固件更新操作,對(duì)多個(gè)計(jì)算單元BIOS固件的同時(shí)集中更新。避免了逐個(gè)更新計(jì)算單元BIOS固件的繁瑣和低效,提高了固件更新效率。

      所述SMC和多個(gè)BMC構(gòu)成的服務(wù)器管理系統(tǒng)包含一個(gè)SMC和多個(gè)BMC,所述的SMC與多個(gè)BMC通過管理交換機(jī)建立網(wǎng)絡(luò)連接,所述的BMC通過選擇器掛接BMC SPI Flash和BIOS SPI Flash,計(jì)算單元上的PCH通過選擇器掛接BIOS SPI Flash。

      所述方法包括以下步驟:

      1)服務(wù)器上電,服務(wù)器各個(gè)計(jì)算單元處于關(guān)機(jī)狀態(tài),此時(shí)SPI Flash的連接處于BIOS SPI Flash與PCH連接以及BMC SPI Flash與BMC連接的默認(rèn)連接狀態(tài),待整個(gè)管理系統(tǒng)完成啟動(dòng)后登錄SMC的Web管理界面;

      2)在SMC的Web管理界面的BIOS固件更新頁面選擇要更新BIOS固件的計(jì)算刀片,點(diǎn)擊更新BIOS固件按鈕進(jìn)入BIOS固件集中更新階段;

      3)SMC發(fā)送Prepare Flash Area命令到被選中的計(jì)算刀片的BMC;

      4)BMC執(zhí)行Prepare Flash Area命令為接收和刷新BIOS固件做準(zhǔn)備,主要的操作包括準(zhǔn)備BMC端固件更新環(huán)境和切換SPI Flash硬件鏈路;

      5)SMC獲取BMC執(zhí)行Prepare Flash Area命令的狀態(tài);

      6)在BMC完成Prepare Flash Area操作后,SMC也執(zhí)行Prepare Flash Area;

      7)在SMC完成Prepare Flash Area操作后,彈出選擇BIOS固件的對(duì)話框,選擇固件后使用SMC的Web服務(wù)器提供的文件上傳功能上傳BIOS固件到SMC,存儲(chǔ)到/dev/shm掛載的/mnt目錄下,文件名為bios.bin;

      8)SMC使用Web服務(wù)器的文件上傳功能上傳BIOS固件完畢后,SMC向BMC發(fā)送Receive Flash File命令;

      9)BMC接收到Receive Flash File命令后,如果已成功執(zhí)行Prepare Flash Area命令,則向SMC回復(fù)可以接收BIOS固件文件;

      10)SMC獲取BMC是否可以接收BIOS固件文件的信息,若存在可以接收BIOS固件文件的BMC,則SMC讀取尺寸為整個(gè)固件尺寸的整數(shù)分之一的數(shù)據(jù)塊并向收到Receive Flash File命令回復(fù)的BMC分別發(fā)送:

      發(fā)送完此數(shù)據(jù)塊后,經(jīng)過一定的延時(shí),等待BMC接收并寫入此數(shù)據(jù)塊后,再讀取新的數(shù)據(jù)塊并分別發(fā)送,直到發(fā)送完畢;

      11)BMC完成固件接收并關(guān)閉固件文件后,向SMC回復(fù)已接收完畢;

      12)SMC獲取BMC執(zhí)行Receive Flash File命令的狀態(tài);

      13)如果BMC接收固件文件完畢,則SMC向BMC發(fā)送Verify Firmware Image命令,這一命令的數(shù)據(jù)字段中包含SMC計(jì)算得到的BIOS固件的文件校驗(yàn)和;

      14)BMC執(zhí)行Verify Firmware Image命令;

      15)SMC獲取BMC執(zhí)行Verify Firmware Image命令的狀態(tài);

      16)如果BMC校驗(yàn)成功,則SMC向BMC發(fā)送Start Image Flash命令;

      17)BMC執(zhí)行Start Image Flash命令進(jìn)入真正的固件刷新階段,如果刷新完畢,則向SMC回復(fù)固件已刷新完畢并自動(dòng)重啟,BMC重啟后SPI Flash恢復(fù)到BIOS SPI Flash與PCH連接以及BMC SPI Flash與BMC連接的默認(rèn)連接狀態(tài);

      18)SMC向BMC定時(shí)發(fā)送Get Flash Progress命令以獲取BMC執(zhí)行Start Image Flash命令后BMC的固件刷新進(jìn)度;

      19)如果所有的BMC已完成固件刷新,則SMC自動(dòng)重啟。

      步驟4)中準(zhǔn)備BMC端固件更新環(huán)境時(shí),BMC通過kill固件更新無關(guān)的進(jìn)程,rmmod所有的模塊,unmount固件更新無關(guān)的文件系統(tǒng),掛載/dev/shm設(shè)備到/mnt目錄并格式化為tmpfs文件系統(tǒng)等操作,準(zhǔn)備固件更新所需的環(huán)境。

      準(zhǔn)備BMC端固件更新環(huán)境完畢后,BMC通過GPIO控制選擇器切換SPI Flash硬件鏈路,斷開BIOS SPI Flash與PCH以及BMC SPI Flash與BMC的連接并將BIOS SPI Flash掛接到BMC的SPI控制器上,命令執(zhí)行完成之后向SMC回復(fù)準(zhǔn)備完成情況。

      步驟10)中SMC讀取數(shù)據(jù)塊,當(dāng)未讀到文件末尾時(shí),發(fā)送內(nèi)容為這個(gè)數(shù)據(jù)塊及數(shù)據(jù)塊結(jié)尾的未發(fā)送完畢標(biāo)志位;

      當(dāng)已讀到文件末尾時(shí),由于設(shè)置的讀取數(shù)據(jù)塊尺寸為整個(gè)固件尺寸的整數(shù)分之一,因此read()函數(shù)返回的實(shí)際讀取字節(jié)為0,為了BMC接收端處理數(shù)據(jù)的一致性,使發(fā)送內(nèi)容為相同尺寸的未經(jīng)賦值的數(shù)據(jù)塊及數(shù)據(jù)塊結(jié)尾的已發(fā)送完畢標(biāo)志位。

      BMC接收BIOS固件文件數(shù)據(jù)塊,解析數(shù)據(jù)塊結(jié)尾的標(biāo)志位:

      若標(biāo)志位指示未發(fā)送完畢,則將去除標(biāo)志位的數(shù)據(jù)塊寫入BMC端的固件文件;

      若標(biāo)志位指示已發(fā)送完畢,則不再向BMC端的固件文件中寫入任何數(shù)據(jù),并關(guān)閉文件.

      BMC執(zhí)行Verify Firmware Image命令的方法是:讀取BIOS固件并計(jì)算文件的校驗(yàn)和,如果BMC計(jì)算得到的校驗(yàn)和與Verify Firmware Image命令的數(shù)據(jù)字段中包含的校驗(yàn)和相等,則認(rèn)為在由SMC發(fā)送到BMC的過程中BIOS固件沒有差錯(cuò)。

      本發(fā)明的有益效果為:

      本發(fā)明通過操作SMC的Web管理界面,借助SMC的固件中繼作用,使用計(jì)算單元BMC的SPI控制器實(shí)現(xiàn)對(duì)多個(gè)計(jì)算單元BIOS固件的同時(shí)集中更新,避免了逐個(gè)更新計(jì)算單元BIOS固件的繁瑣和低效,提高了固件更新效率。

      附圖說明

      圖1為SPI Flash切換的示意圖。

      具體實(shí)施方式

      下面根據(jù)說明書附圖,結(jié)合具體實(shí)施方式對(duì)本發(fā)明進(jìn)一步說明:

      實(shí)施例1

      一種集中更新BIOS固件的方法,所述方法通過SMC和多個(gè)BMC構(gòu)成的服務(wù)器管理系統(tǒng),通過操作SMC的Web管理界面,借助SMC的固件中繼作用,由SMC對(duì)BIOS固件進(jìn)行中繼進(jìn)而分發(fā)到各個(gè)計(jì)算單元的BMC上,通過計(jì)算單元BMC的SPI控制器執(zhí)行具體的BIOS固件更新操作,對(duì)多個(gè)計(jì)算單元BIOS固件的同時(shí)集中更新。避免了逐個(gè)更新計(jì)算單元BIOS固件的繁瑣和低效,提高了固件更新效率。

      實(shí)施例2

      在實(shí)施例1的基礎(chǔ)上,本實(shí)施例所述SMC和多個(gè)BMC構(gòu)成的服務(wù)器管理系統(tǒng)包含一個(gè)SMC和多個(gè)BMC,所述的SMC與多個(gè)BMC通過管理交換機(jī)建立網(wǎng)絡(luò)連接,所述的BMC通過選擇器掛接BMC SPI Flash和BIOS SPI Flash,計(jì)算單元上的PCH通過選擇器掛接BIOS SPI Flash。

      實(shí)施例3

      在實(shí)施例2的基礎(chǔ)上,本實(shí)施例所述方法包括以下步驟:

      1)服務(wù)器上電,服務(wù)器各個(gè)計(jì)算單元處于關(guān)機(jī)狀態(tài),此時(shí)SPI Flash的連接處于BIOS SPI Flash與PCH連接以及BMC SPI Flash與BMC連接的默認(rèn)連接狀態(tài),待整個(gè)管理系統(tǒng)完成啟動(dòng)后登錄SMC的Web管理界面;

      2)在SMC的Web管理界面的BIOS固件更新頁面選擇要更新BIOS固件的計(jì)算刀片,點(diǎn)擊更新BIOS固件按鈕進(jìn)入BIOS固件集中更新階段;

      3)SMC發(fā)送Prepare Flash Area命令到被選中的計(jì)算刀片的BMC;

      4)BMC執(zhí)行Prepare Flash Area命令為接收和刷新BIOS固件做準(zhǔn)備,主要的操作包括準(zhǔn)備BMC端固件更新環(huán)境和切換SPI Flash硬件鏈路,準(zhǔn)備BMC端固件更新環(huán)境時(shí)BMC會(huì)通過kill固件更新無關(guān)的進(jìn)程,rmmod所有的模塊,unmount固件更新無關(guān)的文件系統(tǒng),掛載/dev/shm設(shè)備到/mnt目錄并格式化為tmpfs文件系統(tǒng)等操作準(zhǔn)備固件更新所需的環(huán)境;準(zhǔn)備BMC端固件更新環(huán)境完畢后BMC通過GPIO控制選擇器切換SPI Flash硬件鏈路,斷開BIOS SPI Flash與PCH以及BMC SPI Flash與BMC的連接并將BIOS SPI Flash掛接到BMC的SPI控制器上,命令執(zhí)行完成之后向SMC回復(fù)準(zhǔn)備完成情況,如圖1所示;

      5)SMC獲取BMC執(zhí)行Prepare Flash Area命令的狀態(tài);

      6)在BMC完成Prepare Flash Area操作后,SMC也執(zhí)行Prepare Flash Area,與BMC執(zhí)行此操作不同的是,BMC是為了最終執(zhí)行更新BIOS固件的操作,而SMC只是為了接收Web上傳的BMC固件而釋放一部分RAM空間,而這正體現(xiàn)了SMC的固件中繼作用;

      7)在SMC完成Prepare Flash Area操作后,彈出選擇BIOS固件的對(duì)話框,選擇固件后使用SMC的Web服務(wù)器提供的文件上傳功能上傳BIOS固件到SMC,存儲(chǔ)到/dev/shm掛載的/mnt目錄下,文件名為bios.bin;

      8)SMC使用Web服務(wù)器的文件上傳功能上傳BIOS固件完畢后,SMC向BMC發(fā)送Receive Flash File命令;

      9)BMC接收到Receive Flash File命令后,如果已成功執(zhí)行Prepare Flash Area命令,則向SMC回復(fù)可以接收BIOS固件文件;

      10)SMC獲取BMC是否可以接收BIOS固件文件的信息,若存在可以接收BIOS固件文件的BMC,則SMC讀取尺寸為整個(gè)固件尺寸的整數(shù)分之一的數(shù)據(jù)塊并向收到Receive Flash File命令回復(fù)的BMC分別發(fā)送:

      當(dāng)未讀到文件末尾時(shí),發(fā)送內(nèi)容為這個(gè)數(shù)據(jù)塊及數(shù)據(jù)塊結(jié)尾的未發(fā)送完畢標(biāo)志位;

      當(dāng)已讀到文件末尾時(shí),由于設(shè)置的讀取數(shù)據(jù)塊尺寸為整個(gè)固件尺寸的整數(shù)分之一,因此read()函數(shù)返回的實(shí)際讀取字節(jié)為0,為了BMC接收端處理數(shù)據(jù)的一致性,使發(fā)送內(nèi)容為相同尺寸的未經(jīng)賦值的數(shù)據(jù)塊及數(shù)據(jù)塊結(jié)尾的已發(fā)送完畢標(biāo)志位;

      發(fā)送完此數(shù)據(jù)塊后,經(jīng)過一定的延時(shí),等待BMC接收并寫入此數(shù)據(jù)塊后,再讀取新的數(shù)據(jù)塊并分別發(fā)送,直到發(fā)送完畢;

      11)BMC接收BIOS固件文件數(shù)據(jù)塊,解析數(shù)據(jù)塊結(jié)尾的標(biāo)志位:

      若標(biāo)志位指示未發(fā)送完畢,則將去除標(biāo)志位的數(shù)據(jù)塊寫入BMC端的固件文件;

      若標(biāo)志位指示已發(fā)送完畢,則不再向BMC端的固件文件中寫入任何數(shù)據(jù),并關(guān)閉文件;

      BMC端的固件文件存儲(chǔ)在與SMC端相同的位置,即將接收到的數(shù)據(jù)塊存儲(chǔ)為BMC端/dev/shm掛載的/mnt目錄下的bios.bin文件;

      BMC完成固件接收并關(guān)閉固件文件后,向SMC回復(fù)已接收完畢;

      12)SMC獲取BMC執(zhí)行Receive Flash File命令的狀態(tài);

      13)如果BMC接收固件文件完畢,則SMC向BMC發(fā)送Verify Firmware Image命令,這一命令的數(shù)據(jù)字段中包含SMC計(jì)算得到的BIOS固件的文件校驗(yàn)和;

      14)BMC執(zhí)行Verify Firmware Image命令,方法是讀取BIOS固件并計(jì)算文件的校驗(yàn)和,如果BMC計(jì)算得到的校驗(yàn)和與Verify Firmware Image命令的數(shù)據(jù)字段中包含的校驗(yàn)和相等則認(rèn)為在由SMC發(fā)送到BMC的過程中BIOS固件沒有差錯(cuò);

      15)SMC獲取BMC執(zhí)行Verify Firmware Image命令的狀態(tài);

      16)如果BMC校驗(yàn)成功,則SMC向BMC發(fā)送Start Image Flash命令;

      17)BMC執(zhí)行Start Image Flash命令進(jìn)入真正的固件刷新階段,如果刷新完畢,則向SMC回復(fù)固件已刷新完畢并自動(dòng)重啟,BMC重啟后SPI Flash恢復(fù)到BIOS SPI Flash與PCH連接以及BMC SPI Flash與BMC連接的默認(rèn)連接狀態(tài);

      18)SMC向BMC定時(shí)發(fā)送Get Flash Progress命令以獲取BMC執(zhí)行Start Image Flash命令后BMC的固件刷新進(jìn)度;

      19)如果所有的BMC已完成固件刷新,則SMC自動(dòng)重啟。

      實(shí)施例4

      一個(gè)具有多個(gè)刀片的服務(wù)器,有一個(gè)管理載板和若干個(gè)計(jì)算單元,及機(jī)箱電源、風(fēng)扇等必備組件。管理載板上放置一顆SMC,每個(gè)計(jì)算單元上各放置一顆BMC。計(jì)算單元上的BMC通過選擇器掛接BMC SPI Flash和BIOS SPI Flash,計(jì)算單元上的PCH通過選擇器掛接BIOS SPI Flash。

      具體實(shí)現(xiàn)步驟如下:

      (1)擴(kuò)展Web接口調(diào)用擴(kuò)展固件刷新庫向BMC發(fā)送Prepare Flash Area、Receive Flash File、Verify Firmware Image、Start Image Flash和Get Flash Progress命令;

      (2)在擴(kuò)展固件刷新庫中增加了文件發(fā)送功能模塊,發(fā)送通過Web上傳到SMC的BIOS固件文件/mnt/bios.bin到BMC,Web的文件上傳功能和擴(kuò)展固件刷新庫中的文件發(fā)送功能模塊相結(jié)合起到了SMC對(duì)BMC固件的中繼作用,文件發(fā)送功能模塊的主要作用是高效可靠地分發(fā)BMC固件;

      (3)在固件刷新進(jìn)程中增加了“處理BMC回復(fù)線程”的功能模塊,對(duì)BMC的回復(fù)信息進(jìn)行解析處理,存放到BMC回復(fù)信息的存儲(chǔ)空間中,并由Web調(diào)用擴(kuò)展Web接口進(jìn)而調(diào)用擴(kuò)展固件刷新庫獲取BMC更新BIOS固件的狀態(tài)以更新Web顯示;

      (4)BMC端通過修改固件刷新進(jìn)程進(jìn)行具體的固件更新操作,在固件刷新進(jìn)程中增加了“處理SMC命令線程”,接收并執(zhí)行SMC發(fā)出的Prepare Flash Area、Receive Flash File、Verify Firmware Image、Start Image Flash和Get Flash Progress命令;

      特別地,當(dāng)“處理SMC命令線程”接收到Receive Flash File命令時(shí),啟動(dòng)文件接收功能模塊,接收SMC發(fā)送的BMC固件文件,并寫入為BMC的/mnt/bios.bin文件,文件接收功能模塊起到了Web的文件上傳功能的部分作用;

      (5)BMC在執(zhí)行Prepare Flash Area階段通過GPIO控制BIOS SPI Flash由附圖中虛線顯示的與PCH連接切換為附圖中實(shí)線顯示的與BMC連接,同時(shí),BMC SPI Flash由附圖中虛線顯示的與BMC連接切換為與PCH和BMC都不連接的懸空狀態(tài),BMC完成BIOS固件更新重啟后恢復(fù)為附圖中虛線所示的默認(rèn)連接狀態(tài)。

      實(shí)施方式僅用于說明本發(fā)明,而并非對(duì)本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1