JP2020030812A - 更新されたファームウェアコードの検索 - Google Patents

更新されたファームウェアコードの検索 Download PDF

Info

Publication number
JP2020030812A
JP2020030812A JP2019128484A JP2019128484A JP2020030812A JP 2020030812 A JP2020030812 A JP 2020030812A JP 2019128484 A JP2019128484 A JP 2019128484A JP 2019128484 A JP2019128484 A JP 2019128484A JP 2020030812 A JP2020030812 A JP 2020030812A
Authority
JP
Japan
Prior art keywords
rom code
computer system
code
copy
computer
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.)
Pending
Application number
JP2019128484A
Other languages
English (en)
Inventor
美琳 蘇
Mei-Lin Su
美琳 蘇
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.)
Quanta Computer Inc
Original Assignee
Quanta Computer Inc
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 Quanta Computer Inc filed Critical Quanta Computer Inc
Publication of JP2020030812A publication Critical patent/JP2020030812A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • 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
    • H03M7/70Type of the data to be coded, other than image and sound
    • H03M7/702Software

Landscapes

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

Abstract

【課題】コンピュータシステムによってアクセス可能なローカルリポジトリ及びリモートリポジトリ上の可能なROMコードの中から適切なROMコードを選択するシステム及び方法を提供する。【解決手段】コンピュータシステム内の読み出し専用メモリ(ROM)コードを更新するためのコンピュータ実行方法は、複数のリポジトリのうち少なくとも1つのリポジトリにあるROMコードの1つ以上のコピーにアクセスするステップであって、ROMコードは、コンピュータシステム内の特定のデバイスに対して初期化プロセスを実行するように構成されている、ステップと、選択基準に基づいてROMコードの1つ以上のコピーのうち1つのコピーを選択し、選択されたROMコードを取得するステップと、選択されたROMコードをコンピュータシステムのシステムメモリにコピーするステップと、システムメモリ内の選択されたROMコードを実行して、特定のデバイスを初期化するステップと、を含む。【選択図】図2

Description

本発明は、読み出し専用メモリ(ROM)コードの検索に関し、特に、コンピュータシステムによってアクセス可能なローカルリポジトリ及びリモートリポジトリ上の可能なROMコードの中から適切なROMコードを選択するシステム及び方法に関する。
コンピュータシステムは、拡張読み出し専用メモリ(ROM)コードを用いて、コンピュータシステム内の特定のデバイスを初期化する。多くの場合、拡張ROMコードは、コンピュータシステムの起動中に用いられる。例えば、ビデオグラフィックアレイ(VGA)デバイスの拡張ROMコードは、コンピュータシステムのビデオ出力機能を可能にする。別の例では、記憶デバイスの拡張ROMコードは、コンピュータシステムの起動中にハードドライブディスクを初期化し、それをBIOSにさらす(expose)ことができる。
拡張ROMコードを実行すると、グラフィックカードやハードディスクドライブ等のコンピュータシステム内の重要なファームウェアデバイスを初期化することができる。これらのファームウェアデバイスは、システムの起動中に拡張ROMコードが適切に実行されていないと、簡単に初期化されない。したがって、特定のデバイスを初期化するための拡張ROMコードが存在しない場合、コンピュータシステムの機能が低下する虞がある。拡張ROMコードが無効であるか最新でない場合、コンピュータシステムは、特定のデバイスを適切に初期化することができない虞がある。
拡張ROMコードは、多くの場合、コンピュータバスカードに記憶される。コンピュータバスカードは、拡張カード又はアダプタカードとも呼ばれ、このカードを初期化するための主な電源投入命令をコンピュータシステムに提供する。拡張ROMコードがコンピュータバスカードに記憶されている場合、コンピュータシステムは、そのコードに容易にアクセスして、電源投入中にそのコードを実行することができる。しかしながら、このアプローチには、いくつかの問題がある。特に、ユーザが何らかの理由でコンピュータバスカードを交換する必要がある場合、新たなコンピュータバスカードが交換用カードに適切な拡張ROMコードを有しているかどうかを判別するのは容易ではない。カードに適切な拡張ROMコードがないと、通常、ユーザが特定のデバイスを初期化するのは面倒なプロセスである。ユーザは、適切な拡張ROMコードを検索し、それをコンピュータバスカードに手動で入れることによって、手動初期化プロセスを完了する必要がある。
いくつかの実施形態では、拡張ROMコードは、コンピュータシステムによってアクセス可能な場所に記憶されるが、コンピュータバスカード上には記憶されない。しかしながら、多くの従来のコンピュータシステムは、他の場所に記憶されている拡張ROMコードへのアクセスをサポートしていない。また、このようなコンピュータシステムは、拡張ROMコードの複数のコピーがコンピュータシステム内に存在する状況では、何れの拡張ROMコードが実行に適切なコードであるかを判別することができない。
また、拡張ROMコードが古い場合、ユーザがそれを更新することは困難である。例えば、ユーザは、通常、拡張ROMコードを手動で更新するか、コンピュータバスカード自体を、更新された拡張ROMコードを有するバスカードと交換する必要がある。拡張ROMコードを手動で更新するには、ユーザは、コンピュータのバスカードのベンダのフィールドアプリケーションエンジニア(Field Application Engineer:FAE)からROMイメージを取得するか、ベンダのWebサイトからそれをダウンロードする必要がある。次に、ユーザは、ROMイメージを記憶デバイス(例えば、USBフラッシュキー)にコピーする必要がある。次に、ユーザは、元のコンピュータバスカードを用いてシステムの電源を入れ、オペレーティングシステムを起動する必要がある。次いで、ユーザは、ベンダ固有のユーティリティを用いて、拡張カードのROMイメージをフラッシュ又は更新する必要がある。
したがって、コンピュータバスカードから拡張ROMコードが欠落しているか、拡張ROMコードが古くなっている場合に、コンピュータシステムによってアクセス可能な複数のリポジトリのうち何れかのリポジトリ内の拡張ROMコードにアクセスすることができるシステム又は方法が必要である。
本発明は、コンピュータシステムによってアクセス可能なローカルリポジトリ及びリモートリポジトリ上の可能なROMコードの中から適切なROMコードを選択するシステム及び方法を提供する。
本開示の様々な例は、コンピュータシステムによってアクセス可能なローカル及びリモートリポジトリ上の可能なROMコードの中から適切なROMコードを選択することを目的としている。本開示の実施形態による例示的な方法は、可能なROMコードをチェックし、選択されたROMコードを実行するための一連のステップを実行する。本開示による一実施形態は、コンピュータシステム内の読み出し専用メモリコードを更新するためのコンピュータ実行方法を含むことができる。この方法は、複数のリポジトリのうち少なくとも1つのリポジトリにあるROMコードの1つ以上のコピーにアクセスすることができる。ROMコードは、コンピュータシステム内の特定のデバイスに対して初期化プロセスを実行するように構成することができる。方法は、ROMコードの1つ以上のコピーにアクセスした後に、選択基準に基づいてROMコードの1つ以上のコピーのうち1つのコピーを選択することができる。これにより、選択されたROMコードを取得することができる。次に、方法は、選択されたROMコードをコンピュータシステムのシステムメモリにコピーして、特定のデバイスを初期化することができる。
いくつかの例では、複数のリポジトリは、コンピュータシステム内のローカルリポジトリと、コンピュータシステム外のリモートリポジトリと、を含むことができる。
いくつかの例では、選択基準は、ROMコードの最新のコピーを、ROMコードの1つ以上のコピーから識別することができるかどうかを判別することを含むことができる。方法は、ROMコードの最新のコピーを識別することができると判別したことに応じて、最新のコピーを、選択されたROMコードとして選択することができる。方法は、ROMコードの最新のコピーを識別することができないと判別したことに応じて、最も高い優先度を有するROMコードのコピーを、選択されたROMコードとして選択することができる。
いくつかの例では、ROMコードのコピーの優先度は、ROMコードのコピーの場所によって決定される。ローカルリポジトリは、リモートリポジトリよりも高い優先度を有することができる。コンピュータシステムのコンピュータバスカードは、コンピュータシステム内の他のローカルリポジトリよりも高い優先度を有することができる。
いくつかの例では、選択されたROMコードをコピーすることは、選択されたROMコードがリモートレポジトリにあるかどうかを判別することをさらに含むことができる。方法は、選択されたROMコードがリモートレポジトリにあると判別したことに応じて、選択されたROMコードをリモートレポジトリからダウンロードして、ダウンロードされた、選択されたROMコードを取得することができる。次に、方法は、ユーザからの入力を受信して、ダウンロードされた、選択されたROMコードをコンピュータシステムのローカルレポジトリに記憶することができる。
他の例では、方法は、先ず、コンピュータシステム内のコンピュータバスカード内の既存のROMコードが存在しない及び/又は無効であると判別することを含むことができる。
他の例では、方法は、先ず、コンピュータシステム内のコンピュータバスカード内の既存のROMコードが存在しており、有効であると判別することを含むことができる。また、方法は、既存のROMコードを自動的に用いるのではなく、コンピュータシステムが選択基準に基づいてROMコードを選択する傾向があると判別することができる。
「コンピュータシステム」、「コンピューティングシステム」及び「サーバシステム」という用語は、本開示において全て同じ意味で用いられており、コンピュータプログラミングを介して一連の算術演算又は論理演算を実行する電子コンピューティングシステムを識別するために使用することができる。このような電子コンピューティングシステムは、パーソナルコンピュータ、ラップトップコンピュータ、タブレット、及び、商業用又は個人向けサーバシステムを含むことができるが、これらに限定されない。
本開示並びにその利点及び図面は、添付の図面を参照しながら以下の例示的な実施形態の説明からより良く理解されるであろう。これらの図面は例示的な実施形態のみを描いており、したがって、様々な実施形態又は特許請求の範囲に対する限定とみなされるべきではない。
従来技術による、拡張ROMコードを実行する方法のフローチャートである。 本開示の一実施形態による、コンピュータシステム内の読み出し専用メモリコードを更新する例示的な方法のフローチャートである。 本開示の一実施形態による、例示的な選択基準を示す図である。 本開示の一実施形態による、選択された拡張ROMコードをリモートリポジトリからローカルリポジトリに保存する例示的な方法を示す図である。 本開示の一実施形態による、拡張ROMコードの構造の例示的なメモリマップを示す図である。 本開示の一実施形態による、例示的なシステムを示す概略ブロック図である。
本発明は、添付の図面を参照して説明され、図面全体を通して、類似又は同じ要素を示すために類似の符号が使用される。図面は、本発明を説明するためのものであり、縮尺通りに描かれているとは限らない。本発明のいくつかの態様は、説明のために、例示的な用途を参照して以下に説明される。本発明の十分な理解を提供するために、多数の具体的な詳細、関係及び方法が説明されていることを理解されたい。しかしながら、当業者であれば、これらの特定の詳細なしに、又は、他の方法を用いて本発明を実施し得ることを容易に理解するであろう。その他の実施形態において、本発明を曖昧にすることを避けるために、周知の構造又は動作を詳細に示していない。いくつかの動作は、異なる順序及び/又は他の動作若しくはイベントと同時に起こり得るので、本発明は、例示された動作又はイベントの順序によって限定されない。また、本発明による方法を実施するために、例示された全ての動作又はイベントが必要とされているわけではい。
本開示は、更新された拡張ROMコードを検索し、そのコードを実行して特定のデバイスを初期化する方法に関する。本方法の例示的な実施形態では、コンピュータシステムは、先ず、複数のリポジトリ内の拡張ROMコードの1つ以上のコピーにアクセスすることができる。次に、コンピュータシステムは、選択基準に基づいてコードの1つのコピーを選択することができる。最後に、コンピュータシステムは、選択されたROMコードをコンピュータシステムのシステムメモリにコピーし、システムメモリ内の選択されたROMコードを実行することができる。
本明細書に開示される方法では、選択基準は、先ず、最新バージョンの拡張ROMコードを選択することを提供することができる。最新のバージョンがない場合、選択基準は、何れのコードのコピーが最も高い優先度を有するかに従って拡張ROMコードを選択することを提供することができる。例えば、高い優先度がローカルリポジトリからの拡張ROMコードに割り当てられてもよく、低い優先度がリモートリポジトリからの拡張ROMコードに割り当てられてもよい。
この方法は、最初のコンピュータバスカードの拡張ROMコードに常に頼るのではなく、拡張ROMコードの更新を可能にする。この方法では、コンピュータシステムは、特定のデバイスを初期化するために、ローカルリポジトリ及びリモートリポジトリを調べて、拡張ROMコードの他のコピーを見つけることができる。
この方法は、利用可能な拡張ROMコードを評価して適切なROMコードを選択するのを可能にする等、従来のプロセスよりも優れた利点を有する。例えば、最新のコードは、通常、最新の更新を有しているので、最近のコードを適切な選択とすることができる。したがって、この方法は、適切なROMコードを選択して使用するために、最新の拡張ROMコードを選択することを提供することができる。別の例では、ローカルに記憶されたROMコードは、通常、初期化されたデバイスに対して最適に構成されているので、この方法は、リモートリポジトリ上の拡張ROMコードのコピーよりもローカルリポジトリ上の拡張ROMコードのコピーを優先することを提供することができる。
図1は、従来技術による、コンピュータシステムにおいて拡張ROMコードを実行する方法100のフローチャートである。この方法100では、第1ステップ(ステップ102)は、システムが周辺機器相互接続(peripheral component interconnect:PCI)デバイス上で拡張ROMコードを見つけることができるかどうかを調べる。例えば、PCIデバイスは、コンピュータバスカードとすることができる。ROMコードが存在し且つ有効であると判明した場合(ステップ104)、コンピュータシステムは、拡張ROMコードをPCIデバイスからシステムメモリにコピーするように進むことができる(ステップ106)。次に、方法100は、システムメモリ内の拡張ROMコードを実行し、PCIデバイスを初期化することができる(ステップ108)。しかしながら、システムがPCIデバイス上で拡張ROMコードを見つけることができなかった場合(ステップ104)、方法100は終了する(ステップ110)。
図1から分かるように、拡張ROMコードがPCI装置上で見つからない場合、従来の方法では、通常、PCIデバイスを初期化する如何なる手段も提供しない。結果として、方法100は、方法100の要件が満たされていない場合にはバックアップできないという限られた状況を有する。
図2は、本開示の一実施形態による、コンピュータシステム内の読み出し専用メモリコードを更新する例示的な方法200のフローチャートである。方法200は、ユーザがコンピュータシステムと対話する前にプロセスが完了するように、コンピュータシステムの起動段階中に実行することができる。方法200は、コンピュータシステムのBIOSソフトウェアに統合することができ、起動プロセス中に実行することができる。
コンピュータシステムの起動プロセス中であるが方法200の開始前に、コンピュータシステムは、先ず、コンピュータシステム内のコンピュータバスカード内の既存のROMコードが存在し且つ有効であるかどうかをチェックすることができる。既存のROMコードが存在しない及び/又は有効でないことが判明した場合、コンピュータシステムは、図2の方法200を初期化することができる。既存のROMコードが存在し且つ有効であるかどうかをまずチェックすることは、コンピュータシステムを可能な限り効率的に実行するのを可能にする。例えば、既存のROMコードが既に存在し且つ有効であれば、更新されたROMコードを求めてコンピュータシステムを検索する必要がない。更新されたROMコードを検索すると、余分な時間がかかる可能性がある。
また、コンピュータシステムは、コンピュータシステム内のコンピュータバスカード内の既存のROMコードが存在し且つ有効であると判別することができる。次に、コンピュータシステムは、システムプリファレンス(system preference)をチェックし、コンピュータシステムが、既存のROMコードを自動的に使用するのではなく、方法200による選択基準に基づいて依然としてROMコードを選択する傾向があることを識別することができる。これにより、ユーザは、システムプリファレンスを設定し、最新のROMコードを得るためにコンピュータシステムが効率を犠牲にすべきかどうかを個別に決定することができる。
コンピュータシステムが既存のROMコードに対して初期チェックを実行するかどうかにかかわらず、方法200は、ステップ210で、複数のリポジトリのうち少なくとも1つのリポジトリにあるROMコードの1つ以上のコピーにアクセスすることによって開始する。ROMコードは、拡張ROMコード、オプションROMコード、又は、コンピュータシステム内の特定のデバイスに対して初期化プロセスを実行するように構成された任意の他のコードとすることができる。例えば、ROMコードは、VGAカード、ハードドライブディスク、又は、独立した初期化コードを用いることができるコンピュータシステム内の任意の他のデバイスのための初期化プロセスを実行するように構成することができる。ステップ210は、複数のリポジトリのうち任意のリポジトリ内のROMコードのコピーにアクセスすることができる。
リポジトリは、コンピュータシステムのローカルなリポジトリと、コンピュータシステムに対してリモートなリポジトリと、を含むことができる。ローカルリポジトリの例は、コンピュータシステム内の任意のリポジトリ(例えば、コンピュータバスカード、周辺機器相互接続(PCI)カード上の電気的消去可能プログラマブル読み出し専用メモリ(electrically erasable programmable read-only memory:EEPROM)、コンピュータシステムのマザーボードユニット上のEEPROM、及び/又は、基本入出力システム(BIOS)の予約空間等)を含むことができる。ローカルリポジトリは、BIOSがインターネット接続又は3パリティコンポーネント(3-parity component)を介してメモリにアクセスする必要がないように、BIOSによって直接アクセス可能な任意のメモリを含む。ハードドライブ又はUSBドライブは、コンピュータシステムのマザーボードユニットに直接接続されている場合に、ローカルリポジトリとなり得る。
リモートリポジトリの例は、システムのマザーボードユニットに直接接続されていないが、Wi−Fi(登録商標)やイーサネット(登録商標)等のリンク接続(linked connection)、又は、データを取り出すのに必要な量の待ち時間を要する他の接続を介してアクセス可能な任意のリポジトリを含むことができる。リモートリポジトリは、3パリティ接続を介してアクセスすることもできる。したがって、リモートリポジトリは、コンピュータシステム内のコンピュータコンポーネントを含むこともできるが、BIOSから直接アクセスすることができない。リモートリポジトリのいくつかの例は、ハードドライブディスク、ユニバーサルシリアルバス(USB)ドライブ、及び/又は、リモートファームウェア制御サーバを含むことができる。
ステップ210を完了した後、方法200は、選択基準に基づいてROMコードの1つのコピーを選択することによってステップ220に進む。例示的な選択基準は、図3にさらに説明される。図2に示すように、ステップ220の選択基準は、ステップ210がROMコードの複数のコピーにアクセスした場合に、ROMコードの単一のコピーを選択するのに用いられる。さらに、選択基準は、最も信頼性が高く、最新且つ容易にアクセス可能なROMコードのコピーが確実に選択されるように用いられる。
方法200は、次いで、ステップ230において、選択されたコピーがリモートリポジトリ内にあるかどうかをチェックすることができる。選択されたコピーがリモートリポジトリにある場合、方法はステップ260に進み、リモート選択プロセスを完了する。例示的なリモート選択プロセスは、図4に関して以下により詳細に説明される。図2に示すように、方法は、ステップ260のリモート選択プロセスが完了した後に、ステップ240に進む。
ステップ230では、コンピュータシステムが、選択されたコピーがリモートリポジトリにないと判別した場合に、方法200はステップ240に進むことができる。ステップ240では、方法200は、選択されたROMコードをコンピュータシステム内のシステムメモリにコピーする。システムメモリは、コンピュータシステムの起動プロセス中に実行するためのコンピュータ命令を保持するコンピュータコンポーネントとすることができる。例えば、システムメモリは、ダイナミックランダムアクセスメモリ(DRAM)とすることができる。
次に、方法200は、ステップ250において、選択されたROMコードを実行することによって完了し、コンピュータシステム内の特定のデバイスのための初期化プロセスを実行する。
したがって、例示的な方法200は、従来のプロセスよりも優れたいくつかの利点を有する。方法200は、コンピュータシステムに対してローカル及びリモートの様々なリポジトリ内のROMコードにアクセスするので、コンピュータシステムは、従来のシステムよりも広範囲の状況で特定のデバイスを初期化することができる。従来のシステムは、コンピュータバスカード内のROMコードを検索するだけであり、ROMコードがコンピュータバスカード内で見つからなかった場合には、デバイスを初期化することができない。また、例示的な方法200は、ステップ220において、選択基準によって最も更新され、容易にアクセス可能で、信頼性のあるコードが確実に選択されるようにする。このステップにより、利用可能な最善のROMコードが常にデバイスの初期化に用いられるようになる。
したがって、図2の方法は、初期化プロセスに用いられる更新コードをダウンロードし、識別し、選択するためにユーザの関与を必要とする従来のプロセスよりも優れた利点を示している。また、従来のプロセスは、通常、コンピュータの電源がオンでユーザがアクセスできる間に、特定のデバイスに対して更新手順を行う必要がある。次に、ユーザは、実行されたコードを実行する前に、コンピュータシステムを再起動する必要がある。対照的に、方法200は、コンピュータシステムの起動プロセス中に更新手順を実行することができる。
上述したように、図2のステップ220は、選択基準に基づいてアクセスされたROMコードの1つのコピーを選択することを含む。図3は、本開示の一実施形態による、例示的な選択基準を実施する方法300を示している。ステップ310では、方法300は、先ず、アクセスされたROMコード(例えば、図2のステップ210でアクセスされたROMコード)を評価し、ROMコードの何れのコピーが最新のものであるかを判別する。最新のコピーは、最も最近書き込みされた又は公開された、すなわち最新の日付を有するROMコードとすることができる。日付は、コード上のタグによって識別されてもよいし、コードコピーの最新性を識別する他のメカニズムによって識別されてもよい。例えば、図5は、本開示の一実施形態による、ROMコードの例示的な構造を説明している。図3に示すように、最新のコピーを識別することは、特定のデバイスを初期化するのに用いられるコードが最新のコードになることを保証する。
いくつかの実施例では、方法300は、ステップ310で、ROMコードの単一の最新のコピーを識別することができる。例えば、サマリテーブルを生成して、拡張ROMコードとそのリビジョンデータ(revision data)をリストすることができる。このようなサマリテーブルは、拡張ROMコードのベンダ識別、何れのコンピュータデバイスが拡張ROMコードを使用するのかに関する対応するデバイス識別(ID)、拡張ROMコードの任意のリビジョンデータ、拡張ROMコードのリビジョン履歴、及び、リビジョンされた拡張ROMコードの各コピーの場所等のデータを含むことができる。したがって、BIOSは、サマリテーブルを検索して、何れのリポジトリにROMコードの最新のコピーがあるかを判別することができる。
最新のコピーを識別することができる場合(ステップ315)、方法300は、ステップ320に進むことができる。ステップ320では、方法300は、ROMコードの最新のコピーを選択されたコードとして用いて、図2のステップ230に戻る。
対照的に、最新のコピーを識別することができない場合(ステップ315)、方法300は、さらなる処理のために代わりにステップ330に進むことができる。つまり、いくつかのケースにおいて、最新の日付を有するROMコードのコピーが複数ある場合がある。方法300は、最新の日付を有するROMコードの全てのコピーを識別する追加の処理のために、ステップ330に進むことができる。したがって、より新しい日付を有するROMコードのいくつかのコピーと、あまり新しくない日付を有する他のコピーとがある場合、方法300は、より新しい日付を有するROMコードのコピーのみを進めることができる。
ステップ330で最新の日付を有するROMコードが識別されると、方法300は、ステップ340に進むことができる。ステップ340では、最高の優先度を有するROMコードのコピーを選択することができる。さらに、ステップ320では、最高の優先度を有するROMコードを選択されたコードとして用いて、図2のステップ230に戻る。
ROMコードの優先度は、様々な方法で指定することができる。しかしながら、例示的な構成では、方法300は、以下のように優先度を決定することができる。先ず、ROMコードの各コピーの位置を識別することができる。例えば、上述したように、ROMコードの各コピーは、ローカルレポジトリ又はリモートレポジトリ内で見つけることができ、対応するレポジトリに注目することができる。その後、位置優先度を用いることができる。例えば、ローカルリポジトリは、リモートリポジトリよりも高い優先度を有することができる。このような構成では、方法300は、リモートレポジトリからのコピーよりも、ローカルレポジトリからのROMコードのコピーを優先することになる。さらに、同様のタイプのリポジトリ(ローカル又はリモート)においても、優先度を指定することができる。例えば、コンピュータバスカード内のROMコードのコピーは、他のコンピュータシステムのローカルリポジトリのROMコードのコピーよりも高い最高の優先度を有することができる。
本開示の他の例示的な実施形態では、選択基準は、ROMコードのリビジョン生成者に基づいてROMコードを優先することができる。例えば、ファームウェアの生成者と同じリビジョン生成者を優先することができる。本開示の別の例示的な実施形態では、リアルタイムでユーザにインタフェースを提供することができ、ユーザは、何れのROMコードが適切であるかを選択することができる。
方法300は、従来の方法よりも優れた多くの利点を提供する。例えば、従来のプロセスは、通常、コンピュータバスカード内で見つかったROMコードを評価するだけであり、コードの最新性を評価する方法を有していない。対照的に、方法300は、最新の日付を有するROMコードのコピーを選択することに基づいて、適切なROMコードをもたらすことができる。
また、方法300は、コードの場所に基づいて、何れROMコードのコピーを実行するかを決定することができる。これにより、より効率的な起動プロセスとすることができる。例えば、コンピュータバスカードからコードを選択することは、コンピュータシステムがリモートレポジトリからコードをダウンロードし、それを新たな場所に保存し、そのコードを実行することを必要としない。したがって、コンピュータバスカード内のROMコードが最新のものである場合、本開示の方法は、不要なプロセスの必要性を回避する。
いくつかの構成では、ROMコードが最終的にリモートリポジトリから得られる場合、そのROMコードを将来の使用のためにローカルレポジトリに記憶することが有利になり得る。これは、図4に示されている。図4は、本開示の一実施形態による、選択された拡張ROMコードをリモートリポジトリからローカルリポジトリに保存する例示的なリモート選択プロセス400を示している。リモート選択プロセス400は、方法200の選択されたROMコードがリモートリポジトリにある場合に開始することができるオプションのプロセスである。
リモート選択プロセス400は、選択されたROMコードからのリビジョンデータをリモートリポジトリから受信するステップ410で開始する。例えば、選択された拡張ROMコード全体をリモートリポジトリからダウンロードすることができる。別の実施形態では、選択された拡張ROMコードからのリビジョンデータのみをリモートリポジトリから受信することができる。リビジョンデータは、取得してローカルドライブ、マザーボードのEEPROM、BIOSフラッシュROMの予約領域、又は、ローカルリポジトリの任意の場所に配置することができる。いくつかの実施例では、場所は、ユーザによって選択されてもよい。
次に、リモート選択プロセス400は、ステップ420に進み、リモート選択プロセス400がROMコードをローカルレポジトリに保存すべきかどうかに関する指示をユーザから受信することができる。ROMコードをローカルレポジトリに保存することは、ROMコードが将来の試みにおいてより効率的にアクセスされ、より効率的に実行されるのを可能にする。ローカルリポジトリにROMコードを保存する命令を受けた後、リモート選択プロセス400は、ステップ430に進み、ROMコードがローカルリポジトリにコピーされる。
リモート選択プロセス400は、(1)コードをローカルリポジトリに保存する命令を受信しない(ステップ420)、又は、(2)コードをローカルリポジトリにコピーするプロセスを完了する(ステップ430)ステップの何れかの後に、ステップ440で完了する。
リモート選択プロセス400は、リモート選択プロセスが、更新されたROMコードをローカルレポジトリにコピーし、コンピュータシステムの将来の全ての起動プロセスで繰り返し使用するのを可能にするので、従来のプロセスよりも優れた利点を示している。これは、起動プロセスを続行する前にシステムがリモートリポジトリからコードをダウンロードする必要がないので、将来の全ての起動プロセスの効率を向上させる。
図5は、本開示の一実施形態による、拡張ROMコードの例示的な構造を示す図である。例えば、例示的な構造は、ROMヘッダ501と、PCIデータ構造502と、イメージ503と、を含むことができる。ROMヘッダ501は、拡張ROMコードのヘッダフィールド504と、拡張ROMコードの署名505と、PCIデータ構造へのポインタ506と、任意の他の追加ヘッダデータ507と、を含むことができる。この情報は、拡張ROMコードを評価するときに、BIOSによって記憶、分析及び呼び出す(recall)ことができる。
PCIデータ構造502は、PCIデータ構造へのポインタ508と、ベンダ識別(ID)509と、デバイス識別(ID)510と、デバイスリストポインタ511と、ROMコード構造長512と、ROMコードリビジョン履歴513と、ROMコードのリビジョンデータ514と、任意の追加データ構造情報515と、等の情報を含むことができる。デバイス識別(ID)510は、特定のROMコードを保持する特定のデバイスを識別することができる。デバイスリストポインタ511は、特定のROMコードによってサポートされ得る他の全てのデバイスを含むデバイスリストを指すことができる。ベンダ識別(ID)509、デバイス識別(ID)510、デバイスリストポインタ511及びROMコードリビジョン履歴513は、図3に関して説明したように使用することができる。ROMコードのリビジョンデータは、本開示の方法の何れかを実行するときにBIOSによってアクセス可能である。
図6は、本開示の一実施形態による、例示的なサーバシステム600のブロック図である。この例では、サーバシステム600は、少なくとも1つのマイクロプロセッサ又はプロセッサ604と、BMC603と、1つ以上の冷却モジュール660と、メインメモリ(MEM)611と、AC電源からAC電力を受け取り、電力を様々なコンポーネント(例えば、プロセッサ604、ノースブリッジ(NB)ロジック606、PCIeスロット670、サウスブリッジ(SB)ロジック608、ストレージデバイス609、ISAスロット650、PCIスロット670及びBMC603等)に供給する少なくとも1つの電源ユニット(PSU)602と、を含む。
電源がオンにされた後、サーバシステム600は、メモリ、コンピュータストレージデバイス又は外部のストレージデバイスからソフトウェアアプリケーションをロードして、様々な動作を行うように構成されている。ストレージデバイス609は、オペレーティングシステム及びサーバシステム600のアプリケーションに利用可能な論理ブロックに構造化されている。ストレージデバイス609は、サーバシステム600の電源がオフになってもサーバデータを保持するように構成されている。
図6において、メインメモリ611は、プロセッサ604に直接接続されている。メインメモリ611は、DRAM、ダブルデータレートDRAM(DDR DRAM)、スタティックRAM(SRAM)又は他のタイプの適切なメモリを含むことができるが、これらに限定されない。メインメモリ611は、サーバシステム600のファームウェアデータを記憶するように構成することができる。いくつかの構成では、ファームウェアデータは、ストレージデバイス609に記憶することができる。
いくつかの実装形態では、サーバシステム600は、フラッシュストレージデバイスをさらに備えることができる。フラッシュストレージデバイスは、フラッシュドライブ、ランダムアクセスメモリ(RAM)、不揮発性ランダムアクセスメモリ(NVRAM)、又は、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)とすることができる。フラッシュストレージデバイスは、例えばファームウェアデータ等のシステム構成を記憶するように構成することができる。
プロセッサ604は、特定の機能のプログラム命令を実行するように構成された中央処理装置(CPU)とすることができる。例えば、プロセッサ604は、起動プロセス中に、BMC603又はフラッシュストレージデバイスに記憶されたファームウェアデータにアクセスし、BIOS605を実行してサーバシステム600を初期化することができる。プロセッサ604は、起動プロセスの後に、オペレーティングシステムを実行して、サーバシステム600の特定のタスクを実行及び管理する。別の実施形態では、BIOS605は、プロセッサ604の代わりにPCHに接続する。
いくつかの構成では、プロセッサ604は、マルチコアプロセッサとすることができ、マルチコアプロセッサの各プロセッサは、NBロジック606に接続されたCPUバスを介して互いに結合される。いくつかの構成では、NBロジック606をプロセッサ604に統合することができる。また、NBロジック606は、複数の周辺コンポーネント相互接続エクスプレス(PCIe)スロット670及びSBロジック608(オプション)に接続することができる。複数のPCIeスロット670は、例えば、PCIエクスプレス x1、USB2.0、SMBus、SIMカード、他のPCIeレーンの将来の拡張(extension)、1.5V及び3.3Vの電源、並びに、サーバシステム600のシャーシ上の診断LEDへの配線等の接続及びバスに使用することができる。
サーバシステム600では、NBロジック606及びSBロジック608は、PCI(Peripheral Component Interconnect)バス607で接続されている。PCIバス607は、プロセッサ604の複数の機能をサポートすることができるが、プロセッサ604の何れかのネイティブバスから独立した標準フォーマットを用いている。さらに、PCIバス607は、複数のPCIスロット670(例えば、PCIスロット671)に接続され得る。PCIバス607に接続されたデバイスは、CPUバスに直接接続され、プロセッサ604のアドレス空間内のアドレスが割り当てられ、単一のバスクロックと同期されるように、バスコントローラ(図示省略)に現れてもよい。複数のPCIスロット670で使用可能なPCIカードは、ネットワークインタフェースカード(NIC)、サウンドカード、モデム、TVチューナーカード、ディスクコントローラ、ビデオカード、スカジー(SCSI)アダプタ、及び、PCMCIA(Personal Computer Memory Card International Association)カードを含むが、これらに限定されない。
SBロジック608は、拡張バスを介して、PCIバス607を、複数の拡張カード又はISAスロット650(例えば、ISAスロット651)に接続することができる。拡張バスは、SBロジック608と周辺機器との間の通信に用いられるバスであってもよく、業界標準アーキテクチャ(Industry Standard Architecture:ISA)バス、PC/604バス、ローピンカウント(low pin count:LPC)バス、拡張ISA(EISA)バス、ユニバーサルシリアルバス(USB)、IDE(integrated drive electronics)バス、又は、周辺機器のデータ通信に使用可能な他の適切なバスを含んでもよいが、これらに限定されない。
この実施例では、BIOS605は、サーバシステム600の様々なコンポーネントを起動し識別するように構成された任意のプログラム命令又はファームウェアとすることができる。BIOSは、対応するサーバシステムのハードウェアコンポーネントの初期及びテストを担当する重要なシステムコンポーネントである。BIOSは、ハードウェアコンポーネントに抽象化レイヤを提供することができるので、アプリケーション及びオペレーティングシステムは、キーボード、ディスプレイ及び他の入出力デバイス等の周辺機器と相互作用する一貫した方法を提供することができる。
サーバシステム600では、SBロジック608は、PSU602に接続されたBMC603に接続されている。いくつかの実装形態では、BMC603は、ラック管理コントローラ(RMC)であってもよい。BMC603は、サーバシステム600のコンポーネントの動作状態を監視し、そのコンポーネントの動作状態に基づいてサーバシステム600を制御するように構成されている。
図6の例示的なサーバシステム600には特定のコンポーネントのみが示されているが、データを処理又は記憶することができ、又は、信号を送受信することができる様々なタイプの電子又はコンピューティングコンポーネントも例示的なサーバシステム600に含むことができる。さらに、例示的なサーバシステム600内の電子又はコンピューティングコンポーネントは、様々なタイプのアプリケーションを実行し、及び/又は、様々なタイプのオペレーティングシステムを用いるように構成することができる。これらのオペレーティングシステムには、Android(登録商標)、BSD(Berkeley Software Distribution)、iPhone(登録商標) OS(iOS)、Linux(登録商標)、OS X、Unix系リアルタイムオペレーティングシステム(例えば、QNX等)、Microsoft Windows(登録商標)、Window Phone、及び、IBM z/OS(登録商標)等が含まれるが、これらに限定されない。
例示的なサーバシステム600の所望の実装形態に応じて、様々なネットワークプロトコル及びメッセージングプロトコル(例えば、TCP/IP、オープンシステム間相互接続(OSI)、ファイル転送プロトコル(FTP)、ユニバーサルプラグアンドプレイ(UpnP)、ネットワークファイルシステム(NFS)、コモンインターネットファイルシステム(common internet file system:CIFS)、AppleTalk(登録商標)等が含まれるが、これらに限定されない)が用いられる。当業者であれば理解できるように、図6は説明の目的で用いられている。したがって、ネットワークシステムは、必要に応じて、多くのバリエーションで実装することができ、本発明の様々な実施形態によるネットワークプラットフォームの構成を提供する。
図6の例示的な構成では、例示的なサーバシステム600は、特定の無線チャネルの計算範囲内で1つ以上の電子デバイスと通信可能な1つ以上の無線コンポーネントを含むことができる。デバイスが無線で通信するために使用される任意の適切なチャネル(例えば、ブルートゥース(登録商標)、セルラー(cellular)、NFC又はWi‐Fi(登録商標)チャネル等)であってもよい。このデバイスは、従来技術で知られているように、1つ以上の従来の有線通信接続を有することができることを理解されたい。様々な実施形態の範囲内で、様々な他のコンポーネント及び/又はその組み合わせが可能である。
本発明の様々な実施形態を上述したが、これらは例としてのみ示されており、これらに限定されないことを理解されたい。本発明の趣旨又は範囲から逸脱することなく、開示された実施形態に対して多数の変更を加えることができる。よって、本発明の広さや範囲は、上述した実施形態によって限定されるべきではない。むしろ、本発明の範囲は、添付の特許請求の範囲及びその均等物に従って定義されるべきである。
本発明を1つ以上の実施形態に関して例示及び説明してきたが、本明細書及び添付の図面を読んで理解すると、当業者は、同等の変更及び修正に想到するであろう。また、本発明の特定の特徴は、複数の実施けいたいのうち1つのみに関連して述べられているが、このような特徴は、所定の又は特定の用途に必要で有利な1つ以上の他の実施形態の他の特徴と組み合わせることができる。
本明細書で使用する用語は、特定の実施形態のみを説明するものであって、本発明を限定することを意図するものではない。本明細書で使用される単数形(例えば、「1つの」、「その」等)は、文脈が明らかにそうでないことを示さない限り、複数形も含むことを意図している。さらに、「含む」、「有する」等の用語又はこれらの変形は、詳細な説明及び/又は特許請求の範囲で使用される限りにおいて、「備える」という用語と同様の意味で包括的であることを意図している。
特に定義されない限り、本明細書で使用される全ての用語(技術用語及び科学用語を含む)は、当業者によって通常理解されるのと同じ意味を有する。さらに、一般的に使用される辞書で定義されているような用語は、関連する技術の文脈における意味と一致する意味を有すると解釈されるべきであり、本明細書で明示的に定義されていない限り、理想的又は過度に形式的な意味で解釈されるべきではない。
100…方法
102〜110…ステップ
200…方法
210〜260…ステップ
300…方法
310〜340…ステップ
400…リモート選択プロセス
410〜440…ステップ
501…ROMヘッダ
502…PCIデータ構造
503…画像
504…ヘッダフィールド
505…拡張ROMコードの署名
506…PCIデータ構造へのポインタ
507…追加ヘッダデータ
508…PCIデータ構造へのポインタ
509…ベンダ識別
510…デバイス識別
511…デバイスリストポインタ
512…ROMコード構造長
513…ROMコードリビジョン履歴
514…ROMコードのリビジョンデータ
515…追加データ構造情報
600…サーバシステム
602…電源ユニット(PSU)
603…BMC
604…プロセッサ
605…BIOS
606…ノースブリッジ(NB)ロジック
607…PCIバス
608…サウスブリッジ(SB)ロジック
609…ストレージデバイス
611…メインメモリ(MEM)
650…ISAスロット
651…ISAスロット
670…PCIeスロット
671…PCIスロット

Claims (10)

  1. コンピュータシステム内の読み出し専用メモリ(ROM)コードを更新するためのコンピュータ実行方法であって、
    複数のリポジトリのうち少なくとも1つのリポジトリにあるROMコードの1つ以上のコピーにアクセスするステップであって、前記ROMコードは、コンピュータシステム内の特定のデバイスに対して初期化プロセスを実行するように構成されている、ステップと、
    選択基準に基づいて前記ROMコードの1つ以上のコピーのうち1つのコピーを選択し、選択されたROMコードを取得するステップと、
    前記選択されたROMコードを前記コンピュータシステムのシステムメモリにコピーするステップと、
    前記システムメモリ内の前記選択されたROMコードを実行して、前記特定のデバイスを初期化するステップと、を含む、コンピュータ実行方法。
  2. 前記選択基準は、
    前記ROMコードの最新のコピーを前記ROMコードの1つ以上のコピーから識別することができるかどうかを判別するステップと、
    前記ROMコードの最新のコピーを識別することができると判別したことに応じて、前記最新のコピーを前記選択されたROMコードとして選択するステップと、 前記ROMコードの最新のコピーを識別することができないと判別したことに応じて、最も高い優先度を有する前記ROMコードのコピーを前記選択されたROMコードとして選択するステップと、をさらに含み、
    前記複数のリポジトリは、前記コンピュータシステム内の複数のローカルリポジトリと、前記コンピュータシステム外の複数のリモートリポジトリと、を含み、前記ROMコードのコピーの優先度は、前記ROMコードのコピーの場所によって決定され、前記ローカルリポジトリは、前記リモートリポジトリよりも高い優先度を有し、前記コンピュータシステムのコンピュータバスカードは、前記コンピュータシステム内の他のローカルリポジトリよりも高い優先度を有する、請求項1に記載のコンピュータ実行方法。
  3. 前記選択されたROMコードをコピーするステップは、
    前記選択されたROMコードがリモートレポジトリにあるかどうかを判別するステップと、
    前記選択されたROMコードがリモートレポジトリにあると判別したことに応じて、前記選択されたROMコードを前記リモートレポジトリからダウンロードして、ダウンロードされた、選択されたROMコードを取得するステップと、をさらに含む、請求項1に記載のコンピュータ実行方法。
  4. 前記アクセスするステップの前に、前記コンピュータシステム内のコンピュータバスカード内の既存のROMコードが存在しないか有効でないと判別するステップと、
    前記コンピュータシステム内のコンピュータバスカード内の既存のROMコードが存在しないか無効であると判別したことに応じて、前記アクセスするステップ及び前記選択するステップを実行するステップと、をさらに含む、請求項1に記載のコンピュータ実行方法。
  5. 読み出し専用メモリ(ROM)コードを更新するように構成されたコンピュータシステムであって、
    複数のリポジトリと、
    システムメモリと、
    特定のデバイスと、
    プロセッサと、
    前記プロセッサによって実行されると、前記コンピュータシステムに動作を実行させる命令を記憶するコンピュータ可読記憶媒体と、を備え、
    前記動作は、
    前記複数のリポジトリのうち少なくとも1つのリポジトリにあるROMコードの1つ以上のコピーにアクセスするステップであって、前記ROMコードは、前記特定のデバイスに対して初期化プロセスを実行するように構成されている、ステップと、
    選択基準に基づいて前記ROMコードの1つ以上のコピーのうち1つのコピーを選択し、選択されたROMコードを取得するステップと、
    前記選択されたROMコードを前記コンピュータシステムの前記システムメモリにコピーするステップと、
    前記システムメモリ内の前記選択されたROMコードを実行して、前記特定のデバイスを初期化するステップと、を含む、コンピュータシステム。
  6. 前記選択基準は、
    前記ROMコードの最新のコピーを前記ROMコードの1つ以上のコピーから識別することができるかどうかを判別するステップと、
    前記ROMコードの最新のコピーを識別することができると判別したことに応じて、前記最新のコピーを前記選択されたROMコードとして選択するステップと、
    前記ROMコードの最新のコピーを識別することができないと判別したことに応じて、最も高い優先度を有する前記ROMコードのコピーを前記選択されたROMコードとして選択するステップと、をさらに含み、
    前記複数のリポジトリは、前記コンピュータシステム内の複数のローカルリポジトリと、前記コンピュータシステム外の複数のリモートリポジトリと、を含み、前記ROMコードのコピーの優先度は、前記ROMコードのコピーの場所によって決定され、前記ローカルリポジトリは、前記リモートリポジトリよりも高い優先度を有し、前記コンピュータシステムのコンピュータバスカードは、前記コンピュータシステム内の他のローカルリポジトリよりも高い優先度を有する、請求項5に記載のコンピュータシステム。
  7. 前記選択されたROMコードをコピーするステップは、
    前記選択されたROMコードがリモートレポジトリにあるかどうかを判別するステップと、
    前記選択されたROMコードがリモートレポジトリにあると判別したことに応じて、前記選択されたROMコードを前記リモートレポジトリからダウンロードして、ダウンロードされた、選択されたROMコードを取得するステップと、をさらに含む、請求項5に記載のコンピュータシステム。
  8. サーバシステムの少なくとも1つのプロセッサによって実行されると、前記サーバシステムに動作を実行させる命令を含むコンピュータ可読記憶媒体であって、
    前記動作は、
    前記複数のリポジトリのうち少なくとも1つのリポジトリにあるROMコードの1つ以上のコピーにアクセスするステップであって、前記ROMコードは、特定のデバイスに対して初期化プロセスを実行するように構成されている、ステップと、
    選択基準に基づいて前記ROMコードの1つ以上のコピーのうち1つのコピーを選択し、選択されたROMコードを取得するステップと、
    前記選択されたROMコードを前記コンピュータシステムのシステムメモリにコピーするステップと、
    前記システムメモリ内の前記選択されたROMコードを実行して、前記特定のデバイスを初期化するステップと、を含む、コンピュータ可読記憶媒体。
  9. 前記選択基準は、
    前記ROMコードの最新のコピーを前記ROMコードの1つ以上のコピーから識別することができるかどうかを判別するステップと、
    前記ROMコードの最新のコピーを識別することができると判別したことに応じて、前記最新のコピーを前記選択されたROMコードとして選択するステップと、
    前記ROMコードの最新のコピーを識別することができないと判別したことに応じて、最も高い優先度を有する前記ROMコードのコピーを前記選択されたROMコードとして選択するステップと、をさらに含み、
    前記ROMコードのコピーの優先度は、前記ROMコードのコピーの場所によって決定され、前記複数のリポジトリは、前記コンピュータシステム内の複数のローカルリポジトリと、前記コンピュータシステム外の複数のリモートリポジトリと、を含み、前記ローカルリポジトリは、前記リモートリポジトリよりも高い優先度を有し、前記コンピュータシステムのコンピュータバスカードは、前記コンピュータシステム内の他のローカルリポジトリよりも高い優先度を有する、請求項8に記載のコンピュータ可読記憶媒体。
  10. 前記選択されたROMコードをコピーするステップは、
    前記選択されたROMコードがリモートレポジトリにあるかどうかを判別するステップと、
    前記選択されたROMコードがリモートレポジトリにあると判別したことに応じて、前記選択されたROMコードを前記リモートレポジトリからダウンロードして、ダウンロードされた、選択されたROMコードを取得するステップと、をさらに含む、請求項8に記載のコンピュータ可読記憶媒体。
JP2019128484A 2018-08-20 2019-07-10 更新されたファームウェアコードの検索 Pending JP2020030812A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/105,043 US10430181B1 (en) 2018-08-20 2018-08-20 Retrieving updated firmware code
US16/105,043 2018-08-20

Publications (1)

Publication Number Publication Date
JP2020030812A true JP2020030812A (ja) 2020-02-27

Family

ID=67262092

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019128484A Pending JP2020030812A (ja) 2018-08-20 2019-07-10 更新されたファームウェアコードの検索

Country Status (5)

Country Link
US (1) US10430181B1 (ja)
EP (1) EP3614258B1 (ja)
JP (1) JP2020030812A (ja)
CN (1) CN110851154B (ja)
TW (1) TWI707274B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210079601A (ko) * 2019-12-20 2021-06-30 주식회사 실리콘웍스 펌웨어를 업데이트하는 터치 시스템 및 방법
US11947886B2 (en) 2021-07-09 2024-04-02 Delta Electronics, Inc. Development system and method of offline software-in-the-loop simulation
TWI821998B (zh) * 2021-07-09 2023-11-11 台達電子工業股份有限公司 離線式軟體在環模擬的開發系統及離線式軟體在環模擬方法
WO2023009146A1 (en) * 2021-07-30 2023-02-02 Hewlett-Packard Development Company, L.P. Bioss with oprom managers

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040030877A1 (en) * 2002-08-06 2004-02-12 Aleksandr Frid Using system BIOS to update embedded controller firmware
JP2007148816A (ja) * 2005-11-28 2007-06-14 Fujitsu Ltd 携帯端末装置およびソフトウェアインストール方法
WO2015087365A1 (ja) * 2013-12-09 2015-06-18 三菱電機株式会社 情報機器
JP2018025925A (ja) * 2016-08-09 2018-02-15 シャープ株式会社 電子回路システム及び制御装置の起動方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3597690B2 (ja) * 1998-01-21 2004-12-08 株式会社東芝 デジタル情報記録再生システム
US20030217357A1 (en) * 2002-05-14 2003-11-20 Parry Travis J. Monitoring firmware
US7174446B2 (en) * 2003-04-25 2007-02-06 Dell Products L.P. System and method for managing the boot sequence of an information handling system
US7337267B1 (en) * 2004-02-10 2008-02-26 Netlogic Microsystems, Inc Hierarchical, programmable-priority content addressable memory system
KR100604877B1 (ko) * 2004-07-03 2006-07-31 삼성전자주식회사 내장 시스템의 메모리 어드레스의 매핑을 제어하는 장치와방법
US7835615B2 (en) * 2004-10-12 2010-11-16 Panasonic Corporation Data processing apparatus
US7418590B2 (en) * 2005-07-14 2008-08-26 Dell Products L.P. Information handling system for storing basic input output system configurations
US8176306B2 (en) * 2009-07-24 2012-05-08 Hewlett-Packard Development Company, L.P. Boot block
US8677343B2 (en) * 2011-09-16 2014-03-18 Cisco Technology, Inc. Centrally coordinated firmware upgrade model across network for minimizing uptime loss and firmware compatibility
US9151051B2 (en) * 2013-02-04 2015-10-06 Andre Cossette 65 db sound barrier insulated block
US9323568B2 (en) * 2014-01-24 2016-04-26 International Business Machines Corporation Indicating a low priority transaction
US9335947B2 (en) * 2014-06-30 2016-05-10 Raytheon Company Inter-processor memory
US10127032B2 (en) * 2015-11-05 2018-11-13 Quanta Computer Inc. System and method for unified firmware management
US10108412B2 (en) * 2016-03-30 2018-10-23 Square, Inc. Blocking and non-blocking firmware update
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
US20180113815A1 (en) * 2016-10-21 2018-04-26 Advanced Micro Devices, Inc. Cache entry replacement based on penalty of memory access

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040030877A1 (en) * 2002-08-06 2004-02-12 Aleksandr Frid Using system BIOS to update embedded controller firmware
JP2007148816A (ja) * 2005-11-28 2007-06-14 Fujitsu Ltd 携帯端末装置およびソフトウェアインストール方法
WO2015087365A1 (ja) * 2013-12-09 2015-06-18 三菱電機株式会社 情報機器
US20160371094A1 (en) * 2013-12-09 2016-12-22 Mitsubishi Electric Corporation Information apparatus
JP2018025925A (ja) * 2016-08-09 2018-02-15 シャープ株式会社 電子回路システム及び制御装置の起動方法

Also Published As

Publication number Publication date
TW202009696A (zh) 2020-03-01
CN110851154A (zh) 2020-02-28
CN110851154B (zh) 2023-03-24
EP3614258B1 (en) 2022-04-06
TWI707274B (zh) 2020-10-11
EP3614258A1 (en) 2020-02-26
US10430181B1 (en) 2019-10-01

Similar Documents

Publication Publication Date Title
EP3614258B1 (en) Retrieving updated firmware code
US10019253B2 (en) Systems and methods of updating hot-pluggable devices
US7934209B2 (en) Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan
US9507604B2 (en) Boot method and boot system
TWI480803B (zh) 獨立作業系統間之共享檔案系統管理
US9317275B2 (en) Computer system and program restoring method thereof
US20040230963A1 (en) Method for updating firmware in an operating system agnostic manner
TW201915723A (zh) 計算機實施方法、系統、以及非暫時性計算機可讀儲存媒體
US8631186B2 (en) Hardware and file system agnostic mechanism for achieving capsule support
US20090006831A1 (en) Methods and apparatuses for configuring add-on hardware to a computing platform
JP2006079628A (ja) ユーザデータをパーティションファイルに記憶する、又はユーザデータを含むパーティションファイルを使用するシステム及び方法
JP2008276555A (ja) 情報処理装置、およびファームウェア更新方法
US7921230B2 (en) USB devices pre-configuration for KVM switch
CN107135462B (zh) Uefi固件的蓝牙配对方法及其计算系统
US20040103172A1 (en) Method of updating an operation system
TWI475485B (zh) 韌體更新之方法及其相關電腦系統
US7958344B2 (en) Method for adjusting set-up default value of bios and mainboard using the same method
US20050223209A1 (en) Apparatus for fast booting computer and method for the same
US11829781B2 (en) Method of remotely modifying basic input/output system configuration setting
US11340882B2 (en) Systems and methods for enforcing update policies while applying updates from bootable image file
WO2019100704A1 (zh) 用于多模IoT设备的启动方法、多模IoT设备及存储介质
CN102455919A (zh) 基本输入输出系统自动最佳化设定方法
US11249661B2 (en) Information processing apparatus, control method, and program
US20050060530A1 (en) Method for displaying information of updating BIOS
CN113646745A (zh) 禁用软件持久性

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190710

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201102

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210105