JP5174110B2 - 自動化されたモジュール型のセキュアな起動ファームウェアの更新 - Google Patents

自動化されたモジュール型のセキュアな起動ファームウェアの更新 Download PDF

Info

Publication number
JP5174110B2
JP5174110B2 JP2010214374A JP2010214374A JP5174110B2 JP 5174110 B2 JP5174110 B2 JP 5174110B2 JP 2010214374 A JP2010214374 A JP 2010214374A JP 2010214374 A JP2010214374 A JP 2010214374A JP 5174110 B2 JP5174110 B2 JP 5174110B2
Authority
JP
Japan
Prior art keywords
module
boot firmware
firmware
updated
firmware code
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2010214374A
Other languages
English (en)
Other versions
JP2011118873A (ja
Inventor
プラカシュ、ギャン
ダデュ、サウラブ
アイシ、セリム
コスラビ、ホルムズド
グレンディニング、ダンカン
ローデス、クリス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
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 JP2011118873A publication Critical patent/JP2011118873A/ja
Application granted granted Critical
Publication of JP5174110B2 publication Critical patent/JP5174110B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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
    • G06F9/4406Loading of operating system
    • G06F9/4408Boot device selection
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management

Landscapes

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

Description

<著作権に関する注意書>
ここには、著作権保護の対象材料が含まれている。著作権保持者は、本特許の開示の特許商標庁におけるファイルまたは記録の複写には何人に対しても異議を唱えないが、それ以外の全ての著作権を保留する。
本開示は概して、コンピュータシステムにおけるBIOSおよび起動ファームウェアコードの維持に係る。
元来はIBM PCに互換性を有するコンピュータに向けて開発されたものではあるが、基本入出力システム(BIOS)(システムBIOSとも称される)は、事実上、ファームウェアインタフェースを定義する規格である。BIOSは、電源投入されるとPCが実行する最初のコードとして設計される起動ファームウェアである。当初想定されていたBIOSの機能は、ビデオ表示カード、ハードディスク、およびフロッピー(登録商標)ディスク、およびその他のハードウェア等のシステムデバイスを識別、テスト、および初期化するという機能である。これによりマシンが既知の状態となり、互換性のある媒体上のオペレーティングシステム等のソフトウェアをロード、実行することができ、ひいてはPCの任意の制御を行うことができる。この処理は起動(bootstrappingを短縮してbooting、booting up等と称される)として知られている。
BIOSプログラムは、キーボード、テキスト表示機能等の周辺機器を作動させ制御するべく呼び出すことのできる基本入出力機能の小さいライブラリを提供する。システムに電源投入がなされると、BIOSはシステム構成設定をチェックして、ハードウェアコンポーネントとオペレーティングシステムとの間でトランスレータとして作動するプログラムをメモリにロードする。例えば、ユーザがキーボード上のキーを押下すると、信号を受けたキーボード割り込みハンドラはその旨をプロセッサに伝え、オペレーティングシステムに渡す。
BIOSは、まだプロセッサが16ビットのプロセッサモードで機能しており、アドレス可能なメモリが1メガバイトに制限され、コードがIBM PC ATハードウェアの欠陥を反映していた頃のIBM PC用に開発された。後に開発された32ビットプロセッサ用オペレーティングシステムはI/Oを処理するデバイスドライバを含むようになり、BIOSが提供する16ビットのランタイムインタフェース呼び出しに依存しなくなった。これらデバイスドライバの多くは、プラットフォームファームウェアが提供し、オペレーティングシステムのロード前のBIOS初期化中にメモリにロードされる。EFI(Extensible Firmware Interface)は、オペレーティングシステムとプラットフォームファームウェアとの間のソフトウェアインタフェースを定義する仕様である。EFIは、様々なデバイス、バス、ブロック、およびファイルのサービス、並びに、日付、時間、およびNVRAMサービス等のランタイムサービス上のテキストおよびグラフィックコンソールサポートを含む起動サービスを定義している。EFI仕様のさらなる情報については、URL(developer-intel-com/technology/efi/main_specification.htm)を参照されたい(本明細書ではURLを接頭の「http://」を省き、「.」という文字を「-」で置き換えて記すことで、本書類からのアクティブなハイパーリンクを回避するようにしている)。
本発明の一実施形態における自動化されたモジュール型起動ファームウェア更新を可能とするよう構成されたシステムのブロック図である。 本発明の一実施形態における自動化されたモジュール型起動ファームウェア更新を可能とする図1のシステムのさらなる詳細を示す。 本発明の一実施形態における自動化されたモジュール型起動ファームウェア更新を行う、起動ファームウェアモジュール更新マネージャと企業起動ファームウェアモジュール更新サービスとの間の相互作用を示すフロー図である。 本発明の一実施形態のコンポーネントが動作する起動シーケンスの各段階を示す。 本発明の一実施形態におけるシステムを起動するときのモジュール型起動ファームウェア更新を行う方法のフローチャートである。 本発明の一実施形態において、実自動化されたモジュール型起動ファームウェア更新が実行された後のシステムの起動を示すフロー図である。 本発明の一実施形態における起動ファームウェアモジュール更新マネージャを実装する仮想マシン環境を示す。
本発明の実施形態は、モジュール型起動ファームウェア更新を実行する方法、装置、システム、およびコンピュータプログラムプロダクトを提供しうる。BIOSおよびプラットフォームファームウェア更新は従来、BIOS/起動ファームウェアコードモジュールのモノリシックな画像を提供して、ローカルユーザに対してシステムを再起動させ、BIOS/起動ファームウェア更新をインストールさせることにより行われてきた。
一実施形態では、方法は、更新起動ファームウェアコードモジュールを受信して、システムの複数の起動ファームウェアコードモジュールのうちのある1つの起動ファームウェアコードモジュールを置き換えて、システムの起動時に、該1つの起動ファームウェアコードモジュールではなくて、自動的に更新された起動ファームウェアコードモジュールのほうをロードすることを含む。この更新された起動ファームウェアコードモジュールは、システムの起動時に、該1つの起動ファームウェアコードモジュールのみを置き換え、システムの起動ファームウェアコードモジュール全部を置き換えることはしない。
更新された起動ファームウェアコードモジュールを自動的にロードすることは、システムのユータの動作なしに行うことができる。一実施形態では、方法は、ファームウェアボリュームの更新パーティションに、更新された起動ファームウェアコードモジュールを書き込むことを含み、ファームウェアボリュームの更新パーティションは、システムの起動時に起動ファームウェアコードモジュールを含むファームウェアボリュームの別のパーティションとともに読み出される。方法は、更新された起動ファームウェアモジュールをファームウェアボリュームの更新パーティションに書き込む前に、更新された起動ファームウェアモジュールの整合性を確かめることを含む。
一実施形態では、更新された起動ファームウェアモジュールは、マイクロプロセッサに連結されたバンド外通信チャネルを介してサーバにより提供される。方法はさらに、更新された起動ファームウェアモジュールの受信前に、サーバの整合性を認証することを含んでよい。更新された起動ファームウェアモジュールのロード中に問題が生じた場合、方法は、元の起動ファームウェアモジュールをロードさせることを含んでよい。一実施形態では、方法はさらに、システムの起動後に、更新された起動ファームウェアモジュールのインストールステータスを、該更新された起動ファームウェアモジュールの送信元であるサーバに提供することを含む。
本発明は、従来のBIOS/プラットフォームファームウェアのモノリシックな画像の更新処理を向上させ、BIOSおよびプラットフォームファームウェアのモジュラー型のセキュアな更新を行う。本発明では、特定のBIOS/プラットフォームファームウェアコードモジュール/ドライバまたはアプリケーションに対して更新を行うことができる。プラットフォームファームウェアが益々高度になり、セキュリティフィーチャ等の重要な機能を提供するようになると、BIOSおよびプラットフォームファームウェアの欠陥はこのようにして急速に訂正できるようになるので、元の機器製造業者が、システムのフラッシュメモリのBIOS/プラットフォームファームウェア領域全体に対して新たなモノリシックな画像の提供を必要とせず、企業管理サーバによる提供が可能となる。
本発明の明細書における「一実施形態(one embodiment)、(an embodiment)」といった言い回しは、ある実施形態で記載される特定の特徴、構造、または特性が、本発明の少なくとも1つの実施形態に含まれることを示す。従って明細書の随所に記載されている「一実施形態では(in one embodiment)」「一実施形態において(according to one embodiment)」といった表現は、必ずしも全てが同じ実施形態のことではない。
説明をし易くするべく、特定の構成および詳細を示すことで本発明の完全な理解を促している箇所がある。しかし本発明の実施形態をここに記載されている特定の詳細なしに実施することができることは当業者には明らかである。さらに、公知の特徴は省略または簡略化することで、本発明を曖昧にしないようにしている箇所もある。様々な例を本記載において提供する。これらはあくまで本発明の特定の実施形態を記載したものである。本発明の範囲はこれらの例に限定はされない。
一実施形態においては、企業プラットフォーム管理サービスから起動ファームウェアコードモジュール更新を受信するための隔離且つ制御された環境を提供するセキュアなパーティション内に、モジュール型起動ファームウェア更新サービスを提供する。このセキュアなパーティションは、システムの起動ファームウェアコードの更新が、認証当局発行のものであることを認証する。
起動ファームウェアモジュール更新サービスの、隔離されセキュアな環境は、完全に分割されたハードウェアパーティション(例えば、インテル(登録商標)コーポレーションのME(Manageability Engine)、AMT(Active Management Technologies)、PRL(Platform Resource Layer)および/または他の互換性を有する技術または類似した技術)および/または仮想化パーティション(例えば、インテル(登録商標)コーポレーションのVTスキーム(Virtualization Technology scheme))を含む様々な異なる種類のパーティションを含んでよい。当業者であれば、仮想化されたホストもME、AMT、およびPRL技術の実装に利用可能であることを理解するであろう(図7を参照して以下で詳述する)。
図1は、本発明の一実施形態におけるモジュール型起動ファームウェア更新を可能とするよう構成されたシステムのブロック図である。プラットフォーム100(ホストコンピュータシステムに相当する)は、デスクトップ管理インタフェース(DMI)111経由でチップセット120に接続されたプロセッサ110を含む。プロセッサ110は、プラットフォーム100に処理電力を供給し、シングルコアまたはマルチコアプロセッサであってよく、プラットフォーム100に複数のプロセッサが含まれてよい。プロセッサ110は、1以上のシステムバス、通信経路または媒体(不図示)を介してプラットフォーム100の他のコンポーネントと接続されてよい。
チップセット120は、ME130を含み、ME130はホストプロセッサ110とは独立して動作する埋め込みマイクロプロセッサとして実装されて、プラットフォーム100の構成および動作を管理する。一実施形態では、プロセッサ110がホストオペレーティングシステム(不図示)の直下で動作し、一方、ME130は、ホストオペレーティングシステムがアクセスすることのできないセキュアで隔離された環境を提供する。一実施形態では、ME130はユーザを認証し、周辺デバイスへのアクセスを制御し、プラットフォーム100の記憶デバイスに格納されているデータを保護する暗号鍵を管理し、ネットワークコントローラ160を介して企業サービス170へのインタフェースを提供する。ME130は、企業サービス170を利用して、本発明の一実施形態における起動ファームウェアモジュール更新のサービスの提供を含むプラットローム100等のプラットフォームの構成および管理の企業全体のポリシーとの一貫性を維持する。起動ファームウェアモジュール更新マネージャは、ME130により実行されるファームウェアとして実装することができる。
ME130と企業サービス170との間の通信は、バンド外通信チャネル171を介して行われる。一実施形態では、バンド外通信チャネル171は、ホストシステム上のME130と、ホストシステムを管理する企業サービス170との間のセキュアな通信チャネルである。プラットフォーム100と企業サービス170との間でセキュアな通信を行わせる暗号/復号鍵が、チップセット120およびME130の製造中に図1のフラッシュメモリ190に格納されてよい。
図1に示す実施形態では、ME130が、MECI(Manageability Engine Controller Interface)131を介してマイクロコントローラ140に連結される。一実施形態では、マイクロコントローラ140は、格納コマンド復号化およびその他の加速動作を行う汎用コントローラである。示されている実施形態では、ME130がマイクロコントローラ140の振る舞いを制御し、マイクロコントローラ140が今度は格納コントローラ150の振る舞いを制御する。マイクロコントローラ140は、格納コントローラ150のドライバ、および、ディスク暗号機能に関するロジックを含む。格納コントローラ150は、記憶デバイス152等の記憶デバイス用のコントローラであり、マイクロコントローラ140およびME130に、記憶デバイス152に格納されているデータへのアクセスを可能とする。
プラットフォーム100はさらに、DRAM112、チップセット120内のSRAM122、フラッシュメモリ190、および、格納コントローラ150がアクセス可能な記憶デバイス152等のメモリデバイスを含む。これらメモリデバイスは、RAMおよびROMを含んでよい。本開示においては、ROMという用語は、通常、EPROM、EEPROM(登録商標)、フラッシュROM、フラッシュメモリ等の不揮発性メモリデバイスを意味する。記憶デバイス152は、集積ドライブエレクトロニクス(IDE)ハードドライブ等の大容量記憶デバイス、および/または、フロッピー(登録商標)ディスク、光記憶デバイス、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、生物学的記憶装置等の他のデバイスまたは媒体を含んでよい。
フラッシュメモリ190は、フラッシュインタフェース191を解してチップセット120からアクセス可能である。記憶デバイス152および/またはメモリデバイスDRAM112、SRAM122、およびフラッシュメモリ190に格納されるデータは暗号化されていてよい。
フラッシュメモリ190は、プラットフォーム100を初期化するのに利用されるファームウェアを含む。この初期化ファームウェアは、システムコンポーネントハードウェア(例えばビデオ表示カードおよびハードディスク)、および、ME130を含む幾らかのその他のハードウェアデバイスを識別および初期化するBIOSファームウェア192を含む。BIOSファームウェア192は、プラットフォーム100のシステムコンポーネントハードウェアを準備して、既知の低容量状態で動作させ、オペレーティングシステムを含む様々な媒体に格納されている他のソフトウェアプログラムがロード、実行、およびプラットフォーム100の制御下におかれるようにする。BIOSファームウェア192は、起動処理中にME130の初期構成をイネーブルするBIOS/ME通信モジュール193を含む。一実施形態では、ME130はBIOS/ME通信モジュール193に登録を行って、オペレーティングシステムがプラットフォーム100にロードされる直前に通知を受け取るようにすることができる。この通知により、ME130は、一定の命令を実行して、オペレーティングシステムのロードに備えることができる。
フラッシュメモリ190はさらに、ネットワークコントローラ160を構成するネットワークコントローラファームウェア195、および、チップセット120を構成するチップセットファームウェア196を含む。フラッシュメモリ190はさらにデータ領域198を含む。一実施形態では、データ領域198は暗号化されており、ME130によってのみ読み出し可能である。ME130がBIOS/起動ファームウェアモジュール更新管理サービスの提供に利用する情報は、フラッシュメモリ190のデータ領域198に、または記憶デバイス152上に格納されていてよい。
従来、プラットフォームを初期化して、BIOSを開始させ、システムにオペレーティングシステムロードの準備をさせる全てのファームウェアは、フラッシュメモリ190等の不揮発性記憶装置にロードされるモノリシックな画像として提供されてきた。例えば、フラッシュメモリ190は、製造業者から、BIOSファームウェア192のモノリシックな画像全体を含むよう準備される。起動ファームウェアの問題の是正には、BIOSファームウェア192のみの1つのコードモジュールに対する更新が必要である場合、BIOSファームウェア192のモノリシックな画像全体がフラッシュメモリ190にダウンロードされる必要がある。
プロセッサ110は、さらに、ビデオコントローラ、SCSI(small computer system interface)コントローラ、ネットワークコントローラ、USB(universal serial bus)コントローラ、入力デバイス(キーボード、マウス等)といったさらなるコンポーネントと通信可能に連結されてよい。プラットフォーム100はさらに、メモリコントローラハブ、入出力(I/O)コントローラハブ、PCIルートブリッジ等の1以上のブリッジまたはハブを含むことで、様々なシステムコンポーネントと通信可能に連結することができる。ここで利用する用語「バス」は、ポイントツーポイント通路の他にも共有通信経路のことを示すのに利用される。
例えばネットワークコントローラ160等の一部のコンポーネントは、バスと通信するためのインタフェース(例えばPCIコネクタ)を含むアダプタカードとして実装されてよい。一実施形態では、プログラム可能な、またはプラグラム不可能なロジックデバイスまたはアレイ、ASIC(特定用途向け集積回路)、埋め込みコンピュータ、スマートカード等のコンポーネントを用いて、1以上のデバイスを埋め込みコントローラとして実装することができる。
ここで利用される用語「処理システム」および「データ処理システム」は、単一のマシン、または、互いに協同して動作する通信可能に連結されたマシンまたはデバイスのシステムを幅広く含む概念である。例示的な処理システムには、これらに限定はされないが、分散型コンピューティングシステム、スーパコンピュータ、高性能コンピューティングシステム、コンピューティングクラスタ、メインフレームコンピュータ、ミニコンピュータ、クライアント−サーバシステム、パーソナルコンピュータ、ワークステーション、サーバ、ポータブルコンピュータ、ラップトップコンピュータ、タブレット、電話機、PDA(携帯情報端末)、ハンドヘルドデバイス、オーディオおよび/またはビデオデバイス等の娯楽デバイス、およびその他の情報処理送信デバイスが含まれる。
プラットフォーム100は、少なくとも部分的には、キーボード、マウス等の従来の入力デバイスからの入力により、および/または、別のマシン、計測生物学上のフィードバック、またはその他の入力ソースまたは信号から受信するコマンドにより制御されてよい。プラットフォーム100は、1以上の遠隔データ処理システム(不図示)への1以上の接続を、ネットワークインタフェースコントローラ(NIC)160、モデム、その他の通信ポートまたはカップリングを介して、利用することができる。
プラットフォーム100は、他の処理システム(不図示)に、物理および/または論理ネットワーク(例えばローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、イントラネット、インターネット等)により相互接続されてよい。ネットワークを必要とする通信は、様々な有線および/または無線の近接型または遠隔型のキャリアおよびプロトコル(無線周波数(RF)、衛星、マクロ波、IEEE802.11規格、ブルートゥース(登録商標)、光学、赤外線、ケーブル、レーザ等)を利用してよい。
図2は、本発明の一実施形態における自動化されたモジュール型起動ファームウェア更新を可能とする図1のME130および企業システム170のさらなる詳細を示す。ME130は、プラットフォーム100に対して自動化された起動ファームウェアモジュール更新を行うロジックを含み、バンド外通信チャネル171を介して企業サービス170の起動ファームウェアモジュール更新サービス270と通信する。
チップセット120内では、ME130が、図1のチップセットファームウェア196のロードのあとに示されている。ME130は、基本動作機能をME130に提供するMEカーネル210と、ネットワーク通信、セキュリティ、暗号、およびタイマサービス等の基本サービスを提供するME共通サービス220とを含む。ME130は、バンド外(OOB)通信モジュール230をさらに含む。OOB通信モジュール230は、プラットフォーム100のコンポーネントと、対応する企業サービス170のコンポーネントとの間を、ネットワークコントローラ160を介して通信させる。ME230はさらに、起動ファームウェアモジュール更新処理を管理する起動ファームウェアモジュール更新マネージャ240を含む(以下で詳述する)。
ME130はさらに、管理モジュール250、セキュリティモジュール255、および盗難検知モジュール260を含む。これらのモジュールを企業サービス170と共同して利用することで、プラットフォーム100等のプラットフォームの構成および管理の企業全体のポリシーとの一貫性が維持される。OOBサーバ通信モジュール230は、管理モジュール250、セキュリティモジュール255、および盗難検知モジュール260の間の、ネットワークコントローラ160を介した企業サービス170の対応するコンポーネント(不図示)との通信を可能とする。
本発明の一実施形態においては、起動ファームウェアモジュール更新マネージャ240は、起動ファームウェアモジュール更新サービス270と協同して、自動化されたモジュール型起動ファームウェア更新を可能とする。OOB通信モジュール230は、モジュール型起動ファームウェア更新マネージャ240と起動ファームウェアモジュール更新サービス270との間でネットワークコントローラ160を介した通信を行わせる。一実施形態では、バンド外通信チャネル171を利用して、更新された起動ファームウェアコードモジュールをプラットフォーム100へ転送する。示されている実施形態では、企業サービス170は、ホストシステムにインストールされている起動ファームウェアコードモジュールのバージョン、暗号鍵、その他の起動ファームウェアモジュール更新サービス270が利用するデータ等の情報を格納する企業データレポジトリ172を有する。起動ファームウェアモジュール更新マネージャ240および起動ファームウェアモジュール更新サービス270の動作については、さらに図3を参照して後述する。
図3は、本発明の一実施形態における自動化されたモジュール型起動ファームウェア更新を行う、起動ファームウェアモジュール更新マネージャと企業起動ファームウェアモジュール更新サービスとの間の相互作用を示すフロー図である。
図1および図2の企業サービス170は、プラットフォーム100等のプラットフォームの構成および管理の企業全体のポリシーとの一貫性を維持するよう動作する。企業サービス170およびプラットフォーム100のOOB通信チャネル171を介した通信中に、起動ファームウェアモジュール更新マネージャ240および起動ファームウェアモジュール更新サービス270は、プラットフォーム100上で起動ファームウェアコードモジュールに関する通信を行うことができる。
アクション3.1で、起動ファームウェアモジュール更新マネージャ240は、起動ファームウェア更新に関する照会を、起動ファームウェアモジュール更新サービス270に対して行う。アクション3.2で、プラットフォーム100に関する起動ファームウェアコードモジュールが更新されていた場合には、起動ファームウェアモジュール更新サービス270は、起動ファームウェア更新要求を、更新されたコードモジュール/ドライバとともに起動ファームウェアモジュール更新マネージャ240へ送る。図3は起動ファームウェアモジュール更新マネージャ240による通信開始が示されているが、本発明の範囲内には、起動ファームウェアモジュール更新マネージャ240と起動ファームウェアモジュール更新サービス270との間の通信が、起動ファームウェアモジュール更新サービス270のサーバ側から始めることも含まれる。
アクション3.3で、起動ファームウェアモジュール更新マネージャ240が更新されたコードモジュール/ドライバの整合性をチェックする(これには、更新要求が正当なものであることを確かめ、送り手の身元が起動ファームウェアモジュール更新サービス270であることを確かめることが含まれる)。一実施形態においては、起動ファームウェアモジュール更新マネージャ240は、更新されたコードモジュール/ドライバコンテンツからの署名を計算して、計算された署名を、更新されたモジュール/ドライバに付随する整合性保護(暗号化)マニフェスト内に起動ファームウェアモジュール更新サービス270が供給する署名と比較することにより、起動ファームウェア更新の整合性を検証する。この、コードモジュール/ドライバコンテンツに基づく署名の比較により、更新されたモジュール/ドライバが、起動ファームウェアモジュール更新サービス270からの送信中に傍受されなかったことが証明される。更新されたコードモジュール/ドライバはさらに暗号化により保護され、起動ファームウェアモジュール更新マネージャ240は、復号鍵を取得して、更新されたコードモジュール/ドライバを復号化する。一実施形態では、暗号/復号鍵は、チップセット120およびME130の製造中に図1のフラッシュメモリ190のデータ領域198に格納され、起動ファームウェアモジュール更新マネージャ240によりフラッシュメモリ190から取得される。
更新されたコードモジュール/ドライバの整合性がアクション3.3で確かめられた場合には、起動ファームウェアモジュール更新マネージャ240は、ファームウェアボリュームを、更新されたコードモジュール/ドライバによりアクション3.4で更新する。一実施形態では、更新されたコードモジュール/ドライバは、ファームウェアボリュームの別個の専用パーティションに配置されて、モジュール更新を行い、一方で、元の起動ファームウェアコードモジュールのモノリシックな画像は、ファームウェアボリュームの異なるパーティションに存在している。起動ファームウェアモジュール更新マネージャ240は、ファームウェアボリュームのパーティションを管理し、起動ファームウェアモジュール更新マネージャ240のみがファームウェアボリュームのモジュール更新パーティションに書き込みアクセスを有する。ファームウェアボリュームのモジュール更新パーティションも、更新されたコードモジュール/ドライバの識別子を格納し、更新されたコードモジュール/ドライバの識別子は、元のコードモジュール/ドライバの代わりに、更新されたコードモジュール/ドライバの利用を可能にする。
アクション3.5で、起動ファームウェアモジュール更新マネージャ240は、起動モジュール更新サービス270に、起動ファームウェア更新要求のステータスを通知する。更新されたコードモジュール/ドライバがファームウェアボリュームのモジュール更新パーティションにロードされると、システム起動時に自動的にロードされる。アクション3.6で、起動ファームウェアモジュール更新マネージャ240は、システムを再起動して、更新されたコードモジュール/ドライバを起動せよ、との要求を発行することができる。システム起動シーケンスについては図4を参照して後で詳述する。アクション3.6の結果行われるシステム起動シーケンス中に、起動ファームウェアモジュール更新ディスパッチャを呼び出して、元のコードモジュール/ドライバを、更新されたコードモジュール/ドライバで置き換えさせる。起動ファームウェアモジュール更新ディスパッチャが起動シーケンス中に行うアクションについては、図5および図6を参照してさらに後述する。
起動シーケンス中に、起動ファームウェアモジュール更新マネージャ240は、アクション3.7に示す起動ファームウェアモジュール更新サービス270へのメッセージにより通信することのできる情報を取得することができる。例えば、ドライバディスパッチャ(図4および図6を参照して後述する)が、起動ファームウェアモジュール更新マネージャ240に、更新されたコードモジュール/ドライバの処理が開始されるときを通知することができる。アクション3.8で、様々な起動ファームウェアコードモジュールがメモリにロードされた後で、BIOS310は、更新されたコードモジュール/ドライバで起動させる試みを行う。BIOS310が起動に失敗すると、BIOS310を再起動させる別の試みが、元のモノリシックな画像が存在するファームウェアボリュームのパーティションに格納されている元の起動ファームウェアコードモジュールの画像からの元のバージョンのコードモジュール/ドライバにより、行われる。
アクション3.9では、起動ファームウェア更新マネージャ240は、ドライバディスパッチャからコードモジュール/ドライバ更新のステータスに関する情報を受信する。例えば、更新された起動ファームウェアコードモジュールがメモリにロードされていても、適切な実行に失敗している場合がある。アクション3.10で、起動ファームウェア更新マネージャ240は、アクション3.2で起動ファームウェアモジュール更新サービス270が要求した起動ファームウェア更新のステータスとともに、受領確認メッセージを起動ファームウェアモジュール更新サービス270に送る。
システム起動シーケンス中に、一連のハードウェア初期化段階が、電力供給から、オペレーティングシステムのロードまで行われ、システムの制御を担う。起動シーケンスは、ここでは、URL(www-intel-com/technology/framework)から情報入手可能なEFI(Extensible Firmware Interface)アーキテクチャ仕様(バージョン0.9、2003年9月16日)に関するインテル(登録商標)プラットフォームイノベーションフレームワークに則った説明を行う。主にフレームワーク起動シーケンスは図4を参照して行われ、本発明の後続する説明のコンテキストを提供する。本発明はこの特定の説明のフレームワーク内での動作に限定はされない。
図4は、本発明の一実施形態のコンポーネントが動作する起動シーケンスの各段階を示す。フレームワーク起動シーケンスは、システムに電力供給が行われると実行されるセキュリティ段階410により始まる。事前検証器411は、セキュリティ段階410中に実行されて、BIOSを認証する。既存のシステムでは、事前検証器411およびSEC段階410は、CRTM(Core Root of Trust for Measurement)、つまり、BIOSコードを認証するのに十分なコードを提供し、プラットフォーム上でサポートされている場合、TPM(Trusted Platform Module)を開始する。TPMに関するさらなる情報はURL(www-trustedcomputinggroup-org)から入手可能である。
セキュリティ段階410が完了すると、EFI前の初期化(PEI)段階420で、プロセッサ421、チップセット423、およびマザーボード425を初期化する。PEI段階420では、後続する段階のコードを含むシステムRAMおよびファームウェアボリュームの最小量が初期化および記述される。PEI段階420において、EFIドライバディスパッチャ432および固有サービス434をドライバ実行環境(driver eXecution environment: DXE)段階430でセキュアに起動する準備を行う。DXE段階430では、EFIドライバディスパッチャ432がデバイス、バス、およびサービスドライバ436をロードするよう動作し、起動マネージャをサポートしてオペレーティングシステムを起動することのできる環境を構築する。本発明を参照すると、修正されたバージョンのEFIドライバディスパッチャは、ここでは起動ファームウェアモジュール更新ディスパッチャと称され、DXE段階430で利用される。DXE段階430に続いて、起動デバイス選択(BDS)段階440で起動マネージャ442をロードする。BDS段階440に続いて、非常システムロード(TSL)段階450が、オペレーティングシステム起動中に生じる。起動マネージャ442は、非常OS起動ローダ456を起動して、これにより、OS不在のアプリケーション452を実行可能な非常OS環境454を作成する。起動マネージャ442はさらに、オペレーティングシステムを起動する最終OS起動マネージャ458を起動する。ランタイム段階460でシステムは、OSの存在するアプリケーション462を実行可能な最終OS環境464を作成する。ランタイム段階460中にシステムは、オペレーティングシステムの制御の下で動作する。OSランタイム中にシステムエラーが生じると(RT段階460)、ファームウェアPEI段階420およびDXE段階430のフローは、生存後段階470で再構築され、OSの存在する復帰アクティビティを行わせることができる。
本発明における、更新された起動ファームウェアコードモジュール/ドライバのロードは、ドライバ実行環境(DXE)段階430中に、起動ファームウェアモジュール更新ディスパッチャの制御の下で行われ、これは、本発明の実施形態におけるモジュール型起動ファームウェア更新を行う図4の修正バージョンのEFIドライバディスパッチャ432に相当する。起動ファームウェアモジュール更新ディスパッチャの動作については図5および図6を参照して後で詳述する。
図5は、本発明の一実施形態におけるシステムを起動するときのモジュール型起動ファームウェア更新を行う方法のフローチャートである。ステップ510の「起動中に、BIOSモジュール更新ディスパッチャが、モジュールBIOS更新ファームウェアボリュームパーティション内に、更新されたドライバがないか検査する」では、起動ファームウェアモジュール更新ディスパッチャが、ファームウェアボリュームのモジュール更新パーティション内に、更新されたコードモジュール/ドライバがないか検査する。次に制御は、ステップ520の「起動ファームウェアモジュール更新ディスパッチャが、BIOSモジュール更新ファームウェアボリュームパーティションから、更新されたドライバをロードする」に移り、ここでは、起動ファームウェアモジュール更新ディスパッチャが、ファームウェアボリュームの異なるパーティションに格納されているモノリシックBIOS画像からの元のコードモジュール/ドライバの代わりに、更新されたコードモジュール/ドライバをメモリにロードする。次に制御はステップ530の「BIOSを起動する」に進み、ここでBIOSを図4のDXE段階430の最後に起動する。次に制御は「更新されたドライバにエラーが生じた?」の判断点430へ進み、ここで、BIOS起動中に、更新されたドライバにエラーが生じたか否かを判断する。更新されたドライバにエラーが生じた場合、制御はステップ540の「元のファームウェアボリュームパーティションから元のドライバをロードする」に進み、ファームウェアボリュームの元のパーティションに格納されているモノリシックなBIOS画像から、元のコードモジュール/ドライバをロードする。次に制御は、ステップ550「OSの起動を続行する」に進み、オペレーティングシステムの起動シーケンスを続行する。起動シーケンス続行中に、制御はステップ560の「起動ファームウェアモジュール更新のステータスをサーバに提供する」に進み、ここで図3を参照して記載したように、BIOSモジュール更新マネージャ240が、起動ファームウェアモジュール更新サービス270に対してステータス更新を提供する。次に制御はステップ570の「サーバが、起動ファームウェアモジュール更新のステータスに応答する」に進み、ここで起動ファームウェアモジュール更新サービス270は、モジュール型起動ファームウェア更新に関して受信したステータスメッセージに対して応答することができる。例えば、モジュール型起動ファームウェア更新にエラーが生じた場合、起動ファームウェアモジュール更新サービス270は、別のバージョンの更新されたコードモジュール/ドライバを後続する更新要求で提供することができる。
図6は、本発明の一実施形態において、実自動化されたモジュール型起動ファームウェア更新が実行された後のシステムの起動を示すフロー図である。図6のフロー図は、DXE段階630およびBDS段階640中に起こったアクティビティを示し、これは、図4のDXE段階430およびBDS段階440に対応している。DXE段階630の実行前に、図4のSEC段階410に類似したセキュリティ段階およびPEI段階420に類似したPEI段階が実行された。前のPEI段階では、ハンドオフブロックリスト604が初期化された(これは、プロセッサ、チップセット、およびメインメモリの初期化を行っている間に起動シーケンスの前の段階から渡された情報を含むデータ構造である)。ハンドオフブロックリスト604は、ファームウェアボリュームハードウェア620に見つかるファームウェアボリュームを含む、システムの初期化中に発見されたファームウェアボリュームに関する情報を含む。例えば、図1に示すシステム起動中のPEI段階では、BIOSファームウェア192およびチップセットファームウェア196それぞれのパーティションを含むファームウェアボリュームが発見される。発見された各別個のファームウェアボリュームは、PEI段階が提供するハンドオフブロックをそれぞれ有してよい。ハンドオフブロックリスト604は、ファームウェアファイルを含むファームウェアボリュームの位置の詳細を示し、各ファームウェアボリュームのベースアドレスと長さとを含む。DXEの最初のプログラムロード(IPL)初期化モジュールは、ハンドオフブロックリスト604を利用して、DXE基礎ファームウェアファイルの位置を発見する。
前のPEI段階では、さらに、DXE基礎コード606が発見および起動される。DXE基礎コード606は、一式の起動サービス、ランタイムサービス、およびDXEサービスを生成する。DXE基礎コード606は、ハンドオフブロックリスト604を利用して、実行するドライバを発見する。DXE基礎コード606は、プロセッサ、チップセットまたはプラットフォームに依存しない、完全な可搬性を有するよう設計される。DXE基礎コード606の初期状態は、ハンドオフブロックリスト604のみに依存する。この単一の依存性は、DXE基礎コード606が前の段階のいかなるサービスにも依存しないことを意味しており、従って全ての前の段階は、ハンドオフブロックリスト604がDXE基礎コード606に渡されてはじめてアンロードが可能となる。DXE基礎コード606は、ハードコード化されたアドレスは含まない。この結果、DXE基礎コード606は、物理メモリの何処にでもロード可能となり、物理メモリまたはファームウェアボリュームがプロセッサの物理アドレス空間のいずれに位置していようとも正確な機能が可能となる。DXE基礎コード606は、プロセッサ固有の情報、チップセット固有の情報、またはプラットフォーム固有の情報のいずれも含まない。代わりに、DXE輝度コード606は、一式のアーキテクチャプロトコルインタフェースによりシステムハードウェアから抽象化される(abstracted)。これらアーキテクチャプロトコルインタフェースは、DXEディスパッチャが呼び出す一式のDXEドライバにより生成され、ここでは起動ファームウェアモジュール更新ディスパッチャ610と称される。
DXE基礎コード606は、EFIシステムテーブルおよびそれに関連する一式のEFI起動サービスおよびEFIランタイムサービスを生成する。DXE基礎コード606はさらに、起動ファームウェアモジュール更新ディスパッチャ610を含む。DXE基礎コード606の起動後に、制御はDXEディスパッチャに渡され、これは本ケースでは起動ファームウェアモジュール更新ディスパッチャ610であり、これはハンドオフブロックリスト604等のハンドオフブロックで記載されているファームウェアボリュームに見つかるDXEドライバをロードして呼び出す機能を有する。
ファームウェアボリュームハードウェア620は、ファームウェアコードおよび/またはデータを含む永続性物理レポジトリである。ファームウェアボリュームハードウェアは通常は図1のフラッシュメモリ190等のフラッシュコンポーネントであるが、他の種類の永続性記憶装置であってもよい。単一の物理ファームウェアデバイスを小片に分割して、複数の論理ファームウェアデバイスを形成することもできる。同様に、複数の物理ファームウェアデバイスが1つのより大きな論理ファームウェアデバイスに統合されてもよい。論理ファームウェアデバイスはファームウェアボリュームと称される。EFIフレームワークでは、データおよび/またはコード用の基礎記憶レポジトリがファームウェアボリュームである。各ファームウェアボリュームは1つのファイルシステムに組織化される。このようにして、ファイルがEFIフレームワークファームウェアの格納/記憶の基本単位となる。
ファームウェアボリュームに含まれているファイルがセキュリティ(SEC)またはEFI前の初期化(PEI)段階から、または、初期にドライバ実行環境(DXE)段階にアクセスされる場合、ファームウェアボリュームはメモリマッピングされ、フレームワークファームウェアファイルシステム(FFS)フォーマットを遵守しており、これは、EFIファームウェアファイルシステム仕様に関するインテル(登録商標)プラットフォームイノベーションフレームワークに定義されており、URL(www-intel-com/technology/framework)から情報入手可能である。SEC、PEI、およびDXE段階は次に、FFSおよびフレームワークファームウェア画像フォーマットを適宜パースする。
起動ファームウェアモジュール更新ディスパッチャ610は、ハンドオフブロックリスト604に記載されているファームウェアボリュームからドライバを探す。ファームウェアボリュームは、先験的な(a priori)ファイルと称される関連ファイルを有する場合があり、このファイルは、第一にロードおよび実行されるべきDXEドライバのリストを含んでいる。先験的なファイル内のDXEドライバがロードおよび実行されると、ファームウェアボリュームの残りのDXEドライバの依存表現を評価して、それらのロードおよび実行順序を決定する。
一実施形態では、先験的なファイルのDXEドライバおよび依存表現が真と評価されたDXEドライバ全てをロードおよび実行した後に、制御を起動ファームウェアモジュール更新ディスパッチャ610からBDS642に渡す。BDS642は、コンソールデバイスを構築し、BDS段階640でオペレーティングシステムの起動を試みる役割を果たす。コンソールデバイスが構築され、起動デバイスへのアクセスが構築されるときに、さらなるファームウェアボリュームを発見することもある。BDS642がコンソールデバイスを開始したり起動デバイスへのアクセスを得たりできない場合、起動ファームウェアモジュール更新ディスパッチャ610を再度呼び出す。この呼び出しにより、起動ファームウェアモジュール更新ディスパッチャ610は、起動ファームウェアモジュール更新ディスパッチャ610が最後に呼び出されてから発見されたファームウェアボリュームからのDXEドライバ632をロードおよび実行する。起動ファームウェアモジュール更新ディスパッチャが可能な限り全てのDXEドライバ632をロードおよび実行すると、制御は再度BDS642に戻り、OS起動処理を続行する。
EFIファームウェアボリュームプロトコルは、DXE段階中に実行されているプログラムに、ファームウェアボリューム(メモリマッピングされていないファームウェアボリュームおよびFFSを実装しないファームウェアボリュームを含む)にアクセスさせる。示されている実施形態では、BIOS/モジュール更新ディスパッチャ610は、ファームウェアボリュームプロトコルドライバ626によりEFIファームウェアボリュームプロトコルに含まれているファイル抽象化を用い、ファームウェアボリュームにアクセスする。
示されている実施形態では、ファームウェアボリュームプロトコルをファームウェアボリュームプロトコルドライバ626により生成し、ファームウェアボリュームプロトコルドライバ626はファイルシステムドライバとして機能し、ファームウェアボリュームブロックプロトコルドライバ624がファームウェアボリュームハードウェア620へのアクセス用に実装するEFIファームウェアボリュームブロックプロトコルを利用する。ファームウェアボリュームブロックプロトコルドライバ624は、ファームウェアボリュームハードウェア620に対してブロックレベルのアクセスを提供する。EFIファームウェアボリュームブロックプロトコルを実装するとして示されているドライバ624および626は、ファームウェアボリュームハードウェア620を抽象化するが、ファームウェアボリュームブロックドライバの下の任意の数の抽象化を利用してプラットフォーム要件を満たすこともできる。EFIファームウェアボリュームブロックプロトコルは、バイトレベルの読み書き機能およびブロックレベルの消去機能を提供する。EFIファームウェアボリュームブロックプロトコルはさらに、デバイスハードニング特徴を露呈する(例えば、ファームウェアを不要な上書きおよび/または消去から保護する必要が出てくる等)。ファームウェアボリュームプロトコルドライバ626等のファイルシステムドライバは、ファームウェアボリュームブロックプロトコルドライバの上部に積層されてファームウェアボリュームにファイルレベルのアクセスを可能とする。ファームウェアボリュームプロトコルは、存在しうるハードウェアデバイスハードニング特徴およびファームウェアボリュームをフォーマットするのに利用されるファイルシステムを抽象化する。ファームウェアボリュームプロトコルに関する情報を含むさらなる情報については、URL(www-intel-com/technology/framework)から情報入手可能な、EFIファームウェアファイルシステム仕様に関するインテル(登録商標)プラットフォームイノベーションフレームワークを参照されたい。
起動ファームウェアモジュール更新ディスパッチャ610は、起動前段階に動作して、実行用にドライバをスケジュールする。一実施形態では、起動ファームウェアモジュール更新ディスパッチャ610は、ファームウェアボリュームからのDXEドライバをロードおよび実行するディスパッチサービス、ファームウェアボリュームに格納されているコンポーネントのSOR(schedule on require)フラグをクリアするスケジュールサービス、ファームウェアボリュームに格納されているファイルの状態を不信任状態から信任状態に変更する信任サービス、および、システムメモリに存在するファームウェアボリューム用のファームウェアボリューム処理を作成する処理ファームウェアボリュームサービス(ProcessFirmwareVolume)を提供する。一実施形態では、起動ファームウェアモジュール更新ディスパッチャは、利用可能な全てのファームウェアボリュームを探し、バージョン情報に基づいてロードされるドライバ/コードモジュールのリストを作成する。上述したように、起動ファームウェアモジュール更新ディスパッチャ610は先ず更新されたドライバ622用のFVパーティションに、更新されたドライバがないかを探し、その後に、ファームウェアボリュームの別のパーティションに元のドライバがないかを探す。更新対象の起動ファームウェアコードモジュールは、起動前のロードが必要な最新のEFIドライバ/モジュールを定義するバージョンストリングを有する。
ここで記載した起動ファームウェアモジュール更新メカニズムにより、個々の起動ファームウェアコードモジュールを、全起動ファームウェアのモノリシックな画像のダウンロードおよび更新を必要とせずに更新することができるようになる。ここで記載した技術により、更新されたモジュール/ドライバの整合性チェック機能を持つセキュリティが提供され、ユーザがモジュール型起動ファームウェア更新を受信する際に自身のシステムを再起動する必要がなくなることから、よりユーザフレンドリな更新処理が提供される。
ここで記載した技術は、さらに、新たに更新されたコードモジュール/ドライバにエラーが出た場合にでも元のコードドライバ/モジュールを利用してシステムを起動することができ、試行された更新前と同じ機能を続行することができることからエラー耐性もある。エラーを起こしたモジュールについてサーバにはフィードバックが行われ、是正されたコードモジュール/ドライバを、後続する更新要求に対して提供することができる。
図7は、本発明の一実施形態における起動ファームウェアモジュール更新マネージャを実装する仮想マシン環境を示す。プラットフォーム700が仮想化されると単一のプロセッサしか含まないが、ホスト上の仮想マシンモニタ(「VMM730」)が複数の抽象および/または複数のホストのビューを提供することで、ホストの下層にあるハードウェアは1以上の独立したオペレーティングVM(仮想マシン)として見えるようになる。VMM730は、ソフトウェア(例えば独立型プログラムおよび/またはホストオペレーティングシステムのコンポーネントとして)、ハードウェア、ファームウェア、および/または、これらの任意の組み合わせとして実装されてよい。VMM730は、ホスト上のリソースの割り当てを管理し、ラウンドロビン方式その他の所定のスキームで様々なVM間のサイクルを実行するのに必要なコンテキストスイッチを行う。当業者であれば、例示されているのが1つのプロセッサのみであっても(「プロセッサ705」)、本発明の実施形態がそれに限定されるわけではなく、仮想化された環境内で複数のプロセッサを利用することができることを容易に理解するであろう。
2つのVMパーティションのみが示されているが(「VM710」および「VM720」、ここでは「VM」と総称する)、これらVMはあくまで例示であって、さらなる仮想マシンをホストに追加することもできる。VM710およびVM720は、それぞれ内蔵タイプのプラットフォームとして機能して、銘々の「ゲストオペレーティングシステム」(つまり、VMM730がホストするオペレーティングシステムであって、「ゲストOS711」および「ゲストOS721」として示され、ここでは「ゲストOS」と総称されるもの)および他のソフトウェア(「ゲストソフトウェア712」および「ゲストソフトウェア722」として示され、ここでは「ゲストソフトウェア」と総称されるもの)を実行する。
各ゲストOSおよび/またはゲストソフトウェアは、仮想マシンではなくて専用コンピュータ上で動作しているかのように動作する。つまり、各ゲストOSおよび/またはゲストソフトウェアは、様々なイベントを制御してプラットフォーム700上のハードウェアリソースへアクセスすることが期待されていてよい。各VM内では、ゲストOSおよび/またはゲストソフトウェアが、実際にプラットフォーム700の物理ハードウェア(ネットワークコントローラ760を含みうる「ホストハードウェア740」)上で動作しているかのように振る舞うことができる。
図1のME130のような専用プロセッサを有する物理ハードウェアパーティションは、仮想化されたパーティション(図7のような)よりも高いレベルのセキュリティを提供することができるが、本発明の実施形態がいずれの環境および/またはこれら環境の組み合わせで実施されることで様々なレベルのセキュリティを実現することができることは当業者には自明である。また当業者であれば、ME、AMT、またはPRLプラットフォームが仮想化された環境内で実装可能であることを理解する。例えば、VM720はホスト上のMEパーティションに特化していてよく、一方でVM710はホスト上の通常アプリケーションを実行する。このシナリオでは、ホストは複数のプロセッサを含んでも含まなくてもよい。ホストが2つのプロセッサを含む場合、例えばVM720は他のプロセッサを割り当てられてよく、VM710は(およびホスト上の他のVMは)プロセッサ705のリソースを共有してよい。他方で、ホストが単一のプロセッサのみを含む場合、プロセッサは両方のVMとして機能することができるが、VM720は依然として、VMM730と協同して、ホスト上の他のVMから隔離されていてよい。簡略化目的から、本発明の実施形態をME環境で記載したが、本発明の実施形態はこれに限定されない。つまり、MEに関する「パーティション」「セキュアなパーティション」「セキュリティパーティション」および/または「管理パーティション」といった言及は、全ての物理および/または仮想パーティションを含む(これは上述した通りである)。
ここに開示したメカニズムの実施形態は、ハードウェア、ソフトウェア、ファームウェア、これら実装例の組み合わせでの実装が可能である。本発明の実施形態は、少なくとも1つのプロセッサ、データ記憶システム(揮発性および不揮発性メモリおよび/または記憶素子を含む)、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスを含むプログラム可能システム上で実行されるコンピュータプログラムとしての実装が可能である。
プログラムコードを入力データに適用することで、ここで開示されている機能を行い、出力情報を生成することができる。本発明の実施形態はさらに、本発明の動作を行うための命令、あるいはここで開示されている構造、回路、装置、プロセッサおよび/またはシステムの特徴を定義するHDL等の設計データを含むマシンアクセス可能な媒体を含む。これら実施形態はプログラムプロダクトとも称される場合がある。
これらマシンアクセス可能な記憶媒体は、ハードディスク等の記憶媒体、フロッピー(登録商標)ディスク、光ディスク、CD−ROM、CD−RW、光磁気ディスクを含む任意の他の種類のディスク、ROM、DRAM、SRAM、EPROM、FLASH、EEPROM(登録商標)等のRAM等の半導体デバイス、磁気カードまたは光カード、または任意の他の種類の電子命令の格納に適した媒体を含む、マシンまたはデバイスが製造または形成する粒子の有形の配列を含んでよいが、これらに限定はされない。
出力情報は、1以上の出力デバイスに公知の方法で適用することができる。この適用に際して、処理システムは、DSP、マイクロコントローラ、ASIC、あるいはマイクロプロセッサ等のプロセッサを有する任意のシステムを含む。
プログラムは、処理システムと通信するために高レベルのプロシージャのまたはオブジェクト指向のプログラミング言語で実装することができる。さらにプログラムは適宜アセンブリ言語または機械言語で実装されてもよい。ここで記載したメカニズムの範囲は、特定のプログラミング言語に言質得されない。いずれにしても、言語はコンパイルされた、あるいは解釈された言語であってよい。
自動化された起動ファームウェアモジュール更新を行う方法およびシステムの実施形態を開示してきた。上記では本発明の特定の実施形態を示し、記載してきたが、当業者には添付請求項の範囲を逸脱せずとも多くの変更例、変形例、および修正例が可能であることが明らかである。従って当業者であれば、本発明を広義な意味で逸脱せずにこれら変更例および変形例が可能であることを理解する。添付請求項の範囲は、本発明の真の範囲および精神に含まれるこれら全ての変更例、変形例、および修正例が含むことを意図している。ここで、本発明の実施形態の例を項目として示す。
[項目1]
コンピュータ実装される方法であって、
システムのセキュアなパーティションで、システムの複数の起動ファームウェアコードモジュールの1つの元の起動ファームウェアコードモジュールの置き換えとして、更新された起動ファームウェアコードモジュールを受信する段階と、
1つの元の起動ファームウェアコードモジュールのみを、更新された起動ファームウェアコードモジュールで自動的に置き換える段階と、
次にシステムが起動されたときにユーザの介入を受けずに、システムの複数の起動ファームウェアコードモジュールにより、更新された起動ファームウェアコードモジュールを自動的に実行する段階と、
を備える方法。
[項目2]
ファームウェアボリュームの更新パーティションに更新された起動ファームウェアコードモジュールを書き込む段階をさらに備え、
ファームウェアボリュームの更新パーティションは、システムの起動時に複数の起動ファームウェアコードモジュールを含むファームウェアボリュームの別のパーティションとともに読み出される項目1に記載の方法。
[項目3]
ファームウェアボリュームの更新パーティションに更新された起動ファームウェアモジュールを書き込む段階の前に、更新された起動ファームウェアモジュールの整合性を認証する段階をさらに備える項目2に記載の方法。
[項目4]
更新された起動ファームウェアモジュールは、セキュアなパーティションに連結されたバンド外通信チャネルを介してサーバにより提供される項目1に記載の方法。
[項目5]
更新された起動ファームウェアモジュールを受信する段階の前にサーバの整合性を認証する段階をさらに備える項目4に記載の方法。
[項目6]
更新された起動ファームウェアモジュールのロード中に問題が生じた場合、1つの元の起動ファームウェアコードモジュールをロードさせる段階をさらに備える項目1に記載の方法。
[項目7]
システムの起動後に、更新された起動ファームウェアコードモジュールのインストールステータスを、更新された起動ファームウェアコードモジュールの送信元であるサーバに提供する段階をさらに備える項目1に記載の方法。
[項目8]
システムであって、
ホストオペレーティングシステムとシステムの複数の起動ファームウェアコードモジュールとを実行する少なくとも1つのプロセッサと、
プロセッサに連結され、ホストオペレーティングシステムから隔離されたセキュアなパーティションと、
セキュアなパーティションで、システムの複数の起動ファームウェアコードモジュールの1つの元の起動ファームウェアコードモジュールの置き換えとして、更新された起動ファームウェアコードモジュールを受信する手段と、
1つの元の起動ファームウェアコードモジュールのみを、更新された起動ファームウェアコードモジュールで自動的に置き換える手段と、
次にシステムが起動されたときにユーザの介入を受けずに、システムの複数の起動ファームウェアコードモジュールにより、更新された起動ファームウェアコードモジュールを自動的に実行する手段と、
を備えるシステム。
[項目9]
ファームウェアボリュームの更新パーティションに更新された起動ファームウェアコードモジュールを書き込む手段をさらに備え、
ファームウェアボリュームの更新パーティションは、システムの起動時に複数の起動ファームウェアコードモジュールを含むファームウェアボリュームの別のパーティションとともに読み出される項目8に記載のシステム。
[項目10]
ファームウェアボリュームの更新パーティションに更新された起動ファームウェアモジュールを書き込む前に、更新された起動ファームウェアモジュールの整合性を認証する手段をさらに備える項目9に記載のシステム。
[項目11]
更新された起動ファームウェアモジュールは、セキュアなパーティションに連結されたバンド外通信チャネルを介してサーバにより提供される項目8に記載のシステム。
[項目12]
更新された起動ファームウェアモジュールの受信前にサーバの整合性を認証する手段をさらに備える項目11に記載のシステム。
[項目13]
更新された起動ファームウェアモジュールのロード中に問題が生じた場合、1つの元の起動ファームウェアコードモジュールをロードさせる手段をさらに備える項目8に記載のシステム。
[項目14]
システムの起動後に、更新された起動ファームウェアコードモジュールのインストールステータスを、更新された起動ファームウェアコードモジュールの送信元であるサーバに提供する手段をさらに備える項目8に記載のシステム。
[項目15]
コンピュータ可読記憶媒体と、
コンピュータ可読記憶媒体内の命令とを備え、
命令は、処理システムで実行されると、処理システムに項目1から項目7のいずれか一項に記載の方法を実行させるコンピュータプログラムプロダクト。

Claims (9)

  1. BIOS及び起動ファームウェアコードを維持する方法であって、
    システムのホストオペレーティングシステムから隔離された、システムのセキュアなパーティションで、前記システムの複数の起動ファームウェアコードモジュールの1つの元の起動ファームウェアコードモジュールの置き換える更新された起動ファームウェアコードモジュールを、前記セキュアなパーティション及びサーバ間のバンド外通信チャネルを介して前記サーバから受信する段階と、
    前記1つの元の起動ファームウェアコードモジュールのみを、前記更新された起動ファームウェアコードモジュールで自動的に置き換える段階と、
    次に前記システムが起動されたときにユーザの介入を受けずに、前記システムの前記複数の起動ファームウェアコードモジュールにより、前記更新された起動ファームウェアコードモジュールを自動的に実行する段階と、
    前記更新された起動ファームウェアモジュールのロード中に問題が生じた場合、前記1つの元の起動ファームウェアコードモジュールをロードさせる段階と、
    前記システムの起動後に、前記更新された起動ファームウェアコードモジュールのインストールステータスを、前記更新された起動ファームウェアコードモジュールの送信元である前記サーバに提供する段階と
    を備える方法。
  2. ファームウェアボリュームの更新パーティションに前記更新された起動ファームウェアコードモジュールを書き込む段階をさらに備え、
    前記ファームウェアボリュームの前記更新パーティションは、前記システムの起動時に前記複数の起動ファームウェアコードモジュールを含む前記ファームウェアボリュームの別のパーティションとともに読み出される請求項1に記載の方法。
  3. 前記ファームウェアボリュームの前記更新パーティションに前記更新された起動ファームウェアモジュールを書き込む段階の前に、前記更新された起動ファームウェアモジュールの整合性を認証する段階をさらに備える請求項2に記載の方法。
  4. 前記更新された起動ファームウェアモジュールを受信する段階の前に前記サーバの整合性を認証する段階をさらに備える請求項1から3のいずれか1項に記載の方法。
  5. BIOS及び起動ファームウェアコードを維持するシステムであって、
    ホストオペレーティングシステムと前記システムの複数の起動ファームウェアコードモジュールとを実行する少なくとも1つのプロセッサと、
    前記プロセッサに連結され、
    前記ホストオペレーティングシステムから隔離され
    前記システムの複数の起動ファームウェアコードモジュールの1つの元の起動ファームウェアコードモジュールの置き換えとして、セキュアなパーティション及びサーバ間のバンド外通信チャネルを介して前記サーバから更新された起動ファームウェアコードモジュールを受信し、
    前記1つの元の起動ファームウェアコードモジュール、前記更新された起動ファームウェアコードモジュールで自動的に置き換え
    前記更新された起動ファームウェアモジュールのロード中に問題が生じた場合、前記1つの元の起動ファームウェアコードモジュールをロードさせ、
    前記システムの起動後に、前記更新された起動ファームウェアコードモジュールのインストールステータスを、前記サーバに提供する、
    セキュアなパーティションと、を備え、
    前記プロセッサは、次に前記システムが起動されたときに前記システムの前記複数の起動ファームウェアコードモジュールにより、前記更新された起動ファームウェアコードモジュールを自動的に実行可能である、
    ステム。
  6. ファームウェアボリュームの更新パーティションに前記更新された起動ファームウェアコードモジュールを書き込む手段をさらに備え、
    前記ファームウェアボリュームの前記更新パーティションは、前記システムの起動時に前記複数の起動ファームウェアコードモジュールを含む前記ファームウェアボリュームの別のパーティションとともに読み出される請求項に記載のシステム。
  7. 前記ファームウェアボリュームの前記更新パーティションに前記更新された起動ファームウェアモジュールを書き込む前に、前記更新された起動ファームウェアモジュールの整合性を認証する手段をさらに備える請求項に記載のシステム。
  8. 前記更新された起動ファームウェアモジュールの受信前に前記サーバの整合性を認証する手段をさらに備える請求項5から7のいずれか1項に記載のシステム。
  9. コンピュータに、請求項1から請求項のいずれか一項に記載の方法を実行させるプログラム。
JP2010214374A 2009-11-30 2010-09-24 自動化されたモジュール型のセキュアな起動ファームウェアの更新 Expired - Fee Related JP5174110B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/592,605 2009-11-30
US12/592,605 US8589302B2 (en) 2009-11-30 2009-11-30 Automated modular and secure boot firmware update

Publications (2)

Publication Number Publication Date
JP2011118873A JP2011118873A (ja) 2011-06-16
JP5174110B2 true JP5174110B2 (ja) 2013-04-03

Family

ID=43587501

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010214374A Expired - Fee Related JP5174110B2 (ja) 2009-11-30 2010-09-24 自動化されたモジュール型のセキュアな起動ファームウェアの更新

Country Status (5)

Country Link
US (2) US8589302B2 (ja)
EP (1) EP2339494A1 (ja)
JP (1) JP5174110B2 (ja)
KR (1) KR101232558B1 (ja)
CN (1) CN102081534B (ja)

Families Citing this family (149)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8281169B2 (en) * 2008-08-27 2012-10-02 Wireless Silicon Group, Inc. Method and system for power management for a handheld mobile electronic device executing-in-place an application kernel from execute-in-place non-volatile memory (XIP NVM)
US9058491B1 (en) 2009-03-26 2015-06-16 Micron Technology, Inc. Enabling a secure boot from non-volatile memory
US20110035540A1 (en) * 2009-08-10 2011-02-10 Adtron, Inc. Flash blade system architecture and method
US8589302B2 (en) 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
US9336410B2 (en) * 2009-12-15 2016-05-10 Micron Technology, Inc. Nonvolatile memory internal signature generation
WO2011075139A1 (en) 2009-12-18 2011-06-23 Hewlett-Packard Development Company, L.P. Methods and devices for updating firmware of a component using a firmware update application
JP5316432B2 (ja) * 2010-01-19 2013-10-16 富士通株式会社 ネットワークコントローラの制御方法、プログラム及び情報処理装置
US8996851B2 (en) * 2010-08-10 2015-03-31 Sandisk Il Ltd. Host device and method for securely booting the host device with operating system code loaded from a storage device
WO2012023050A2 (en) 2010-08-20 2012-02-23 Overtis Group Limited Secure cloud computing system and method
CN103329093B (zh) * 2011-01-19 2017-09-12 国际商业机器公司 用于更新执行环境中的代码的方法和系统
US8458449B2 (en) * 2011-01-27 2013-06-04 Hewlett-Packard Development Company, L.P. Component drivers for a component of a device
US8909851B2 (en) 2011-02-08 2014-12-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
US8935466B2 (en) 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
US8745614B2 (en) * 2011-05-13 2014-06-03 Lsi Corporation Method and system for firmware upgrade of a storage subsystem hosted in a storage virtualization environment
EP2718828A4 (en) * 2011-06-07 2014-11-05 Lsi Corp MANAGE THE IMPACT OF DEVICE FIRMWARE UPGRADES ON A HOST
TWI475485B (zh) * 2011-06-13 2015-03-01 Wistron Corp 韌體更新之方法及其相關電腦系統
CN102833639B (zh) * 2011-06-15 2016-03-30 上海贝尔股份有限公司 在新软件下载完毕后控制光网络单元重启的方法和装置
US8707019B2 (en) 2011-07-02 2014-04-22 Intel Corporation Component update using management engine
US8739273B2 (en) * 2011-07-11 2014-05-27 Oracle International Corporation System and method for supporting subnet management packet (SMP) firewall restrictions in a middleware machine environment
CN103621048B (zh) 2011-07-11 2016-08-17 甲骨文国际公司 在中间件机器环境中利用多播组和分组处理代理中的至少一种来支持泛洪机制的系统与方法
US8782389B2 (en) 2011-07-19 2014-07-15 Sandisk Technologies Inc. Storage device and method for updating a shadow master boot record
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
US9021319B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
EP2590100A1 (en) 2011-11-04 2013-05-08 British Telecommunications Public Limited Company Method and apparatus for securing a computer
US20130166893A1 (en) * 2011-12-23 2013-06-27 Sandisk Technologies Inc. Auxiliary card initialization routine
TW201331841A (zh) * 2012-01-16 2013-08-01 Asmedia Technology Inc 電子裝置及其基本輸入輸出系統的更新裝置
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US20150019800A1 (en) * 2012-02-23 2015-01-15 Hewlett-Packard Development Company L.P. Firmware Package to Modify Active Firmware
KR101897605B1 (ko) * 2012-02-24 2018-09-12 삼성전자 주식회사 휴대 단말기의 무결성 보호 방법 및 장치
US9298252B2 (en) 2012-04-17 2016-03-29 SMART Storage Systems, Inc. Storage control system with power down mechanism and method of operation thereof
US9563682B2 (en) 2012-05-10 2017-02-07 Oracle International Corporation System and method for supporting configuration daemon (CD) in a network environment
US8972969B2 (en) * 2012-06-08 2015-03-03 Adobe Systems Incorporated Out of band services updates
US8949689B2 (en) 2012-06-11 2015-02-03 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US8972973B2 (en) * 2012-06-27 2015-03-03 Microsoft Technology Licensing, Llc Firmware update discovery and distribution
US9218178B2 (en) * 2012-08-29 2015-12-22 Microsoft Technology Licensing, Llc Secure firmware updates
US8898654B2 (en) * 2012-08-29 2014-11-25 Microsoft Corporation Secure firmware updates
US8819664B2 (en) * 2012-11-01 2014-08-26 Hewlett-Packard Development Company, L.P. Upgrade firmware with upgrade information from a tape cartridge in a wireless manner
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
US9183092B1 (en) * 2013-01-21 2015-11-10 Amazon Technologies, Inc. Avoidance of dependency issues in network-based service startup workflows
US9405605B1 (en) 2013-01-21 2016-08-02 Amazon Technologies, Inc. Correction of dependency issues in network-based service remedial workflows
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
WO2014120205A1 (en) * 2013-01-31 2014-08-07 Hewlett-Packard Development Company, L.P. Replacement of a corrupt driver variable record
KR20140099757A (ko) * 2013-02-04 2014-08-13 삼성전자주식회사 전자장치 및 전자장치의 펌웨어 업그레이드 방법
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
EP2959417B1 (en) * 2013-02-25 2017-06-07 Intel Corporation Method, apparatus, system, and machine readable storage medium for providing software security
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9470720B2 (en) 2013-03-08 2016-10-18 Sandisk Technologies Llc Test system with localized heating and method of manufacture thereof
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9235710B2 (en) 2013-05-23 2016-01-12 Cisco Technology, Inc. Out of band management of basic input/output system secure boot variables
US9313874B2 (en) 2013-06-19 2016-04-12 SMART Storage Systems, Inc. Electronic system with heat extraction and method of manufacture thereof
US9898056B2 (en) 2013-06-19 2018-02-20 Sandisk Technologies Llc Electronic assembly with thermal channel and method of manufacture thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9983886B2 (en) 2013-07-31 2018-05-29 Hewlett-Packard Development Company, L.P. Updating boot code
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9411605B2 (en) * 2013-08-29 2016-08-09 Samsung Electronics Co., Ltd. Device-less and system agnostic unified extensible firmware interface (UEFI) driver
US8725995B1 (en) * 2013-11-04 2014-05-13 Symantec Corporation Systems and methods for updating system-level services within read-only system images
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9256442B2 (en) * 2014-03-03 2016-02-09 International Business Machines Corporation Network updatable user trusted device
CN103888251B (zh) * 2014-04-11 2017-09-01 北京工业大学 一种云环境中虚拟机可信保障的方法
US9672361B2 (en) * 2014-04-30 2017-06-06 Ncr Corporation Self-service terminal (SST) secure boot
US9426028B2 (en) * 2014-06-10 2016-08-23 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Configuring a computing system to delay a system update
US10558584B2 (en) * 2014-06-23 2020-02-11 Intel Corporation Employing intermediary structures for facilitating access to secure memory
CN104090790B (zh) * 2014-06-30 2017-05-17 飞天诚信科技股份有限公司 一种安全终端的双芯片方案的固件更新方法
EP3164796B1 (en) 2014-07-02 2022-02-09 Hewlett-Packard Development Company, L.P. Firmware update
WO2016014017A1 (en) * 2014-07-21 2016-01-28 Hewlett-Packard Development Company, L.P. Operating system device access using a virtual machine
US9678760B2 (en) 2014-08-01 2017-06-13 Samsung Electronics Co., Ltd. Memory card and storage system having authentication program and method for operating thereof
US10657262B1 (en) * 2014-09-28 2020-05-19 Red Balloon Security, Inc. Method and apparatus for securing embedded device firmware
US10068092B2 (en) 2015-01-21 2018-09-04 Microsoft Technology Licensing, Llc Upgrading a secure boot policy on a virtual machine
US10248403B2 (en) * 2015-03-13 2019-04-02 Kony, Inc. Providing updates for natively rendered mobile applications
JP6501595B2 (ja) * 2015-04-06 2019-04-17 キヤノン株式会社 画像形成装置およびその制御方法、並びにプログラム
US20160378686A1 (en) * 2015-06-24 2016-12-29 Intel Corporation Memory encryption exclusion method and apparatus
US9965270B2 (en) * 2015-07-01 2018-05-08 Quanta Computer Inc. Updating computer firmware
US10061596B2 (en) * 2015-07-10 2018-08-28 Dell Products L.P. Systems and methods for loading firmware modules
CN106354524B (zh) * 2015-07-17 2021-01-01 恩智浦美国有限公司 实时更新固件的系统和方法
US10428230B2 (en) * 2015-07-21 2019-10-01 Kolazi S. Narayanan Synergistic mixed solvents-based compositions with improved efficiency of performance and environmental safety for removal of paint, varnish and stain
JP2017033149A (ja) 2015-07-30 2017-02-09 株式会社東芝 情報処理装置、コントローラ、及び、情報処理装置の制御方法
US9959125B2 (en) 2015-08-05 2018-05-01 Samsung Electronics Co., Ltd. Field update of boot loader using regular device firmware update procedure
US9916151B2 (en) * 2015-08-25 2018-03-13 Ford Global Technologies, Llc Multiple-stage secure vehicle software updating
US10579801B2 (en) 2015-09-23 2020-03-03 Hewlett Packard Enterprise Development Lp Selecting and loading firmware volumes based on license
US10127032B2 (en) * 2015-11-05 2018-11-13 Quanta Computer Inc. System and method for unified firmware management
GB2545010B (en) * 2015-12-03 2018-01-03 Garrison Tech Ltd Secure boot device
CN106909351B (zh) * 2015-12-22 2021-04-20 中电科技(北京)有限公司 一种基于uefi固件的ext文件系统的实现方法
DE112015007220T5 (de) 2015-12-24 2018-09-20 Intel Corporation Techniken zum Koordinieren von Vorrichtungshochfahrsicherheit
CN106201438A (zh) * 2016-07-05 2016-12-07 河北建筑工程学院 基于Intel平台服务器CPU对个人计算机的移植方法和系统
US10242195B2 (en) 2016-07-22 2019-03-26 Hewlett Packard Enterprise Development Lp Integrity values for beginning booting instructions
US10740468B2 (en) * 2016-09-30 2020-08-11 Hewlett Packard Enterprise Development Lp Multiple roots of trust to verify integrity
WO2018092289A1 (ja) * 2016-11-21 2018-05-24 大日本印刷株式会社 情報処理装置
US10715526B2 (en) 2016-12-14 2020-07-14 Microsoft Technology Licensing, Llc Multiple cores with hierarchy of trust
US10402273B2 (en) 2016-12-14 2019-09-03 Microsoft Technology Licensing, Llc IoT device update failure recovery
US10416991B2 (en) * 2016-12-14 2019-09-17 Microsoft Technology Licensing, Llc Secure IoT device update
US10331434B2 (en) * 2016-12-21 2019-06-25 Quanta Computer Inc. System and method for remotely updating firmware
WO2018138789A1 (ja) * 2017-01-25 2018-08-02 三菱電機株式会社 組み込み装置及びファームウェア更新方法
TWI646464B (zh) * 2017-03-31 2019-01-01 神雲科技股份有限公司 管理引擎的韌體更新方法
US11409876B2 (en) 2017-04-24 2022-08-09 Hewlett-Packard Development Company, L.P. Displaying a BIOS update progress
US11294661B2 (en) * 2017-04-25 2022-04-05 Microsoft Technology Licensing, Llc Updating a code file
US10540501B2 (en) * 2017-06-02 2020-01-21 Dell Products, L.P. Recovering an information handling system from a secure boot authentication failure
US10459751B2 (en) 2017-06-30 2019-10-29 ATI Technologies ULC. Varying firmware for virtualized device
US10754955B2 (en) * 2017-08-04 2020-08-25 Dell Products, L.P. Authenticating a boot path update
JP7009852B2 (ja) * 2017-09-08 2022-01-26 富士フイルムビジネスイノベーション株式会社 電子装置
CN107832062B (zh) * 2017-09-08 2020-04-21 深圳壹账通智能科技有限公司 一种程序更新方法及终端设备
EP3460700A1 (en) 2017-09-22 2019-03-27 Banco Bilbao Vizcaya Argentaria, S.A. Authentication of software update modules using chameleon hashing.
US10592232B2 (en) * 2017-09-26 2020-03-17 Quanta Computer Inc. Preserving firmware setting during firmware update
US10678529B1 (en) * 2017-11-30 2020-06-09 Amazon Technologies, Inc. Secure device firmware installation
US11269606B2 (en) 2017-12-13 2022-03-08 Absolute Software Corporation Firmware publication of multiple binary images
JP6988444B2 (ja) * 2017-12-20 2022-01-05 大日本印刷株式会社 初期設定方法、セキュアエレメント、デバイス及びプログラム
KR20190074857A (ko) * 2017-12-20 2019-06-28 삼성전자주식회사 펌웨어를 업데이트하는 인터페이스 장치, 모바일 장치 및 펌웨어 업데이트 방법
US20200387611A1 (en) * 2017-12-22 2020-12-10 Vincent J. Zimmer Manageability engine and automatic firmware validation
TWI722269B (zh) * 2018-01-26 2021-03-21 和碩聯合科技股份有限公司 韌體更新方法及使用此方法的電子裝置
US10395038B2 (en) * 2018-02-01 2019-08-27 Quanta Computer Inc. System and method for automatic recovery of firmware image
US10409585B2 (en) * 2018-02-14 2019-09-10 Micron Technology, Inc. Over-the-air (OTA) update for firmware of a vehicle component
US11003537B2 (en) 2018-05-29 2021-05-11 Micron Technology, Inc. Determining validity of data read from memory by a controller
US11221841B2 (en) 2018-08-03 2022-01-11 Hewlett-Packard Development Company, L.P. BIOS personalities
US10740084B2 (en) * 2018-08-16 2020-08-11 Intel Corporation Soc-assisted resilient boot
WO2020102940A1 (zh) 2018-11-19 2020-05-28 深圳市欢太科技有限公司 一种异常处理方法、终端设备及存储介质
TWI691836B (zh) * 2018-11-20 2020-04-21 神雲科技股份有限公司 基本輸入輸出系統的開機階段辨識方法
EP3663957A1 (en) * 2018-12-03 2020-06-10 Nagravision S.A. Remote enforcement of device memory
KR20200076886A (ko) * 2018-12-20 2020-06-30 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11580226B2 (en) 2019-02-21 2023-02-14 Cisco Technology, Inc. Hybrid firmware code protection
EP3908947A1 (en) * 2019-03-25 2021-11-17 Aurora Labs Ltd Generating and signing a line-of-code behavior and relation model
CN109992517B (zh) * 2019-04-03 2023-12-26 昆仑太科(北京)技术股份有限公司 基于uefi的固件模块调试方法和系统
US11436333B2 (en) 2019-04-08 2022-09-06 Cisco Technology, Inc. Bios/bootloader protection
EP3912068A4 (en) * 2019-05-15 2022-08-10 Hewlett-Packard Development Company, L.P. UPDATE SIGNALS
US11023220B2 (en) 2019-09-26 2021-06-01 Dell Products L.P. Firmware update with integrated smart sequence and action engine
KR20210046418A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 보안 패치가 가능한 롬을 갖는 반도체 장치 및 그것의 패치 방법
JP7367471B2 (ja) * 2019-11-07 2023-10-24 株式会社リコー 情報処理装置、ファイル保証方法、及びファイル保証プログラム
US11256499B2 (en) * 2019-12-20 2022-02-22 Hewlett Packard Enterprise Development Lp Hotfix-firmware having updates to a firmware at runtime
US11941391B2 (en) 2020-04-06 2024-03-26 Intel Corporation Microcode(uCode) hot-upgrade method for bare metal cloud deployment
CN111708652B (zh) * 2020-05-20 2023-12-26 新华三技术有限公司 一种故障修复方法及装置
US11321077B1 (en) * 2020-06-05 2022-05-03 Amazon Technologies, Inc. Live updating of firmware behavior
US11263023B1 (en) * 2020-08-17 2022-03-01 Dell Products L.P. System and method for updating host operating system drivers from a management controller
WO2022046105A1 (en) * 2020-08-31 2022-03-03 Hewlett-Packard Development Company, L.P. Bios update
US12039318B2 (en) * 2020-10-26 2024-07-16 Micron Technology, Inc. Endpoint customization via online firmware store
US11507385B1 (en) 2021-04-30 2022-11-22 Cortina Access, Inc. Embedded electronic device, boot method, and embedded electronic device readable recording medium with stored program
CN113360914A (zh) * 2021-05-14 2021-09-07 山东英信计算机技术有限公司 一种bios更新的方法、系统、设备及介质
CN113238778B (zh) * 2021-05-23 2024-02-13 山东英信计算机技术有限公司 一种升级bios固件的方法、系统、设备及介质
US20230205508A1 (en) * 2021-12-29 2023-06-29 Dell Products L.P. Automated firmware updates based on device driver version in a server device
US20220245252A1 (en) * 2022-02-22 2022-08-04 Intel Corporation Seamless firmware update mechanism
CN117806721B (zh) * 2024-02-28 2024-04-26 苏州元脑智能科技有限公司 故障诊断驱动加载方法、装置、电子设备及存储介质

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210854A (en) * 1989-06-14 1993-05-11 Digital Equipment Corporation System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version
JPH10307726A (ja) 1997-05-02 1998-11-17 Nec Corp 起動エラー時におけるファームウェアリカバリ方式
JPH10307725A (ja) 1997-05-09 1998-11-17 Toshiba Corp コンピュータ装置
US6754828B1 (en) * 1999-07-13 2004-06-22 Intel Corporation Algorithm for non-volatile memory updates
JP3726011B2 (ja) 2000-07-03 2005-12-14 Necフィールディング株式会社 保守センター、保守システム、保守方法、記録媒体
US6715085B2 (en) * 2002-04-18 2004-03-30 International Business Machines Corporation Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US20040076043A1 (en) 2002-10-21 2004-04-22 Phoenix Technologies Ltd. Reliable and secure updating and recovery of firmware from a mass storage device
US7043664B1 (en) * 2002-10-31 2006-05-09 Microsoft Corporation Firmware recovery
US7024551B2 (en) * 2003-01-07 2006-04-04 Sun Microsystems, Inc. Method and apparatus for updating boot code using a system controller
US7512749B2 (en) * 2003-06-30 2009-03-31 Intel Corporation Safe software revision for embedded systems
US20050044363A1 (en) * 2003-08-21 2005-02-24 Zimmer Vincent J. Trusted remote firmware interface
US7549042B2 (en) 2003-12-16 2009-06-16 Microsoft Corporation Applying custom software image updates to non-volatile storage in a failsafe manner
US7376870B2 (en) 2004-09-30 2008-05-20 Intel Corporation Self-monitoring and updating of firmware over a network
US20070143530A1 (en) * 2005-12-15 2007-06-21 Rudelic John C Method and apparatus for multi-block updates with secure flash memory
JP4903071B2 (ja) 2007-03-15 2012-03-21 株式会社リコー 情報処理装置、ソフトウェア更新方法及び画像処理装置
US8185886B2 (en) * 2007-06-26 2012-05-22 Intel Corporation Method and apparatus to enable dynamically activated firmware updates
EP2051150B1 (de) * 2007-10-16 2011-03-16 Siemens Aktiengesellschaft Verfahren zur automatischen Modifikation eines Programms
JP2009110297A (ja) 2007-10-30 2009-05-21 Toshiba Corp 情報処理装置および同装置におけるメンテナンス方法
US8898477B2 (en) 2007-11-12 2014-11-25 Gemalto Inc. System and method for secure firmware update of a secure token having a flash memory controller and a smart card
ATE522861T1 (de) * 2007-12-13 2011-09-15 Ericsson Telefon Ab L M Firmware-aktualisierung bei einem elektronischen gerät
CN101526903B (zh) * 2008-03-07 2013-06-05 鸿富锦精密工业(深圳)有限公司 通讯装置及其固件更新方法
US20100241838A1 (en) * 2009-03-20 2010-09-23 Jason Cohen Method and system for firmware updates
US8107945B2 (en) * 2009-03-31 2012-01-31 Cellco Partnership Wireless device remote recovery
US8589302B2 (en) 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update

Also Published As

Publication number Publication date
US20110131447A1 (en) 2011-06-02
CN102081534B (zh) 2015-09-02
US20140047428A1 (en) 2014-02-13
US9483246B2 (en) 2016-11-01
US8589302B2 (en) 2013-11-19
CN102081534A (zh) 2011-06-01
KR20110060791A (ko) 2011-06-08
EP2339494A1 (en) 2011-06-29
JP2011118873A (ja) 2011-06-16
KR101232558B1 (ko) 2013-02-12

Similar Documents

Publication Publication Date Title
JP5174110B2 (ja) 自動化されたモジュール型のセキュアな起動ファームウェアの更新
US10261800B2 (en) Intelligent boot device selection and recovery
US8490189B2 (en) Using chipset-based protected firmware for host software tamper detection and protection
US11106622B2 (en) Firmware update architecture with OS-BIOS communication
US8671405B2 (en) Virtual machine crash file generation techniques
US20100042942A1 (en) Backup to Provide Hardware Agnostic Access to a Virtual Workspace Using Multiple Virtualization Dimensions
US8539213B2 (en) Manageability extension mechanism for system firmware
KR20130058058A (ko) 서비스 프로세서 컴플렉스 내의 데이터 저장을 위한 요구 기반 usb 프록시
WO2008027564A2 (en) Network computer system and method using thin user client and virtual machine to provide immunity to hacking, viruses and spy-ware
US10430589B2 (en) Dynamic firmware module loader in a trusted execution environment container
US8627315B2 (en) Apparatus and method for cooperative guest firmware
WO2022135429A1 (zh) 快速启动方法
WO2011144961A1 (en) Systems and methods for activation of applications using client- specific data.
TW202101207A (zh) 使用初始程式載入機制啟動安全客體
US8612737B2 (en) System and method for supporting multiple hardware platforms with a single disk image
US11995452B2 (en) Firmware memory map namespace for concurrent containers
US20240036896A1 (en) Generating installation images based upon dpu-specific capabilities

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120731

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121029

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121227

R150 Certificate of patent or registration of utility model

Ref document number: 5174110

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees