TWI247489B - Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan - Google Patents

Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan Download PDF

Info

Publication number
TWI247489B
TWI247489B TW093115365A TW93115365A TWI247489B TW I247489 B TWI247489 B TW I247489B TW 093115365 A TW093115365 A TW 093115365A TW 93115365 A TW93115365 A TW 93115365A TW I247489 B TWI247489 B TW I247489B
Authority
TW
Taiwan
Prior art keywords
firmware
variable
compressed
data
stored
Prior art date
Application number
TW093115365A
Other languages
English (en)
Other versions
TW200518480A (en
Inventor
Vincent Zimmer
Michael Rothman
Greg Miller
Mark Doran
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of TW200518480A publication Critical patent/TW200518480A/zh
Application granted granted Critical
Publication of TWI247489B publication Critical patent/TWI247489B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

1247489 (1) 玖、發明說明 【發明所屬之技術領域】 本發明之領域一般係相關於一種電腦系統,特別是, 相關於,但是非限定於儲存以壓縮形成而將變數資料儲存 於韌體中之機構。 【先前技術】 電腦系統軔體係在當電腦系統初始化(initialization )使用以確認系統整體性以及其組態。其亦一般提供有基 本低階介面於此些電腦系統之硬體以及軟體構件之間,以 使特定硬體功能經由包含於在電腦系統中執行之電腦程式 之高階軟體指令之執行而實施。在許多電腦中,此些韌體 之主要部分係稱爲電腦之基本輸入/輸出系統(BIOS )碼 。該 BIOS碼包含一組永久被儲存(或是在使用快閃 BIOS之系統時係爲半永久儲存)之軟體常式(rontine) ,其提供系統基本之操作特性,包括告訴電腦在開機時如 何自我測試,以及如何決定各種內建元件之組態。 在傳統之PC架構中,BIOS —般界定爲執行於處理器 重設(reset )以及作業系統(0S )之第一指令之間的韌 體。此對應於在冷開機或是回應於系統重設時所執行之開 始操作。在冷開機開始時,除了處理器以及韌體之外,很 少系統被實際啓始。因此由該韌體之碼初始化該系統而至 由像是硬碟之記錄媒體所載出之作業系統可接手之點。 一般而言,韌體碼係以”整塊(monolighic) ”的形 -5- (2) 1247489 式而儲存,包含單組之碼,其係由平台製造商或是像是 Phoenix或是AM1之BIOS廠商所提供。單組之碼之多個 部分係使用爲初始化不同之系統元件’而其他部分係使用 於執行時間(即,後開機(post-boot ))之操作。在其他 情況中,整塊B I 〇 S可使用一個或是多個儲存於一個或是 多個周邊裝置卡(加入之卡)之”選擇性R〇M 而擴展 。例如,s C S I裝置驅動器卡以及視頻卡通常包括一選擇 性ROM,其包含對應於由此些卡所提供之服務之BIOS碼 。一般而言,在選擇性ROM中之韌體係在整塊BIOS之 韌體被載入之後或是根據預設狀況下而載入整塊BIOS時 而被載入。 今天的韌體架構包括用以擴展BIOS功能性之部分, 其超過儲存於平台BIOS裝置(例如,快閃記憶體)之 BIOS碼所提供的部分。特別是,該可延伸韌體介面(EF1 ) ( 其規格以及例子可參考網站 http:// d e v e 1 ο p e r . i n t e 1, c 〇 in /1 e c h η ο 1 〇 g y / e f i )係爲公開工業規格, 其描述介於平台韌體以及收縮包覆(shrink-wrap)作業系 統或其他客戶應用環境之間的抽象程式介面。該EFI框架 包括用以延伸超過由儲存於平台BIOS裝置(即,快閃記 憶體)之BIOS碼所提供者之外之BIOS功能。EFI可使 韌體以韌體模組以及驅動程式之形式而自不同之來源載入 ’包括主要與次要快閃記憶體,選擇性ROM,多種永久 儲存裝置(例如硬碟、CD ROM等)以及甚至經由電腦網 路而載入。 -6- 1 1247489 (3) 在許多特性中,EFI提供用以儲存平台韌體之永久値 之抽象化,稱爲”變數(variables ) ” 。變數係定義爲成 對的鑰匙/値,其係以用以便是資訊與特性(鑰匙)以及 任意資料(値)所構成。變數係用以作爲儲存通過EFI環 境(由平台以及EFI 0S載入器所建立)與其他應用程式 (執行於E FI環境)之間通過之資料的機構。雖然變數之 儲存未定易於EFI規格中,在多數情況中變數必須爲永久 。此意味,EFI於平台上之實施必須整理以使保持經過變 數之儲存,以使每次系統開機時爲有效,至少直到其被刪 除或是重新寫入。此類非揮發性儲存體之部分受限於某些 平台,通常需要變數很少使用,而其他通訊資訊機構無法 使用。 【發明內容及實施方式】 以下描述對應於用以儲存具有壓縮以及失敗-安全解 壓縮之韌體變數之方式之方法、韌體以及電腦系統之實施 例。在以下描述中,各種特定細節係用以完全瞭解本發明 之實施例。對於相關熟知此技藝者將瞭解可在不需要該特 定細節或其他方法、元件、材料下而實施。例如,爲了避 免混淆本發明之特徵已知之結構、材料或運算並未顯示或 描述。 在此說明書中關於”一實施例”係指關聯於實施方式 之特定特性、結構或特徵係包括於本發明之至少一實施例 中。因此,在本說明書中在各處所出現的”在一實施例” 1247489 (4) 並非一定指相同之實施例。進一步,該特定特性、結構、 或是特徵可以適當方式而與一個或是多個實施例結合。 根據本發明之一觀點,框架(framework )係揭示以 提供一可壓縮以及失敗-安全解壓縮韌體變數之機構。本 發明之實施例係提供一機構,以經由解壓縮/壓縮而虛擬 快閃儲存之平台而可無漏洞的降級(degrade )(即,失 敗-安全),當壓縮器丟失時。 根據一實施例,該框架係經由以EFI所提供之設施而 完成。圖展示事件順序/架構圖,用以展示在回應於冷開 機(即,電源關閉開啓重設)而在EFI相同架構下之平台 所執行之操作。該程序係邏輯的被分割爲數個階段( phase ),包括一前EFI初始環境(PEI )階段、驅動程式 執行環境(DXE )階段、開機裝置選擇(BDS )階段、暫 態系統載入(TSL)、以及一作業系統執行時間(RT)階 段。該些階段彼此關聯而建立,以提供作業系統以及平台 之適當執行時間環境。 該PEI階段係提供對於處理器(CPU)、晶片組、主 機板之特定初始組態程序之載入以及喚起(invoke)之標 準化方法。該PEI階段係作爲足以初始化系統以提供以下 像之穩定基礎。平台核心構件(包括CPU、晶片組以及主 機板)之初始化係在PEI階段時而執行。此項亦稱爲”早 初始化”階段。在此階段時執行的一般操作包括:POST (啓動自我測試)操作,以及平台資源之發現。特別是, 該PEI階段找出記憶體並製備一資源圖(將被送入至 1247489 (5) DXE階段)。在PEI階段結束時之系統狀態經由稱爲送 入區塊(Hand Off Block,即,HOBs)之獨立資料結構之 位置表列而送入至DXE階段。 該DXE階段係爲執行大多數系統初始化之階段。該 DXE階段係由許多元件構成,包括DXE核心100、DXE 分配器102、以及一組DXE驅動程式104.該DXE核心 100產生一組啓動服務106、執行時間服務108、以及 DXE服務110.該DXE分配器102係負責找出以及一正確 順序執行DXE驅動程式104.該DXE驅動程式104係負責 初始化處理器、晶片組、以及平台元件並提供軟體抽象化 (abstractions )以控制以及啓動裝置。此些元件一起作 動以初始化該平台並提供啓動作業系統所需要之服務。該 DXE以及開機裝置選擇階段一起作動以建立控制以及嘗 試針對該作業系統工作。該DXE階段在當作業系統成功 開始其開機程序(即,BDS階段開始)時而被終止。只有 由DXE核心所提供之所選擇DXE服務以及執行時間服務 以及由執行時間DXE驅動程式所提供之所選擇服務被允 許進入作業系統執行時間環境。DXE結果係爲完全形成 之EFI介面之表示。
該DXE核心經設計而完全可攜性,其不與CPU、晶 片組或是平台具有相依附性。此係藉由在許多方面之設計 而完成。首先,DXE核心在其起始狀態只相關於HOB表 列。此意味,該DXE核心係與之前階段之任何服務不相 關,因此該之前之所有階段可在一旦HOB表列進入DXE 1247489 (6) 核心時而被載出。其次,DXE核心不包含任何硬 位址(hard coded addresses)。此意味,該 DX 核 載入至實體記憶體之任何處,且其不論實體記憶體 體驅動被配置於該處理器實體位址空間之何處皆可 作。第三,該DXE核心不包含任何特定CPU、特 組、或是特定平台之資訊。相反的,該DX核心係 構式協定介面組而自系統硬體而得。此結構式協定 爲DXE驅動程式104而產生,其係由DXE分配器 發出。 該DXE核心產生一 EFI系統表格200以及啓 1 06與執行時間服務1 08等相關組,如圖2所示。 核心亦維護一標牌資料庫(handle database) 200· 資料庫包含一個或是多個標牌(handle)之表列, 標牌·爲對應於個別協定204的一個或是多個獨 GUIDs (全區識別物件)之表列。一協定係爲一組 軟體抽象化。某些協定取出10裝置,而其他協定 共用組系統服務。協定一般包含一組API以及資料 某些數目。每個協定係稱爲GUID,而DXE核心產 協定註冊於該標牌資料庫之服務。由於該DXE分 行DXE驅動程式,額外協定將被加入至標牌資料 含使用爲自平台特定細節處取出DXE核心之結構 〇 該啓動服務包含在當DXE與BDS階段時使用 服務。其中,此些服務包括記憶體服務、協定標牌 體編碼 心可被 或是韌 正確工 定晶片 經由結 介面係 102而 動服務 該DXE 該標牌 其中一 一協宠 服務之 取出一 欄位之 生允許 配器執 庫,包 性協定 的一組 服務、 -10- 1247489 (7) 以及驅動程式支援服務。其中,記憶體服務提供以位元組 爲邊界而配置與釋放記憶體頁以及配置與釋放記憶體池( pool )。其亦提供取得使用在平台之所有現有實體記憶體 使用之圖。協定標牌服務提供自標牌資料庫加入與移出標 牌之服務。其亦提供自標牌資料庫之標牌加入與移出協定 之服務。具有可允許元件檢視標牌資料庫中之標牌,並開 啓或關閉爲在標牌資料庫中之協定的額外服務。支援服務 提供於平台中裝置連接與解除連接驅動程式之服務。此些 服務係由BDS階段使用以連接所有驅動程式至所有裝置 或是只連接最小數目之驅動程式至建立控制與啓動作業系 統所需要之裝置中(即,以支援快速啓動機構)。 相反於啓動服務,執行時間服務對於先期啓動(preboot ) 以 及作業 系統執 行時間 操作係 爲可用 。此處 實施例 所述之執行時間服務之一者係爲變數服務。如以下更詳細 描述者,該變數服務提供對於揮發性以及非揮發性儲存裝 置中檢視、加入以及移除環境變數之服務。此處,變數服 務係稱爲”通用的”,因爲其與經由本發明實施例更新韌 體之任何系統元件無關。 DXE服務表格包括對應於只在先期啓動可用之第一 組DXE服務206A,以及對應於在先期啓動以及作業系統 執行時間兩者可用之第二組DXE服務206B之資料。該只 在先期啓動服務包括全區相干域服務,其提供對於管理平 台之I/O資源、記憶體映射I/O資源、以及系統記憶體資 源。且亦包括DXE分配器服務,其提供對於正由DXE分 -11 - 1247489 (8) 配器分配之DXE驅動程式予以管理之服務。 該由每個啓動服務1 〇6、執行時間服務1 08、以及 DXE服務110所提供之服務係藉由個別API1 12、114以 及1 1 6之個別組而存取。該API提供一抽象介面,其可依 序載入元件以支援由DXE核心所提供之所選擇服務。 在DXE核心100被初始化之後,控制送交至DXE分 配器102.該DXE分配器係負責將在韌體中所發現之DXE 驅動程式載入以及作動,該韌體係對於在EFI框架下載出 韌體之邏輯儲存單位。該DXE分配器搜尋HOB表列所描 述之韌體集中之驅動程式。當執行繼續,其他韌體即可被 配置。當其被配置,則該分配器搜尋其驅動程式。 DXE驅動程式有兩個子類別。第一子類別包括DXE 驅動程式,其在DXE階段中非常早被執行。此些DXE驅 動程式之執行順序相關於一稱爲priori檔案之內容以及出 現以及相關表示之評估。此些早先DXE驅動程式一般包 含處理器、晶片組以及平台初始碼。此些早先驅動程式亦 將產生該結構性協定,其對於DXE核心係爲需要的,以 產生啓動服務以及執行時間服務之完全實施。 DXE驅動程式之第二類別係爲相容於EFI1 10驅動程 式模組。此些驅動程式在當由DXE分配器執行時係不執 行任何硬體初始化。相反的,其在標牌資料庫中註冊一驅 動程式結合協定介面。該組驅動程式結合協定係由B D S 階段所使用以連接該驅動程式至建立與提供對於啓動服務 所需要之裝置中。相容於EFI 1.10驅動程式模組之該 -12- 1247489 (9) DXE驅動程式最終提供軟體抽象化以在當其明確要 控制以及啓動裝置時而控制以及啓動。 任何DXE驅動程式可經由啓動服務以及執行時 務以執行其功能。然而,早先DXE驅動程式需要注 非所有此些服務在執行時都要可作動,因爲所有該結 協定可能尙未內註冊。DXE驅動程式必須使用相依 示以保證所需要之該服務以及協定介面在其被執行之 爲可用的。 相容於EFI1 10驅動程式膜組之DXE驅動程式不 考慮此情形。此些驅動程式在當被執行時簡單的註冊 動程式結合協定於該標牌資料庫。關於該驅動程式結 定 之註冊 , DXE 驅動程 式可使 InstallConfigurationTable 功能而”發出”一 API。 出之驅動程式可由API 118指定。在EFI之下,API 出露出API以可由其他韌體元件所存取。該API提 於裝置、匯流排、或服務之介面,其係對應於在個別 週期時之DXE驅動程式。 該BDS結構協定係在當BDS階段時而執行。該 結構協定對於執行在先期啓動服務環境所執行之各種 程式予以配置以及載入。此應用程式可以是一傳統之 系統啓動載入器、或是可載不載入或是載入最後OS 所執行之延伸服務。此延伸先期啓動服務可包括設定 、延伸診斷、快閃記憶體更新支援、OEM加値、或是 啓動碼。啓動分配器120係使用在BDS階段,以作 求其 間服 意並 構性 性表 前係 需要 該驅 合協 用 此發 之發 供對 生命 BDS 應用 作業 之前 組態 ;OS 動啓 -13- 1247489 (10) 動標的之選擇,即’由系統啓動之os。 在TSL階段中’最後os啓動載入器122經執行以載 入所選擇之〇S。一旦〇S被載入時,其不在需要啓動服 務106,以及關聯於DXE驅動程式104經由API1 18所提供 之許多服務,以及DXE服務206A。於是,此些所減少之 API組(在0S執行時間可被存取)係由API116以及 1 1 8 A (圖1中)所指定。 如圖1所示,該變數服務繼續的執行至0S執行時間 。該變數服務API係顯露於作業系統,藉此而使變數資料 被加入,並在0S執行時間由作業系統之動作而刪除,以 及在先期啓動操作時之韌體動作。在先進的電腦系統中, BFD —般包含一可重複寫入之非揮發記憶體元件,像是( 但非限制)快閃記憶體裝置或是EEPR0M晶片。一般而 言,NV可重複寫入記憶體裝置係指任何可以非揮發方式 而儲存資料之裝置(即,當電腦系統關機時仍維持資料) ,並提供寫與讀以存取資料。因此,所有以及部分儲存於 NV可重複寫入之記憶體裝置之韌體可藉由重複寫入資料 至裝置所界定之適當記憶體範圍而更新。 於是,BFD (或是輔助韌體儲存裝置)之記憶體空間 部分可保留爲儲存永久資料,包括可變變數。當快閃記憶 體裝置以及其類似者,記憶體部分係稱爲” NVRAM” 。 NVRAM係與習知隨機存取記憶體類似,除了快閃記憶體 儲存方式之個別位元只在單一方向被觸動。結果,重設觸 動位元之唯一方法係以區塊爲基礎而抹除位元群組。一般 -14- 1247489 (11) 而言,NVRAM之所有以及部分可使用爲儲存變數資料; 此部分係稱爲變數倉庫(rePository)。 如上述,在EFI之下,變數係以多數個鑰匙/値對( 其係由辨識資訊與特性(鑰匙)以及任意資料(値))所 構成。此些鑰匙/値對可經由變數服務而儲存並存取於 NVRAM 。 以下爲三個變數服務功能 : GetVariable,GetNextVariableName,以及 SetVariable.GetVariable 傳回變數之値。
GetNextVariableName 列舉出現有變數名。SetVariable 設 定變數之値。每個GetVariable以及SetVariable功能採用 五個參數:VariableName,VendorGuid(廠商之獨一識別符 號),Attributes(經由特性遮罩),DataSize以及Data。該 Data參數識別一緩衝(經由記憶體位址)以寫入或讀出 變數之資料內容。該 VariableName,VendorGuid參數可使 對應於特定系統構件(例如外加卡(add-in card)之變數 被輕易辨識,且可使多個變數被加付於相同構件。 在資料庫內容中,變數資料係以2元組(2-tuple) <Mi,Bi>,其中該資料位元組(B )通常係關聯於程式化該 快閃記憶體裝置前之某些特性資訊/元資料(Μ)。元資料 Μ被特定實施。其可包括像是”刪除”等之資訊以允許在 變數儲存庫之生命週期之各種時間的時間段之儲存物之垃 圾收集。元資料不經由變數服務API而顯示出(expose) ,而係內部使用以管理該儲存物。 根據本發明之觀點,上述變數資料儲存以及存取方法 -15- 1247489 (12) 係以當存取該變數時支援所儲存變數之壓縮以及該經壓縮 變數之對應解壓縮而擴大。關於資料庫之名詞,該2元組 儲存方式係藉由經壓縮功能之壓縮B (資料)以及將相關 壓縮資訊加入至元資料Μ以產生<M’,C(B)>而擴大。例如 ,Μ ’可包括辨識所給定辨識是否被壓縮(例,表示”壓 縮/非壓縮”之布林値)且/或辨識被採用之特定壓縮演算 法(像是”壓縮演算法ΧΥΖ” )之額外資訊。 除了壓縮變數資料,需要一解壓縮器以將該資料送回 其原始形式。例如,經由解壓縮器D而取得C ( Β )係表 示爲D(C(B))。在今日之計算平台環境下,通常以 經壓縮之形式而儲存韌體之變數部分以最大化儲存之使用 。結果,解壓縮器D已經對於此組態提供以解壓縮該壓 縮韌體。進一步,假如採用相同之壓縮/解壓縮方法於韌 體部分以及辨識資料兩者,其將不需要對於韌體提供解壓 縮器。或者,分離壓縮/解壓縮方法可用以儲存韌體以及 儲存變數資料。此時,分離解壓縮器將對於韌體而提供。 相反的,不常對於韌體提供壓縮器。理由在於,經壓 縮之韌體一般被解壓縮且之後被載入至記憶體以後續使用 。未被壓縮之韌體之使用之較佳部分係用以執行系統初始 操作,而其完成時不在需要以下之韌體爲可用的。爲了支 援作業系統執行時間操作,爲壓縮韌體碼需要只被與正被 送入至0S之適當介面資訊而維持在記憶體中。 根據本發明之另一觀點,採用”急切”壓縮。特別是 ,辨識資料係在當壓縮器可用時而被以壓縮形式而儲存, -16- 1247489 (13) 而假如該壓縮器不可用則以爲壓縮形式而儲存該變數資料 。結果,當執行SetVariable(B)時,假如在韌體中存在壓 縮器演算法,則C ( B )被儲存;否則B以類似於習知方 式而儲存。 在一實施例中,該壓縮器碼(壓縮器)係位於非失誤 容忍區塊(一般作爲失誤容忍更新)中,意指,當其丟失 時不會造成整個變數資料存取方法失敗。例如,壓縮器碼 可能會在失誤容忍更新操作時之電力失效時而丟失。由於 任何存在之壓縮變數資料可能尙未解壓縮,因此其並不重 要,且任何進一步之變數資料儲存將以習知方式執行,即 ,該資料將以上述2元組(2-tuple) <Mi,Bi>格式而儲存 。藉由將壓縮器碼儲存於保留於平台韌體之區塊之外,對 於相較於習知方式不會對於韌體儲存裝置之記憶體空間使 用有影響。 參考圖3a以及3b之流程圖以及圖4之結構圖,根據 一實施例之平台初始操作係如以下而執行。該處理回應於 事件中之系統重設或是啓動電力而被初始(如開始區塊 3 00所示)。其回應,該處理根據圖1所述PEI階段而在 經由區塊3 02之早期平台初始化而進行。在進一步細節中 ,除存在系統BFD韌體裝置中之韌體(像是圖4所示之 5 1 2K快閃記憶體裝置400爲例)而執行早期初始化。在 一實施例中,韌體係在快閃記憶體裝置400之恢復區塊 40 1中非壓縮儲存,並原地執行(XIP )。恢復區塊包含 未曾改變之韌體;相反的,快閃記憶體裝置之其他部分包 -17- 1247489 (14) 含可經由適當操作而被更新之韌體的區塊。 在EFI環境下,在PEI階段所執行之韌體係以簡稱爲 ” PEI模組”或是” PEIMs”之模組而儲存。首先,回應 於重設/電力啓動事件,像是具有Intel 32位元組架構( ^-32 )之32位元處理器載入一位於40億位元組(GB ) 32位元位址空間極限(ceiling )之重設指令。此對應於 系統BFD最高位址。於是,BFD之基底位址係等於4GB 減去裝置之記憶體大小(例如對於快閃記憶體裝置400係 爲512K)。根據復原區塊402之64K區塊大小,重設指 令對於該指令執行路徑設定向量至位於GB以下之位址1 6 之第一指令處(即,快閃記憶體裝置400之基底位址加上 5 9 6K )。此與包含用以確認將被載入之各種韌體之整合 的指令之安全模組(SEC檔案)404之設置同時發生;此 些指令在執行於圖1之PEI階段之前執行之卅C階段時而 就緒。在完成SEC階段時,該執行路徑被定向量至PIE 核心檔案4 0 6之開始處。 在復原區塊402之其餘韌體之後依序就緒執行,自較 低至較高區塊位址,其中對於每個模組之開始位址係以韌 體卷(firmware volume) (FV)標頭407而儲存。此包 括以下之執行:PEI核心檔案406、記憶體與平台初始化 PEIMS408 與 410,以及 DXE初始程式載入(IPL ) PEIM412. 記憶體初始化PEIM之執行可對於系統記憶體存取, 而稱爲系統記憶體4 1 4 ·在一實施例中,系統保留位於 -18- 1247489 (15) BFD之基底位址立即之下之空間以作爲韌體”成影( shadowing ) ” ,其係儲存可執行韌體影像於系統記憶體 以加快前述之存取且或解壓縮。系統記憶體4 1 4之此部分 係以韌體影像與API’s416所示。 關於DXE IPL PEIM 4 12之執行,該模組係被載入至 韌體影像以及API’s 4 1 6 (例如,成影)且組態資訊經產 生使得對應於解壓縮器4 1 8之解壓縮功能之進入點經由 HOB而被送入至DXE。接著,在恢復區塊402中之剩餘 韌體被執行,包括區塊存取與檔案系統恢復PEIMs 420以 及變數存取PEIM422,完成PEI階段。該變數存取PEIM可 使在PEI階段中對於儲存於NVRAM區塊426之變數424 而存取。 接著,指令執行路徑被重新導引至包含在位於接近快 閃記憶體裝置400之基底位址處之韌體卷之韌體中。韌體 部分一般包含係在DXE階段執行之構件,像是DXE驅動 程式以及相關碼,其係在可取代韌體區塊428 (爲了簡化 以單一區塊稱之)中被儲存時而被總和的指出。該由可取 代韌體區塊所佔據之位址範圍係以裝置之基底位址開始, 並延伸至基底位址加上320K,即,韌體裝置400之最先 5個64K區塊。對於每個構件之開始位址係包含在FV標 頭43 0中。 在DXE階段,各種DXE相關韌體構件被載入至系統 記憶體並被執行。此些構件包括DXE核心檔案4 3 2、晶 片組DXE驅動程式434、控制DXE驅動程式425、變數 -19 - 1247489 (16) DXE驅動程式43 8、相容支援DXE驅動程式440、以及 EFI層(shell)應用程式442.數個其他DXE構件亦被載 入並執行;此些爲簡化而爲示於圖中。在一實施例中,儲 存於可取代韌體區塊428之韌體被壓縮。因此,爲了執行 上述DXE夠厭,其必須在被載入至系統記憶體之前首先 被解壓縮(在韌體影像以及API’s 416 )。此係部分經由 解壓縮器418而完成。爲了簡化,許多個DXE相關韌體 構件之解壓縮影像未顯示於韌體影像以及API’s 416。 關於該變數DXE驅動程式43 8之解壓縮、載入以及 執行,變數服務API 444被出版。此API可使在剩下之前 啓動運算以及在OS執行時間時對於變數424存取(即, 讀取與寫入)。 除了識別在可取代區塊428之每個韌體構件之位置( 即,開始位置),FV標頭43 0亦包含用以識別儲存於重 新主張(reclaim)區塊448中之壓縮器DXE驅動程式 446之位置的指標者(indicia)。一般而言,該重新主張 區塊係使用以暫時除存在失誤容忍韌體更新程序時所給定 之韌體區塊之拷貝。因此,其一般不包含任何所需之韌體 構件,因爲其內容係設計爲抹除且之後在韌體更新時被重 新寫入。然而,此情況中,重新主張區塊係使用於儲存壓 縮器DXE驅動程式。或者,壓縮器DXE驅動程式446可 儲存於恢復區塊402或是可取代韌體區塊43 0.—般而言, 壓縮驅動程式446可被儲存於壓縮或是未壓縮形式而儲存 ,其係根據儲存於重新主張區塊448之大小以及其他任何 -20- 1247489 (17) 韌體。 在被載入至系統記憶體時,壓 出輸入至變數服務API444之解壓 定通知變數服務如何將以壓縮變數 回到圖3 a之流程圖,在操作 決定區塊306中決定變數424是 426中。假如不是,該先期啓動操 3 〇 8中之啓動標的(例如,作業系 如變數存在,該邏輯進入至圖3b 塊3 09之變數。 該處理在區塊3 1 0中開始, GetNextVariableName 以及增進的 取。特別是,該GetVariable函數] 3 1 2 )以決定現正考慮變數是否以 變數係被壓縮,該變數使用如區塊 4 1 8而解壓縮。假如變數不是被解 塊3 1 6中讀取。在兩者情況中,變 而回到呼叫者。 在任何變數被取得之後’其係 構件而實施。例如,變數可經採用 使用者。接著,該邏輯進入至結束 標的。 除了取得變數之外,新的變數 之變數資料可被修改或是刪除。 丨縮器DXE驅動程式露 縮協定448.該解壓縮協 424解壓縮。 區塊304執行之後,在 否存在於NVRAM區塊 作繼續直到在結束區塊 統載入器)被發出。假 之流程圖以取得根據區 其中變數內容係以稱爲 GetVariable函數而讀 險查元資料M’(在區塊 壓縮格式而儲存。假如 3 1 4所指出之解壓縮器 壓縮,其被簡單的在區 丨數將根據最終區塊3 1 8 以區塊3 20之適當韌體 而提供各種啓動選擇給 區塊3 08而發射該啓動 資料可被加入,且存在 此係如圖5流程圖之 -21 - 1247489 (18)
SetVariable函數而執行。在區塊5 00,變數內容係作爲藉 由對於變數服務API 444之呼叫而對於增進型Set Variable 函數之Data參數。在決定區塊5 02中,係決定壓縮器是 否存在。假如答案爲肯定,該變數在區塊5 04中經由 DXE驅動程式壓縮器446而被解壓縮。該壓縮器存在與 否,在決定區塊5 06中決定在變數儲存區(例如NVRAM 區塊426 )中是否有足夠空間剩下以儲存被壓縮或是解壓 縮之變數。假如剩下空間係爲適當,該變數以壓縮或是未 壓縮形式而被寫入至變數儲存區,係根據壓縮器之存在與 否。該處理之後根據回復區塊510而成功退出,而回到呼 叫者。假如在可用儲存區中之剩下空間係爲不適當,該處 理根據回復區塊5 1 2而退出並將錯誤標示者送入至呼叫者 〇 對於更新之變數,該寫入處理係相關於兩個步驟。因 爲快閃記憶體之位元無法在不淸除整個區塊下而重設,變 數更新可藉由首先以存在之變數爲刪除(經由適當的設定 在元資料Μ或是Μ ’之對應位元)而執行。之後,新的變 數資料被寫入至變數儲存區。 在一段時間之後,各種被刪除之變數資料將累積於變 數儲存區,因而減少儲存新的且/或額外被修改變數資料 之剩餘空間。在一實施例中,被刪除之變數資料可被”垃 圾收集”(根據圖6之流程圖)。首先,在區塊6 0 0中, 影像區塊或是垃圾收即將執行之區塊(即,NVRAM426 ) 被複製至系統記憶體414,由NVRAM450所指定。快閃記 -22- 1247489 (19) 憶體之區塊或區塊等之後被抹除(區塊602 )。介於個別 開始與結束回路區塊604與606之操作之後對於每個變數 而執行。第一個操作係對應於決定區塊60 8,其係決定現正 處理之變數是否被標示爲刪除。假如其係標示爲刪除,該 變數被跳過(區塊610),而處理繼續以考慮下一個變數 。對於每個未被標示爲刪除之變數,該變數係加入至韌體 變數儲存區(區塊6 1 0 )。此處理相關於對於非刪除變數 呼叫該增大之SetVariable函數,以藉由參考圖5執行上 述之操作而將該變數寫入至變數儲存區。此處理被重複直 到到達區塊影像之結尾處。 根據本發明之另一觀點,韌體可被建構爲對應於韌體 更新而執行重新開始時間壓縮掃瞄,藉此而加入壓縮器。 例如,壓縮掃瞄可經執行而壓縮事先以未壓縮格式而儲存 於韌體裝置中之已經存在變數資料。 圖7所示係執行重新開始壓縮掃瞄的一實施例所執行 之操作與邏輯之流程圖。該處理係與圖3類似之方式而開 始,其中區塊700、7 〇2、704之操作係分別與區塊3 00、 3 02以及304類似。接著,在節定區塊執行以決定是否存 在任何未經壓縮之變數。假如答案爲否,該預先開機初始 化處理繼續,最終而有一開機標的執行(launch )(區塊 708 ) 〇 假如決定出係存在未壓縮之變數,該邏輯進入至區塊 710,其中變數儲存區塊之影像(即,NVRAM區塊426) 被複製到系統記憶體。該變數儲存區塊之後被抹除(區塊 -23- 1247489 (20) 7 1 2 )。每個變數之後藉由開始與結束區塊(7 1 4與7 1 6 ) 所界定之操作而處理。首先,在決定區塊718決定現正處 理變數是否未經壓縮。假如該變數未經壓縮,則在區塊 72 0被壓縮並寫入至變數儲存區塊(或是可用區塊’假如 係具有多數個變數儲存區塊,其中在一實施例中,第一區 塊被寫入直到其塡滿,且之後第二區塊被寫入直到其被塡 滿等)(在區塊722)。假如該變數已經被壓縮時’其已 被壓縮之形式而被寫入至變數儲存區塊(區塊7 22 )。此 處理重複直到所有變數皆已經被處理,其中預先開機初始 化操作被繼續以使開機標的開始(區塊7〇8)。 根據本發明之另一觀點,類似於上述壓縮/解壓縮之 方法可應用於變數之加密/解密。在一實施例中,可單獨 使用加密以及解密。在另一實施例中,可將壓縮解壓縮以 及加密/解密並行組合。 參考圖8,支援韌體變數資料之加密與解密的韌體組態 例包含與圖4類似之構件,除了額外具有一加密DXE驅 動程式 800儲存於重新主張區塊 448中、具有 DXE IP LPEIM 412位於一解密器802中、以及由變數服務API 444’所輸出之解密協定804.—般而言,該加密DXE驅動 程式可位於記憶體之任何位置處,像是恢復區塊402.在並 行組合加密/解密以及壓縮/解壓縮之實施例中,加密DXE 驅動程式800以及壓縮器DXE驅動程式446兩者係爲在 重新主張區塊448,其中解密器802以及解壓縮器418兩者 係爲在恢復區塊402中(未顯示)。 -24- 1247489 (21) 加密D X E驅動程式8 Ο 0以及解密器8 Ο 2係以分別類 似於壓縮器DXE驅動程式446以及解壓縮器418而工作 。此時’元資料Μ ’包含一標示器,其標示變數是否被加 密,以及該資料是否以具有<M’’i,Ε(Β〇>2 2元組形式而 儲存。例如,只採用加密/解密之讀取操作係以圖9a所示 。此處理係在區塊9 0 0中開始,其中變數內容係藉由呼叫 GetNextVariableName 以及增大型 GetVariab 1 e 函數而讀 取。特別是,Get Variable函數檢查元資料(區塊902 )以 決定現正考慮之變數是否以加密形式而被儲存。假如該變 數被加密,該變數使用解密器802而解密(區塊904 )。 假如該變數未被加密,則其被簡單讀取(區塊906 )。在 任一情形中,未加密變數回到該呼叫者(結束區塊908 ) 〇 圖9b之流程圖係爲根據一實施例之操作以及羅即, 其中壓縮與解壓縮被加入至圖9a之流程圖。此時,區塊 9 0 0、9 02、904之操作係以與上述類似之方式而執行,以 產生一未經加密之變數。接著,在區塊9 1 0決定該未經加 密之變數是否被壓縮。假如是的話,該未經加密之變數被 解壓縮(區塊902 );否則其被簡單讀取(區塊916)。 參考圖,係在加密解密方法下將變數寫入至韌體儲存 區係類似於上述壓縮/解壓縮之方法。在區塊1000中,變 數內容係提供Data參數至增大型SetVariable函數(經由 對於變數服務API 444’之對應呼叫)。在決定區塊1 002, 決定是否存在加密器。假如答案爲是’變數經由加密 -25- 1247489 (22) DXE驅動程式800而加密(區塊1 004 )。不論該加 是否存在,在決定區塊1006決定在變數儲存區( NVRAM區塊426 )是否存在足夠之空間以儲存加密 未經加密之變數。假如剩下之空間係爲適當的,該變 加密或是未經加密之形式而寫入至變數儲存區,根據 器之存在。該處理之後根據回傳區塊1010之回傳至 者而成功退出。假如在變數儲存區之剩餘空間係爲不 的,該處理根據回傳區塊1 0 1 2而退出並將錯誤標示 傳至呼叫者。 圖1 Ob之流程圖表示將壓縮與解壓縮操作加入 l〇a之流程圖之操作與邏輯。操作區塊1〇〇〇、1〇〇2、 之操作係以類似於上述之方式而執行,而在當加密器 時而產生一加密變數,否則產生一未經加密變數。之 決定區塊1 0 1 4決定出該加密/未加密變數是否被壓縮 如是的話,變數被壓縮(區塊1016)且該邏輯進入 定區塊1006’;否則其直接進入至決定區塊1006’。假 足夠空間在儲存區以儲存加密解密與壓縮/解壓縮變 ,其在區塊 1 008’儲存,而該處理在回傳區塊 1010’ 退出,回傳至該呼叫者。該所得之未加密與未壓縮辨 後回傳至呼叫者(結束區塊9 1 6 )。假如在變數儲存 所剩空間不適當時,該處理退出(回傳區塊1 0 1 2 ’) 錯誤標示器回傳至呼叫者。 在上述實施例中,變數首先被加密且之後被壓縮 變數也可首先被壓縮之後被加密。在一實施例中,對 密器 即, 或是 數以 加密 呼叫 適當 器回 至圖 1004 存在 後在 。假 至決 如有 數時 成功 識之 區之 且將 。當 稱加 -26- 1247489 (23) 密方法(像是由先進加密標準(AES )代理者之聯邦資 訊處理(FIPS) 197 所界定者(http://csrc.nist. gov/ Dublicati〇ns/fips/fipsl97/fips -197.pdf ) ° 一般而言,本發明可應用於任何與上述壓縮與解壓縮 類型之韌體變數轉換。例如,變數可轉換爲包含錯誤更正 碼(ECC )資料以保護丟失位元。在一實施例中,根據數 位簽名方法之轉換由於安全之目的而可採用。進一步,多 個轉換器可並行採用,像是函數F = Cl ( C2 ( C3 ))…,其 中 C i,C2,C3爲個別轉換函數。該轉換類似性應可應用 於失敗-安全急切轉換,如下。首先,假如轉換器可用, 其將使用爲轉換該變數,否則該轉換被捨棄。其次,該解 轉換器(即,使用爲將儲存以經轉換格式之變數轉換爲其 未經轉換時之格式)將以儲存於失敗-安全方式而儲存( 如恢復區塊402所示)。如前,在一實施例中,該轉換器 將在韌體裝置之非失誤容忍區塊中儲存,而將造成丟失。 因此,該解轉換器可被安全的儲存,其將可取得變數資料 〇 應進一步瞭解,該所採用之特定轉換方法對於熟知特 定轉換技術(壓縮、加密、ECC、數位簽名等)係爲習知 。對於特定轉換之方法並不在此描述以使本案明確。 對於實施本發明實施例之電腦系統例 參考圖11,係展示一般習知之電腦1100,其係適用於 本發明實施例之計算平台。適合於上述實施例之實施之電 腦例包括PC等級系統、可攜式電腦、伺服器以及工作站 -27- 1247489 (24) 電腦包括一處理器底架(chassis) 1102,裝設有一軟 碟機1104、硬碟機1106、主機板1108 (具有包括記憶體 1110)、一個或多個處理器 CPU1 112、韌體儲存裝置 1 Π 3、以及電源供應器(未顯示),對於熟知此技藝者係 爲習知。應知,該硬碟機806可包含一單一單位、或是多 數個硬碟機,且可選擇地位於電腦外側。監視器1 1 1 4可 用以顯示由軟體程式或是有電腦所執行之模組所產生之圖 形以及文字。滑鼠1116(或是其他標示裝置)可連接至 處理器底架1 102之後的串列埠(或是匯流排埠或USB埠 ),且來自滑鼠1 1 1 6之信號被傳送至主機板並控制顯示 器上之指標以藉由執行在電腦上之模組以及軟體程式而選 擇文件、目錄選擇、以及顯示於監視器1 1 1 4之繪圖構件 。此外,鍵盤1 1 1 8係耦合至主機板以讓使用者輸入影響 電腦上所執行軟體程式之文件與指令。電腦1 1 00亦包括 一網路介面卡1120或是內建網路解調器以連接該電腦至 電腦網路(像是區域網路、廣域網路或是網際網路)。 電腦1 1 00可選擇性的包括精簡碟片唯讀記憶體( CD-ROM)機1 122,而可插入CD-ROM碟片以使位在該碟 片之可執行檔被讀取以傳送至記憶體且/或在電腦1 1 〇〇之 硬碟1 1 06上之儲存區。其他大型記憶體儲存裝置(像是 光學記錄媒體或是DVD機)亦可。 該包含可使CPU執行所述本發明功能之軟體之機器 指令可分佈於軟碟或是CD_ROM(或是其他記憶體媒體)並 -28- 1247489 (25) 除存在該硬碟機直到載入至隨機存取記憶體(RAM )以由 CPU執行。或者,所有或是部分機器指令可經由電腦網路 而載入。 可有處理器1 1 1 2所執行以執行上述各種韌體操作之 儲存於韌體儲存裝置1 1 1 3之韌體指令一般將儲存於對應 之非揮發性可重複寫入之記憶體裝置,像是快閃記憶體、 EEPROM等。該作爲載子波之韌體可經由網路而下載,並 拷貝至韌體裝置(即,”快閃”至快閃記憶體)或可被原 始儲存於碟片媒體並拷貝至韌體裝置。 因此,本發明之實施例可使用或支援在處理核心(像 是電腦之CPU)或其他在電腦可讀取內實施或實現之格式 而執行韌體以及軟體指令。機器可讀取媒體包括任何以機 器(如,電腦)可讀取形式而儲存或傳送資訊之機構。例 如,機器可讀取媒體包括像是唯讀記億體(ROM )之儲存 媒體;磁碟儲存媒體;光學儲存媒體;以及快閃記憶體裝 置等。此外,機器可讀取媒體可包括像是電、光、聲、或 其他可傳送信號之傳送信號(如,載波、紫外線信號、數 位信號等)。 本發明所述實施例(包括以較爲抽象所示)並非限於 所述形式者。雖然本發明係以實施例以而說明,對於熟知 此技藝者可在不離開本發明之基本觀念以及範圍下而有許 多之修改。 【圖式簡單說明】 -29- 1247489 (26) 本發明之上述特性以及許多優點藉由參考以下附圖以 及說明之後將更爲淸楚,其中相同之標號除了另有說明之 外在各個圖中係表示相同之元件。 圖1係爲展示多種執行階段之結構圖,其係根據可擴 展韌體介面(EFI )架構而執行。 圖2係在韌體變數存取時本發明實施例所採用之EFI 系統表格之多種元件之方塊圖; 圖3 a係展示本發明之一實施例中在系統初始時經執 行以載入韌體變數之邏輯以及操作之流程圖; 圖3 b係展示根據本發明之在韌體變數讀取程序時所 執行之邏輯以及操作之流程圖; 圖4係展示本發明之一實施例之支援壓縮/解壓縮之 韌體元件組態之結構圖; 圖5係展示本發明之一實施例之藉由使用急切壓縮而 儲存變數以將韌體變數寫入程序中執行之邏輯以及操作之 流程圖; 圖6係本發明之一實施例之在韌體變數結合程序時所 執行之邏輯以及操作之流程圖; 圖7係本發明之一時的在重新開始變數壓縮掃瞄程序 時所執行之邏輯以及操作之流程圖; 圖8係本發明之一實施例之支援加密/解密操作之韌 體元件之組構之結構圖; 圖9a係本發明之一實施例中加密以及解密變數之韌 體變數讀取運算時所執行之邏輯以及操作之流程圖; -30- 1247489 (27) 圖9b係本發明之一實施例中類似於圖9a但加入可加 密解密以及壓縮/解壓縮變數之壓縮/解壓縮運算之流程圖 » 圖1 Oa係使用本發明之一實施例中使用急切加密而儲 存駿I之韌體變數寫入程序時所執行之邏輯以及運算之流程 圖; 圖1 〇b係本發明之一實施例之使用急切加密以及急切 壓縮之組合而儲存變數之韌體變數寫入程序時所執行之邏 輯以及操作之流程圖; 圖1 1係本發明之實施例所採用之例的電腦系統之結 構圖。 【主要元件符號說明】 100 DXE核心 102 DXE分配器 104 DXE驅動程式 106 啓動服務 108 執行時間服務 110 DXE服務 1100 電腦 1102 處理器底架 1104 軟碟機 1106 硬碟機 1108 主機板 -31 - 記憶體 處理器 韌體儲存裝置 監視器 滑鼠 鍵盤
API 網路介面卡 精簡碟片唯讀記憶體機
API
API
API 啓動分配器 最後OS啓動載入器 標牌資料庫 個別協定 DXE服務 DXE服務 快閃記憶體 安全模組 PEI核心檔案 韌體卷標頭 平台初始化PEIMs
DXE初始程式載入PEIM -32- 1247489 (29) 414 系統記憶體 416 API’s 418 解壓縮器 420 檔案系統恢復PEIMs
422 變數存取PEIM 424 壓縮變數 425 控制DXE驅動程式 430 FV標頭 432 DXE核心檔案 434 晶片組DEX驅動程式 43 8 變效DEX驅動程式 440 相容支援DEX驅動程式 442 EFI層應用程式
444 變數服務API 446 壓縮器DEX驅動程式 800 壓縮器DEX驅動程式 802 解密器 406 硬碟機 -33-

Claims (1)

  1. (1) 1247489 拾、申請專利範圍 1·一種資料儲存方法,包含: 經由韌體壓縮韌體變數以產生經壓縮之韌體變數資料 ;以及 儲存該經壓縮之韌體變數資料於一韌體儲存裝置。 2·如申請專利範圍第〗項之資料儲存方法,進一步包 含: 自該韌體儲存裝置中取得經壓縮之韌體變數;以及 將該經壓縮之韌體變數資料解壓縮。 3 ·如申請專利範圍第1項之資料儲存方法,其中該經 壓縮之韌體變數資料包含原始韌體變數資料,進一步包含 藉由執行以包括如下步驟之操作而以新的韌體變數資料更 新原始韌體變數資料: 以經壓縮或未經壓縮之形式之一而將該新的韌體變數 資料儲存於韌體儲存裝置中;以及 標示該原始韌體變數資料爲已被刪除。 4.如申請專利範圍第3項之資料儲存方法,其中該原 始和新的韌體變數資料係儲存於該韌體儲存裝置中之記憶 體區塊,進一步包含藉由以下步驟之操作而在韌體區塊中 結合該變數資料: 儲存記憶體區塊之影像; 抹除該記憶體區塊;以及 將位於記憶體區塊中未標示爲刪除之任何變數予以壓 縮,並將之寫回至該記憶體區塊’並跳過標示爲刪除之任 -34- 1247489 (2) 何變數。 5 ·如申請專利範圍第1項之資料儲存方法,進一步包 含儲存對於經壓縮之韌體變數資料之標示器以標示該資料 係被壓縮。 6.如申請專利範圍第1項之資料儲存方法,其中該經 壓縮之韌體變數資料係以2元組格c(Bi)>而儲存 ,其中Μ、包含對應於第i個元組之元資料,Bi包含對 應於第i個元組之資料,且C表示一壓縮函數。 7 ·如申請專利範圍第1項之資料儲存方法,進一步包 含提供一介面以使作業系統執行時間構件可存取經壓縮之 韌體變數資料。 8.如申請專利範圍第1項之資料儲存方法,進一步包 含在韌體變數資料被壓縮之前或是之後對於該韌體變數資 料加密以將該韌體變數資料轉換爲一經壓縮以及加密之形 式。 9 . 一種資料儲存方法,包含: 接收一請求以儲存一第一韌體變數; 決定一壓縮器是否可用以壓縮該第一韌體變數;以及 假如該壓縮器可用以壓縮該第一韌體變數則採用之, 並將之儲存於一韌體儲存裝置’否則假如該壓縮器不可使 用則將該第一韌體變數以一未經壓縮之格式而儲存於該韌 體儲存裝置。 1 0 .如申請專利範圍第9項之資料儲存方法,進一步 包含: -35- 1247489 (3) 接收一請求以儲存一第二軔體變數; 決定該壓縮器是否不再可用;以及 以一未經壓縮之格式而儲存該第二韌體變數於該韌體 儲存裝置中。 i i .如申請專利範圍第9項之資料儲存方法,其中該 未經壓縮之韌體變數係以2元組格式<Mi,Bi>而儲存’其 中Mi包含對應於第i個元組之元資料’ Bi包含對應於 第i個元組之資料,且C表示一壓縮函數。 1 2 . —種資料儲存方法,包含: 回應於電腦系統開機或是重設事件, 掃瞄電腦系統中之韌體儲存裝置中之以未經壓縮格式 而儲存之未經壓縮韌體變數; 轉換該未經壓縮韌體變數爲一經壓縮格式。 1 3 ·如申請專利範圍第1 2項之資料儲存方法,其中該 爲經壓縮之韌體變數係執行包含以下步驟之操作而轉換爲 一壓縮形式: 拷貝儲存有位經壓縮之韌體變數之韌體記憶體區_之 影像; 抹除該韌體記憶體區塊; 壓縮每個爲經壓縮之變數;以及 將經壓縮之變數寫回至該韌體記憶體區塊。 I4·如申請專利範圍第13項之資料儲存方法,進—步 包含: 對於該影像掃瞄出任何經壓縮之韌體變數;以s -36- 1247489 (4) 將該經壓縮之變數寫回至該韌體記憶體區塊。 15.—種資料儲存方法,包含: 將一第一轉換器儲存於韌體儲存裝置的一非失誤容忍 部分; 將一第一解轉換器儲存於該韌體儲存裝置的一失誤容 忍部分; 決定該第一轉換是否可用;以及 以第一轉換格式儲存韌體變數,假如該第一轉換係經 決定係爲可用,否則以未經轉換格式儲存該韌體變數。 1 6 ·如申請專利範圍第1 5項之資料儲存方法,進一步 包含以該第一解壓縮器而存取以該第一轉換格式所儲存之 韌體變數。 1 7 ·如申請專利範圍第1 5項之資料儲存方法,進一步 包含: 儲存一第二轉換器於韌體儲存裝置中之非失誤容忍部 分; 儲存一第二解轉換器於該韌體儲存裝置的一失誤容忍 部分; 決定該第二轉換器是否可用;以及 假如決定出該第一與第二轉換器兩者係爲可用時,經 第一與第二轉換器執行之第一與第二轉換操作而以經組合 之轉換形式儲存韌體變數,或假如決定出該第一轉換器係 爲可用而第二轉換器係爲不可用則經第一轉換器執行之轉 換操作而以第一轉換形式而儲存軔體變數,否則當決定出 -37- 1247489 (5) 該第二轉換器係爲可用而第一轉換器係爲不可用時經該第 二轉換器所執行之轉換操作而以第二轉換形式而儲存韌體 變數。 1 8 . —種電腦可存取之記錄媒體,儲存有指令,藉由 執行操作而執行韌體變數資料之儲存,包含: 接收一請求,以儲存韌體變數資料; 壓縮該韌體變數資料以產生經壓縮之韌體變數資料; 以及 儲存該經壓縮之韌體變數資料於一韌體儲存裝置中。 1 9·如申請專利範圍第1 8項之記錄媒體,其中該指令 之執行進一步執行以下操作: 自該韌體儲存裝置取得經壓縮之韌體變數資料;以及 將該經壓縮之韌體變數資料予以解壓縮。 20·如申請專利範圍第19項之記錄媒體,其中該指令 包含韌體。 2 1 ·如申請專利範圍第20項之記錄媒體,其中該記錄 媒體包含快閃記憶體。 22·—種電腦可存取之記錄媒體,包含: 接收一請求以儲存一第一韌體變數; 決定壓縮器是否可用以將該第一韌體變數壓縮·,以及 假如決定出該壓縮可用則使用該壓縮器以將該韌體變 數壓縮並將之儲存於韌體儲存裝置,否則當該壓縮器係爲 不可用時則以未經壓縮之格式而將該第一韌體變數儲存於 韌體儲存裝置。 -38- 1247489 (6) 23·如申請專利範圍第22項之記錄媒體,其中該記錄 媒體包含快閃記憶體。 24·如申請專利範圍第23項之記錄媒體,其中該指令 的一部份包含一壓縮器以壓縮韌體變數,且該快閃記憶體 包括用以儲存壓縮器之記憶體之非失誤容忍區塊。 25·如申請專利範圍第24項之記錄媒體,其中該指令 之執行進一步包含以下步驟: 接收一請求以儲存一第二韌體變數; 決定該壓縮器是否以經不再可用;以及 以未經壓縮之格式而儲存該第二韌體變數於該韌體儲 存裝置中。 26·如申請專利範圍第23項之記錄媒體,其中該指令 的一部份包含一解壓縮器,用以將經壓縮之韌體變數予以 解壓縮,且該快閃記憶體包括一儲存有該解壓縮器之記憶 體之失誤容忍區塊。 27.—電腦系統,包含: 一主機板; 一處理器,耦合於該主機板; 一揮發性記憶體,耦合於該主機板;以及 一開機韌體裝置,耦合於該主機板且包含具有包括壓 縮器儲存其中之韌體構件之快閃記憶體,該韌體構件包含 以下步驟之操作以經執行而由韌體變數之處理器有效儲存 之指令: 發出一介面; -39 - 1247489 (7) 經由該介面而接收一請求以儲存一韌體變數; 決定該壓縮器是否可用以壓縮該韌體變數;以及 假如決定出該壓縮器爲可用則用以壓縮該第一韌體變 數並將之儲存於開機韌體裝置,否則加該壓縮器不可用時 則以未經壓縮之格式將該韌體變數儲存於該開機韌體裝置 中〇 2 8 ·如申請專利範圍第2 7項之電腦系統,其中該指令 的一部份包含一解壓縮器用以將經壓縮之韌體變數予以解 壓縮。 29.如申請專利範圍第28項之電腦系統,其中該壓縮 器係以開機韌體裝置之非失誤容忍區塊而儲存,而該解壓 縮器係以開機韌體裝置之非更新區塊而儲存。 3 0.如申請專利範圍第27項之電腦系統,其中該指令 之執行進一步包含以下之操作: 接收一來自於請求器之請求,以讀取除存在開機韌體 裝置之韌體變數; 決定該韌體變數係以經壓縮或是爲經壓縮之形式而儲 存;以及 假如該韌體變數係以經壓縮之形式而儲存時將該韌體 變數解壓縮以產生一未經壓縮之韌體變數並將該爲經壓縮 之韌體變數送入至該請求器,否則當該韌體變數係以未經 壓縮形式儲存時將該韌體變數送入至該請求器。
TW093115365A 2003-06-16 2004-05-28 Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan TWI247489B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/462,996 US20050010811A1 (en) 2003-06-16 2003-06-16 Method and system to support network port authentication from out-of-band firmware

Publications (2)

Publication Number Publication Date
TW200518480A TW200518480A (en) 2005-06-01
TWI247489B true TWI247489B (en) 2006-01-11

Family

ID=33551376

Family Applications (1)

Application Number Title Priority Date Filing Date
TW093115365A TWI247489B (en) 2003-06-16 2004-05-28 Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan

Country Status (5)

Country Link
US (2) US20050010811A1 (zh)
EP (1) EP1634170B1 (zh)
CN (1) CN1809813B (zh)
TW (1) TWI247489B (zh)
WO (1) WO2005002060A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI407371B (zh) * 2010-06-07 2013-09-01 Hon Hai Prec Ind Co Ltd 嵌入式網路設備及其更新韌體的方法
TWI499977B (zh) * 2011-09-30 2015-09-11 Intel Corp 儲存bios於非揮發性隨機存取記憶體的裝置、方法及系統
US9378133B2 (en) 2011-09-30 2016-06-28 Intel Corporation Autonomous initialization of non-volatile random access memory in a computer system
US9529708B2 (en) 2011-09-30 2016-12-27 Intel Corporation Apparatus for configuring partitions within phase change memory of tablet computer with integrated memory controller emulating mass storage to storage driver based on request from software
US11132298B2 (en) 2011-09-30 2021-09-28 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050091191A1 (en) * 2003-09-24 2005-04-28 Greg Miller System and method for managing and utilizing information
US8809705B2 (en) * 2007-12-04 2014-08-19 General Electric Company Device and method for switching electrical energy
US7552475B2 (en) * 2004-04-09 2009-06-23 Hewlett-Packard Development Company, L.P. Systems and methods for securing ports
US8041742B1 (en) 2004-12-20 2011-10-18 American Megatrends, Inc. Method, system, and apparatus for providing generic database services within an extensible firmware interface environment
US7269534B2 (en) * 2005-03-11 2007-09-11 Dell Products L.P. Method to reduce IPMB traffic and improve performance for accessing sensor data
US7733906B2 (en) * 2005-06-30 2010-06-08 Intel Corporation Methodology for network port security
US20070006294A1 (en) * 2005-06-30 2007-01-04 Hunter G K Secure flow control for a data flow in a computer and data flow in a computer network
CN100418033C (zh) * 2005-09-23 2008-09-10 联想(北京)有限公司 一种底层身份认证的计算机系统和方法
US7969966B2 (en) * 2005-12-19 2011-06-28 Alcatel Lucent System and method for port mapping in a communications network switch
US7734934B2 (en) * 2005-12-20 2010-06-08 Intel Corporation Seamless data migration
US20070172063A1 (en) * 2006-01-20 2007-07-26 Microsoft Corporation Out-Of-Band Authentication for Automated Applications ("BOTS")
US20070226724A1 (en) * 2006-03-24 2007-09-27 Mediatek Inc. Method and apparatus for firmware execution and provision
US8818322B2 (en) * 2006-06-09 2014-08-26 Trapeze Networks, Inc. Untethered access point mesh system and method
US9258702B2 (en) 2006-06-09 2016-02-09 Trapeze Networks, Inc. AP-local dynamic switching
US7873807B1 (en) * 2006-07-28 2011-01-18 American Megatrends, Inc. Relocating a program module from NVRAM to RAM during the PEI phase of an EFI-compatible firmware
US7793101B2 (en) * 2006-10-19 2010-09-07 Novell, Inc. Verifiable virtualized storage port assignments for virtual machines
US20080162916A1 (en) * 2006-12-31 2008-07-03 Sandisk Corp. Portable Multi-Platform Booting
US7925875B2 (en) * 2006-12-31 2011-04-12 Sandisk Corporation Systems and methods for identifying and booting a computer architecture
US8156516B2 (en) * 2007-03-29 2012-04-10 Emc Corporation Virtualized federated role provisioning
US7991932B1 (en) 2007-04-13 2011-08-02 Hewlett-Packard Development Company, L.P. Firmware and/or a chipset determination of state of computer system to set chipset mode
US20090083725A1 (en) * 2007-09-20 2009-03-26 Zhenghong Wang Firmware upgrading method for an interface card
US8953795B2 (en) * 2007-11-30 2015-02-10 Sony Corporation Forensic decryption tools
DE102008010556A1 (de) * 2008-02-22 2009-09-03 Robert Bosch Gmbh Verfahren und Vorrichtung zum Speichern von Informationsdaten
US7984285B2 (en) 2008-02-26 2011-07-19 Dell Products L.P. Information handling system port security
US8732829B2 (en) * 2008-04-14 2014-05-20 Tdi Technologies, Inc. System and method for monitoring and securing a baseboard management controller
CN101339597B (zh) * 2008-08-28 2011-10-05 飞天诚信科技股份有限公司 一种升级读写器固件的方法、系统和设备
US8001581B2 (en) * 2008-12-17 2011-08-16 Dell Products L.P. Methods and systems for embedded user authentication and/or providing computing services using an information handling system configured as a flexible computing node
US8245053B2 (en) * 2009-03-10 2012-08-14 Dell Products, Inc. Methods and systems for binding a removable trusted platform module to an information handling system
US8438423B1 (en) * 2009-03-31 2013-05-07 American Megatrends, Inc. Invalid setup recovery
US8526290B2 (en) * 2009-08-17 2013-09-03 Mediatek Inc. Data compression/decompression method, data decompression method, and optical disc drive utilizing the method
JP5626786B2 (ja) 2010-11-09 2014-11-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウエア開発支援方法とソフトウエア開発支援装置とソフトウエア開発支援プログラム
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US8924737B2 (en) 2011-08-25 2014-12-30 Microsoft Corporation Digital signing authority dependent platform secret
US8866649B2 (en) * 2011-09-14 2014-10-21 Netapp, Inc. Method and system for using non-variable compression group size in partial cloning
US20130275661A1 (en) * 2011-09-30 2013-10-17 Vincent J. Zimmer Platform storage hierarchy with non-volatile random access memory with configurable partitions
WO2013048493A1 (en) 2011-09-30 2013-04-04 Intel Corporation Memory channel that supports near memory and far memory access
EP2807565A4 (en) * 2012-01-29 2015-12-02 Thomson Licensing COMPRESSED FLASH INSTRUMENT CACHING METHOD FOR FLASH / RAM LIMIT DEVICE ARCHITECTURES
US9128798B2 (en) * 2012-10-17 2015-09-08 Movimento Group Module updating device
US20140215170A1 (en) * 2013-01-31 2014-07-31 Futurewei Technologies, Inc. Block Compression in a Key/Value Store
US10055207B2 (en) * 2013-03-13 2018-08-21 Vmware, Inc. Persistent variables in programming languages
US9477848B2 (en) * 2013-03-15 2016-10-25 Insyde Software Corp. System and method for managing and diagnosing a computing device equipped with unified extensible firmware interface (UEFI)-compliant firmware
EP3063622A4 (en) * 2013-10-30 2017-07-05 Intel Corporation Platform non-volatile store management and platform configuration
US9703346B2 (en) 2014-06-23 2017-07-11 Intel Corporation Firmware interface with backup non-volatile memory storage
US9710185B2 (en) * 2014-07-10 2017-07-18 Samsung Electronics Co., Ltd. Computing system with partial data computing and method of operation thereof
US9684667B2 (en) * 2014-08-05 2017-06-20 Dell Products L.P. System and method of optimizing the user application experience
US9658860B2 (en) * 2014-08-05 2017-05-23 Dell Products L.P. System and method for optimizing bootup performance
US10394479B2 (en) 2015-08-20 2019-08-27 Micron Technology, Inc. Solid state storage device with quick boot from NAND media
US9747041B2 (en) 2015-12-23 2017-08-29 Intel Corporation Apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device
US10007606B2 (en) 2016-03-30 2018-06-26 Intel Corporation Implementation of reserved cache slots in computing system having inclusive/non inclusive tracking and two level system memory
US10185619B2 (en) 2016-03-31 2019-01-22 Intel Corporation Handling of error prone cache line slots of memory side cache of multi-level system memory
US10126136B2 (en) 2016-06-14 2018-11-13 nuTonomy Inc. Route planning for an autonomous vehicle
US10309792B2 (en) 2016-06-14 2019-06-04 nuTonomy Inc. Route planning for an autonomous vehicle
US11092446B2 (en) 2016-06-14 2021-08-17 Motional Ad Llc Route planning for an autonomous vehicle
US10120806B2 (en) 2016-06-27 2018-11-06 Intel Corporation Multi-level system memory with near memory scrubbing based on predicted far memory idle time
US10829116B2 (en) 2016-07-01 2020-11-10 nuTonomy Inc. Affecting functions of a vehicle based on function-related information about its environment
US10857994B2 (en) 2016-10-20 2020-12-08 Motional Ad Llc Identifying a stopping place for an autonomous vehicle
US10331129B2 (en) 2016-10-20 2019-06-25 nuTonomy Inc. Identifying a stopping place for an autonomous vehicle
US10473470B2 (en) 2016-10-20 2019-11-12 nuTonomy Inc. Identifying a stopping place for an autonomous vehicle
US10681513B2 (en) 2016-10-20 2020-06-09 nuTonomy Inc. Identifying a stopping place for an autonomous vehicle
US10108485B2 (en) * 2016-12-15 2018-10-23 Dell Products L.P. Method for automatic correction of nonvolatile memory in information handling systems
US10915453B2 (en) 2016-12-29 2021-02-09 Intel Corporation Multi level system memory having different caching structures and memory controller that supports concurrent look-up into the different caching structures
US10445261B2 (en) 2016-12-30 2019-10-15 Intel Corporation System memory having point-to-point link that transports compressed traffic
US11682766B2 (en) * 2017-01-27 2023-06-20 Nec Corporation Silicone ball containing electrode and lithium ion battery including the same
US10304814B2 (en) 2017-06-30 2019-05-28 Intel Corporation I/O layout footprint for multiple 1LM/2LM configurations
US10839080B2 (en) * 2017-09-01 2020-11-17 Microsoft Technology Licensing, Llc Hardware-enforced firmware security
US11188467B2 (en) 2017-09-28 2021-11-30 Intel Corporation Multi-level system memory with near memory capable of storing compressed cache lines
US10860244B2 (en) 2017-12-26 2020-12-08 Intel Corporation Method and apparatus for multi-level memory early page demotion
CN109032623A (zh) * 2018-07-27 2018-12-18 郑州云海信息技术有限公司 一种bios镜像的初始化方法及bios镜像
US10613850B1 (en) * 2018-10-16 2020-04-07 American Megatrends International, Llc Performant and secure storage and retrieval of firmware variables
US11055228B2 (en) 2019-01-31 2021-07-06 Intel Corporation Caching bypass mechanism for a multi-level memory
WO2022046105A1 (en) * 2020-08-31 2022-03-03 Hewlett-Packard Development Company, L.P. Bios update

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5706460A (en) * 1991-03-19 1998-01-06 The United States Of America As Represented By The Secretary Of The Navy Variable architecture computer with vector parallel processor and using instructions with variable length fields
US5752066A (en) * 1992-01-06 1998-05-12 International Business Machines Corporation Data processing system utilizing progammable microprogram memory controller
SE515082C2 (sv) 1993-03-19 2001-06-05 Icl Systems Ab Förfarande och arrangemang vid ett datorsystem
US5867712A (en) * 1993-04-05 1999-02-02 Shaw; Venson M. Single chip integrated circuit system architecture for document instruction set computing
DE69435090T2 (de) * 1993-12-01 2009-06-10 Marathon Technologies Corp., Stow Rechnersystem mit Steuereinheiten und Rechnerelementen
US5621885A (en) * 1995-06-07 1997-04-15 Tandem Computers, Incorporated System and method for providing a fault tolerant computer program runtime support environment
US5761536A (en) * 1996-08-21 1998-06-02 International Business Machines Corporation System and method for reducing memory fragmentation by assigning remainders to share memory blocks on a best fit basis
JP3773607B2 (ja) * 1996-11-28 2006-05-10 Necエレクトロニクス株式会社 フラッシュeeprom内蔵マイクロコンピュータ
CN1186277A (zh) 1996-12-25 1998-07-01 苏守成 文件加密方法及装置
US5999989A (en) * 1997-06-17 1999-12-07 Compaq Computer Corporation Plug-and-play
US5901310A (en) * 1997-09-11 1999-05-04 Ati Technologies, Inc. Storing firmware in compressed form
US6205548B1 (en) * 1998-07-31 2001-03-20 Intel Corporation Methods and apparatus for updating a nonvolatile memory
US6661845B1 (en) * 1999-01-14 2003-12-09 Vianix, Lc Data compression system and method
CA2267484C (en) * 1999-03-30 2002-03-05 Object Technology International Inc. Reclaiming memory from deleted applications
US6681310B1 (en) * 1999-11-29 2004-01-20 Microsoft Corporation Storage management system having common volume manager
JP3838840B2 (ja) * 2000-01-06 2006-10-25 Necエレクトロニクス株式会社 コンピュータ
US7151800B1 (en) * 2000-01-15 2006-12-19 Sony Corporation Implementation of a DV video decoder with a VLIW processor and a variable length decoding unit
US6622302B1 (en) * 2000-06-30 2003-09-16 Lsi Logic Corporation Methods and apparatus for dynamic version transition of management applications and attached subsystems
US6832373B2 (en) * 2000-11-17 2004-12-14 Bitfone Corporation System and method for updating and distributing information
WO2002084484A2 (en) * 2001-04-18 2002-10-24 Domosys Corporation Method of remotely upgrading firmware in field-deployed devices
US6959337B2 (en) * 2001-04-23 2005-10-25 Hewlett-Packard Development Company, L.P. Networked system for assuring synchronous access to critical facilities
JP2002358207A (ja) 2001-05-31 2002-12-13 Yamaha Corp ファームウェア組込機器およびファームウェア組込機器のブートプログラム
US7299463B2 (en) * 2001-09-28 2007-11-20 Intel Corporation Method for atomically updating a plurality of files
US7193541B2 (en) * 2001-12-04 2007-03-20 Sun Microsystems, Inc. Representation of sign in encoding scheme
US7206953B1 (en) * 2001-12-17 2007-04-17 Adaptec, Inc. Asynchronous fault-tolerant enclosure services interface
US7562208B1 (en) * 2002-02-07 2009-07-14 Network Appliance, Inc. Method and system to quarantine system software and configuration
US7392518B1 (en) * 2002-02-21 2008-06-24 3Com Corporation Robust remote flash ROM upgrade system and method
US7028215B2 (en) * 2002-05-03 2006-04-11 Hewlett-Packard Development Company, L.P. Hot mirroring in a computer system with redundant memory subsystems
JP4329311B2 (ja) * 2002-06-28 2009-09-09 富士ゼロックス株式会社 画像形成装置及び方法並びに画像形成システム
US7222258B2 (en) * 2002-12-18 2007-05-22 Intel Corporation Compressing a firmware image
US7747994B1 (en) * 2003-06-04 2010-06-29 Hewlett-Packard Development Company, L.P. Generator based on multiple instruction streams and minimum size instruction set for generating updates to mobile handset
US7222339B2 (en) * 2003-06-13 2007-05-22 Intel Corporation Method for distributed update of firmware across a clustered platform infrastructure
US7886093B1 (en) * 2003-07-31 2011-02-08 Hewlett-Packard Development Company, L.P. Electronic device network supporting compression and decompression in electronic devices
EP1660996A2 (en) * 2003-09-03 2006-05-31 Bitfone Corporation Tri-phase boot process in electronic devices
US20050120081A1 (en) * 2003-09-26 2005-06-02 Ikenn Amy L. Building control system having fault tolerant clients
TWI272534B (en) * 2003-12-31 2007-02-01 Asustek Comp Inc Firmware update processing method and application program
US20050273584A1 (en) * 2004-06-07 2005-12-08 Wisecup George D Locating environment variables in non-volatile memory
US7389490B2 (en) * 2004-07-29 2008-06-17 International Business Machines Corporation Method, system and program product for providing a configuration specification language supporting selective presentation of configuration entities
JP4778247B2 (ja) * 2005-03-17 2011-09-21 富士通株式会社 リモートブート方法、機構及びプログラム
US7558804B1 (en) * 2005-08-26 2009-07-07 American Megatrends, Inc. Method, apparatus, and computer-readable medium for space-efficient storage of variables in a non-volatile computer memory
US7805245B2 (en) * 2007-04-18 2010-09-28 Honeywell International Inc. Inertial measurement unit fault detection isolation reconfiguration using parity logic

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI407371B (zh) * 2010-06-07 2013-09-01 Hon Hai Prec Ind Co Ltd 嵌入式網路設備及其更新韌體的方法
TWI499977B (zh) * 2011-09-30 2015-09-11 Intel Corp 儲存bios於非揮發性隨機存取記憶體的裝置、方法及系統
US9378133B2 (en) 2011-09-30 2016-06-28 Intel Corporation Autonomous initialization of non-volatile random access memory in a computer system
US9430372B2 (en) 2011-09-30 2016-08-30 Intel Corporation Apparatus, method and system that stores bios in non-volatile random access memory
US9529708B2 (en) 2011-09-30 2016-12-27 Intel Corporation Apparatus for configuring partitions within phase change memory of tablet computer with integrated memory controller emulating mass storage to storage driver based on request from software
US10001953B2 (en) 2011-09-30 2018-06-19 Intel Corporation System for configuring partitions within non-volatile random access memory (NVRAM) as a replacement for traditional mass storage
US10055353B2 (en) 2011-09-30 2018-08-21 Intel Corporation Apparatus, method and system that stores bios in non-volatile random access memory
US11132298B2 (en) 2011-09-30 2021-09-28 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes

Also Published As

Publication number Publication date
CN1809813B (zh) 2013-10-30
US7934209B2 (en) 2011-04-26
WO2005002060A3 (en) 2005-12-01
EP1634170A2 (en) 2006-03-15
EP1634170B1 (en) 2013-04-10
TW200518480A (en) 2005-06-01
WO2005002060A2 (en) 2005-01-06
US20050010811A1 (en) 2005-01-13
US20070033322A1 (en) 2007-02-08
CN1809813A (zh) 2006-07-26

Similar Documents

Publication Publication Date Title
TWI247489B (en) Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan
JP5403771B2 (ja) ファームウェアに安全なアップデートを提供するシステム及び方法
RU2439678C2 (ru) Начальная загрузка операционной системы раздельными стадиями
TW494341B (en) Displaying images during boot-up and shutdown
US6148387A (en) System and method for securely utilizing basic input and output system (BIOS) services
TW591416B (en) Localized read-only storage device for distributing files over a network
TWI250451B (en) Method and system for creating and employing an operating system having selected functionality
CN102081534B (zh) 自动模块化且安全的引导固件更新
JP4066325B2 (ja) ユーザデータのバックアップ方法
US7313684B2 (en) Method and apparatus for booting a computer system
US20040172578A1 (en) Method and system of operating system recovery
Zimmer et al. Beyond BIOS: developing with the unified extensible firmware interface
CN102193817B (zh) 简化物理和虚拟部署的管理
US7827376B2 (en) System and method for protecting hidden protected area of HDD during operation
JP4863154B2 (ja) 起動イメージ提供システム及びその動作方法、ブートノード装置、ブートサーバ装置並びにその動作プログラム
US7188278B1 (en) Method, system, and apparatus for utilizing compressed program code in the boot block portion of a computer BIOS
JPWO2011142095A1 (ja) 情報処理装置および情報処理方法
GB2434667A (en) Maintaining System Management BIOS in a computer system
WO2021120830A1 (zh) 操作系统的启动方法、装置、计算机设备及存储介质
US20100095104A1 (en) Administering Computer Processor Execution Of Basic Input/Output Services Code
CN113626822A (zh) 集成LinuxBoot的UEFI固件启动方法及装置
JP4759941B2 (ja) 起動イメージ提供システム及び方法、ブートノード装置、ブートサーバ装置並びにプログラム
US6795891B2 (en) System and method of composing and decomposing a ROM image
JP4149434B2 (ja) ファイル・オープン時にファイル・ロックが実施されるオペレーティング・システムを有するコンピュータ・システム内の少なくとも1つのターゲット・ファイルにアクセスする方法およびシステム
TW497076B (en) Method and apparatus for execution of an application during computer pre-boot operation and post-boot under normal OS control

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees