本技術(shù)涉及計算機(jī),特別是涉及一種固件升級方法、裝置、設(shè)備、存儲介質(zhì)和程序產(chǎn)品。
背景技術(shù):
1、隨著計算機(jī)技術(shù)的迅速發(fā)展,電子產(chǎn)品的軟件和固件也需要不斷的升級,例如,部署在服務(wù)器中的cpld芯片(complex?programmable?logic?device,復(fù)雜可編程邏輯器件)的cpld固件的升級。
2、現(xiàn)有技術(shù)中,可以利用部署在服務(wù)器中的bmc(baseboard?managementcontroller,基板管理控制器)對cpld固件進(jìn)行在線升級。但是,由于cpld固件控制和管理整個服務(wù)器的供電,在cpld固件升級時,cpld無法正常為服務(wù)器提供穩(wěn)定的電源管控服務(wù),會造成服務(wù)器的關(guān)機(jī),使得服務(wù)器不能正常運(yùn)行。
3、因此,上述固件升級方法存在cpld的服務(wù)可靠性差的問題。
技術(shù)實現(xiàn)思路
1、基于此,有必要針對上述技術(shù)問題,提供一種能夠在cpld的固件升級過程中,提高cpld的服務(wù)可靠性的固件升級方法、裝置、設(shè)備、存儲介質(zhì)和程序產(chǎn)品。
2、第一方面,本技術(shù)提供了一種固件升級方法,用于基板管理控制器bmc,該方法包括:
3、控制復(fù)雜可編程邏輯器件cpld將升級前的第一固件復(fù)制至目標(biāo)存儲空間,并在第一固件復(fù)制完畢后,將用于固件升級的第二固件寫入至cpld的固件存儲空間中;
4、若不滿足固件生效條件,則控制cpld基于目標(biāo)存儲空間中的第一固件進(jìn)行工作;
5、若滿足固件生效條件,則針對第二固件執(zhí)行固件生效流程,以使cpld基于第二固件進(jìn)行工作。
6、上述實施例中,在對cpld的固件升級和生效的過程中時,cpld可以同時運(yùn)行提前拷貝至目標(biāo)存儲空間中的升級前的第一固件,且在滿足固件生效條件的情況下才會執(zhí)行針對第二固件的固件生效流程,以避免cpld的固件在升級和生效過程中由于無法向服務(wù)器提供穩(wěn)定的電源管控服務(wù),導(dǎo)致的服務(wù)器無法正常運(yùn)行的問題,提高了cpld的服務(wù)可靠性。
7、在其中一個實施例中,控制cpld將升級前的第一固件復(fù)制至目標(biāo)存儲空間,包括:
8、確定當(dāng)前是否滿足bmc中配置的升級條件;
9、若滿足升級條件,則執(zhí)行控制cpld將升級前的第一固件復(fù)制至目標(biāo)存儲空間的步驟。
10、上述實施例中,bmc在對cpld的固件存儲空間中所存儲的第一固件進(jìn)行升級前需要判斷當(dāng)前是否滿足升級條件,當(dāng)滿足了升級條件才能執(zhí)行后續(xù)固件升級的步驟,提高了固件升級的安全性。
11、在其中一個實施例中,確定當(dāng)前是否滿足基板管理控制器bmc中配置的升級條件,包括:
12、確定是否接收到上傳的第二固件,以及是否接收到固件升級指令;
13、若接收到第二固件以及固件升級指令,則確定滿足升級條件。
14、上述實施例中,以是否接受到第二固件和固件升級指令作為是否滿足升級條件的依據(jù),確保了bmc在對第一固件進(jìn)行升級前一定獲取到了第二固件,提高了固件升級的安全性。
15、在其中一個實施例中,方法包括:
16、獲取服務(wù)器的電源狀態(tài);
17、根據(jù)電源狀態(tài)確定是否滿足固件生效條件。
18、上述實施例中,bmc在針對第二固件執(zhí)行固件生效流程之前判斷當(dāng)前服務(wù)器的電源狀態(tài)是否滿足固件生效條件,在滿足固件生效條件的情況下才會執(zhí)行固件生效流程,提高了固件生效流程的可靠性。
19、在其中一個實施例中,根據(jù)電源狀態(tài)確定是否滿足固件生效條件,包括:
20、若電源狀態(tài)為關(guān)機(jī)狀態(tài),則確定滿足固件生效條件。
21、上述實施例中,bmc在電源狀態(tài)為關(guān)機(jī)的狀態(tài)下才確定滿足固件生效條件,才會執(zhí)行后續(xù)的固件生效流程,避免了突然因為執(zhí)行固件生效流程而使服務(wù)器關(guān)機(jī)或重啟,從而中斷可能正在執(zhí)行中的業(yè)務(wù),提高了服務(wù)器的服務(wù)可靠性。
22、在其中一個實施例中,方法還包括:
23、若不滿足固件生效條件,則設(shè)置等待生效標(biāo)記;
24、在存在標(biāo)記的情況下,周期性地檢測是否滿足固件生效條件。
25、上述實施例中,bmc在不滿足固件生效條件的情況下設(shè)置等待生效標(biāo)記,使得bmc可以根據(jù)等待生效標(biāo)記確定用于固件升級的第二固件是否生效,提高了固件生效的可靠性。
26、第二方面,本技術(shù)提供了一種固件升級方法,用用cpld,該方法包括:
27、根據(jù)bmc的控制,將升級前的第一固件復(fù)制至目標(biāo)存儲空間,并在第一固件復(fù)制完畢后,將用于固件升級的第二固件寫入固件存儲空間中;
28、若不滿足固件生效條件,則根據(jù)bmc的控制基于目標(biāo)存儲空間中的第一固件進(jìn)行工作;
29、若滿足固件生效條件,則在bmc針對第二固件執(zhí)行固件生效流程后,基于第二固件進(jìn)行工作。
30、第三方面,本技術(shù)還提供了一種固件升級裝置,用于基板管理控制器bmc,該裝置包括:
31、控制模塊,用于控制cpld將原有的第一固件復(fù)制至目標(biāo)存儲空間,并在第一固件復(fù)制完畢后,將用于固件升級的第二固件寫入至cpld的固件存儲空間中;
32、等待生效模塊,用于若不滿足固件生效條件,則控制cpld基于目標(biāo)存儲空間中的第一固件進(jìn)行工作;
33、生效模塊,用于若滿足固件生效條件,則針對第二固件執(zhí)行固件生效流程,以使cpld基于第二固件進(jìn)行工作。
34、第四方面,本技術(shù)還提供了一種固件升級裝置,用于cpld,該裝置包括:
35、復(fù)制寫入模塊,用于根據(jù)bmc的控制,將升級前的第一固件復(fù)制至目標(biāo)存儲空間,并在所述第一固件復(fù)制完畢后,將用于固件升級的第二固件寫入固件存儲空間中;
36、第一固件工作模塊,用于若不滿足固件生效條件,則根據(jù)所述bmc的控制基于所述目標(biāo)存儲空間中的所述第一固件進(jìn)行工作;
37、第二固件工作模塊,用于若滿足所述固件生效條件,則在所述bmc針對所述第二固件執(zhí)行固件生效流程后,基于所述第二固件進(jìn)行工作。
38、第五方面,本技術(shù)實施例提供一種計算機(jī)設(shè)備,包括存儲器和處理器,所述存儲器存儲有計算機(jī)程序,所述處理器執(zhí)行所述計算機(jī)程序時實現(xiàn)如上述第一方面、第二方面的方法的步驟。
39、第六方面,本技術(shù)實施例提供一種計算機(jī)可讀存儲介質(zhì),其上存儲有計算機(jī)程序,所述計算機(jī)程序被處理器執(zhí)行時實現(xiàn)如上述第一方面、第二方面的方法的步驟。
40、第七方面,本技術(shù)還提供了一種計算機(jī)程序產(chǎn)品。所述計算機(jī)程序產(chǎn)品,包括計算機(jī)程序,該計算機(jī)程序被處理器執(zhí)行時實現(xiàn)如上述第一方面、第二方面的方法的步驟。
41、上述固件升級方法、裝置、設(shè)備、存儲介質(zhì)和程序產(chǎn)品,通過控制復(fù)雜可編程邏輯器件cpld將升級前的第一固件復(fù)制至目標(biāo)存儲空間,并在第一固件復(fù)制完畢后,將用于固件升級的第二固件寫入至cpld的固件存儲空間中,然后,若不滿足固件生效條件,則控制cpld基于目標(biāo)存儲空間中的第一固件進(jìn)行工作,若滿足固件生效條件,則針對第二固件執(zhí)行固件生效流程,以使cpld基于第二固件進(jìn)行工作。這樣,在對cpld的固件升級和生效的過程中時,cpld可以同時運(yùn)行提前拷貝至目標(biāo)存儲空間中的升級前的第一固件,且在滿足固件生效條件的情況下才會執(zhí)行針對第二固件的固件生效流程,以避免cpld的固件在升級和生效過程中由于無法向服務(wù)器提供穩(wěn)定的電源管控服務(wù),導(dǎo)致的服務(wù)器無法正常運(yùn)行的問題,提高了cpld的服務(wù)可靠性。