專利名稱:使用可擴展固件接口的持久性存儲器操作的制作方法
技術領域:
本發(fā)明涉及使用可擴展固件接口(EFI)操作持久性存儲器的系統(tǒng)和方法。
背景技術:
圖1圖示了一種典型的計算系統(tǒng)100,它包括BIOS(基本輸入輸出系統(tǒng))110、CPU(中央處理單元)120以及盤130。當BIOS 110接收比如START(開始)信號的信號時,它可被賦予引導計算系統(tǒng)100的任務。引導計算系統(tǒng)100可包括定位盤130上的操作系統(tǒng),并開始其在CPU 120上的運行。另外,引導計算系統(tǒng)100可包括各種預引導活動,像定位硬件(例如盤130)、定位軟件(例如操作系統(tǒng)加載程序)、執(zhí)行各種診斷(例如檢查存儲器)等等。
在一段時間,系統(tǒng)100可能已經(jīng)包括了存儲在ROM(只讀存儲器)中的BIOS 110。在此實例中,改變BIOS 110(例如安裝新版本)可能涉及人工移去其中存儲了BIOS 110的ROM,并安裝新的ROM。這要求一些專門技能,并要求系統(tǒng)100斷開和接通。
在后來的一段時間,系統(tǒng)100可能已經(jīng)包括了存儲在EEPROM(電可擦除可編程ROM)中的BIOS 110。EEPROM是一種可通過將其暴露在電荷中來擦除的PROM(可編程ROM)。然后,PROM可被重新編程。就像其它的ROM,EEPROM可在系統(tǒng)電源斷開時保持其內(nèi)容,這使其適于存儲BIOS。在此實例中,改變BIOS 110可包括電擦除其中存儲了BIOS 110的PROM,并對其重新編程。在一個實例中,這可能涉及移去PROM并重新燒制該PROM。在另一實例中,這可能涉及對PROM重新編程,并不將其從系統(tǒng)100移去。但是,對PROM重新編程可包括一個字節(jié)一個字節(jié)地寫入PROM,這會是一個耗時的過程。即使在基于EEPROM的系統(tǒng)中,改變BIOS110可能也要求專門技能,并且可能要求人工斷開和接通系統(tǒng)。
最近,變得流行的是將與計算系統(tǒng)關聯(lián)的BIOS存儲在閃速存儲器中。閃速存儲器是這樣一種EEPROM它可以塊為單位而不是一個字節(jié)一個字節(jié)的進行擦除和重新編程,因此使其一般比傳統(tǒng)的EEPROM的重新編程更快。當BIOS存儲在閃速存儲器中時,它可被稱為閃速BIOS。同樣也是最近,在嘗試更新引導處理時,開發(fā)了在操作系統(tǒng)和平臺固件之間的接口。一個實例接口是EFI(可擴展固件接口),它包括例如包含平臺相關信息的數(shù)據(jù)表、引導服務、操作系統(tǒng)可用的運行期服務、操作系統(tǒng)加載程序等等。EFI嘗試提供一種標準環(huán)境,用于引導操作系統(tǒng)和/或運行預引導應用。
圖2圖示了配置有EFI 220的系統(tǒng)200的高級圖解。BIOS 230邏輯上可存在于操作系統(tǒng)加載程序210和一組硬件240之間。EFI 220可便于對接操作系統(tǒng)加載程序210和BIOS 230。在某些例子中,EFI220可包括EFI外殼(shell),通過該EFI外殼,技術人員可執(zhí)行某些任務,比如用新系統(tǒng)固件重新編程BIOS 230。這種重新編程可要求用戶采取行動,例如包括起動EFI外殼、定位和安裝EFI分區(qū)、拷貝文件(例如二進制輸入文件、配置文件)到新安裝的EFI分區(qū)、重新啟動系統(tǒng)并重新啟動EFI外殼、定位和輸入文件所拷貝到的文件夾、運行EFI外殼級實用程序并向其提供變元、遵循實用程序提供的一組指令、再次重新啟動系統(tǒng)以及檢驗按所要求的方式完成了更新。這種常規(guī)方法考驗一般PC用戶的技術認知程度和耐性。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的方法包括在配置為在沒有操作系統(tǒng)支持的預引導時間操作的可擴展固件接口(EFI)級邏輯中,從配置為在具有操作系統(tǒng)支持的后引導時間操作的用戶級邏輯接收第一信號,以操作可操作上連接到配置有EFI級邏輯和用戶級邏輯的系統(tǒng)的持久性存儲器,持久性存儲器配置為存儲系統(tǒng)固件;選擇性地從EFI級邏輯操作持久性存儲器;以及從EFI級邏輯向用戶級邏輯提供關于持久性存儲器操作的第二信號。
根據(jù)本發(fā)明的系統(tǒng)包括集成電路,配置為存儲系統(tǒng)級固件;第一邏輯,配置為確定是否請求更新系統(tǒng)級固件,第一邏輯可從用戶應用訪問,第一邏輯配置為請求更新系統(tǒng)級固件;更新邏輯,配置為響應于來自第一邏輯的請求,便于更新系統(tǒng)級固件,更新邏輯可從預引導應用訪問;可擴展固件接口(EFI)邏輯,配置為便于調(diào)用可由更新邏輯執(zhí)行的功能,第一邏輯配置為通過EFI變量與更新邏輯傳遞配置數(shù)據(jù);可安裝的EFI分區(qū),配置為存儲與可由更新邏輯執(zhí)行的功能有關的一個或多個可執(zhí)行程序和替換固件的二進制映象,其中更新邏輯可在預引導時間通過用替換固件的二進制映象的一個或多個部分替換所述固件的一個或多個部分來執(zhí)行所述固件的更新。
結合在說明書中并構成說明書一部分的附示了各種實例系統(tǒng)、方法等等,附示了本發(fā)明各方面的各種實例實施例。應該理解,圖中圖示的元件邊界(例如框、多組框或其它形狀)表示邊界的一個實例。本領域普通技術人員將理解,一個元件可設計為多個元件,或者多個元件可設計為一個元件。顯示為另一元件的內(nèi)部部件的元件可實現(xiàn)為外部部件,反之亦然。此外,元件不一定按比例繪制。
圖1圖示了一個配置有BIOS的計算系統(tǒng)。
圖2圖示了一個配置有EFI的實例系統(tǒng)。
圖3圖示了一個與操作持久性存儲器有關的實例方法。
圖4圖示了一個與操作持久性存儲器有關的實例系統(tǒng)。
圖5圖示了一個用于操作持久性存儲器的實例系統(tǒng)。
圖6圖示了另一個用于操作持久性存儲器的實例系統(tǒng)。
圖7圖示了一個與操作持久性存儲器有關的實例方法。
圖8圖示與從操作系統(tǒng)中管理級刷新系統(tǒng)固件有關的實例方法。
圖9圖示了一個EFI使能系統(tǒng)中的邏輯流程。
圖10圖示可操作本文圖示的實例系統(tǒng)和方法的實例計算環(huán)境。
圖11圖示可操作本文圖示的實例系統(tǒng)和方法的實例成像裝置。
圖12圖示了一個實例應用編程接口(API)。
圖13圖示了一個與圖形用戶界面(GUI)有關的實例方法。
具體實施例方式
本文描述的實例系統(tǒng)和方法關于刷新存儲在可重編程的持久性存儲器中的系統(tǒng)固件。該刷新可由與比如EFI的固件接口交互作用的用戶級過程發(fā)起。系統(tǒng)固件例如可以是BIOS,并且可存儲在像閃速存儲器的持久性存儲器中。持久性存儲器可存儲在例如母板、單元板、節(jié)點板等上。用戶級過程和固件接口可交互作用,例如通過對用戶級過程和EFI級過程均可見的固件接口變量(例如EFI變量)來傳遞參數(shù)、錯誤代碼等來進行。
代替人工移去存儲了BIOS的芯片,或調(diào)用EFI外殼并執(zhí)行各種技術任務,用戶可從用戶級應用發(fā)起固件刷新。用戶級應用可以賦予以下任務例如檢查與系統(tǒng)有關的當前固件、確定不同的(例如改進的、更新近的)固件是否可用于系統(tǒng),以及傳遞固件刷新數(shù)據(jù)到EFI級應用。用戶級應用可調(diào)用EFI級應用,該EFI級應用能通過例如建立更新工具作為將由引導EFI運行的應用來重新配置EFI。更新工具可包括和/或配置為定位固件,用該固件,可重編程持久性存儲器將被刷新。所以,EFI進行的預引導動作可以定位并運行更新工具,該更新工具又將嘗試用期望的固件重新編程持久性存儲器。成功或失敗可通過EFI變量報告回用戶應用。
以下包括本文采用的所選術語的定義。定義包括各種實例和/或由落在術語范圍之內(nèi)并且可用于實現(xiàn)的部件構成。這些實例并不旨在限制。單數(shù)和復數(shù)形式的術語都可在該定義范圍之內(nèi)。
在此應用中,術語“計算機部件”指的是與計算機有關的實體,可以是硬件、固件、軟件、它們的組合或者在運行的軟件。例如,計算機部件可以是(但不限于)在處理器上運行的過程、處理器、對象、可執(zhí)行程序、運行的線程、程序和計算機。作為圖示,在服務器上運行的應用和服務器都可以是計算機部件。一個或多個計算機部件可存在于過程和/或運行的線程內(nèi),并且計算機部件可定位在一個計算機上和/或分布在兩個或更多個計算機之間。
本文采用的“計算機通信”指的是兩個或更多個計算裝置之間的通信(例如計算機、個人數(shù)字助理、蜂窩式電話),并且可以是例如網(wǎng)絡傳輸、文件傳輸、小應用程序傳輸、電子郵件、超文本傳輸協(xié)議(HTTP)傳輸?shù)鹊?。計算機通信可發(fā)生在例如無線系統(tǒng)上(例如IEEE 802.11、IEEE 802.15)、以太網(wǎng)系統(tǒng)(例如IEEE 802.3)、令牌環(huán)系統(tǒng)(例如IEEE 802.5)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、點到點系統(tǒng)、電路交換系統(tǒng)、分組交換系統(tǒng)及其組合等等。
本文所用的“計算機可讀媒體”指的是直接或間接參與提供信號、指令和/或數(shù)據(jù)的媒體。計算機可讀媒體可采取包括但不限于以下形式非易失性媒體、易失性媒體和傳輸媒體。非易失性媒體可包括例如光盤或磁盤等等。易失性媒體可包括例如光盤或磁盤、動態(tài)存儲器等等。傳輸媒體可包括同軸電纜、銅線、光纖電纜等等。傳輸媒體還可采取電磁輻射的形式,就像在無線電波和紅外線數(shù)據(jù)通信期間產(chǎn)生的那些,或采取一組或多組信號的形式。計算機可讀媒體的共同形式包括但不限于軟盤、柔性盤、硬盤、磁帶、其它磁介質、CD-ROM、其它光學介質、穿孔卡、紙帶、帶孔圖案的其它物理媒體、RAM、ROM、EPROM、閃速EPROM或其它存儲器芯片或卡片、存儲條、載波/脈沖以及計算機、處理器或其它電子裝置可讀的其它媒體。用于在比如因特網(wǎng)的網(wǎng)絡上傳播指令或其它軟件的信號可以視為一種“計算機可讀媒體”。
本文所用的“數(shù)據(jù)存儲”指的是可儲存數(shù)據(jù)的物理和/或邏輯實體。數(shù)據(jù)存儲例如可以是數(shù)據(jù)庫、表格、文件、列表、隊列、堆陣、存儲器、寄存器等等。數(shù)據(jù)存儲可存在于一個邏輯和/或物理實體中,和/或可以分布在兩個或更多個邏輯和/或物理實體之間。
本文所用的“邏輯”包括但不限于硬件、固件、軟件和/或它們的組合,用于執(zhí)行功能或動作,和/或引起來自另一邏輯、方法和/或系統(tǒng)的功能或動作。例如,根據(jù)期望的應用或需要,邏輯可包括受軟件控制的微處理器、如專用集成電路(ASIC)的離散邏輯、編程邏輯裝置、包含指令的存儲器件等等。邏輯可包括一個或多個邏輯門、邏輯門的組合或其它電路元件。邏輯還可完全實施為軟件。在描述多個邏輯上的邏輯時,有可能將多個邏輯上的邏輯合并到一個物理邏輯中。類似地,在描述單一邏輯上的邏輯時,有可能將單個邏輯上的邏輯分布在多個物理邏輯之間。
“可操作的連接”或實體被“操作上連接”的連接是其中可發(fā)送和/或接收信號、物理通信和/或邏輯通信的連接。一般地,可操作的連接包括物理接口、電接口和/或數(shù)據(jù)接口,但是應當注意,可操作的連接可包括足以實現(xiàn)可操作控制的這些或其它類型連接的不同組合。例如,兩個實體可通過能夠彼此直接或通過比如處理器、操作系統(tǒng)、邏輯、軟件或其它實體的一個或多個中間實體傳遞信號來操作上連接。邏輯和/或物理通信信道可用于建立可操作的連接。
本文所用的“信號”包括但不限于一個或多個電或光信號、模擬或數(shù)字信號、數(shù)據(jù)、一個或多個計算機或處理器指令、消息、位或位流或其它可被接收、傳送和/或檢測的部件。
本文所用的“軟件”包括但不限于一個或多個可被讀取、解釋、編譯和/或執(zhí)行的并使計算機、處理器或其它電子裝置以期望方式執(zhí)行功能、動作和/或行為的計算機或處理器指令。該指令可實施為各種形式,像例行程序、算法、模塊、方法、線程和/或包括來自動態(tài)和/或靜態(tài)鏈接庫的單獨應用或代碼的程序。軟件還可以實現(xiàn)為各種可執(zhí)行和/或可加載的形式,包括但不限于獨立程序、函數(shù)調(diào)用(本地和/或遠程的)、servelet、小應用程序、存儲在存儲器中的指令、操作系統(tǒng)的一部分或其它類型的可執(zhí)行指令。本領域的普通技術人員應該理解,軟件形式例如可取決于,對期望應用的要求、軟件運行的環(huán)境和/或設計者/程序員的期望等等。還應該理解,計算機可讀和/或可執(zhí)行指令可位于一個邏輯中和/或分布在兩個或更多個通信、合作和/或并行處理邏輯之間,從而可被加載和/或以串行、并行、整體并行及其它方式執(zhí)行。
用于實現(xiàn)本文描述的實例系統(tǒng)和方法的各種部件的適當軟件可使用編程語言和工具產(chǎn)生,像Java、Pascal、C#、C++、C、CGI、Perl、SQL、API、SDK、匯編、固件、微碼和/或其它語言及工具。不論是整個系統(tǒng)還是系統(tǒng)部件,軟件都可實施為一件制品,并保持或提供為之前定義的計算機可讀媒體的一部分。軟件的另一種形式可包括經(jīng)網(wǎng)絡或其它通信媒體將軟件程序代碼發(fā)送到接收方的信號。因此,在一個實例中,計算機可讀媒體具有信號的形式,該信號表示從網(wǎng)絡服務器下載到用戶的軟件/固件。在另一實例中,計算機可讀媒體具有保持在網(wǎng)絡服務器上的軟件/固件形式。還可使用其它形式。
本文所用的“用戶”包括但不限于一個或多個個人、軟件、計算機或其它裝置或它們的組合。
依據(jù)存儲器內(nèi)有關數(shù)據(jù)位的算法和運算符號表示來給出下面詳細說明的一些部分。這些算法描述和表示法都是本領域技術人員采用來向其他人傳達其工作實質的方式。算法在這里通常構思為產(chǎn)生結果的操作序列。操作可包括對物理量的物理操縱。通常,但并非必需,物理量采取能夠存儲、傳輸、組合、比較和在邏輯中操作等的電或磁信號的形式。
已經(jīng)證明有時是便利的,主要出于公共用途的考慮,將這些信號表示為二進制數(shù)字、值、單元、符號、字符、項、數(shù)字等等。然而,應該記住,這些及類似術語要與適當?shù)奈锢砹肯嗦?lián)系,并且僅僅作為應用到這些量的便利標記。除非具體說明,否則應該理解,在整個說明書中,類似處理、計算、核算、確定、顯示等術語指的是計算機系統(tǒng)、邏輯、處理器或操作和變換表示為物理(電子)量的數(shù)據(jù)的類似電子裝置的動作和過程。
實例方法可參考圖3、7和8的流程圖來更好地理解。雖然為了簡化說明的目的,圖示的方法顯示和描述為一系列塊,但應該理解,這些方法不受這些塊的順序的限制,因為一些塊可與所顯示和描述的順序不同的順序進行,和/或與其它塊同時進行。此外,可以要求少于所有圖示塊來實現(xiàn)實例方法。此外,附加和/或備選方法可采用附加的、未圖示的塊。
在流程圖中,塊表示可用邏輯實現(xiàn)的“處理塊”。處理塊可表示方法步驟和/或用于執(zhí)行方法步驟的設備單元。流程圖不描述任何特定編程語言的語法、方法或風格(例如程序上的、面向對象的)。相反,流程示的是本領域技術人員可用于開發(fā)邏輯以執(zhí)行圖示處理的功能信息。應該理解,在某些實例中,沒有顯示像臨時變量、例程循環(huán)等程序單元。還應該理解,電子和軟件應用可涉及動態(tài)而靈活的過程,以便圖示的塊可用不同于顯示順序的其它順序執(zhí)行,和/或塊可以組合或拆分為多個部件。應該理解,過程可用各種編程方法實現(xiàn),像機器語言、程序上的、面向對象的和/或人工智能技術。
圖3圖示了與操作持久性存儲器有關的實例方法300。如在本文中使用的,“持久性存儲器”指的是例如電可擦除可編程只讀存儲器(EEPROM)、閃速存儲器等的集成電路。持久性存儲器可配置為存儲系統(tǒng)固件,如可參與引導計算系統(tǒng)的BIOS。因此,實例系統(tǒng)和方法可涉及操作計算系統(tǒng)中的存儲器芯片。本文所用的“操作存儲器芯片”指的是通話動作,比如對存儲在如存儲器芯片的持久性存儲器中的代碼(固件)的擦除、編輯、替換等。
因此,方法300可包括,在310,在配置為在沒有操作系統(tǒng)支持的預引導時間操作的可擴展固件接口(EFI)級邏輯中接收第一信號。計算系統(tǒng)可具有配置為在各種邏輯級操作的可執(zhí)行程序。例如,EFI級可存在于操作系統(tǒng)級和用戶級以下。EFI級可編程為在已經(jīng)載入操作系統(tǒng)之前的時間操作,該時間可稱為預引導時間。操作系統(tǒng)級可存在于EFI級和用戶級之間。操作系統(tǒng)可便于用戶級邏輯與系統(tǒng)資源交互作用等。用戶級可存在于操作系統(tǒng)和EFI級之上。一般來說,用戶級邏輯不會直接和/或間接地與EFI級邏輯通信。此外,EFI操作傳統(tǒng)上從EFI外殼執(zhí)行,而不是從用戶級邏輯執(zhí)行。
可從用戶級邏輯接收第一信號,該用戶級邏輯配置為在具有操作系統(tǒng)支持的后引導時間操作。第一信號可以是操作持久性存儲器的一個指示,該持久性存儲器可操作上連接到配置有EFI級邏輯和用戶級邏輯的系統(tǒng)。在一個實例中,可由用戶級邏輯通過EFI變量將第一信號提供給EFI級邏輯。EFI變量可以是用戶級邏輯、操作系統(tǒng)過程、EFI級邏輯等看得見的,因此使它們作為在各種級之間傳送信息的候選??捎傻谝恍盘栐谟脩艏夁壿嫼虴FI級邏輯之間傳送的信息例如可包括存儲在要操作的持久性存儲器中的第一系統(tǒng)固件的標識符、替換第一系統(tǒng)固件的第二系統(tǒng)固件的標識符、要操作的持久性存儲器的標識符、用于操作持久性存儲器的可擴展固件接口(EFI)級預引導過程的標識符以及第二系統(tǒng)固件位置的標識符。因此,用戶級邏輯可指定,更新過程的某一版本被賦予用存儲在計算系統(tǒng)上某處的替換BIOS替換某一持久性存儲器中的現(xiàn)有BIOS的任務。所以,應該理解,本文所述的實例系統(tǒng)和方法的各種實例可用在計算系統(tǒng)配置中,包括但不限于單處理器/單持久性存儲器/單BIOS系統(tǒng)、多處理器/多持久性存儲器/多BIOS系統(tǒng)等。
持久性存儲器可配置為存儲系統(tǒng)固件,如BIOS。因此,用戶級邏輯可檢查存儲在持久性存儲器中的系統(tǒng)固件,并確定想要較新的版本并且應該安裝較新的版本。與傳統(tǒng)的進行將芯片拉出或使用EFI外殼方法更新系統(tǒng)固件的動作相反,用戶級邏輯可傳遞設計為控制EFI級邏輯的信息,以用較新版本的系統(tǒng)固件自動操作(例如替換)現(xiàn)有的系統(tǒng)固件。
因此,方法300可包括,在310,從EFI級邏輯選擇性地操作持久性存儲器。與操作持久性存儲器有關的實例動作參考圖7和8進行描述。
方法300還可包括,在320,從EFI級邏輯向用戶級邏輯提供關于持久性存儲器操作的第二信號。第二信號可以是例如錯誤碼、成功碼、識別安裝在持久性存儲器中的當前系統(tǒng)固件的代碼等。因此,一般提供給EFI外殼層的信息可由用戶級邏輯使用。與第一信號可從用戶級邏輯通過EFI變量提供到EFI級邏輯一樣,第二信號也可從EFI級邏輯通過EFI變量提供到用戶級邏輯。
在一個實例中,方法實現(xiàn)為在計算機可讀媒體上提供的處理器可執(zhí)行指令和/或操作。因此,在一個實例中,計算機可讀媒體可存儲操作上用于執(zhí)行方法的處理器可執(zhí)行指令,該方法包括在配置為在沒有操作系統(tǒng)支持的預引導時間運行的EFI級邏輯中,從配置為在具有操作系統(tǒng)支持的后引導時間運行的用戶級邏輯,通過EFI變量,接收第一信號,以便操作閃速存儲器,該閃速存儲器可操作上連接到配置有EFI級邏輯和用戶級邏輯的系統(tǒng)。第一信號可包括的數(shù)據(jù)包括但不限于例如存儲在閃速存儲器中的第一BIOS的標識符、替換第一BIOS的第二BIOS的標識符、要操作的閃速存儲器的標識符、用于操作閃速存儲器的EFI級過程的標識符以及第二BIOS位置的標識符。該方法還可包括選擇性地從EFI級操作閃速存儲器,并響應于對閃速存儲器的操作,從EFI級邏輯通過EFI變量向用戶級邏輯提供關于閃速存儲器操作的第二信號。鑒于上述方法300的各種過程及備選過程,應該理解,方法300的一個實施例可包括在配置為在沒有操作系統(tǒng)支持的預引導時間操作的可擴展固件接口(EFI)級邏輯,從配置為在具有操作系統(tǒng)支持的后引導時間操作的用戶級邏輯接收第一信號,以操作持久性存儲器,該持久性存儲器可操作上連接到配置有EFI級邏輯和用戶級邏輯的系統(tǒng),持久性存儲器配置為存儲系統(tǒng)固件;從EFI級邏輯選擇性地操作310持久性存儲器;以及從EFI級邏輯向用戶級邏輯提供320關于持久性存儲器操作的第二信號。方法300的另一實施例可包括在配置為在沒有操作系統(tǒng)支持的預引導時間運行的可擴展固件接口(EFI)級邏輯中,從配置為在具有操作系統(tǒng)支持的后引導時間運行的用戶級邏輯,通過EFI變量,接收第一信號,以操作閃速存儲器,該閃速存儲器可操作上連接到配置有EFI級邏輯和用戶級邏輯的系統(tǒng),第一信號包括以下標識符中的一個或多個存儲在閃速存儲器中的第一基本輸入輸出系統(tǒng)(BIOS)的標識符、替換第一BIOS的第二BIOS的標識符、要操作的閃速存儲器的標識符、用于操作閃速存儲器的EFI級過程的標識符以及第二BIOS位置的標識符;選擇性地從EFI級邏輯操作310閃速存儲器;以及從EFI級邏輯通過EFI變量向用戶級邏輯提供320關于閃速存儲器操作的第二信號。
雖然上述方法描述為提供在計算機可讀媒體上,但應該理解,本文所述的其它實例方法也可提供在計算機可讀媒體上。
圖4圖示了與操作持久性存儲器440有關的實例系統(tǒng),該持久性存儲器440配置為存儲系統(tǒng)固件430,其中該操作可通過EFI過程來執(zhí)行。系統(tǒng)可包括通信邏輯400,它配置為接收操作持久性存儲器440的請求。持久性存儲器440可以是例如EEPROM、閃速存儲器等。系統(tǒng)固件430可以是例如BIOS。
通信邏輯400可配置為通過EFI 410接收信號。信號可從配置為在具有操作系統(tǒng)支持的后引導時間運行的用戶級邏輯420接收。在一個實例中,用戶級邏輯420可配置為自動運行,無需用戶的輸入,由此便于系統(tǒng)的遠程更新。在另外的實例中,用戶級邏輯420可提供圖形用戶界面給用戶顯示信息,比如有關系統(tǒng)中當前安裝的BIOS的信息、有關可用于替換當前安裝的BIOS的BIOS的信息等。因此,系統(tǒng)可便于為不太熟練的用戶提供基于在線和/或電話的支持。
通信邏輯400還可配置為向用戶級邏輯420提供關于持久性存儲器440的操作的響應。例如,通信邏輯400可報告更新系統(tǒng)固件430的成功/失敗。
系統(tǒng)還可包括更新邏輯450,該邏輯可操作上連接到通信邏輯400。更新邏輯450可配置為選擇性地操作持久性存儲器440,作為EFI預引導過程的一部分。例如,在系統(tǒng)啟動時,所安裝的EFI分區(qū)可提供可在操作系統(tǒng)被載入之前運行的各種預引導過程。這些預引導過程之一可與更新邏輯450進行交互作用,并被賦予操作持久性存儲器440的任務。例如,存儲在持久性存儲器440中的系統(tǒng)固件430可由更新的固件替代。
圖5圖示一個實例系統(tǒng),用于操作配置了系統(tǒng)固件530的持久性存儲器540。在一個實例中,該操作涉及使用EFI 510。和圖4所述系統(tǒng)一樣,圖5所示系統(tǒng)可包括EFI級通信邏輯500和EFI級更新邏輯550。通信邏輯500可從用戶級邏輯520經(jīng)EFI 510接收信號。同樣地,通信邏輯500可經(jīng)EFI 510將信號發(fā)送到用戶級邏輯520。
除這些單元以外,系統(tǒng)還可包括可安裝的EFI系統(tǒng)分區(qū)560,它可由更新邏輯550訪問??砂惭b的EFI系統(tǒng)分區(qū)560可安裝在計算系統(tǒng)中,以便在發(fā)生系統(tǒng)復位時,EFI系統(tǒng)分區(qū)560被引導,而不是操作系統(tǒng)分區(qū)被引導。所以,在載入操作系統(tǒng)之前,與EFI系統(tǒng)分區(qū)560相關的可執(zhí)行程序可得到在預引導時間期間運行的機會。這樣做可便于例如替換存儲在持久性存儲器540中的系統(tǒng)固件530。
可安裝的EFI系統(tǒng)分區(qū)560可配置為存儲像替換系統(tǒng)固件的數(shù)字映象那樣的項。固件的數(shù)字映象可稱為二進制表示,并圖示為二進制表示570。EFI系統(tǒng)分區(qū)560還可存儲像更新過程的可執(zhí)行映象的項。過程的可執(zhí)行映象可認為是實用程序,并圖示為更新實用程序580。
為便于通信邏輯500和用戶級邏輯520之間的通信,EFI 510可包括一組EFI變量(未示出),這組EFI變量是通信邏輯500和用戶級邏輯520都能看見的。因此,關于操作哪個持久性存儲器的信息、哪個版本的BIOS存入選擇的持久性存儲器中的信息、哪個更新邏輯用于執(zhí)行更新的信息等等都可通過與EFI 510相關的EFI變量從用戶級邏輯520傳遞到EFI級邏輯(通信邏輯500、更新邏輯550)。
系統(tǒng)還可包括引導邏輯590,該邏輯配置為選擇性地調(diào)用常駐在可安裝的EFI系統(tǒng)分區(qū)560上的EFI預引導過程。在斷言計算系統(tǒng)電源的電源正常信號時,引導邏輯590可接收對計算系統(tǒng)的控制,從而可便于安裝EFI系統(tǒng)分區(qū)560并用更新邏輯550重新編程持久性存儲器540。預引導過程例如可操作EFI變量、調(diào)用更新邏輯550來操作持久性存儲器540等等。作為圖解,更新邏輯550可配置為通過用二進制表示570替換系統(tǒng)固件530來采用更新實用程序580執(zhí)行對持久性存儲器540的操作。二進制表示570例如可以是BIOS。持久性存儲器540例如可以是閃速存儲器。
圖6圖示了用于使用EFI刷新系統(tǒng)固件的另一實例系統(tǒng)。該系統(tǒng)包括集成電路650,該集成電路配置為存儲系統(tǒng)級固件。集成電路650可以是例如EEPROM、閃速存儲器等等。系統(tǒng)級固件可以是例如控制程序、上電自檢測程序、盤存程序、BIOS等等。
系統(tǒng)可包括像用戶級應用600的第一邏輯,它配置為確定是否請求對系統(tǒng)級固件的更新。如果用戶級應用600決定要請求更新,則用戶級應用600可請求更新。請求更新例如可包括使用例如EFI變量630通過操作系統(tǒng)610和EFI 620將數(shù)據(jù)傳遞到與平臺硬件640相關的可執(zhí)行程序。
系統(tǒng)可包括像更新實用程序672那樣的更新邏輯,該邏輯配置為響應于來自用戶級應用600的請求來便于更新系統(tǒng)級固件。更新實用程序672可從像與可安裝的EFI系統(tǒng)分區(qū)670相關的那些那樣的預引導應用進行訪問。在某些實例中,可采用不同的更新實用程序來執(zhí)行不同的系統(tǒng)固件升級。因此,更新實用程序672例如可從存儲各種如更新實用程序662那樣的可執(zhí)行程序的操作系統(tǒng)分區(qū)660進行拷貝。
除了存儲更新實用程序672,可安裝的EFI分區(qū)670例如可存儲操作系統(tǒng)加載程序674。因此,當用戶級應用600請求系統(tǒng)固件更新時,更新實用程序672可在系統(tǒng)復位時運行。但是,如果用戶級應用600沒請求系統(tǒng)固件更新,則可運行操作系統(tǒng)加載程序674,以便于引導與操作系統(tǒng)分區(qū)660相關的操作系統(tǒng)。判定運行更新實用程序672而不是操作系統(tǒng)加載程序674可至少部分取決于存儲在EFI變量中的值。例如,EFI變量BootNext可以用預引導可執(zhí)行程序的地址進行編程,以在預引導EFI時間期間執(zhí)行的處理期間運行。
可安裝的EFI分區(qū)670還可存儲替換固件的二進制映象。因此,更新邏輯可在預引導時間通過用存儲在EFI系統(tǒng)分區(qū)670中的二進制映象替換固件來更新存儲在集成電路650中的固件。來自用戶級應用600的不同更新請求可導致不同的固件二進制表示被拷貝到集成電路650。因此,操作系統(tǒng)分區(qū)660可存儲可拷貝到EFI系統(tǒng)分區(qū)670的各種固件二進制表示664。
雖然圖示的是單個EFI系統(tǒng)分區(qū)670和單個操作系統(tǒng)分區(qū)660,但應該理解,系統(tǒng)可包括多個分區(qū)。類似的,雖然圖示的是單個集成電路650和單個用戶級應用600,但應該理解,可響應于來自多個用戶級應用的請求而操作多個集成電路。
圖7圖示與操作持久性存儲器有關的實例方法700。操作持久性存儲器可包括例如刷新存儲在持久性存儲器中的系統(tǒng)固件。該操作例如可包括使用EFI傳遞數(shù)據(jù)、調(diào)用預引導過程、載入二進制表示等。
方法700可包括,在710,接收操作持久性存儲器的信號。該信號例如可從用戶級應用接收。在一個實例中,可作為用戶通過圖形用戶界面指示一個動作的結果而接收信號。
方法700還可包括,在720,將可引導EFI分區(qū)安裝到配置有用戶級邏輯、EFI系統(tǒng)和比如EEPROM或閃速存儲器的可重編程持久性存儲器的系統(tǒng)中。安裝EFI分區(qū)可使EFI分區(qū)能在系統(tǒng)后來復位時啟動。
方法700還可包括,在730,將與執(zhí)行操作過程相關的可執(zhí)行程序從安裝在系統(tǒng)中的操作系統(tǒng)分區(qū)拷貝到安裝的EFI分區(qū)。例如,可執(zhí)行程序可以是配置為便于將二進制表示從EFI分區(qū)拷貝到要操作的持久性存儲器中的刷新工具。在一個實例中,刷新工具可包括第二系統(tǒng)固件的二進制型式。在另一實例中,刷新工具可包括有關在哪可檢索到第二系統(tǒng)固件的二進制型式的信息。
方法700還可包括,在740,更新像BootNext變量那樣的EFI變量,以指示應該在下次系統(tǒng)復位時從安裝的EFI分區(qū)執(zhí)行刷新工具。因此,從用戶級應用接收的信號可能已導致系統(tǒng)重新配置,以便將發(fā)生EFI預引導活動。這些活動之一可運行刷新工具,而不是運行操作系統(tǒng)加載程序。
安裝了EFI分區(qū)并重新配置了系統(tǒng)以運行刷新實用程序后,方法700可包括,在750,重新啟動系統(tǒng),以便安裝EFI分區(qū)并執(zhí)行刷新工具。所以,在760,啟動EFI系統(tǒng),并在770,運行刷新工具。更常見的是,刷新工具可被稱為操作過程。如上所述,操作可包括對存儲在持久性存儲器中的固件進行擦除、重新編程、編輯等等。因此,方法700可包括,作為在770動作的一部分,將第二系統(tǒng)固件的二進制表示拷貝到持久性存儲器。持久性存儲器可要求擦除、寫、重寫、編輯等不同的動作。因此,在一個實例中,將第二系統(tǒng)固件的二進制表示拷貝到持久性存儲器可包括將持久性存儲器重新配置為可寫入的,將二進制表示寫入持久性存儲器,以及將持久性存儲器重新配置為不可寫入的。
拷貝可正常進行,在這種情況下,EFI系統(tǒng)可希望通知成功接收起動信號的用戶級應用?;蛘?,拷貝可能沒有成功進行,在這種情況下,EFI系統(tǒng)可能希望通知用戶級應用這種出錯的情況。所以,在770運行刷新工具可包括,在EFI變量中存儲錯誤代碼,其中錯誤代碼關于將二進制表示拷貝到持久性存儲器的狀態(tài)。
在執(zhí)行了操作之后,系統(tǒng)可再一次重新啟動。在一個實例中,由于EFI系統(tǒng)被引導并跟隨一個位于BootNext變量中指向刷新實用程序的指針,該指針現(xiàn)在可能過期了,因此沒再跟隨后續(xù)的重新啟動。這便于EFI在后續(xù)重新啟動時運行操作系統(tǒng)加載程序。
所以,方法700可包括,在790,重新啟動系統(tǒng)。重新啟動系統(tǒng)可包括重新啟動提供在710接收的起動信號的用戶級應用。因此,方法700可包括,在799,將信號提供到用戶級應用。該信號可包括例如成功/錯誤代碼、指向存儲成功/錯誤代碼的EFI變量的指針、更新的固件信息等等。
鑒于以上所述,應該理解,方法700的一個實施例可包括在配置為在沒有操作系統(tǒng)支持的預引導時間運行的可擴展固件接口(EFI)級邏輯中,從配置為在具有操作系統(tǒng)支持的后引導時間運行的用戶級邏輯,通過EFI變量,接收710第一信號,以操作可操作上連接到配置有EFI級邏輯和用戶級邏輯的系統(tǒng)的閃速存儲器,第一信號包括以下標識符中的一個或多個存儲在閃速存儲器中的第一基本輸入輸出系統(tǒng)(BIOS)的標識符、替換第一BIOS的第二BIOS的標識符、要操作的閃速存儲器的標識符、用于操作閃速存儲器的EFI級過程的標識符以及第二BIOS的位置的標識符;安裝720可擴展固件接口(EFI)分區(qū)到系統(tǒng)中;將與執(zhí)行操作過程相關的可執(zhí)行程序從安裝在系統(tǒng)中的操作系統(tǒng)分區(qū)拷貝730到安裝的EFI分區(qū),其中可執(zhí)行程序包括第二基本輸入輸出系統(tǒng)(BIOS)的二進制型式;操作740 EFI BootNext變量,以指向安裝的EFI分區(qū)上的可執(zhí)行程序的拷貝;重新啟動750系統(tǒng);調(diào)用770操作過程;將第二BIOS的二進制表示拷貝到閃速存儲器,其中將第二BIOS的二進制表示拷貝到閃速存儲器包括將閃速存儲器重新配置為可寫入的;將二進制表示寫入閃速存儲器;以及將閃速存儲器重新配置為不可寫入的;在EFI變量中存儲錯誤代碼,其中錯誤代碼關于將二進制表示拷貝到閃速存儲器的狀態(tài);重新啟動790系統(tǒng);以及從EFI級邏輯向用戶級邏輯通過EFI變量提供799關于操作閃速存儲器的第二信號。
方法700中圖示的動作可以是描述為操作持久性存儲器的方法300(圖3)中的動作320的一個實例。
圖8圖示了操作系統(tǒng)中與從管理級刷新系統(tǒng)固件有關的實例方法800。方法800包括,在810,從用戶級應用接收信號。該信號可指示某一系統(tǒng)固件將被刷新。刷新系統(tǒng)固件可包括用新的二進制表示重新編程閃速存儲器。因此,在820,進行關于期望的二進制表示是否可用的判定。如果判定為否,則過程可結束,否則過程可在830繼續(xù)。
方法800可包括,在830,從像操作系統(tǒng)分區(qū)那樣的第一位置將更新工具和二進制表示拷貝到像可安裝的EFI系統(tǒng)分區(qū)那樣的第二位置。因此,預引導EFI過程也許能在預引導時間執(zhí)行更新工具,以拷貝二進制表示并因此刷新系統(tǒng)固件。
方法800可包括,在840,例如通過操作指針或記錄以便定位和執(zhí)行在830拷貝的更新工具,從而更新EFI。在850,可重新啟動系統(tǒng)。因此,拷貝到安裝的EFI系統(tǒng)分區(qū)的更新工具可以運行,這將導致在860系統(tǒng)固件(例如BIOS)被刷新。
刷新可能成功,也可能不成功。因此,在870,進行關于它是否成功的判定。如果判定為否,則在882,可建立錯誤代碼。這例如可包括將一個值寫入對EFI系統(tǒng)和用戶級應用都可見的EFI變量中。如果判定為是,則在880,可同樣建立一個成功代碼。
嘗試刷新之后,在890,系統(tǒng)可以重新啟動,這又導致在892引導EFI。由于EFI已經(jīng)運行了一次更新工具,因此它將不會在這次重新啟動中運行更新工具,相反,將在894進行引導操作系統(tǒng)。由于用戶級應用采取了啟動方法800的行動,因此,在896,用戶級應用可以重新啟動。然后,用戶級應用可檢查在880建立的成功代號或在882建立的錯誤代碼。
圖9圖示了EFI使能系統(tǒng)中的邏輯流程900??稍?10進行平臺初始化,比如檢測復位信號或PowerGood(電源正常)信號。在920,可發(fā)生EFI映象加載,這可包括與EFI驅動程序960和/或EFI應用970進行交互作用。一個EFI應用970可被賦予執(zhí)行固件更新過程950的任務。邏輯流程是進行到固件更新過程950還是進行到EFI操作系統(tǒng)加載程序載入過程930例如可通過位于比如BootNext變量的EFI變量中的地址來確定。如果邏輯流程進行到950,則新的二進制表示可被寫入持久性存儲器中,以向系統(tǒng)提供例如新的BIOS。如果邏輯流程進行到930,那么EFI引導代碼980可執(zhí)行各種預引導任務。
在非固件更新過程配置中,邏輯流程900將在930進行到EFI操作系統(tǒng)加載程序載入過程,于是引導服務將在940終止,并將調(diào)用操作系統(tǒng)加載程序990。
圖10圖示一個計算機1000,它包括處理器1002、存儲器1004和輸入/輸出端口1010,它們通過總線1008可操作上連接。在一個實例中,計算機1000可包括EFI刷新系統(tǒng)1030,它配置為便于操作持久性存儲器并因此刷新系統(tǒng)固件。因此,EFI刷新系統(tǒng)1030,不論在計算機1000中實現(xiàn)為硬件、固件、軟件和/或它們的組合,都可提供用于在配置為在具有操作系統(tǒng)支持的后引導時間運行的用戶級應用與配置為在沒有操作系統(tǒng)支持時運行的可擴展固件接口(EFI)預引導應用之間傳遞配置數(shù)據(jù)的構件。EFI刷新系統(tǒng)1030還可提供用于選擇性地調(diào)用期望的EFI預引導應用以及用于執(zhí)行對配置為存儲系統(tǒng)級固件的持久性存儲器進行選擇性操作的構件。在一個實例中,選擇性操作可通過配置為期望的EFI預引導應用的EFI預引導更新過程來執(zhí)行。EFI預引導更新過程可至少部分地根據(jù)配置數(shù)據(jù)來操作持久性存儲器。
處理器1002可以是各種不同的處理器,包括雙微處理器以及其它多處理器體系結構。存儲器1004可包括易失性存儲器和/或非易失性存儲器。非易失性存儲器可包括但不限于ROM、PROM、EPROM、EEPROM等等。易失性存儲器可包括例如RAM、同步RAM(SRAM)、動態(tài)RAM(DRAM)、同步DRAM(SDRAM)、雙倍數(shù)據(jù)速率SDRAM(DDR SDRAM)以及直接RAM總線RAM(DRRAM)。
盤1006可操作上經(jīng)例如輸入/輸出接口(例如卡、裝置)1018和輸入/輸出端口1010連接到計算機1000。盤1006可包括但不限于如磁盤驅動器、固態(tài)盤驅動器、軟盤驅動器、磁帶驅動器、壓縮(Zip)驅動器、閃速存儲卡和/或存儲條等裝置。此外,盤1006可包括如CD-ROM、CD可記錄驅動器(CD-R驅動器)、CD可重寫驅動器(CD-RW驅動器)和/或數(shù)字視頻ROM驅動器(DVD ROM)等光學驅動器。存儲器1004可存儲例如過程1014和/或數(shù)據(jù)1016。盤1006和/或存儲器1004可存儲控制和分配計算機1000資源的操作系統(tǒng)。
總線1008可以是單個內(nèi)部總線互連體系結構和/或其它總線或網(wǎng)格體系結構。雖然圖示的是單個總線,但應該理解,計算機1000可使用其它未示出的總線(例如PCIE、SATA、Infiniband、1394、USB、以太網(wǎng))與各種裝置、邏輯和外設進行通信??偩€1008可以是各種類型,包括但不限于存儲器總線或存儲控制器、外設總線或外部總線、縱橫開關和/或局部總線。局部總線的種類包括但不限于工業(yè)標準結構(ISA)總線、微通道結構(MSA)總線、擴充型ISA(EISA)總線、外設部件互連(PCI)總線、通用串行(USB)總線以及小型計算機系統(tǒng)接口(SCSI)總線。
計算機1000可經(jīng)I/O接口1018及輸入/輸出端口1010與輸入/輸出裝置進行交互作用。輸入/輸出裝置可包括但不限于鍵盤、麥克風、指示和選擇裝置、照相機、視頻卡、顯示器、盤1006、網(wǎng)絡裝置1020等等。輸入/輸出端口1010可包括但不限于串行端口、并行端口以及USB端口。
計算機1000可在網(wǎng)絡環(huán)境中工作,因此可經(jīng)I/O接口1018和/或I/O端口1010連接到網(wǎng)絡裝置1020。通過網(wǎng)絡裝置1020,計算機1000可與網(wǎng)絡交互作用。通過網(wǎng)絡,計算機1000可在邏輯上連接到遠程計算機。計算機1000可與其交互作用的網(wǎng)絡包括但不限于局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)以及其它網(wǎng)絡。網(wǎng)絡裝置1020可連接到LAN的技術包括但不限于光纖分布式數(shù)據(jù)接口(FDDI)、銅線分布式數(shù)據(jù)接口(CDDI)、以太網(wǎng)(IEEE 802.3)、令牌環(huán)(IEEE 802.5)、無線計算機通信(IEEE 802.11)、藍牙(IEEE 802.15.1)、Zigbee(IEEE802.15.4)等等。類似的,網(wǎng)絡裝置1020可連接到WAN的技術包括但不限于點到點鏈路、比如綜合業(yè)務數(shù)字網(wǎng)(ISDN)的電路交換網(wǎng)、分組交換網(wǎng)以及數(shù)字用戶線(DSL)。盡管描述了各個網(wǎng)絡類型,但應理解,經(jīng)過、越過和/或通過網(wǎng)絡的通信可包括通信的組合和混合。
圖11圖示一個實例成像裝置1100,它包括類似于本文所述實例系統(tǒng)的EFI刷新系統(tǒng)1110。EFI刷新系統(tǒng)1110可包括這樣的邏輯它配置為執(zhí)行像本文所述那樣的可執(zhí)行方法。EFI刷新系統(tǒng)1110可以永久地和/或可移動地附于成像裝置1100上。
成像裝置1100可接收要再現(xiàn)的打印數(shù)據(jù)。因此,成像裝置1100還可包括存儲器1120,該存儲器配置為存儲打印數(shù)據(jù)或更一般地用于圖像處理。成像裝置1100還可包括再現(xiàn)邏輯1130,該邏輯配置為從打印數(shù)據(jù)產(chǎn)生打印機就緒圖像。再現(xiàn)根據(jù)所涉及數(shù)據(jù)的格式以及成像裝置的種類而改變。一般來說,再現(xiàn)邏輯1130將高級數(shù)據(jù)轉換成用于顯示或打印的圖形圖像(例如打印就緒圖像)。例如,一種形式是光線跟蹤,它取得三維對象或場景的數(shù)學模型,并將其轉換為位像。另一實例是將HTML轉換成用于顯示/打印的圖像的過程。應該理解,成像裝置1100可接收不需要再現(xiàn)的打印機就緒數(shù)據(jù),因此再現(xiàn)邏輯1130可不出現(xiàn)在某些成像裝置中。
成像裝置1100還可包括成像機構1140,其配置為從打印就緒圖像產(chǎn)生印刷媒體上的圖像。成像機構1140可根據(jù)成像裝置1100的種類改變,并且可包括激光成像機構、其它基于調(diào)色劑的成像機構、噴墨機構、數(shù)字成像機構或其它成像重現(xiàn)引擎??梢园ㄌ幚砥?150,該處理器1150用邏輯實現(xiàn),以控制成像裝置1100的操作。在一個實例中,處理器1150包括能夠執(zhí)行Java指令的邏輯。成像裝置1100的其它部件沒有在本文中描述,但是可以包括媒體處理和存儲機構、傳感器、控制器及成像過程所涉及的其它部件。
現(xiàn)在參考圖12,圖示了一個應用編程接口(API)1200,它能夠訪問系統(tǒng)1210,用于操作配置有系統(tǒng)固件的持久性存儲器。例如程序員1220和/或過程1230可使用API 1200進入由系統(tǒng)1210所執(zhí)行的處理。例如,程序員1220可寫入一個程序來訪問系統(tǒng)1210(例如調(diào)用其操作、監(jiān)視其操作、控制其操作),其中寫入程序由于有API1200的存在而變得更為方便。無需程序員1220必須了解系統(tǒng)1210的內(nèi)部,程序員1220僅僅必須知道到系統(tǒng)1210的接口。這便于在展示系統(tǒng)1210的功能性時封裝該功能性。
同樣,API 1200可用于向系統(tǒng)1210提供數(shù)據(jù)值,和/或從系統(tǒng)1210檢索數(shù)據(jù)值。例如,檢查二進制表示的過程1230可通過例如使用在API 1200中提供的調(diào)用、經(jīng)API 1200向系統(tǒng)1210提供二進制碼。因此,在API 1200的一個實例中,一組應用編程接口可存儲在計算機可讀媒體上。接口可由程序員、計算機部件、邏輯等用來進入系統(tǒng)1210,以便操作配置有系統(tǒng)固件的持久性存儲器。接口可包括但不限于,傳遞二進制碼(例如替換系統(tǒng)固件)的第一接口1240和傳遞可便于表征二進制碼的固件數(shù)據(jù)的第二接口1250。例如,固件數(shù)據(jù)可包括大小、版本、日期和其它識別和/或表征數(shù)據(jù)。
圖13圖示了一個與持久性存儲器操作和圖形用戶界面有關的實例方法1300。方法1300可以在具有包括顯示器和選擇裝置的圖形用戶界面的計算機系統(tǒng)中執(zhí)行。方法1300可包括在顯示器上提供一組數(shù)據(jù)項并從中進行選擇。在一個實例中,方法1300可包括,在1310,檢索一組數(shù)據(jù)項,其中數(shù)據(jù)項表示持久性存儲器操作動作操作,像指定持久性存儲器將通過替換存儲在其中的系統(tǒng)固件進行操作等。方法1300還可包括,在1320,在顯示器上顯示該組數(shù)據(jù)項,并在1330,接收表示選擇裝置選擇一個被選數(shù)據(jù)項的數(shù)據(jù)項選擇信號??身憫诶缡髽它c擊、按鍵、語音命令等接收數(shù)據(jù)項選擇信號。在1340,響應于數(shù)據(jù)項選擇信號,方法1300可包括發(fā)起與被選數(shù)據(jù)項有關的持久性存儲器操作,其中操作將通過可擴展固件接口(EFI)預引導過程執(zhí)行。在一個實例中,在1350進行判定有關另外的數(shù)據(jù)項選擇信號是否將被處理。如果判定為是,則過程回到1330,否則方法1300可完成。
雖然已經(jīng)通過描述實例說明了實例系統(tǒng)、方法等,并且雖然實例已經(jīng)描述得非常詳細,但申請人并不旨在將所附權利要求書的范圍限制或以任何方式限制到這樣的細節(jié)。當然,不可能描述每個想得到的部件或方法的組合來描述本文所述的系統(tǒng)、方法等等。附加的優(yōu)點和修改對本領域技術人員將是顯而易見的。所以,本發(fā)明不限于所顯示和描述的特定細節(jié)、代表性的設備以及說明性的實例。因此,本申請旨在包括落在所附權利要求書的范圍內(nèi)的變化、修改和變型。此外,之前的描述并不意味著對本發(fā)明范圍的限制。相反,本發(fā)明的范圍由所附權利要求書及其等效物限定。
至于術語“包括”被用于詳細描述或權利要求書中,它規(guī)定為在該術語當用于權利要求中的過渡用詞的情況下被解釋時,類似于術語“包含”的方式包括在內(nèi)。此外,術語“或”被用于詳細描述或權利要求書中(例如A或B),它用來表示“A或B或者兩者”。當申請人想要表示“僅僅A或B而不是兩者”時,則將采用術語“僅僅A或B而不是兩者”。因此,本文所用的術語“或”是包括在內(nèi)的而不是排外的使用。參見Bryan A.Garner,現(xiàn)代法律應用詞典624(2d.Ed.1995)。
權利要求
1.一種方法(300),包括在配置為在沒有操作系統(tǒng)支持的預引導時間操作的可擴展固件接口(EFI)級邏輯中,從配置為在具有操作系統(tǒng)支持的后引導時間操作的用戶級邏輯接收(310)第一信號,以操作可操作上連接到配置有所述EFI級邏輯和所述用戶級邏輯的系統(tǒng)的持久性存儲器,所述持久性存儲器配置為存儲系統(tǒng)固件;選擇性地從所述EFI級邏輯操作(320)所述持久性存儲器;及從所述EFI級邏輯向所述用戶級邏輯提供(330)關于所述持久性存儲器操作的第二信號。
2.如權利要求1所述的方法(300),由所述用戶級邏輯通過EFI變量將所述第一信號提供給所述可擴展固件接口(EFI)級邏輯,并從所述可擴展固件接口(EFI)級邏輯通過EFI變量將所述第二信號提供(330)給所述用戶級邏輯。
3.如權利要求2所述的方法(300),所述第一信號包括以下標識符中的一個或多個存儲在要操作的持久性存儲器中的第一系統(tǒng)固件的標識符、替換所述第一系統(tǒng)固件的第二系統(tǒng)固件的標識符、要操作的持久性存儲器的標識符、用于操作所述持久性存儲器的可擴展固件接口(EFI)級預引導過程的標識符以及所述第二系統(tǒng)固件的位置的標識符。
4.如權利要求3所述的方法(300),其中選擇性地操作(320)所述持久性存儲器包括將可引導的可擴展固件接口(EFI)分區(qū)安裝(720)到所述系統(tǒng)中;從安裝在所述系統(tǒng)中的操作系統(tǒng)分區(qū)向所述安裝的EFI分區(qū)拷貝(730)與執(zhí)行操作過程有關的可執(zhí)行程序;重新啟動(750)所述系統(tǒng);調(diào)用(770)所述操作過程;將所述第二系統(tǒng)固件的二進制表示拷貝(830)到所述持久性存儲器;在EFI變量中存儲(880、882)錯誤代碼,其中所述錯誤代碼關于將所述二進制表示拷貝到所述持久性存儲器的狀態(tài);以及重新啟動(790)所述系統(tǒng)。
5.如權利要求4所述的方法(300),包括操作(740)可擴展固件接口(EFI)變量,以指向與所述安裝的EFI分區(qū)上的操作過程有關的所述可執(zhí)行程序的拷貝,并且其中與執(zhí)行操作過程有關的所述可執(zhí)行程序包括所述第二系統(tǒng)固件的二進制型式。
6.如權利要求5所述的方法(300),其中將所述第二系統(tǒng)固件的二進制表示拷貝(830)到所述持久性存儲器包括將所述持久性存儲器重新配置為可寫入的;將所述二進制表示寫入所述持久性存儲器;以及將所述持久性存儲器重新配置為不可寫入的。
7.一種計算機可讀媒體,存儲可操作上執(zhí)行(300)一種方法的處理器可執(zhí)行指令,所述方法包括在配置為在沒有操作系統(tǒng)支持的預引導時間運行的可擴展固件接口(EFI)級邏輯中,從配置為在具有操作系統(tǒng)支持的后引導時間運行的用戶級邏輯,通過EFI變量接收(310)第一信號,以操作可操作上連接到配置有所述EFI級邏輯和所述用戶級邏輯的系統(tǒng)的閃速存儲器,所述第一信號包括以下標識符中的一個或多個存儲在閃速存儲器中的第一基本輸入輸出系統(tǒng)(BIOS)的標識符、替換所述第一BIOS的第二BIOS的標識符、要操作的閃速存儲器的標識符、用于操作所述閃速存儲器的EFI級過程的標識符以及所述第二BIOS的位置的標識符;選擇性地從所述EFI級操作(320)所述閃速存儲器;以及從所述EFI級邏輯向所述用戶級邏輯通過EFI變量提供(330)關于所述閃速存儲器刷新的第二信號。
8.一種系統(tǒng),包括通信邏輯(400),配置為通過可擴展固件接口(EFI)(410),從配置為在具有操作系統(tǒng)支持的后引導時間運行的用戶級邏輯(420),接收對于操作配置為存儲系統(tǒng)固件(430)的持久性存儲器(440)的請求,所述通信邏輯(400)還配置為向所述用戶級邏輯(420)提供關于所述操作的響應;以及更新邏輯(450),可操作上連接到所述通信邏輯(400),所述更新邏輯(450)配置為選擇性地操作所述持久性存儲器(440),作為EFI預引導過程的一部分。
9.如權利要求8所述的系統(tǒng),包括可安裝的可擴展固件接口(EFI)系統(tǒng)分區(qū)(560),可由所述更新邏輯(450)訪問,所述可安裝的可擴展固件接口(EFI)系統(tǒng)分區(qū)(560)配置為存儲替換系統(tǒng)固件的數(shù)字映象(570)以及更新過程的可執(zhí)行映象(580),所述更新邏輯(450)配置為采用所述更新過程的所述可執(zhí)行映象(580)來執(zhí)行所述持久性存儲器(440)的操作;一組EFI變量,其對所述通信邏輯(400)和所述用戶級邏輯(420)是可見的;以及引導邏輯(590),配置為選擇性地調(diào)用駐于所述可安裝的系統(tǒng)分區(qū)(560)上的一個或多個EFI預引導過程,其中預引導過程可操作所述組EFI變量的一個或多個成員,并可調(diào)用所述更新邏輯(450)來操作所述持久性存儲器(440)。
10.一種系統(tǒng),包括集成電路(650),配置為存儲系統(tǒng)級固件;第一邏輯,配置為確定是否請求更新所述系統(tǒng)級固件,所述第一邏輯可從用戶應用(600)訪問,所述第一邏輯配置為請求更新所述系統(tǒng)級固件;更新邏輯,配置為響應于來自所述第一邏輯的請求便于更新所述系統(tǒng)級固件,所述更新邏輯可從預引導應用訪問;可擴展固件接口(EFI)邏輯(620),配置為便于調(diào)用可由所述更新邏輯執(zhí)行的功能,所述第一邏輯配置為通過EFI變量(630)與所述更新邏輯傳遞配置數(shù)據(jù);可安裝的EFI分區(qū)(670),配置為存儲與可由所述更新邏輯執(zhí)行的功能有關的一個或多個可執(zhí)行程序(672)以及替換固件的二進制映象,其中所述更新邏輯可在預引導時間,通過用所述替換固件的所述二進制映象的一個或多個部分替換所述系統(tǒng)級固件的一個或多個部分,來執(zhí)行所述系統(tǒng)級固件的更新;以及操作系統(tǒng)分區(qū)(660),配置為存儲與可由所述更新邏輯執(zhí)行的功能有關的一個或多個可執(zhí)行程序(662),其中所述一個或多個可執(zhí)行程序(662)可拷貝到所述可安裝的可擴展固件接口(EFI)分區(qū)(670),所述操作系統(tǒng)分區(qū)(660)還配置為存儲替換固件的一個或多個二進制映象(664),其中所述一個或多個二進制映象(664)可拷貝到所述可安裝的EFI分區(qū)(670),作為所述替換固件。
全文摘要
描述了與使用可擴展固件接口執(zhí)行持久性存儲器的操作相關的系統(tǒng)、方法、媒體以及其它實施例。一個例示性方法(300)實施例包括接收(310)關于刷新持久性存儲器的信號,從EFI級應用選擇性地刷新(320)持久性存儲器,以及向用戶級應用提供(330)關于持久性存儲器刷新的信號。
文檔編號G06F9/445GK1783004SQ20051002280
公開日2006年6月7日 申請日期2005年12月5日 優(yōu)先權日2004年12月3日
發(fā)明者J·B·麥菲爾德, K·J·吉爾, C·D·希塞爾 申請人:惠普開發(fā)有限公司