TWI524205B - 用以在無作業系統服務環境中供應韌體之方法 - Google Patents
用以在無作業系統服務環境中供應韌體之方法 Download PDFInfo
- Publication number
- TWI524205B TWI524205B TW100141267A TW100141267A TWI524205B TW I524205 B TWI524205 B TW I524205B TW 100141267 A TW100141267 A TW 100141267A TW 100141267 A TW100141267 A TW 100141267A TW I524205 B TWI524205 B TW I524205B
- Authority
- TW
- Taiwan
- Prior art keywords
- firmware
- computing device
- environment
- module
- volume
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/66—Updates of program code stored in read-only memory [ROM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Power Sources (AREA)
Description
本揭露內容大體上係有關對於運算裝置的管理技術,並更特別係有關在運算裝置仍處在低功率消耗狀態中時,在此運算裝置之獨立於此運算裝置之作業系統的韌體環境中供應韌體之技術。
在減少運算裝置之功率消耗方面,係存在有多種機構。用於功率管理的標準技術係詳細說明於先進組態與電力介面(Advanced Configuration and Power Interface,ACPI)4.0版中,其可於URL www-acpi-info在公開網際網路上找到(請注意,點號已被置換成短線,以避免於此文件中形成無意的超連結)。ACPI是大部分的電腦系統目前針對功率管理所用的一種標準,其描述由作業系統(operating system,OS)所見的運算系統之樣貌。功率管理能力使得一個運算裝置,不管是部件還是系統等級,能在較高功率消耗狀態和較低功率消耗狀態之間變換其作業狀態。這些操作模式常常是分別被稱作喚醒(wake)和睡眠(sleep)狀態或模式。ACPI說明書定義一個運算裝置典型上可處在的七種狀態。例如,狀態S3(「S3」)可典型上被稱為待命(standby)、睡眠(於此亦將其稱為「睡眠模式」)、或擱置至RAM(suspend to RAM)。狀態S5(「S5」)可被稱為關機(shutdown)或「關(off)」。
有多種事件可致使一個運算裝置在睡眠模式和喚醒模式之間變換,即,醒來或睡去。例如,會觸發運算系統使其變換至睡眠的睡眠事件可包括使用者不活動或使用者選擇。當一個運算裝置變換到睡眠時,有許多運算裝置部件(例如,主處理器(像是中央處理單元(central processing unit,CPU))、依電性記憶體、用於大量儲存的磁碟驅動器及其他諸如此類者)可能也會睡去。睡著之後,運算裝置可在發生喚醒事件時醒來。喚醒事件可包含,例如,運算裝置接收到來自於滑鼠或鍵盤的輸入、電子郵件訊息、或來自於遠端系統管理者的詢問。
在已處置一個喚醒事件之後,並且在OS再度運行之前,係有這麼一個機會,可使此運算裝置之韌體在不涉及OS的情況下執行有用的工作。
依據本發明之一實施例,係特地提出一種用於供應韌體模組給運算裝置的方法,該方法包含下列步驟:在將該運算裝置從一第一較高功率消耗狀態變換至一第二較低功率消耗狀態時,再樣例化一個韌體環境,該韌體環境包括在啟動前時間可用的一或多個韌體功能;由該韌體環境判定在一個韌體卷上的一個密碼簽章是否已驗證;由該韌體環境判定該運算裝置的由該韌體卷的一個工具性質規定檔所請求的數個硬體資源是否可用;由該韌體環境判定該韌體卷的至少一個韌體模組是否與該韌體環境之已安裝韌體可相容;保留在一個記憶體中的空間,以容納由該至少一個韌體模組所使用的數個資源;以及在該運算裝置處於該第二較低功率消耗狀態時執行該至少一個韌體模組。
依據本發明之另一實施例,係特地提出一種運算裝置,其包含:一個處理器;組配來由該處理器操作的一個韌體環境;其中該韌體環境包括多個韌體功能,該等多個韌體功能可被用來將該設備啟動至消耗一第一功率位準的一個操作狀態;其中該韌體環境更係組配成可被再樣例化以包括可被用來在該設備從該操作狀態變換至一個睡眠狀態時啟動該設備的該等韌體功能之至少一個子集,以使該韌體環境能夠進行下列動作,其中該睡眠狀態係消耗低於該第一功率位準的一第二功率位準:由該韌體環境判定在一個韌體卷上的一個密碼簽章是否已驗證;由該韌體環境判定該運算裝置的由該韌體卷的一個工具性質規定檔所請求的數個硬體資源是否可用;由該韌體環境判定該韌體卷的至少一個韌體模組是否與該韌體環境之已安裝韌體可相容;保留在一個記憶體中的空間,以容納由該至少一個韌體模組所使用的數個資源;以及在該運算裝置處於該第二較低功率消耗狀態時執行該至少一個韌體模組。
依據本發明之又一實施例,係特地提出一種包含有一或多個指令的電腦可讀媒體,該一或多個指令在執行於一個運算裝置的一個處理器上時會藉由下列步驟而進行一或多個操作來將一個韌體模組供應至該運算裝置:在將該運算裝置從一第一較高功率消耗狀態變換至一第二較低功率消耗狀態時,再樣例化一個韌體環境,該韌體環境包括在啟動前時間可用的一或多個韌體功能;由該韌體環境判定在一個韌體卷上的一個密碼簽章是否已驗證;由該韌體環境判定該運算裝置的由該韌體卷的一個工具性質規定檔所請求的數個硬體資源是否可用;由該韌體環境判定該韌體卷的至少一個韌體模組是否與該韌體環境之已安裝韌體可相容;保留在一個記憶體中的空間,以容納由該至少一個韌體模組所使用的數個資源;以及在該運算裝置處於該第二較低功率消耗狀態時執行該至少一個韌體模組。
將以例示於隨附圖式中的示範實施例,而非限制條件,之方式來描述本發明的數個實施例,在這些圖式中,相似參考標號係標示類似元件,並且在這些圖式中:第1圖是一個時間線,其依據許多實施例,例示出一個運算裝置從喚醒模式到睡眠模式之變換;第2圖是一個流程圖,其依據許多實施例,例示出用於由一個韌體獨立於作業系統(OS)而處置喚醒事件的一個示範方法;第3圖是一個方塊圖,其依據許多實施例,例示出在運算系統中的一個啟動和喚醒循環;第4圖是一個方塊圖,其依據許多實施例,例示出一個示範運算裝置;第5圖是依據許多實施例的在硬體部件上之軟體堆疊的圖示;第6圖是依據許多實施例的韌體卷的圖示;並且第7圖是依據許多實施例的一個供應處理程序之流程圖。
本發明的數個例示實施例包括但不受限於用於在一個運算裝置仍處於低功率消耗睡眠模式中時,於此運算裝置的獨立於此運算裝置之作業系統的一個韌體環境中供應韌體模組的數種方法和設備。
下面將利用熟於此技者常用的詞語來說明這些例示實施例的許多面向,以將其運作之本質傳遞給熟於此技者知曉。然而,對於熟於此技者而言,會可明顯看出,有一些替代實施例係可在僅具有所說明之面向中之若干的情況下實行。為作說明目的,文中係提出具體數量、材料和組態來提供對這些例示實施例的通盤瞭解。然而,對於熟於此技者而言,會可明顯看出,有一些替代實施例係可在不具有這些具體細節的情況下實行。在其他情況中,已廣為人知的特徵係被省略或簡化,以避免混淆這些例示實施例。
此外,下面會以最有助於瞭解這些例示實施例的方式而將許多操作依次描述為複數個離散的操作;然而,說明順序不應被解讀為係暗示這些操作一定要照順序。尤其是,這些操作並不需要以所呈現之順序執行。文中重複使用「在一個實施例中」這樣的語句。此語句一般而言並不是指涉同一個實施例;然而,也可以是指涉同一個實施例。「包含」、「具有」和「含有」等詞語是同義的,除非在上下文中有指定其他情況。
第1圖是一個時間線,其依據許多實施例,例示出一個運算裝置從喚醒模式到睡眠模式之變換。如於此所述的,在許多實施例中,係可致能一個運算裝置的韌體來在此運算裝置處於睡眠模式中時完成工作。此韌體可獨立於作業系統而完成這個工作,這導致運算裝置之功能性的增加以及整體功率消耗的減少。在數個實施例中,此運算裝置或系統可為一個桌上型電腦、膝上型電腦、行動運算裝置、網路伺服器、瘦客戶端、或其他組配來利用韌體的運算裝置。在數個實施例中,此韌體可為舊有的基本輸入/輸出系統(basic input/output system,BIOS)、統一可延伸韌體介面(Unified Extensible Firmware Interface,UEFI)(例如,2006年的UEFI規格2.0版)相容、可延伸韌體介面(Extensible Firmware Interface,EFI)相容(例如,2004年的EFI規格1.10版)、或其他韌體。請注意,EFI是一種公開工業規格,其描述在運算裝置韌體與作業系統或其他應用程式環境之間的一種抽象程式規劃介面。例如,EFI使韌體(以韌體模組之形式)能夠從各種不同資源或經由電腦網路而從一或多個電腦系統中被載入,這些資源包括快閃記憶體裝置、光學唯讀記憶體(Read-Only Memory,ROM)、各種持久儲存體裝置(例如,硬碟、光碟唯讀記憶體(Compact Disk-Read Only Memory,CD-ROM)等等)。更多有關統一EFI(UEFI)架構的資訊可於www-uefi-org在公開網際網路上找到(請注意,點號已被置換成短線,以避免於此文件中形成無意的超連結)。因此,如於此所述的,在許多實施例中,在變換到睡眠模式時,一個運算系統可再樣例化一個UEFI或包括有於啟動前(pre-boot)時間可獲得的一或多個韌體功能的其他韌體環境。在數個實施例中,被再樣例化的韌體環境可使此韌體環境能夠執行正常係由運算裝置之OS執行的功率管理功能。在一個實施例中,被再樣例化的韌體環境可供用於在不涉及OS下對新韌體模組之供應或對現存韌體模組之更新。在一個實施例中,係可執行新安裝的或新更新的韌體模組,以針對此運算裝置來進行操作。
現在,請參考第1圖,在所示之實施例中,於111,一個運算裝置可在啟動前時間之期間內被一個韌體環境(亦稱之為韌體)初始化。在許多實施例中,如將於後文更詳細論述的,在這個啟動前時間之期間內,於112,韌體可保留一部分的記憶體或郵件信箱,此韌體可在之後從此處收集資料。於113,在已完成啟動前初始化之後,控制權可被轉移給運算裝置的作業系統(OS),以繼續啟動程序。在OS或系統啟動之後,於115,OS可接著在一個功能或喚醒模式中運行或操作此運算裝置,這包括與正常操作相關聯的典型上屬於較高功率消耗的狀態。此運算裝置可繼續在喚醒模式中操作,直到117,於此,有一個睡眠事件致使此運算裝置變換至睡眠模式S3,這包括一種較低功率消耗狀態。如於上文中所提,睡眠事件可包括各種事件,像是,例如,使用者選擇或使用者不活動。
過了一些時間之後,在許多實施例中,此運算裝置可能會接收到一個喚醒事件。在一些實施例中,喚醒事件可包括網路事件(例如電子郵件)、組態指引、或其他網路傳輸。在其他數個實施例中,喚醒事件可為在輸入裝置感應到輸入、觸摸到此運算裝置之鍵盤、接收到某種類型的網路封包等等。可係由系統管理中斷(system management interrupt,SMI)、控制線改變、暫存器旗標、或其他構造來起始對喚醒事件的處理。在其他數個事例中,可係由此運算裝置的一個晶片組來起始對喚醒事件的處理。此外,一些喚醒事件可觸發對此運算裝置的電力開啟,以由OS作處理。其他喚醒事件,如將在下文中關聯於本揭露內容之數個實施例而討論的,係可在運算裝置仍處於睡眠模式中時由韌體來處理。
因此,在許多實施例中,獨立於運算裝置之OS而行事的韌體可判定出喚醒事件是否已被處理,而無須使整個運算裝置返回第一高功率消耗狀態。若此喚醒事件無法由韌體處置,並且是OS要處置此喚醒事件,那麼於121,磁碟可被轉動、監測器可被開啟、且此運算裝置可被恢復至完全喚醒模式。此處理程序流可接著返回到115,於此,OS在喚醒模式中運行或操作運算裝置。然而,若韌體判定出此喚醒事件係可在不使整個運算裝置返回第一較高功率消耗狀態的情況下獨立於OS被處置,那麼韌體可處理這個喚醒事件。運算裝置可因而在119繼續沉睡。在一些實施例中,韌體可視喚醒事件而定地喚醒一或多個硬體部件或裝置,且不將整個運算裝置喚醒,來服務或完成與此喚醒事件相關聯的一項任務。此外,韌體可在完成對此事件的處置之後使硬體部件返回睡眠模式,這包括第二較低功率消耗狀態。
請注意,在這些實施例中,於123,一個韌體部件,像是,例如,一個過濾器驅動器可開始監測並收集與OS將一或多個硬體部件變換至睡眠模式之方式有關的資料。在許多實施例中,此過濾器驅動器可將所收集的資料存到韌體在啟動前時間之期間內於113所保留的郵件信箱或記憶體部份。韌體可獨立地在之後使用所收集的資料來將服務喚醒事件所需的一或多個硬體部件至或自睡眠模式作變換。在一個實施例中,一個喚醒事件可導致對於是在運送給末端使用者之後被供應給運算裝置的一個韌體模組之執行。
接下來,第2A和2B圖是一個流程圖,其依據本揭露內容的許多實施例,例示出用於獨立於OS而處置喚醒事件的一個示範方法。在一個實施例中,示於第2A圖中的方塊可係由韌體來執行。在一個實施例中,示於第2B圖中的方塊可係由OS來執行。對於熟於此技者而言,會可明顯看出,「由韌體來執行」一語是對於更為複雜的運算裝置互動之簡略表達。例如,在一個單處理器系統中,可係由一個主處理器,或是中央處理單元(CPU)來進行指令執行。請注意,「由OS來執行」一語可係指,非作業系統指令從耦接至處理器的非依電性記憶體儲藏(韌體)被提取,並接著被處理器執行。處理器具有在載入OS之前對韌體的取用權。因此,啟動指令可典型上係儲存在一個韌體啟動方塊中。此外,在一些實施例中,完全啟動方塊可係駐在遠端,並且本地啟動方塊可含有指至完全啟動方塊之遠端位置的一個指標。
在第2圖的實施例中,可在方塊201對一個運算裝置或系統作電力開啟。此運算平臺可於方塊203由啟動區塊韌體作初步初始化。此韌體之駐在啟動區塊以外的其他部份可在初步初始化中佔有一席之地。請注意,啟動區塊典型上係負責早期方面的初始化,像是早期記憶體初始化和中央處理器初始化等。初步初始化可亦包括識別並重置記憶體、識別耦接至運算裝置之裝置和部件等等。
在所示的這些實施例中,作為初步初始化的一部分,或者是在那之後不久,韌體可起始數個政策問題,以判定運算裝置的狀態。在方塊204,此韌體可判定是否已致能睡眠致能活動。若是如此,則處理在方塊206繼續。若非如此,則處理在方塊230繼續。在這些實施例中,韌體可在方塊206詢問此運算裝置是否由於一個喚醒事件(例如,在至少一個實施例中的一個網路喚醒事件)而正醒來或從睡眠模式中變換出來。在運算裝置並不由於一個網路喚醒事件醒來而是已經簡單地完成電力開啟的許多實施例中,此啟動前處理程序可繼續到方塊208。在方塊208,此韌體可著手將在之後可能會需要的影像快取。例如,其可將睡眠模式(例如,S3)會需要的資料作快取。接下來,在方塊210,韌體可在這個啟動前時間之期間內保留運算裝置的一個有形電腦可讀儲存媒體中之記憶體的一部分。在一個實施例中,這部份的記憶體可充當韌體的一個郵件信箱。請注意,典型上,運算裝置資源係受到OS的控制,除非此韌體主動將此等資源保留作為己用。此外,在下面所要論述的許多實施例中,與OS可將一或多個硬體部件變換至睡眠之方式有關的輸入/輸出(input/output,I/O)資料可(例如,藉由監測OS之部件)被存到這個郵件信箱中,以在之後由韌體取用。在這些實施例中,亦可保留足以使韌體再初始化先前被快取之影像的記憶體。
在所示的這些實施例中,在接下來的一個方塊212,韌體可繼續一個正常啟動處理程序,且OS可被授予控制權並被發動。於第2B圖上的方塊214,OS可安裝一個部件,像是,例如,一個過濾器驅動器。如將可在下文中看到的,此過濾器驅動起可作為監測部件,用以收集與硬體部件至睡眠模式之變換有關的I/O資料。正常OS操作可在方塊216繼續。在一個判斷方塊218中,若已有某段時間沒有接收到任何輸入,或是有其他運算裝置政策指定,則OS可將此運算裝置變換至睡眠模式。若是,例如,此政策並未指定要將運算裝置變換至睡眠模式,則OS操作可在方塊216繼續。或者是,回到判斷方塊218,若運算裝置係要進入睡眠模式,則OS可從判斷方塊218繼續往下到方塊220。在這個實施例中,此OS可接著傳送一個訊息,通知所有或實質上所有的硬體部件或硬體裝置驅動器,這些硬體部件要被變換至睡眠模式。過濾器驅動器可在方塊222接收或檢測這個通知,並開始監測與這一或多個硬體裝置或部件被變換至睡眠模式之方式有關的輸入/輸出(I/O)資料,例如,在硬體裝置介面和硬體裝置驅動器之間的I/O信號。在方塊224,此過濾器驅動器可接著收集這些I/O資料,並將其存到由韌體環境在啟動前時間所保留的郵件信箱(描述於方塊210中)。最後,在方塊226,OS已完成將運算裝置變換至睡眠模式。
請注意,先前曾經提及的在方塊224被存到郵件信箱的I/O資料可在之後被使用,以使韌體能夠在處置喚醒事件期間和/或之後使用這些I/O資料。因此,例如,回到上面的判斷方塊206,若此運算裝置由於一個喚醒事件,例如,網路喚醒事件,而正醒來,則可跟隨是箭頭。在方塊228,當OS仍處在睡眠模式中時,韌體可判定此網路事件是否可獨立於OS且在不使整個運算裝置醒來或返回較高功率消耗狀態的情況下由此韌體處置。若答案為否,則運算裝置在方塊230透過正常S3碼路徑回復,並且最後在212繼續正常啟動處理程序。然而,若答案為是,則韌體可致使此網路事件獨立於OS被處理。在一些實施例中,於方塊232,此韌體可僅將一或多個(但不是全部)硬體部件喚醒或變換至較高消耗狀態並/或發動用來處置此網路事件的軟體。在方塊235,韌體可使用經快取的裝置I/O來將運算裝置置回D3狀態,並且若有必要,也將命令寫至適當埠口以致使發生至S3的變換。
因此,在許多實施例中,在一個運算裝置變換至睡眠模式之後,一個運算裝置的韌體環境會被再樣例化。在數個實施例中,係使韌體環境能夠執行功率管理或其他正常係由此運算裝置之OS執行的功能。在一些實施例中,不只是此運算裝置具有將某些硬體部件(例如,與此運算裝置在睡眠模式期間所接收到的網路傳輸相關聯的那些)轉換至睡眠的能力,韌體環境也能夠起始將多個額外硬體或此運算裝置的其他部件變換至喚醒模式的一項變換。在許多實施例中,係使韌體環境能夠擷取與多個硬體裝置中之任何一者所被變換至睡眠模式之方式有關的I/O資料。此等I/O資料可係擷取自韌體在啟動前時間所保留的一個郵件信箱。在許多實施例中,係使韌體環境能夠將硬體部件變換至睡眠模式,這是典型上僅由OS執行的一種功率管理功能。在許多實施例中,係使韌體環境能夠供應新的或經更新的韌體模組。
現在請參考第3圖,本發明的數個實施例可結合模組S3回復結構,例如,可在www-intel-com/technology/framework(請注意,點號已被置換成短線以避免無意的超連結)取得的用於可延伸韌體介面(EFI)之平臺革新框架(Platform Innovation Framework)--2003年九月16日之檢閱用草稿第0.9版的模組S3回復結構。典型上,例如,依據在2009年五月8日公開的UEFI平臺初始化(Platform Initialization,PI)說明書第2.3版,係可在從S5模式(「關」)啟動之期間內調用整套PI EFI前(PI pre-EFI,PEI)模組和PI驅動器執行環境(Driver Execution Environment,DXE)。因此,係創造出可由OS前(pre-OS)應用程式,例如,UEFI殼、第三方UEFI驅動器/選項ROM、和IEFI OS載入器,所使用的一個UEFI環境。然而,在S3期間內,由於S3回復時間限制,所以此運算裝置可能會運行一個標準PI回復流程,其可係典型上僅包括無DXE的一個PEI子集。因此,在S3回復模式之期間內,豐富的UEFI驅動器特徵是不可獲得的。然而,本發明的許多實施例可使運算裝置能夠在S3期間內實施DXE 330。因此,如於第3圖中所示,S3可包括DXE,用以在OS處於睡眠模式中時,在一些用於運行UEFI啟動服務應用程式的OS前隱蔽(或OS驅動器按捺)頁面中再創造一個IEFI環境。
現在請參考在這些實施例中所示出的第3圖,方塊圖300例示出依據一個UEFI架構的一個啟動和喚醒循環。在這個實施例中,在電力開啟或重置之後的一個正常啟動301之期間內,可開始一個記憶體前起始(安全(security,SEC))階段302(「SEC 302」)。SEC 302可支援對於要在一個運算裝置上執行的初始作業碼之安全檢查。接下來,於此實施例中,SEC 302可變換至一個CPU/記憶體起始(EFI前(PEI))階段304(「PEI 304」)。PEI 304可提供,例如,一種用於針對處理器、晶片組和主機板而載入和調用特定起始(initial,INIT)組態常式之方法。PEI 304可發現記憶體並準備可被遞交給一個晚起始(驅動器執行環境(DXE))階段306(「DXE 306」)的一個資源地圖。DXE 306可包括對負責初始化處理器、晶片組和平臺部件之DXE驅動器的調用,以及針對控制台和啟動裝置而對軟體抽象化之提供。如於310中所示,DXE 306可在所保留的一個記憶體(例如,一個非依電性儲藏(non-volatile store,NVS))中將I/O控制器設定存為一個啟動腳本表(boot script table)。一個啟動腳本表可包括要在S3重啟時重演的一組動作,以將運算裝置帶回其於被變換至睡眠模式之前所處的狀態。一個典型的啟動腳本會恢復I/O裝置和CPU狀態資訊。
如於319中所見,係可在一個S3回復啟動中實施SEC 320。接下來,於325,S3 PEI模組可從310中之NVS恢復PEI階段組態,例如,對晶片組(chipset,CS)、硬體(hardware,HW)和視訊設定之基本恢復。因此,在數個實施例中,係可在S3之期間內實施經更新DXE 330,此時OS正沉睡著。係可藉由數個部件或階段,包括S3 DXE起始程式載入(initial program load,IPL)335、S3 DXE核心340、S3 DXE韌體卷(Firmware Volume,FV)345、S3啟動裝置選擇(Boot Device Selection,BDS)350、S3網路代理伺服器動作(Network Proxy Action)355、和S3 DXE終止器360,來促進DXE 330。如前文中所提,係可將對一個實質上完全形成的UEFI介面之樣例化實施為將DXE 330包括在S3中之結果。典型上,在啟動前階段之期間內只有小量的UEFI驅動器被加入。然而,在一個實施例中,OS驅動器可將額外的UEFI驅動器加入到UEFI環境中,在許多實施例中,UEFI驅動器可係從交替來源蒐集而來。在一些實施例中,這些加入的驅動器係可在一個UEFI系統分割上或是經由其他方法被供應,以增進在DXE 330之期間內可用的UEFI驅動器之數量。
第4圖例示出可在當中駐有本揭露內容之一實施例的一個示範運算裝置400。在許多實施例中,一個運算裝置400包含有經由一個匯流排420耦接的許多元件。如圖所示,這些元件可包括一個處理器401、記憶體410、一個非依電性儲存體430、一或多個硬體裝置460、一個非依電性儲存體430(例如快閃記憶體)和通訊介面415。可使晶片組403賦有先前所述的韌體。記憶體410可包括OS 422、先前所述的郵件信箱435、和一或多個裝置驅動器480。處理器401可為任何類型的能夠執行軟體的處理器,像是微處理器、數位信號處理器、微控制器、或其他諸如此類者。雖然第4圖僅示出一個這樣的處理器401,但在運算裝置400中係可有一或多個處理器,並且一或多個這些處理器可係包括有複數個緒、複數個核心或其他諸如此類者。在許多實施例中,BIOS 433的一個韌體模組可藉由監測在一或多個硬體裝置460的一個硬體介面與一或多個裝置驅動器480之間聯通的在匯流排420上之I/O信號,而判定或收集與一或多個硬體裝置460在第一較高功率消耗狀態與第二較低功率消耗狀態間之變換有關的資訊。當處於睡眠模式中時,韌體可如先前所述地處置一或多個網路或喚醒事件。
通訊介面415可包括一個網路連結介面,例如網路介面卡(network interface card,NIC)或其他諸如此類者。可將NIC經由,例如,在區域網路(local area network,LAN)介面上的一串列,而通訊式地耦接至包括有一個遠端伺服器或一或多個伺服器482的一個網際網路/網路475。此通訊介面可支援傳輸控制協定/網際網路協定(Transfer Control Protocol/Internet Protocol,TCP/IP)、超文件傳輸協定(hypertext transfer protocol,HTTP)或簡單物件存取協定(Simple Object Access Protocol,SOAP)或是其他通訊協定。NIC可利用其他構件來在網路上通訊,例如,整合驅動電子學(Integrated Drive Electronics,IDE)改向(未示於圖中)或其他構件。請注意,在數個實施例中,對一個喚醒事件的處置可包括但不受限於回應於特定封包類型而保持動態主機組配協定(dynamic host configuration protocol,DHCP)租賃為有效、低功率背景活動(例如,像是掃描記憶體尋找病毒,和遠端檔案備份/重建),及其他諸如此類者。於所示之實施例中,晶片組403可亦包括有用於基本輸入輸出系統(BIOS)的軟體介面409。
第5圖是依據許多實施例的一個在硬體部件上的軟體堆疊之圖。在一個實施例中,於一個使用者OS可見環境中,係可在獨立軟體供應商(independent software vendor,ISV)應用程式504、506、508和與一個串列先進運輸架構(serial advanced transport architecture,SATA)控制器512通訊的一個儲存體軟體堆疊510之間插入一個低功率更新/下載(low power update/download,LPUD)應用程式500和相關聯的數個LPUD服務應用程式規劃界面(application programming interface,API)502。此SATA控制器與數個儲存體裝置(未示於第5圖中)通訊。LPUD應用程式在無OS狀態中執行許多活動;這些活動可包括:掃描磁碟尋找病毒簽署(例如,防毒客戶)、將磁碟內容遠端備份至運算雲備份伺服器(例如,備份客戶)、或作為一個檔案伺服器(例如,在膝上型電腦的OS被擱置且此膝上型電腦處於LPUD狀態中時,對車內娛樂資訊PC(In-Vehicle Infotainment PC)提供MP3或MP4服務)。這些LPUD服務API以對檔案系統無破壞性之方式提供對磁碟之取用能力,例如讀取操作,以使得當主OS醒來時,它不需要找出處於毀壞狀態中的磁碟。LPUD服務API亦提供一個插座程式館(Socket Library),以執行傳送和接收操作,來支援備份(例如,從客戶端之資料傳送)和防毒(anti-virus,AV)掃描(例如,對簽署文件之接收)。一旦主OS醒來,使用者US側便可從LUPD接收狀態資訊,或者是,使用者OS可在使用者OS不忙碌的時候起始一項至LPUD狀態之傳輸。使用者OS也會提供控制台,用於LPUD應用程式之帶內作動,包括但不受限於:選入、和決定要針對LPUD隱蔽多少記憶體(因為這個實體記憶體對於使用者OS而言會是遺失的,並且可能會影響效能)。
在一個實施例中,在一個韌體環境中,EFI BIOS 514(於第4圖中被儲存在NVS 430中作為BIOS 433)包括至少數個部件。新技術檔案系統(New Technology File System,NTFS)驅動器516與硬驅動器518通訊,以讀取和寫入資料。網路介面控制器(Network interface controller,NIC)驅動器520與NIC 522通訊,以經由耦接至此運算裝置的一個網路讀取和寫入資料。WiFi墊片(shim)524供用於UEFI UNDI介面(如界定於UEFI 2.3說明書之附錄E.2中的),在運算平臺中提供至無線Nic(Wireless Nic,W-NIC)之原始資料圖讀取和寫入的命令與資料區塊(Command and Data Block,CDB);這可包括一個第三方W-NIC或一個以管理引擎(management engine,ME)為基礎的W-NIC,當中,UNDI CDB係透過可從英特爾公司(Intel Corporation)購得的一個晶片組的主機延伸命令介面(Host Extended Command Interface,HECI)來作伺服器代理。係可包括有管理能力引擎(Manageability Engine,ME)526,以提供帶外晶片組面對網路管理能力。EFI LPUD代理器528協調在運算裝置處於睡眠狀態中時的對新韌體模組之供應和/或對現存韌體模組之更新。可包括有超文件傳輸協定(HTTP)/HTTP安全(HTTP secure,HTTPS)插件530以善用LibSocket,且可包括有Lib C封套資料532以抽象化似POSIX規劃API。韌體模組534包含可從ISV獲得並被安裝至如於本文中所揭露之運算裝置的一個新的或經更新的韌體模組。在一個實施例中,EFI BIOS 514亦包括S3 DXE致能(S3 DXE Enable)旗標536和公用驗證金鑰538(在一個實施例中係叫做Kpub_s3extension_verification)。
在一個實施例中,此運算裝置具有在工廠的製造處理程序之期間內被安裝在系統電路板上的EFI BIOS韌體和至少一個S3 DX IPL韌體模組。在EFI BIOS中的S3 DXE Enable旗標536可在製造時被設定成假。此運算裝置可接著被運送給使用者。當由使用者操作時,此運算裝置可經由S4狀態(冬眠)或S5狀態(全功率週期)而被啟動至OS內。使用者可經由OS和傳統網路瀏覽器拜訪所選網站來下載S3 DXE韌體卷。
第6圖是依據本發明之一實施例的一個S3 DXE韌體卷600之圖。韌體卷600包含一個二元檔案,其具有一個韌體卷標頭608和掩蓋此韌體卷之內容的一個密碼簽章606。韌體卷600進一步包含有一或多個韌體模組602。在一個實施例中,這些韌體模組係具有「.efi」檔案延伸。在一個實施例中,韌體模組包含驅動器。韌體模組602包含用於一或多個S3 DXE IPL韌體模組的韌體二元碼。在本發明的數個實施例中,這些韌體模組可被從韌體卷中讀取、被安裝在非依電性儲存體430中、和在低功率消耗狀態中被執行,如於本文中更進一步說明的。韌體卷進一步包含工具性質規定檔604。工具性質規定檔604宣示S3 DXE韌體卷在執行時將會消耗或使用哪些運算裝置硬體資源(I/O裝置、記憶體等等)。此S3 DXE韌體卷先前已由第三方(例如一個獨立軟體供應商(ISV)、原始設備製造商(original equipment manufacturer,OEM)、或獨立BIOS供應商(independent BIOS vendor,IBV))利用具有相關聯私用金鑰(Kpriv_s3extension_verification)的一個簽署伺服器簽署。
一個有OS應用程式可接著提示使用者,以詢問此使用者是否要安裝這(些)S3 DXE延伸韌體模組。若使用者確實想要安裝此韌體模組,則在一個實施例中,此有OS應用程式會以指向儲存在非依電性儲存體中之S3 DXE韌體卷的指標來調用UpdateCapsule UEFI運行時間服務。在重啟(暖開機或S3狀態,視EFI BIOS如何實施UpdateCapsule運行時間服務而定,這對使用者而言應是隱蔽的)時,EFI BIOS韌體檢測在非依電性儲存體中之S3 DXE韌體卷的存在。
第7圖是依據許多實施例的一個供應處理程序之流程圖。在一個實施例中,此處理係可在運算裝置處於如於第3圖中所示的S3睡眠狀態中時執行。於方塊700,EFI BIOS韌體利用公用驗證金鑰(Kpub_s3extension_verification)判斷在S3 DXE韌體卷上的密碼簽章606是否驗證。若是如此,則於方塊702,EFI BIOS韌體會作檢查,以判斷由韌體卷工具性質規定檔所請求的硬體資源是否可得。若是如此,則於方塊704,EFI BIOS判斷在此韌體卷中之韌體模組是否與已經安裝的現有韌體相容(例如,其相依性是否已滿足、是否有出現正確的指令集架構等等)。若是如此,則於方塊706,EFI BIOS在非依電性記憶體中保留一個記憶體空間,此記憶體空間夠大,足以支援來自於此韌體卷的新的或經更新的韌體模組要用的資源。於方塊708,EFI BIOS將S3 DXE Enable旗標設定為真。若於方塊700、702和704有任何檢查失敗,則處理會在方塊710繼續。於方塊710,EFI BIOS創造一個系統表項目。此系統表具有一個EFI組態表(EFI Configuration Table),如於UEFI 2.3說明書第4.6節所述的。其容許安裝由一個供應商GUID(Vendor GUID)所命名的一連串額外的表。於此事例中的EFI BIOS會創造這樣的一個表,其具有以「真(TRUE)」代表成功並以「假(FALSE)」代表失敗的布林(BOOLEAN)值。此系統表項目包含一個狀態結構,用以回應於UpdateCapsule運行時間服務呼叫而將有關此韌體模組織執行的一個狀態值回傳給OS。這是在離開S3和喚醒系統之後做的,以將狀態資訊從嵌入的S3處理環境傳遞回給主機OS。於方塊712,若S3 DXE Enable旗標為真,則可在方塊714回傳一個成功狀態,並且可執行此韌體模組。否則,可在方塊716回傳一個失敗狀態。
在一個實施例中,為所使用之硬體資源供應記憶體的一種替代方示係使OS「按捺」或保留S3 DXE韌體模組將要使用的OS頁面,並將這(可能被分散的)頁面列表傳遞至UpdateCapsule運行時間服務呼叫內。因此,韌體並沒有從OS記憶體地圖偷取記憶體,而是會從OS取用分散頁面列表且在之後使這些頁面成為「韌體保留」並使用他們來發動S3 DXE韌體模組。
在一個實施例中,OS安裝程式可將S3 DXE韌體卷置於一個UEFI服務分割上的一個目錄中,並經由UpdateCapsule呼叫傳遞此韌體卷之位置。在另一個實施例中,EFI BIOS可針對此韌體卷而探測UEFI系統分割。在這兩個事例中之任一者中,EFI BIOS係利用密碼學來在將內容複製到於連續S3 DXE作動中所使用的記憶體之前驗證韌體卷之內容。
在一個實施例中,於一連續S3回復之後,若S3 DXE Enable旗標為真,則EFI BIOS可在回到睡眠和/或將控制權傳遞給OS回復向量之前發動S3 DXE IPL和來自於S3 DXE韌體卷的相關韌體模組。
因此,業已說明一個單觸提供模型,於此模型中,一個OS主持安裝程式可作動在較低功率消耗狀態中的韌體模組下載能力。此能力可係在運算裝置已經被運送給使用者之後被作動。這容許一個實體提供S3 DXE IPL碼和驗證金鑰基礎建設給第三方作為在EFI BIOS中的小型「掛勾」,不過是在運送之後,可將一個韌體卷加到此運算裝置,以作於OS被擱置的S3 DXE環境中執行之用。
於此所描述的技術並不受限於任何特定硬體或軟體組態;這些技術可在任何運算、消費者電子或處理環境中找到適用性。這些技術可係實施在硬體、軟體、或這兩者之組合中。這些技術可被實施在執行於可規劃機器(例如行動或靜態電腦、個人數位助理、機上盒、手機和呼叫器、消費者電子裝置(包括DVD播放器、個人視訊記錄器、個人視訊播放器、衛星接收器、立體聲接收器、有線TV接收器)、和其他可能包括有一個處理器、此處理器可取用的一個儲存媒體(包括依電性和非依電性記憶體和/或儲存元件)、至少一個輸入裝置、和至少一或多個輸出裝置的電子裝置)上的程式中。熟於此技者可識出,本揭露內容係可配合各種系統組態實行,包括多處理器系統、迷你電腦、主機電腦、獨立消費者電子裝置、及其他諸如此類者。本發明可亦係實行於當中任務或其部份可係由透過通訊網路鍊結的遠端處理裝置執行的分散式運算環境中。
係可使用程式指令來致使以此指令被規劃的一般用途或特殊用途處理系統執行於本文中所說明的一些操作。或者是,這些操作也可係由含有用於執行這些操作之固線式邏輯的特定硬體部件來執行,或是由經規劃電腦部件與定製硬體部件的任何組合執行。係可將於本文中所說明的方法提供為電腦程式產品,其可包括具有儲存在內之指令的一個電腦可取用媒體,這些指令可被用來規劃處理系統或其他電子裝置,以執行這些方法。於本文中所用的「電腦可讀媒體」一詞應包括能夠儲存或編碼指令序列以供運算裝置執行所用及致使此運算裝置執行於本文中所述之任何一種方法的任何媒體。因此,「電腦可讀媒體」一詞應包括但不受限於固態記憶體和光碟與磁碟。此外,於此技藝中,將為一種形式或另一種形式(例如,程式、程序、處理程序、應用程式、模組、邏輯等等)的軟體說成是採取一種動作或致使一項結果是很普遍的。這樣的表達方式僅係敘述此軟體由一個處理系統所作之執行致使此處理器執行一種動作或產生一項結果的簡短方式。
111...啟動前時間韌體起始
112...保留部分記憶體
113...作業系統(OS)啟動
115...作業系統(OS)運行
117...睡眠模式(例如S3)
119...若要由任體處置喚醒事件,則不進行喚醒。繼續睡眠
121...接收到的喚醒事件沒有由韌體處置。磁碟轉動、監測器醒來等等
123...監測使部件進入睡眠的行為
201~235、700~716...方塊
300...方塊圖
301...正常啟動
302、320...記憶體前起始階段
304...中央處理單元(CPU)/記憶體起始階段
306...晚起始階段
310...非依電性儲藏(NVS)中之啟動腳本表
319...S3回復
325...S3覺知啟動路徑恢復晶片組(CS)/硬體(HW)/視訊等之組態
330...驅動器執行環境(DXE)
335...S3驅動器執行環境起始程式載入(S3 DXE IPL)
340...S3驅動器執行環境(DXE)核心
345...S3驅動器執行環境韌體卷(S3 DXE FV)
350...S3啟動裝置選擇(S3 BDS)
355...S3網路代理伺服器動作
360...S3驅動器執行環境(DXE)終止器
400...運算裝置
401...處理器
403...晶片組
409...軟體介面
410...記憶體
415...通訊介面
420...匯流排
422...作業系統(OS)
430...非依電性儲存體(NVS)
433...基本輸入/輸出系統(BIOS)
435...郵件信箱
460...硬體裝置
475...網際網路/網路
480...裝置驅動器
482...伺服器
500...低功率更新/下載(LPUD)應用程式
502...LPUD服務應用程式規劃界面(API)
504~508...獨立軟體供應商(ISV)應用程式
510...儲存體軟體堆疊
512...串列先進運輸架構(SATA)控制器
514...可延伸韌體介面基本輸入/輸出系統(EFI BIOS)
516...新技術檔案系統(NTFS)驅動器
518...硬驅動器
520...網路介面控制器(NIC)驅動器
522...網路介面控制器(NIC)
524...WiFi墊片
526...管理能力引擎(ME)
528...可延伸韌體介面低功率更新/下載(EFI LPUD)代理器
530...超文件傳輸協定/超文件傳輸協定安全(HTTP/HTTPS)插件
532...Lib C封套資料
534...韌體模組
536...S3 DXE致能(S3 DXE Enable)旗標
538...公用驗證金鑰
600...韌體卷
602...韌體模組
604...工具性質規定檔
606...簽章
608...韌體卷標頭
第1圖是一個時間線,其依據許多實施例,例示出一個運算裝置從喚醒模式到睡眠模式之變換;
第2圖是一個流程圖,其依據許多實施例,例示出用於由一個韌體獨立於作業系統(OS)而處置喚醒事件的一個示範方法;
第3圖是一個方塊圖,其依據許多實施例,例示出在運算系統中的一個啟動和喚醒循環;
第4圖是一個方塊圖,其依據許多實施例,例示出一個示範運算裝置;
第5圖是依據許多實施例的在硬體部件上之軟體堆疊的圖示;
第6圖是依據許多實施例的韌體卷的圖示;
第7圖是依據許多實施例的一個供應處理程序之流程圖。
700~716...方塊
Claims (23)
- 一種用於供應韌體模組給運算裝置的方法,該方法包含下列步驟:在將該運算裝置從一第一較高功率消耗狀態變換至一第二較低功率消耗狀態時,再樣例化(re-instantiating)一個韌體環境,該韌體環境包括在啟動前時間(pre-boot time)可用的一或多個韌體功能;由該韌體環境判定在一個韌體卷(firmware volume)上的一個密碼簽章是否已驗證;由該韌體環境判定該運算裝置的由該韌體卷的一個工具性質規定檔(manifest)所請求的數個硬體資源是否可用;由該韌體環境判定該韌體卷的至少一個韌體模組是否與該韌體環境之已安裝韌體可相容;保留在一個記憶體中的空間,以容納由該至少一個韌體模組所使用的數個資源;以及在該運算裝置處於該第二較低功率消耗狀態時執行該至少一個韌體模組。
- 如申請專利範圍第1項之方法,其進一步包含下列步驟:在該運算裝置處於該第一較高功率消耗狀態時,將該韌體卷下載至該運算裝置。
- 如申請專利範圍第1項之方法,其中該韌體卷包含一個標頭、掩蓋該韌體卷之內容的一個密碼簽章、一個工具性質規定檔、和該至少一個韌體模組,該工具性質規定檔宣示該運算裝置之要由該至少一個韌體模組使用的數個硬體資源。
- 如申請專利範圍第3項之方法,其中該至少一個韌體模組包含用於一或多個可延伸韌體介面S3驅動器執行環境起始程式載入(EFI S3 DXE IPL)韌體驅動器的二元碼。
- 如申請專利範圍第4項之方法,其中該韌體環境包含在該運算裝置的製造時間被設定為假的一個S3驅動器執行環境起始程式載入(S3 DXE IPL)致能旗標,並且該方法進一步包含下列步驟:當該密碼簽章已驗證、該等硬體資源可用、且該至少一個韌體模組可相容時,將該S3 DXE IPL致能旗標設定為真。
- 如申請專利範圍第5項之方法,其進一步包含下列步驟:在一連續S3回復後,若該S3 DXE IPL致能旗標為真,則在將控制權傳遞給一個作業系統回復向量之前,發動該S3 DXE IPL及來自於該韌體卷的相關聯的數個韌體模組。
- 如申請專利範圍第1項之方法,其中該韌體卷係由不為該運算裝置之製造商的一方提供及簽署,並且該韌體卷係在運送給一個使用者之後被安裝至該運算裝置。
- 如申請專利範圍第1項之方法,其進一步包含下列步驟:創造一個系統表項目,該系統表項目具有一個狀態結構,用以將與該至少一個韌體模組之執行有關的一個狀態值回傳給該運算裝置的該作業系統。
- 一種運算裝置,其包含:一個處理器;組配來由該處理器操作的一個韌體環境;其中該韌體環境包括多個韌體功能,該等多個韌體功能可被用來將該設備啟動至消耗一第一功率位準的一個操作狀態;其中該韌體環境更係組配成可被再樣例化以包括可被用來在該設備從該操作狀態變換至一個睡眠狀態時啟動該設備的該等韌體功能之至少一個子集,以使該韌體環境能夠進行下列動作,其中該睡眠狀態係消耗低於該第一功率位準的一第二功率位準:由該韌體環境判定在一個韌體卷上的一個密碼簽章是否已驗證;由該韌體環境判定該運算裝置的由該韌體卷的一個工具性質規定檔所請求的數個硬體資源是否可用;由該韌體環境判定該韌體卷的至少一個韌體模組是否與該韌體環境之已安裝韌體可相容;保留在一個記憶體中的空間,以容納由該至少一個韌體模組所使用的數個資源;以及在該運算裝置處於該第二較低功率消耗狀態時執行該至少一個韌體模組。
- 如申請專利範圍第9項之裝置,其中該處理器在該運算裝置處於該第一較高功率消耗狀態時將該韌體卷下載至該運算裝置。
- 如申請專利範圍第9項之運算裝置,其中該韌體卷包含一個標頭、掩蓋該韌體卷之內容的一個密碼簽章、一個工具性質規定檔、和該至少一個韌體模組,該工具性質規定檔宣示該運算裝置之要由該至少一個韌體模組使用的數個硬體資源。
- 如申請專利範圍第11項之運算裝置,其中該至少一個韌體模組包含用於一或多個可延伸韌體介面S3驅動器執行環境起始程式載入(EFI S3 DXE IPL)韌體驅動器的二元碼。
- 如申請專利範圍第12項之運算裝置,其中該韌體環境包含在該運算裝置的製造時間被設定為假的一個S3驅動器執行環境起始程式載入(S3 DXE IPL)致能旗標,並且其中該韌體環境在該密碼簽章已驗證、該等硬體資源可用、且該至少一個韌體模組可相容時將該S3 DXE IPL致能旗標設定為真。
- 如申請專利範圍第13項之運算裝置,其中在一連續S3回復後,若該S3 DXE IPL致能旗標為真,則在將控制權傳遞給一個作業系統回復向量之前,該韌體環境發動該S3 DXE IPL及來自於該韌體卷的相關聯的數個韌體模組。
- 如申請專利範圍第9項之運算裝置,其中該韌體卷係由不為該運算裝置之製造商的一方提供及簽署,並且該韌體卷係在運送給一個使用者之後被安裝至該運算裝置。
- 如申請專利範圍第9項之運算裝置,其中該韌體環境創造具有一個狀態結構的一個系統表項目,用以將與該至少一個韌體模組之執行有關的一個狀態值回傳給該運算裝置的該作業系統。
- 一種包含有一或多個指令的電腦可讀媒體,該一或多個指令在執行於一個運算裝置的一個處理器上時會藉由下列步驟而進行一或多個操作來將一個韌體模組供應至該運算裝置:在將該運算裝置從一第一較高功率消耗狀態變換至一第二較低功率消耗狀態時,再樣例化一個韌體環境,該韌體環境包括在啟動前時間可用的一或多個韌體功能;由該韌體環境判定在一個韌體卷上的一個密碼簽章是否已驗證;由該韌體環境判定該運算裝置的由該韌體卷的一個工具性質規定檔所請求的數個硬體資源是否可用;由該韌體環境判定該韌體卷的至少一個韌體模組是否與該韌體環境之已安裝韌體可相容;保留在一個記憶體中的空間,以容納由該至少一個韌體模組所使用的數個資源;以及在該運算裝置處於該第二較低功率消耗狀態時執行該至少一個韌體模組。
- 如申請專利範圍第17項之電腦可讀媒體,其進一步包含用以進行下列步驟的指令:在該運算裝置處於該第一較高功率消耗狀態時,將該韌體卷下載至該運算裝置。
- 如申請專利範圍第17項之電腦可讀媒體,其中該韌體卷包含一個標頭、掩蓋該韌體卷之內容的一個密碼簽章、一個工具性質規定檔、和該至少一個韌體模組,該工具性質規定檔宣示該運算裝置之要由該至少一個韌體模組使用的數個硬體資源。
- 如申請專利範圍第19項之電腦可讀媒體,其中該至少一個韌體模組包含用於一或多個可延伸韌體介面S3驅動器執行環境起始程式載入(EFI S3 DXE IPL)韌體驅動器的二元碼。
- 如申請專利範圍第20項之電腦可讀媒體,其中該韌體環境包含在該運算裝置的製造時間被設定為假的一個S3驅動器執行環境起始程式載入(S3 DXE IPL)致能旗標,並且該電腦可讀媒體進一步包含用以進行下列步驟的指令:當該密碼簽章已驗證、該等硬體資源可用、且該至少一個韌體模組可相容時,將該S3 DXE IPL致能旗標設定為真。
- 如申請專利範圍第21項之電腦可讀媒體,其進一步包含用以進行下列步驟的指令:在一連續S3回復之後,若該S3 DXE IPL致能旗標為真,則在將控制權傳遞給一個作業系統回復向量之前,發動該S3 DXE IPL及來自於該韌體卷的相關聯的數個韌體模組。
- 如申請專利範圍第17項之電腦可讀媒體,其進一步包含用以進行下列步驟的指令:創造一個系統表項目,該系統表項目具有一個狀態結構,用以將與該至少一個韌體模組之執行有關的一個狀態值回傳給該運算裝置的該作業系統。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/947,485 US8607040B2 (en) | 2010-11-16 | 2010-11-16 | Method of provisioning firmware in an operating system (OS) absent services environment |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201234209A TW201234209A (en) | 2012-08-16 |
TWI524205B true TWI524205B (zh) | 2016-03-01 |
Family
ID=46048900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100141267A TWI524205B (zh) | 2010-11-16 | 2011-11-11 | 用以在無作業系統服務環境中供應韌體之方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8607040B2 (zh) |
EP (1) | EP2641168B1 (zh) |
JP (1) | JP5606633B2 (zh) |
KR (1) | KR101512252B1 (zh) |
CN (1) | CN103221919B (zh) |
AU (1) | AU2011329330B2 (zh) |
TW (1) | TWI524205B (zh) |
WO (1) | WO2012067882A2 (zh) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9721101B2 (en) | 2013-06-24 | 2017-08-01 | Red Hat, Inc. | System wide root of trust chaining via signed applications |
US8607040B2 (en) | 2010-11-16 | 2013-12-10 | Intel Corporation | Method of provisioning firmware in an operating system (OS) absent services environment |
CN106125885B (zh) | 2010-12-21 | 2019-12-31 | 英特尔公司 | 用于功率管理的系统和方法 |
EP2690828B1 (en) * | 2011-03-23 | 2017-08-30 | Panasonic Corporation | Station, target apparatus, initiator apparatus, communication system, and communication method |
US8843915B2 (en) * | 2011-07-28 | 2014-09-23 | Hewlett-Packard Development Company, L.P. | Signature-based update management |
US20130042231A1 (en) * | 2011-08-10 | 2013-02-14 | Ford Global Technologies, Llc | Methods and Apparatus for Software Updating |
TW201337760A (zh) * | 2012-03-09 | 2013-09-16 | Phoenix Tech Ltd | 呼叫基本輸入輸出系統之韌體執行時間服務之方法 |
US9031712B2 (en) * | 2012-06-30 | 2015-05-12 | Intel Corporation | Remote management and control of vehicular functions via multiple networks |
DE112012006333T5 (de) * | 2012-07-26 | 2015-01-22 | Hewlett-Packard Development Company, L.P. | Periodischer Zugriff auf eine Hardwareressource |
US9189225B2 (en) * | 2012-10-16 | 2015-11-17 | Imprivata, Inc. | Secure, non-disruptive firmware updating |
US20140208133A1 (en) * | 2013-01-23 | 2014-07-24 | Dell Products L.P. | Systems and methods for out-of-band management of an information handling system |
US9792112B2 (en) | 2013-08-28 | 2017-10-17 | Via Technologies, Inc. | Propagation of microcode patches to multiple cores in multicore microprocessor |
US9465432B2 (en) | 2013-08-28 | 2016-10-11 | Via Technologies, Inc. | Multi-core synchronization mechanism |
US9891927B2 (en) | 2013-08-28 | 2018-02-13 | Via Technologies, Inc. | Inter-core communication via uncore RAM |
TWI643130B (zh) * | 2013-09-12 | 2018-12-01 | 系微股份有限公司 | 用於在uefi安全開機資料庫中自動註冊任選rom的系統以及方法 |
US9996142B2 (en) | 2013-10-31 | 2018-06-12 | Intel Corporation | Selective power management for pre-boot firmware updates |
DE102014008479A1 (de) * | 2014-06-07 | 2015-12-17 | Audi Ag | Kraftfahrzeug-Steuergerät mit Stromsparmodus für eine Parkphase |
EP3161657B1 (en) * | 2014-06-24 | 2020-07-22 | Intel Corporation | Firmware sensor layer |
US9785801B2 (en) * | 2014-06-27 | 2017-10-10 | Intel Corporation | Management of authenticated variables |
US20160092877A1 (en) * | 2014-09-25 | 2016-03-31 | Yen Hsiang Chew | Secure user authentication interface technologies |
CN106293898A (zh) * | 2015-05-20 | 2017-01-04 | 张远虎 | 多线程设计方法 |
US9965270B2 (en) * | 2015-07-01 | 2018-05-08 | Quanta Computer Inc. | Updating computer firmware |
US10228930B2 (en) * | 2016-01-28 | 2019-03-12 | Microsoft Technology Licensing, Llc | Offloading network connectivity and execution tasks to an assistant device |
WO2017131712A1 (en) * | 2016-01-28 | 2017-08-03 | Hewlett-Packard Development Company, L.P. | Thresholds on scripts executable by unified extensible firmware interface systems |
US10922116B2 (en) | 2016-02-12 | 2021-02-16 | Hewlett Packard Enterprise Development Lp | Creating operating system volumes |
CN111488048B (zh) * | 2016-02-14 | 2023-05-16 | 华为技术有限公司 | 一种电源管理方法以及系统 |
JP2017162283A (ja) * | 2016-03-10 | 2017-09-14 | 富士通株式会社 | スマート装置、スワップ方法及びスワッププログラム |
US10171452B2 (en) * | 2016-03-31 | 2019-01-01 | International Business Machines Corporation | Server authentication using multiple authentication chains |
US10146606B2 (en) * | 2016-04-06 | 2018-12-04 | Dell Products, Lp | Method for system debug and firmware update of a headless server |
US11243782B2 (en) * | 2016-12-14 | 2022-02-08 | Microsoft Technology Licensing, Llc | Kernel soft reset using non-volatile RAM |
US10262158B1 (en) * | 2017-07-27 | 2019-04-16 | American Megatrends, Inc. | Restricting the use of a firmware tool to a specific platform |
WO2019046933A1 (en) | 2017-09-06 | 2019-03-14 | Absolute Software Corporation | SECURE FIRMWARE INTERFACE |
EP3724757B1 (en) * | 2017-12-13 | 2023-06-28 | Absolute Software Corporation | Firmware publication of multiple binary images |
TWI647617B (zh) * | 2018-01-23 | 2019-01-11 | 緯創資通股份有限公司 | 電子裝置與其韌體更新方法 |
US11379214B2 (en) * | 2019-03-29 | 2022-07-05 | Intel Corporation | Runtime firmware activation for memory devices |
US11068035B2 (en) * | 2019-09-12 | 2021-07-20 | Dell Products L.P. | Dynamic secure ACPI power resource enumeration objects for embedded devices |
WO2021141606A1 (en) * | 2020-01-10 | 2021-07-15 | Hewlett-Packard Development Company, L.P. | Change of firmware settings |
US11126518B1 (en) * | 2020-03-16 | 2021-09-21 | Quanta Computer Inc. | Method and system for optimal boot path for a network device |
US11392365B2 (en) * | 2020-12-14 | 2022-07-19 | International Business Machines Corporation | Optimizing device update scheduling |
US11960389B2 (en) | 2021-10-29 | 2024-04-16 | International Business Machines Corporation | Compatibility testing of a component with an unknown software and/or firmware version in a multi-component system |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6691234B1 (en) * | 2000-06-16 | 2004-02-10 | Intel Corporation | Method and apparatus for executing instructions loaded into a reserved portion of system memory for transitioning a computer system from a first power state to a second power state |
US7017040B2 (en) | 2003-12-04 | 2006-03-21 | Intel Corporation | BIOS update file |
US7185190B2 (en) * | 2003-12-29 | 2007-02-27 | Intel Corporation | Pushing capabilities into firmware by an operating system |
US7818614B2 (en) * | 2004-10-25 | 2010-10-19 | Hewlett-Packard Development Company, L.P. | System and method for reintroducing a processor module to an operating system after lockstep recovery |
US7383450B2 (en) | 2004-12-22 | 2008-06-03 | Intel Corporation | Low power firmware |
US20060149713A1 (en) * | 2005-01-06 | 2006-07-06 | Sabre Inc. | System, method, and computer program product for improving accuracy of cache-based searches |
US7373537B2 (en) * | 2005-06-28 | 2008-05-13 | Intel Corporation | Response to wake event while a system is in reduced power consumption state |
US7506144B2 (en) | 2005-11-21 | 2009-03-17 | Intel Corporation | Dynamic pre-operating system billboard service |
CN1992611B (zh) * | 2005-12-30 | 2010-05-12 | 联想(北京)有限公司 | 移动计算装置及其接收数据包的方法 |
US20090132839A1 (en) | 2007-11-15 | 2009-05-21 | Rothman Michael A | Method and device to handle denial of service attacks on wake events |
US8230237B2 (en) | 2007-12-06 | 2012-07-24 | Intel Corporation | Pre-boot environment power management |
US8327174B2 (en) * | 2009-03-20 | 2012-12-04 | Hewlett-Packard Development Company, L.P. | Loading operating systems using memory segmentation and ACPI based context switch |
US8806231B2 (en) * | 2009-12-22 | 2014-08-12 | Intel Corporation | Operating system independent network event handling |
US8607040B2 (en) | 2010-11-16 | 2013-12-10 | Intel Corporation | Method of provisioning firmware in an operating system (OS) absent services environment |
-
2010
- 2010-11-16 US US12/947,485 patent/US8607040B2/en active Active
-
2011
- 2011-11-07 AU AU2011329330A patent/AU2011329330B2/en not_active Ceased
- 2011-11-07 CN CN201180055215.8A patent/CN103221919B/zh active Active
- 2011-11-07 JP JP2013535155A patent/JP5606633B2/ja not_active Expired - Fee Related
- 2011-11-07 EP EP11842451.4A patent/EP2641168B1/en active Active
- 2011-11-07 KR KR1020137012603A patent/KR101512252B1/ko not_active IP Right Cessation
- 2011-11-07 WO PCT/US2011/059615 patent/WO2012067882A2/en active Application Filing
- 2011-11-11 TW TW100141267A patent/TWI524205B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP2641168B1 (en) | 2019-08-21 |
US8607040B2 (en) | 2013-12-10 |
JP5606633B2 (ja) | 2014-10-15 |
AU2011329330B2 (en) | 2016-05-19 |
US20120124357A1 (en) | 2012-05-17 |
TW201234209A (en) | 2012-08-16 |
CN103221919B (zh) | 2017-04-12 |
KR20130107313A (ko) | 2013-10-01 |
EP2641168A4 (en) | 2015-01-21 |
EP2641168A2 (en) | 2013-09-25 |
CN103221919A (zh) | 2013-07-24 |
WO2012067882A2 (en) | 2012-05-24 |
JP2013543627A (ja) | 2013-12-05 |
WO2012067882A3 (en) | 2012-07-05 |
AU2011329330A1 (en) | 2013-07-04 |
KR101512252B1 (ko) | 2015-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI524205B (zh) | 用以在無作業系統服務環境中供應韌體之方法 | |
US9489029B2 (en) | Operating system independent network event handling | |
US11438229B2 (en) | Systems and methods for operating system deployment and lifecycle management of a smart network interface card | |
JP4459290B2 (ja) | オペレーティングシステムの停止状態からの高速起動 | |
US7162629B2 (en) | Method to suspend-and-resume across various operational environment contexts | |
US8543849B2 (en) | Fast computer startup | |
KR20130058058A (ko) | 서비스 프로세서 컴플렉스 내의 데이터 저장을 위한 요구 기반 usb 프록시 | |
JP2009516244A (ja) | 直接コンピューティング経験 | |
US7174451B2 (en) | System and method for saving and/or restoring system state information over a network | |
US11030047B2 (en) | Information handling system and method to restore system firmware to a selected restore point | |
WO2023098052A1 (zh) | 一种服务器运维方法、装置、设备及存储介质 | |
US8468388B2 (en) | Restoring programs after operating system failure | |
WO2022036670A1 (en) | Methods and apparatus to perform an enhanced s3 protocol to update firmware with a boot script update | |
JP2009230433A (ja) | ネットワークブート装置、プログラム及び方法 | |
US20230305834A1 (en) | Methods and apparatus to perform a pseudo-s3 protocol to update firmware and/or activate new firmware with a warm reset | |
US11921582B2 (en) | Out of band method to change boot firmware configuration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |