用于更新固件兼容性數(shù)據(jù)的方法和系統(tǒng)的制作方法
【專利摘要】一種確定固件版本的兼容性的方法,包括下載用于特定產(chǎn)品的固件圖像的候選版本、通過下載用于特定產(chǎn)品的附加固件兼容性元數(shù)據(jù)來更新不完整固件兼容性元數(shù)據(jù)、并且使用經(jīng)更新的固件兼容性元數(shù)據(jù)來確定固件圖像的候選版本是否與安裝在特定產(chǎn)品內(nèi)的固件圖像的當前版本兼容。
【專利說明】用于更新固件兼容性數(shù)據(jù)的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明一般地涉及用于系統(tǒng)和電子設(shè)備的固件,并且具體地涉及固件升級。更具體地,本發(fā)明涉及一種用于識別候選固件是否與現(xiàn)有或已安裝的固件裝置兼容的方法。
【背景技術(shù)】
[0002]固件是駐留于一件硬件中并負責硬件功能的主要部分且一般地被視為是硬件的組成部分的軟件代碼。通常,固件作為二進制信息被存儲在某種形式的非易失性存儲器組件中,其中能夠用十六進制、八進制及其他數(shù)基來表示二進制。固件的組成部分可以是可執(zhí)行程序,諸如上電自檢(POST)、基本輸入/輸出軟件(BIOS)、配置實用工具(utility)等,或者其可以是數(shù)據(jù)表,例如硬文件的幾何結(jié)構(gòu)的描述、將與通用異步收發(fā)機(UART)—起使用以產(chǎn)生不同波特率的寄存器值等。固件通常被存儲在當電源被去除或丟失時不會失去其存儲能力的特定類型的存儲器芯片中。該非易失性存儲器被分類為“只讀”存儲器(R0M),因為用戶在正常操作期間不能改變存儲在那里的信息。一般地,在“工廠”處對ROM進行編程,即通過ROM制造商利用由客戶提供的信息來進行編程。被用來存儲固件的存儲器器件的基本類型被稱為可編程只讀存儲器(PR0M),其可由任何技術(shù)人員利用例如編程控制臺來編程。基本PROM接收固件的一個版本(version),并且固件代碼被“燒制”到PROM中且不能被改變。為了更新固件,必須將PROM在物理上從設(shè)備移除,并且用包含已升級固件的新PROM來替換。存儲器器件技術(shù)的改進已經(jīng)提供了 PROM的變體,諸如可擦除可編程只讀存儲器(EPROM)和電可擦除可編程只讀存儲器(EEPROM)器件,其能夠在不需要將其從電路去除的情況下利用電信號來擦除。
[0003]許多產(chǎn)品經(jīng)歷許多固件版本,其修正固件缺陷、補償硬件或操作系統(tǒng)錯誤或引入新特征。只要子系統(tǒng)的硬件架構(gòu)基本上不改變且每個新固件修訂能夠識別并處理硬件修訂等級中的差異,則對于用升級固件圖像來替換目前已安裝固件圖像的快閃(flash)實用工具而言,事情相對簡單??扉W實用工具可以假設(shè)構(gòu)建的ID、諸如QYKT24AUS、QYKT25AUS等的演進是有效的,并且可以在較新的修訂上應用較舊的修訂,即快閃的等級可以回退,雖然具有可能損失功能和重新引入固件缺陷。
[0004]然而,產(chǎn)品族的壽命周期中的某些事件破壞了這些簡單的假設(shè)。這些事件可以包括:
[0005](I)產(chǎn)品架構(gòu)的重大改變,例如由于成本降低改變,使得固件的較舊版本并未識別到較新的硬件特征并且因此不正確地對待它們。
[0006](2) 一個產(chǎn)品族向2個或更多個相關(guān)族的分叉,可能在位于例如遠方城市中的兩個不同工程團隊的控制下,其中固件可能看起來是相似的,但實際上已針對特定的硬件集合被自定義。
[0007](3)兩個產(chǎn)品族的會聚(從固件角度出發(fā))。會聚能夠被用作成本降低工具,其中兩件類似的固件存在并且能夠被組合成在兩個硬件平臺上工作但僅要求單個開發(fā)組對其進行維護和測試的單個固件圖像。[0008](4)產(chǎn)品的特性、例如CMOS存儲器中的配置信息的布局以這樣的方式改變,使得固件的較舊水平將會對其誤解釋。
[0009]一般地,具有可升級固件的系統(tǒng)和子系統(tǒng)通常要求某種驗證以確定候選圖像對現(xiàn)有裝置的可應用性。常規(guī)方法常常只不過是驗證以下各項中的某些或全部:(i)在候選圖像中存在公司的版權(quán)聲明;(ii)在候選圖像中存在可識別形式和位置的零件號碼;(iii)在候選圖像中以可識別形式和位置存在“類型碼”,并且該類型碼指示舊圖像和新圖像是兼容的(類型碼識別硬件的兼容類型,并且可以應用于整體產(chǎn)品或產(chǎn)品內(nèi)的子系統(tǒng)在候選圖像中存在修訂等級,并且用戶正在嘗試在較舊圖像上應用較新圖像;以及(V)候選圖像已被破壞,例如通過使用校驗和或CRC來驗證的。以上項目(i)、(ii)和(iv)對幫助驗證固件圖像之間的兼容性做的很少(如果有的話)。它們允許軟件實用工具驗證固件圖像來自單個供應商并且用戶并不在嘗試回退到較舊固件圖像。即使在那時,有時也可能期望回退,使得通常提供具有用以超越保護的機制的警告。
[0010]有時使用類型碼來指示固件圖像之間的兼容性,但是此類實踐具有限制。常規(guī)技術(shù)并未利用這種類型碼,在這種情況下,可能無意中將錯誤類型的固件圖像應用于產(chǎn)品,或者假設(shè)只有同一類型碼內(nèi)的固件圖像是兼容的。另外,常規(guī)技術(shù)將常常要求在候選圖像中的單個類型碼與已安裝圖像中的單個類型碼之間存在精確的匹配。此外,這些技術(shù)還可以一般地假設(shè)呈現(xiàn)與已安裝固件圖像相同的類型碼的任何新固件圖像是兼容的,并且可以用來更新已安裝圖像。這些“簡單”方案常常在其中可能出現(xiàn)復雜情形的實際工作中引起問題。
【發(fā)明內(nèi)容】
[0011]本發(fā)明的一個實施例提供了一種確定固件版本的兼容性的方法。該方法包括下載用于特定產(chǎn)品的固件圖像的候選版本、通過下載用于該特定產(chǎn)品的附加固件兼容性元數(shù)據(jù)來更新不完整的固件兼容性元數(shù)據(jù),并且使用經(jīng)更新的固件兼容性元數(shù)據(jù)來確定固件圖像的候選版本是否與安裝在特定產(chǎn)品內(nèi)的固件圖像的當前版本兼容。
[0012]本發(fā)明的另一實施例提供了一種計算機程序產(chǎn)品,其包括在有形計算機可用存儲介質(zhì)上體現(xiàn)的計算機可用程序代碼。該計算機程序產(chǎn)品包括用于下載用于特定產(chǎn)品的固件圖像的候選版本的計算機可用程序代碼、用于通過下載用于該特定產(chǎn)品的附加固件兼容性元數(shù)據(jù)來更新不完整的固件兼容性元數(shù)據(jù)的計算機可用程序代碼以及用于使用經(jīng)更新的固件兼容性元數(shù)據(jù)來確定固件圖像的候選版本是否與安裝在特定產(chǎn)品內(nèi)的固件圖像的當前版本兼容的計算機可用程序代碼。
【專利附圖】
【附圖說明】
[0013]圖1是提供用于實施本發(fā)明的適當環(huán)境的示例性數(shù)據(jù)處理系統(tǒng)的簡化高級框圖。
[0014]圖2是與系統(tǒng)固件通信的快閃實用工具應用程序的圖。
[0015]圖3是矩陣形式的固件兼容性元數(shù)據(jù)的圖。
[0016]圖4是根據(jù)本發(fā)明的一個實施例的方法的流程圖。
【具體實施方式】[0017]本發(fā)明的一個實施例提供了一種確定固件版本的兼容性的方法。該方法包括下載用于特定產(chǎn)品的固件圖像的候選版本、通過下載用于該特定產(chǎn)品的附加固件兼容性元數(shù)據(jù)來更新不完整的固件兼容性元數(shù)據(jù)、并使用經(jīng)更新的固件兼容性元數(shù)據(jù)來確定固件圖像的候選版本是否與安裝在特定產(chǎn)品內(nèi)的固件圖像的當前版本兼容。
[0018]本發(fā)明的方法的實施例可以在能夠用不同的固件圖像覆寫當前固件圖像的快閃實用工具(應用程序)中實現(xiàn)。然而,根據(jù)本發(fā)明的實施例,快閃實用工具可以負責處理、更新和使用固件兼容性元數(shù)據(jù)。雖然可以將固件兼容性元數(shù)據(jù)連同固件圖像一起存儲在例如類似于EPROM或EEPROM的非易失性存儲器器件中,但快閃實用工具能夠?qū)碳嫒菪栽獢?shù)據(jù)進行讀和寫。
[0019]固件圖像的候選版本可以例如從由特定產(chǎn)品的制造商維護的網(wǎng)站下載。通常,候選版本將是從安裝于特定產(chǎn)品內(nèi)的固件圖像的當前版本的升級。然而,此類網(wǎng)站還可以保持許多版本,包括固件圖像的當前和先前版本。先前版本對于使從當前版本到期望版本的兼容路徑等級返回(back-leveling)或?qū)崿F(xiàn)有幫助。
[0020]本發(fā)明的實施例認識到連同固件一起存儲的固件兼容性元數(shù)據(jù)可能是不完整的。例如,元數(shù)據(jù)可能是與當前固件圖像同時獲得的,并且用戶現(xiàn)在正在下載更新近的候選版本。相應地,較早的元數(shù)據(jù)并未指示該更新近的候選版本是否與當前固件圖像兼容。此外,用于固件的一個或多個候選版本的當前兼容性元數(shù)據(jù)也可能由于測試限制而是不完整的。因此,本發(fā)明的實施例包括通過下載用于特定產(chǎn)品的附加固件兼容性元數(shù)據(jù)來更新不完整的固件兼容性元數(shù)據(jù)??梢詮母鞣N源獲得該元數(shù)據(jù),諸如通過測試實驗室運行的網(wǎng)站、用戶群組、固件開發(fā)者或產(chǎn)品制造商。此外,元數(shù)據(jù)可以采取各種形式,諸如用可擴展標記語言。在第一選項中,用較新文件來替換固件兼容性元數(shù)據(jù)的整個文件。在第二選項中,快閃實用工具可以僅請求用于在與特定產(chǎn)品中的固件一起存儲的固件兼容性元數(shù)據(jù)中當前識別到其兼容性的固件組合的附加元數(shù)據(jù)。在第三選項中,快閃實用工具可以僅請求或下載用于已被識別或下載的特定候選固件圖像的兼容性元數(shù)據(jù)。在任何的這些選項中,可以與固件本身分開地下載元數(shù)據(jù),并且還可以在不同的時間從不同的源下載。
[0021]經(jīng)更新的固件兼容性元數(shù)據(jù)優(yōu)選地包括固件圖像的候選版本與當前版本之間的兼容性或不兼容性的指示。替換地,經(jīng)更新的固件兼容性元數(shù)據(jù)可以包括兩個固件版本之間的兼容固件的已證明序列的指示。換言之,如果不知道從版本D到版本G的直接升級是兼容的還是不兼容的,則仍可以存在足夠的元數(shù)據(jù)來確定可以通過連續(xù)地從版本D升級至版本F且然后進一步從版本F升級至版本G來獲得版本G。
[0022]本發(fā)明的實施例可以在確定候選固件的兼容性之后包括進一步的動作。例如,該方法可以在經(jīng)更新的固件兼容性元數(shù)據(jù)指示候選固件圖像與當前固件圖像不兼容的情況下,防止候選固件圖像的安裝。同樣地,該方法可以在經(jīng)更新的固件兼容性元數(shù)據(jù)指示候選固件圖像與當前固件圖像兼容的情況下允許或發(fā)起候選固件圖像的安裝。
[0023]此外,該方法可以包括確定從當前固件版本至期望固件版本的路徑。該路徑將包括固件版本的序列,其中固件兼容性元數(shù)據(jù)指示該序列中的每個后續(xù)固件版本與該序列中的每個先前固件版本兼容。該路徑可以允許從當前安裝的固件版本到更新近的固件版本的升級,或者該路徑可以允許從當前安裝的固件版本到先前固件版本的回退或等級返回。可選地,該方法可以包括自動地下載所需的固件圖像的中間版本以便遵循兼容升級或等級返回序列。
[0024]在另一實施例中,可以將固件兼容性元數(shù)據(jù)存儲為已知兼容性路徑的矩陣。無論那些路徑是否是從一個版本到另一版本的直接路徑,或者在路徑經(jīng)歷中間版本的情況下,可以將元數(shù)據(jù)表示為兼容性矩陣。矩陣可以包括任何已知的兼容性或不兼容性數(shù)據(jù),但是矩陣的各部分也可以是未知的。隨著越來越多的兼容性體驗或測試完成,矩陣可能由于固件兼容性元數(shù)據(jù)的周期性更新而隨時間的推移變得更加完整。
[0025]本發(fā)明的另一實施例提供了一種計算機程序產(chǎn)品,其包括在有形計算機可用存儲介質(zhì)上體現(xiàn)的計算機可用程序代碼。該計算機程序產(chǎn)品包括用于下載用于特定產(chǎn)品的固件圖像的候選版本的計算機可用程序代碼、用于通過下載用于該特定產(chǎn)品的附加固件兼容性元數(shù)據(jù)來更新不完整的固件兼容性元數(shù)據(jù)的計算機可用程序代碼以及用于使用已更新固件兼容性元數(shù)據(jù)來確定固件圖像的候選版本是否與安裝在特定產(chǎn)品內(nèi)的固件圖像的當前版本兼容的計算機可用程序代碼。應認識到的是該計算機程序產(chǎn)品可以包括其他計算機可用程序代碼以實現(xiàn)本文所述的方法的任何一個或多個步驟或特征。
[0026]圖1是提供用于實施本發(fā)明的適當環(huán)境的示例性數(shù)據(jù)處理系統(tǒng)10的簡化高級框圖。數(shù)據(jù)處理系統(tǒng)10、諸如個人計算機或服務(wù)器包括利用系統(tǒng)總線14互連的隨機存取存儲器(RAM)ll、存儲器控制器12和中央處理單元(CPU)13??偩€控制器15提供了用于對系統(tǒng)總線14與輸入/輸出總線16之間的數(shù)據(jù)流進行仲裁的裝置。數(shù)據(jù)處理系統(tǒng)10還包括多個I/O設(shè)備,一般地指定為18,諸如磁盤驅(qū)動和網(wǎng)卡以及系統(tǒng)固件17,其通常駐留在可編程只讀存儲器(PROM)器件中,諸如電可擦除可編程只讀存儲器(EEPR0M)。應注意的是雖然已在計算機系統(tǒng)的背景下描述了數(shù)據(jù)處理系統(tǒng)10,但本發(fā)明并不預期使此實踐局限于這個特定實施例??梢栽谌魏蜗到y(tǒng)和/或設(shè)備中有利地實施本發(fā)明,諸如以太網(wǎng)卡,其在其建立和操作階段中利用固件。
[0027]圖2是根據(jù)本發(fā)明的一個實施例的與系統(tǒng)固件通信的快閃實用工具應用程序的圖??扉W實用工具應用程序20在數(shù)據(jù)處理系統(tǒng)10 (在本文中另外稱為產(chǎn)品)中運行??扉W實用工具20能夠從可以存儲固件兼容性元數(shù)據(jù)23的硬盤驅(qū)動或其他數(shù)據(jù)存儲設(shè)備21或可以存儲系統(tǒng)固件17和固件兼容性元數(shù)據(jù)24的EEPR0M22進行讀取和向其寫入。在其中固件兼容性元數(shù)據(jù)被存儲在硬盤驅(qū)動上的實施例中,可以將元數(shù)據(jù)調(diào)用到產(chǎn)品10中的處理器的RAM存儲器中達升級過程的持續(xù)時間,并且然后將其從RAM存儲器擦除??扉W實用工具20還能夠通過全球通信網(wǎng)絡(luò)、諸如因特網(wǎng)30來與web服務(wù)器40通信。可以以這種方式將候選固件圖像42下載到快閃實用工具20。同樣地,可以將固件兼容性元數(shù)據(jù)44下載到快閃實用工具20中以便更新存儲在硬盤驅(qū)動23上的固件兼容性元數(shù)據(jù)23或存儲在EEPR0M22中的固件兼容性元數(shù)據(jù)24。應認識到的是可以從不同且分離的源獲得候選固件圖像42和固件兼容性元數(shù)據(jù)44。
[0028]圖3是矩陣或表格形式的固件兼容性元數(shù)據(jù)24的圖。所示元數(shù)據(jù)僅僅用于特定產(chǎn)品“產(chǎn)品XYZ”。列提供對應于候選固件版本的數(shù)據(jù)并且行提供對應于當前固件版本的數(shù)據(jù)。當已識別到候選固件版本,諸如通過將候選版本下載到快閃實用工具,并且當前固件版本也是快閃實用工具所已知的時,對應列和行的交叉點處的單元將提供可用兼容性數(shù)據(jù),如果有的話。例如,從當前版本A (行A)到版本G (列G)的升級在點26處提供“X”,其指示候選G與當前版本A不兼容。作為另一示例,從當前版本G (行G)到版本F (列F)的等級返回在點27處被示為是兼容的(示為“ V ”),但是進一步到版本E (列E)的等級返回在點28處被示為是未知的(單元為空),并且到版本D (列D)的等級返回在點29處被示為不兼容。
[0029]在又一示例中,使用元數(shù)據(jù)24來識別從一個版本到另一版本的路徑。如果固件的當前版本是版本C (行C)并且用戶已促使快閃實用工具下載候選固件版本G (列G),則點32處的單元顯示兼容性是未知的??扉W實用工具將優(yōu)選不使用且可以避免使用具有未知兼容性的固件版本。然而,元數(shù)據(jù)24在點34處示出候選版本F (列F)與當前版本C (列C)是兼容的,并且在版本F變成當前版本(行F)之后,然后知道候選版本G (列G)是兼容的(參見點36)。相應地,兼容路徑是從版本C到版本F且然后到版本G的序列。
[0030]圖4是根據(jù)本發(fā)明的一個實施例的方法50的流程圖。在步驟52中,將用于特定產(chǎn)品的固件圖像的候選版本下載到特定產(chǎn)品。在步驟54中,下載用于特定產(chǎn)品的附加固件兼容性元數(shù)據(jù)。相應地,可以在步驟56中用附加固件兼容性元數(shù)據(jù)來更新固件兼容性元數(shù)據(jù)的不完整矩陣。在步驟58中,可以使用經(jīng)更新的固件兼容性元數(shù)據(jù)來確定固件圖像的候選版本是否與固件圖像的當前版本兼容。
[0031]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的各個方面可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本發(fā)明的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明的各個方面還可以實現(xiàn)為在一個或多個計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,該計算機可讀介質(zhì)中包含計算機可讀的程序代碼。
[0032]可以采用一個或多個計算機可讀介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0033]計算機可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質(zhì)還可以是計算機可讀存儲介質(zhì)以外的任何計算機可讀介質(zhì),該計算機可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0034]計算機可讀介質(zhì)上包含的程序代碼可以用任何適當?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0035]可以以一種或多種程序設(shè)計語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計語言一諸如“C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務(wù)器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0036]下面將參照根據(jù)本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,使得這些計算機程序指令在通過計算機或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置。
[0037]也可以把這些計算機程序指令存儲在計算機可讀介質(zhì)中,這些指令使得計算機、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲在計算機可讀介質(zhì)中的指令就產(chǎn)生出包括實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的指令的制造品(article of manufacture)0
[0038]也可以把計算機程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計算機、其它可編程裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機實現(xiàn)的過程,從而使得在計算機或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)在流程圖和/或框圖中的方框中規(guī)定的功能/動作的過程。
[0039]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應當注意,在有些作為替換的實現(xiàn)中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
[0040]在此使用的術(shù)語僅是為了描述特定實施例的目的,并不旨在限制本發(fā)明。本文所使用的單數(shù)形式“一”、和“該”意在也包括復數(shù)形式,除非上下文另外清楚地指明。還將理解,當在說明書中使用時,術(shù)語“包括”和/或“包含”指明存在所述的特征、整體、步驟、操作、元件、組件和/或組,但不排除存在或附加一個或多個其他特征、整體、步驟、操作、元件、組件和/或其組。術(shù)語“優(yōu)選地”、“優(yōu)選的”、“優(yōu)選”、“可選地”、“可以”和類似術(shù)語用來指示被提到的項目、條件或步驟是本發(fā)明的可選(非必要)特征。
[0041]以下權(quán)利要求中的所有裝置或步驟加功能元素的相應結(jié)構(gòu)、材料、動作以及等效物(如果有的話)意在包括用于與其他要求保護的元素相結(jié)合地執(zhí)行功能的任何結(jié)構(gòu)、材料或動作,如具體地要求保護的那樣。本發(fā)明的說明書被呈現(xiàn)以用于說明和描述的目的,而不是窮盡性的或?qū)⒈景l(fā)明限制于所公開的形式。許多修改和變體對本領(lǐng)域普通技術(shù)人員來說是顯而易見的,而沒有脫離本發(fā)明的范圍和精神。選擇和描述實施例是為了最佳地解釋本發(fā)明的原理和實際應用,并使得本領(lǐng)域普通技術(shù)人員能針對具有適于所考慮的特定用途的各種修改的各種實施例來理解本發(fā)明。
【權(quán)利要求】
1.一種方法,包括: 下載用于特定產(chǎn)品的固件圖像的候選版本; 通過下載用于所述特定產(chǎn)品的附加固件兼容性元數(shù)據(jù)來更新不完整的固件兼容性元數(shù)據(jù);以及 使用經(jīng)更新的固件兼容性元數(shù)據(jù)來確定所述固件圖像的所述候選版本是否與被安裝于所述特定產(chǎn)品內(nèi)的固件圖像的當前版本兼容。
2.根據(jù)權(quán)利要求1所述的方法,其中所述經(jīng)更新的固件兼容性元數(shù)據(jù)包括所述固件圖像的所述候選版本與所述當前版本之間的兼容性或不兼容性的指示。
3.根據(jù)權(quán)利要求1所述的方法,其中所述經(jīng)更新的固件兼容性元數(shù)據(jù)包括兩個固件版本之間的兼容固件的已證明序列的指示。
4.根據(jù)權(quán)利要求1所述的方法,還包括: 如果所述經(jīng)更新的固件兼容性元數(shù)據(jù)指示候選固件圖像是不兼容的,則阻止固件安裝。
5.根據(jù)權(quán)利要求1所述的方法,還包括: 如果所述經(jīng)更新的固件兼容性元數(shù)據(jù)指示候選固件圖像是兼容的,則允許固件安裝。
6.根據(jù)權(quán)利要求1所述的方法,其中下載固件兼容性元數(shù)據(jù)包括通過萬維網(wǎng)來下載固件兼容性元數(shù)據(jù)。
7.根據(jù)權(quán)利要求1所述的方法,其中所述固件兼容性數(shù)據(jù)與固件分離地被下載。
8.根據(jù)權(quán)利要求7所述的方法,其中所述固件兼容性數(shù)據(jù)是在比下載所述固件遲的時間產(chǎn)生的。
9.根據(jù)權(quán)利要求1所述的方法,還包括: 確定從所述當前固件版本到期望固件版本的路徑,其中所述路徑包括固件版本的序列,其中所述固件兼容性元數(shù)據(jù)指示所述序列中的每個后續(xù)固件版本與所述序列中的每個先前固件版本兼容。
10.根據(jù)權(quán)利要求9所述的方法,其中所述路徑允許從當前安裝的所述固件版本到更新近的固件版本的升級。
11.根據(jù)權(quán)利要求9所述的方法,其中所述路徑允許從當前安裝的固件版本到先前固件版本的回退。
12.根據(jù)權(quán)利要求9所述的方法,還包括: 自動地下載所需的固件圖像的中間版本以便遵循測定的升級或等級返回序列。
13.根據(jù)權(quán)利要求1所述的方法,其中所述元數(shù)據(jù)被下載作為可擴展標記語言文件。
14.根據(jù)權(quán)利要求1所述的方法,其中所述經(jīng)更新的固件兼容性元數(shù)據(jù)被存儲為已知兼容性路徑的矩陣。
15.根據(jù)權(quán)利要求14所述的方法,其中所述矩陣由于所述固件兼容性元數(shù)據(jù)的周期性更新而隨時間變得更加完整。
16.根據(jù)權(quán)利要求1所述的方法,還包括: 將所述經(jīng)更新的固件兼容性元數(shù)據(jù)連同當前安裝在所述產(chǎn)品上的所述固件一起存儲。
17.—種適合于執(zhí)行權(quán)利要求1至16中的任一項的方法步驟的系統(tǒng)。
【文檔編號】G06F9/445GK103942065SQ201410015235
【公開日】2014年7月23日 申請日期:2014年1月13日 優(yōu)先權(quán)日:2013年1月17日
【發(fā)明者】A·A·阿塞林, W·J·皮亞扎, D·B·羅伯茨 申請人:國際商業(yè)機器公司