JP2008276555A - 情報処理装置、およびファームウェア更新方法 - Google Patents
情報処理装置、およびファームウェア更新方法 Download PDFInfo
- Publication number
- JP2008276555A JP2008276555A JP2007119930A JP2007119930A JP2008276555A JP 2008276555 A JP2008276555 A JP 2008276555A JP 2007119930 A JP2007119930 A JP 2007119930A JP 2007119930 A JP2007119930 A JP 2007119930A JP 2008276555 A JP2008276555 A JP 2008276555A
- Authority
- JP
- Japan
- Prior art keywords
- update
- data
- firmware
- information
- application data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
【課題】パワーオン時にファームウェア書き換えを行い、ファームウェアの書き換えを安全且つ確実に行うこと。
【解決手段】
更新アプリケーションデータ600Aおよび更新用データ700Aを断片化していない状態にするファイルでフラグ部302と、更新アプリケーションデータ600Bおよび更新用データ700Bの格納場所を示すアドレス情報を取得するアドレス情報取得部303と、アドレス情報を含む更新情報220をHDD121に書き込む更新情報生成/書込部304と、更新情報220に基づいて前記更新アプリケーションデータ600Bをメモリ113にロードする処理と、マルチタスク機能を有するオペレーティングシステムをブートする前にメモリ113内の更新アプリケーション600に基づいて更新用データ210を用いて不揮発性メモリ201に格納されているファームウェア202を更新するファームウェア書換部602とを具備する。
【選択図】 図2
【解決手段】
更新アプリケーションデータ600Aおよび更新用データ700Aを断片化していない状態にするファイルでフラグ部302と、更新アプリケーションデータ600Bおよび更新用データ700Bの格納場所を示すアドレス情報を取得するアドレス情報取得部303と、アドレス情報を含む更新情報220をHDD121に書き込む更新情報生成/書込部304と、更新情報220に基づいて前記更新アプリケーションデータ600Bをメモリ113にロードする処理と、マルチタスク機能を有するオペレーティングシステムをブートする前にメモリ113内の更新アプリケーション600に基づいて更新用データ210を用いて不揮発性メモリ201に格納されているファームウェア202を更新するファームウェア書換部602とを具備する。
【選択図】 図2
Description
本発明は、パーソナルコンピュータなどの情報処理装置に係わり、特に不揮発性メモリに格納されたファームウェアを更新する機能を有する情報処理装置およびファームウェア更新方法に関する。
ディスク記憶装置は、ヘッドによりデータが記録されるディスク媒体を備えている。通常、ディスク記憶装置は、当該ディスク記憶装置を利用するホストシステムに接続して用いられる。ホストシステムは、一般にディスク記憶装置を補助記憶装置(大容量記憶装置)として利用するパーソナルコンピュータである。ディスク記憶装置では、ディスク媒体へのデータ記録及びディスク媒体からのデータ読み出しを含む各種処理が実行される。これらの処理は、ディスク記憶装置に設けられた不揮発性メモリに格納されているプログラム(制御プログラム)を当該ディスク記憶装置内のコントローラが実行することにより実現される。
最近のディスク記憶装置には、当該ディスク記憶装置内の不揮発性メモリに格納されているプログラムを最新のものに書き換えられることが要求されている。
ディスク記憶装置内の不揮発性メモリに格納されているプログラムを安全に書き換えるためには、プログラム書き換えの期間、当該プログラム書き換え以外でホストシステムからディスク記憶装置がアクセスされないことが必要となる。ところが、ホストシステムがパーソナルコンピュータである場合、当該コンピュータのOSは複数のタスク(プログラム)を並行して実行できるマルチタスク機能を有しているのが一般的である。このように、複数のタスクが並行して実行される環境下で、ディスク記憶装置内の不揮発性メモリに格納されているプログラムを書き換えることは危険である。
そこで従来は、プログラム書き換え後にホストシステム全体を再起動するためと、不揮発性メモリ上のプログラムを書き換える期間、ホストシステムからディスク記憶装置へのアクセスの発生を防止するために、次のような方法を適用している。まず、最低限のブート機能を持ったブートプログラムと、ホストシステムのアーキテクチャ(コンピュータアーキテクチャ)に適合するプログラム書き換え用のアプリケーションプログラムとを記憶したフレキシブルディスクを用意する。そして、このディスクをホストシステムのフレキシブルディスクドライブに装着して、当該ディスク内のプログラムを実行することで、上述の手順でプログラム書き換えを行う。
しかしながら、最近では、フレキシブルディスクを搭載していない情報処理装置などが増えてきていることもあり、OSを起動させずにFWの書き換えのためのコマンドを実行させることが困難なケースが多くなっている。
特許文献1には、フレキシブルディスクを使用せずに、ファームウェアを書き換える技術が開示されている。特許文献1に開示されている方法は、以下に簡単に説明する。ファームウェア(FW)更新アプリが「パワーオフ&ファームウェア更新」要求をOSに対して行う。OSはこの要求を受けOSのシャットダウンを行い、シャットダウン処理が終了するとパワーオフ&ファームウェア更新」イベントをBIOSに送り、BIOSはイベントに応答してメモリ上のFW更新プログラムを呼び出してFWを更新する。
特開2002−244874号公報
ところで、パーソナルコンピュータであれば、上述した方法を用いてファームウェアを更新できることが多い。ところが、POS(Point Of Sales System)レジスタ等に利用されている組み込み機器向けオペレーティングシステムを利用した情報処理装置の場合、通常のオペレーティングシステムのシャットダウン処理が異なるため、上述した方法は使えない。そこで、パワーオン時にファームウェアの更新を行う方法が望まれている。
また、完全に電源を切らない状態で、ファームウェアの更新を行っているので、正常にファームウェアの更新を行うことが出来ない可能性がある。
本発明の目的は、パワーオン時にファームウェア書き換えを行い、ファームウェアの書き換えを安全且つ確実に行うことができる情報処理装置、およびファームウェアの更新方法を提供することにある。
本発明の一例に係わる情報処理装置は、メモリと、ファームウェアが格納された不揮発性メモリと、前記ファームウェアに基づいた処理を実行するコントローラとを有するデバイスと、前記不揮発性メモリに保存されているファームウェアを更新するための更新用データ、および更新アプリケーションデータが格納される記憶装置と、前記更新アプリケーションデータおよび前記更新用データを断片化していない状態にする処理と、前記更新アプリケーションデータおよび前記更新用データの格納場所を示すアドレス情報を取得する処理と、前記更新アプリケーションデータおよび前記更新用データのアドレス情報を含む更新情報を前記記憶装置内の先頭セクタと第1パーティションとの間の領域に書き込む処理と、パワーオン時に前記先頭セクタと前記第1パーティションとの間の領域に前記更新情報が書き込まれているか否かを検出する処理と、前記更新情報が書き込まれていると判断した場合に、前記更新情報に基づいて前記記憶装置内の前記更新アプリケーションデータを前記メモリにロードする処理と、マルチタスク機能を有するオペレーティングシステムをブートする前に前記メモリにロードされた前記更新アプリケーションデータに基づいて前記更新用データを用いて前記不揮発性メモリに格納されているファームウェアを更新する処理とを実行するプロセッサと具備することを特徴とする情報処理装置。
本発明の一例に係わるファームウェアの更新方法は、記憶装置に格納された更新アプリケーションデータおよび前記更新用データを断片化していない状態にし、前記更新アプリケーションデータおよび前記更新用データの格納場所を示すアドレス情報を取得し、前記更新アプリケーションデータおよび前記更新用データのアドレス情報を含む更新情報を前記記憶装置に書き込む処理と、パワーオン時に前記先頭セクタと前記第1パーティションとの間の領域に前記更新情報が書き込まれているか否かを検出し、前記更新情報が書き込まれていると判断した場合に、前記更新情報に基づいて前記記憶装置内の前記更新アプリケーションデータを前記メモリにロードし、マルチタスク機能を有するオペレーティングシステムをブートする前に、前記メモリにロードされた前記更新アプリケーションデータに基づいて前記更新用データを用いてデバイスの不揮発性メモリに格納されているファームウェアを更新することを特徴とする。
パワーオン時にファームウェア書き換えを行い、ファームウェアの書き換えを安全且つ確実に行うことができる。
本発明の実施の形態を以下に図面を参照して説明する。
まず、図1を参照して、本発明の一実施形態に係る情報処理装置の構成について説明する。この情報処理装置は、バッテリ駆動可能な携帯型のノートブック型パーソナルコンピュータ10として実現されている。図1は、パーソナルコンピュータ10のシステム構成の例を示すブロック図である。
本コンピュータ10は、図1に示されているように、CPU(Central Processing Unit)111、ノースブリッジ112、主メモリ113、グラフィクスコントローラ114、サウスブリッジ119、BIOS−ROM120、ハードディスクドライブ(HDD)121、およびエンベデッドコントローラ/キーボードコントローラIC(EC/KBC)124等を備えている。
CPU111は、本コンピュータ10の動作を制御するために設けられたプロセッサであり、ハードディスクドライブ(HDD)121から主メモリ113にロードされる、マルチタスク機能を有するオペレーティングシステム(OS)および各種アプリケーションプログラムを実行する。OSは、複数のウィンドウを表示画面上に表示するためのウィンドウシステムを有している。
また、CPU111は、BIOS−ROM120に格納されたシステムBIOS(Basic Input Output System)も実行する。システムBIOSはハードウェア制御のためのプログラムである。
ノースブリッジ112には、主メモリ113をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ112は、PCI EXPRESSバスなどを介してグラフィクスコントローラ114との通信を実行する機能も有している。
グラフィクスコントローラ114は本コンピュータ10のディスプレイモニタとして使用されるLCD17を制御する表示コントローラである。このグラフィクスコントローラ114はビデオメモリ(VRAM)を有しており、OS/アプリケーションプログラムによってビデオメモリに描画された表示データから、LCD17に表示すべき表示イメージを形成する映像信号を生成する。
サウスブリッジ119は、LPC(Low Pin Count)バス上の各デバイスを制御する。また、サウスブリッジ119は、HDD121を制御するためのIDE(Integrated Drive Electronics)コントローラを内蔵している。さらに、サウスブリッジ119は、BIOS−ROM120をアクセス制御するための機能も有している。
HDD121は、ディスク媒体へのデータ記録及びディスク媒体からのデータ読み出しを含む各種処理を実行する。これらの処理は、HDD121に設けられた不揮発性メモリ(NVM)201に格納されているファームウェア(制御プログラム)202をコントローラ203が実行することにより実現される。
エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)124は、電源制御、放熱制御のためのエンベデッドコントローラと、キーボード(KB)13を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。
ところで、HDD121内のファームウェア202は、不具合の修正や新機能の追加等で新しいファームウェアに書き換えることがある。以下に、HDD121内のファームウェア202を更新するための構成を説明する。
本実施形態では、マルチタスク機能を有するオペレーティングシステムの起動時にファームウェア202を更新するための設定を行い、再起動後にオペレーティングシステムが起動する前にファームウェア202を更新する。
図2は、ハードディスクドライブ121内のファームウェア202を更新するためのシステム構成を示すブロック図である。
図2に示すように、ファームウェア202の更新は、設定アプリケーション(APP)300、オペレーティングシステム(OS)400、システムBIOS500、書換アプリケーション(APP)600等によって実行される。設定アプリケーション(APP)300、システムBIOS500、および書換アプリケーション(APP)600は、CPU111によって実行されるプログラムである。
設定アプリケーション300は、データ検出部301、ファイルデフラグ部302、アドレス情報取得部303、更新情報生成/書込部304、再起動指令部305等を有する。データ検出部301、ファイルデフラグ部302、アドレス情報取得部303、更新情報生成/書込部304、および再起動指令部305は、CPU111によって実行されるプログラムである。
データ検出部301は、HDD121に格納された書換アプリケーション(APP)データ600Aおよび更新用ファームウェア(FW)データ700Aのパス(path)を検出する。データ検出部301は、FW更新アプリケーション600Aのパスを検出するために、ファイルダイアログボックスを表示し、ユーザにFW更新アプリケーション600Aを指定させる。また、データ検出部301は、更新用ファームウェアデータ700Aのパスを検出するために、ファイルダイアログボックスを表示し、ユーザに更新用ファームウェアデータ700Aを指定させる。
書換アプリケーション(APP)データ600Aおよび更新用ファームウェア(FW)データ700Aは、予めユーザがWEBサーバなどからダウンロードして用意しておいても良いし、設定アプリケーション300がWEBサーバなどから自動的にダウンロードする機能を有していても良い。また、書換アプリケーション(APP)データ600Aが定期的に自動実行され、書換アプリケーション(APP)データ600AがWEBサーバにアクセスしてファームウェアの有無を確認し、ファームウェアがある場合にファームウェアを自動的にダウンロードし、自動的にファームウェアの更新を行うようにしても良い。
ファイルデフラグ部302は、マルチ機能を有するオペレーティングシステム(OS)400に対し、FW更新アプリケーション600Aおよび更新用ファームウェアデータ700Aのそれぞれを連続した領域にデータの連続性が保持されるためのコマンドを実行する。オペレーティングシステム400は、FW更新アプリケーションデータ600Aおよび更新用ファームウェアデータ700Aのそれぞれをデフラグする。デフラグ後のファイルが、FW更新アプリケーションデータ600Bおよび更新用ファームウェアデータ700Bである。
デフラグすることによって、FW更新アプリケーションデータ600Bは、図3に示すように、WセクタからXkByteの連続した領域にデータの連続性を保持した状態で格納される。また、更新用ファームウェアデータ700Bは、図3に示すように、YセクタからZkByteの連続した領域にデータの連続性を保持した状態で格納される。
図3において、1セクタ(先頭セクタ、ブートセクタ)のMBR(Master Boot Record)210には、ブートストラップローダ、パーティションテーブル、およびブートシグニチャが格納されている。
N+1セクタから第1パーティション121Bが始まる。第1パーティション121Bには、マルチタスク機能を有するオペレーティングシステム400のデータ、ユーザアプリケーションやユーザデータ等が格納されている。
1セクタと第1パーティションとの間、則ち2セクタからNセクタ迄の領域121Aは、領域は通常使用されない未予約領域である。未予約領域121Aの大きさは、WindowsXP(登録商標)の場合、63セクタである。
アドレス情報取得部303は、オペレーティングシステム400に対しFW更新アプリケーションデータ600Bおよび更新用ファームウェアデータ700Bのパスを渡し、それぞれのHDD121内の格納場所を示すアドレス情報を取得するためのコマンドを発行し、オペレーティングシステム400からアドレス情報を取得する。アドレス情報は、格納領域の先頭セクタのLBA(Logical Block Address)と格納領域のサイズ(通常、512Byteの整数倍)である。なお、この例はLBA方式のアドレス情報である。
更新情報生成/書込部304は、FW更新アプリケーション600およびファームウェアデータのアドレス情報に所定のインデックスを付加した更新情報220を生成し、HDDの特定の領域に更新情報を格納する。更新情報220は、図3に示すように、未予約領域121Aに格納される。未予約領域121Aは、通常使用されない領域であるが、使用するアプリケーションがあるので、更新情報生成/書込部304は、空いている領域に更新情報を書き込む。
再起動ファイルデフラグ部302は、更新情報220を未予約領域121Aに書き込んだ後、オペレーティングシステム400に対して再起動コマンドを発行する。
次に、システムBIOS500について説明する。システムBIOS500は、POST/初期化部501、更新情報サーチ部502、APP/FWロード部503、APP起動部504、MBR実行部505等を具備する。POST/初期化部501、更新情報サーチ部502、APP/FWロード部503、APP起動部504、MBR実行部505は、CPU111によって実行されるプログラムである。
POST/初期化部501は、POST((PowerON Self Test)は、Power-On Self Test(POST)を実行して必要な機器が正常に動作するかをチェックする。また、同時にそれら周辺機器の初期化も行う。
更新情報サーチ部502は、更新情報220が有する所定のインデックスを元に、未予約領域121Aから更新情報220を検出する。
APP/FWロード部503は、更新情報サーチ部502が検出した更新情報220に基づいて、HDD121からFW更新アプリケーションデータ600Bおよび更新用ファームウェアデータ700Bを読み出し、メモリ113に順にロードする。図4に示すように、メモリ113上において、更新用ファームウェアデータ700は、FW更新アプリケーション600の後のアドレスからの領域に格納される。
APP起動部504は、メモリ113にロードされたFW更新アプリケーション600を起動する。ブート部は、MBR210を探し、MBRを実行する。
FW更新アプリケーション600は、FW検出部601、FW書換部602、更新情報削除部603等を有する。FW検出部601、FW書換部602、および更新情報削除部603は、CPU111によって実行されるプログラムである。
FW検出部601は、メモリ113上の更新用ファームウェアデータ700が格納されている領域を検出する。FW検出部601は、更新情報220を読み出し、更新用ファームウェアデータ700のサイズを認識する。メモリ113上のファームウェアデータは、メモリ上のFW更新アプリケーション600の領域の後のアドレスから格納されている。よって、FW検出部601は、メモリ113上のFW更新アプリケーション600の後のアドレスと更新用ファームウェアデータ700のサイズとからメモリ113上のファームウェアデータを検出する。
FW書換部602は、FW検出部601が検出したメモリ113上の更新用ファームウェアデータ700を用いて、不揮発性メモリ201内のファームウェアデータ202を更新する。
更新情報削除部603は、ファームウェアの更新終了後に、HDD121から更新情報220を削除し、削除後にシステムBIOS500に再起動コマンドを送信する。
次に、ファームウェアを更新するときの処理の流れについて図5のフローチャートを参照して説明する。
設定アプリケーション300のデータ検出部301は、FW更新アプリケーションデータ600Aおよび更新用ファームウェアデータ700Aのパスを検出する(ステップS11)。データ検出部301は、ファイルダイアログボックスを表示し、ユーザにFW更新アプリケーションデータ600Aの場所とファイル名を指定させることによって、FW更新アプリケーションデータ600Aのパスを検出する。続いて、データ検出部301は、ファイルダイアログボックスを表示し、ユーザに更新用ファームウェアデータ700Aの場所とファイル名を指定させることによって、FW更新アプリケーションデータ600Aのパスを検出する。
FW更新アプリケーションデータ600Aおよび更新用ファームウェアデータ700Bのデフラグを行う(ステップS12)。ファイルデフラグ部302は、FW更新アプリケーションデータ600Aがハードディスクドライブ内の連続した空き領域にデータの連続性が保持されるように、オペレーティングシステム400にファイルをデフラグするためのコマンドを発行する。オペレーティングシステム400は、FW更新アプリケーションデータ600Aをデフラグする。
ファイルデフラグ部302は、更新用ファームウェアデータ700Aがハードディスクドライブ内の連続した空き領域にデータの連続性が保持されるように、オペレーティングシステム400にファイルをデフラグするためのコマンドを発行する。オペレーティングシステム400は、更新用ファームウェアデータ700Aをデフラグする。
設定アプリケーション300は、デフラグ後のFW更新アプリケーションデータ600Bおよび更新用ファームウェアデータ700BのそれぞれのHDD121内の格納場所を示すアドレス情報を取得する(ステップS13)。
アドレス情報取得部303は、FW更新アプリケーションデータ600Bのアドレス情報を取得するためのコマンドを発行し、オペレーティングシステム400からアドレス情報を取得する。アドレス情報取得部303は、更新用ファームウェアデータ700Bのアドレス情報を取得するためのコマンドを発行し、オペレーティングシステム400からアドレス情報を取得する。アドレス情報取得部303が取得するアドレス情報は、格納領域の先頭セクタのLBA(Logical Block Address)と格納領域のサイズ(通常、512Byteの整数倍)である。
更新情報生成/書込部304は、検索時の目印となるインデックス、FW更新アプリケーションデータ600Bのアドレス情報、および更新用ファームウェアデータ700Bのアドレス情報を含む更新情報220を生成し、更新情報220をHDD121の未予約領域121Aに格納する(ステップS14)。
再起動指令部305は、オペレーティングシステム400に対して再起動を指令し、再起動が行われる(ステップS15)。
そして、再起動後、POST/初期化部501は、Power-On Self Test(POST) を実行して必要な機器が正常に動作するかをチェックする。また、同時にそれら周辺機器の初期化も行う(ステップS16)。
そして、更新情報サーチ部502が、MBR210と第1パーティション121Bとの間の未予約領域121Aのデータをサーチし、インデックスを元に更新情報220が存在するか否かを判別する(ステップS17)。
もし、更新情報220が第1パーティション121A等に格納されると、更新情報サーチ部502は広い領域をサーチしなければならず、サーチ時間、ひいてはブート処理に時間がかかる。ところが、更新情報220は領域が限定される未予約領域121Aに格納される。従って、サーチ時間を短くすることが出来る。
更新情報が存在すると判断した場合(ステップS17のYes)、APP/FWロード部503は、更新情報220からFW更新アプリケーションデータ600Bおよび更新用ファームウェアデータ700Bのそれぞれのアドレス情報を抽出する(ステップS18)。
APP/FWロード部503は、抽出されたアドレス情報に基づいてHDD121内のFW更新アプリケーションデータ600Bおよび更新用ファームウェアデータ700Bをメモリにロードする(ステップS19)。先ず、APP/FWロード部503は、LBAおよびサイズを指定して、FW更新アプリケーションデータ600BをHDD121からメモリ113にロードする。次に、APP/FWロード部503は、LBAおよびサイズを指定して、更新用ファームウェアデータ700BをHDD121からメモリ113にロードする。
システムBIOS500が、ファイルをメモリにロードする場合にオペレーティングシステム400が使用しているファイルシステムを理解できないとそのプログラム、データを読み出すことができない。本実施形態では、ファイルの連続性を確保することによりシステムBIOS500のAPP/FWロード部503がファイルシステムを意識せずにFW更新アプリケーションデータ600B、および更新用ファームウェアデータ700Bを読み出すことが可能となる。
APP起動部504は、メモリ113にロードされたFW更新アプリケーション600を起動する(ステップS20)。
FW更新アプリケーション600のFW検出部601は、メモリ113上の更新用ファームウェアデータ700の格納場所を検出する(ステップS21)。
ファームウェア書換部602は、不揮発性メモリ201に格納されているファームウェアデータ202を更新用ファームウェアデータ700によって書き換えることによって、ファームウェアを更新する(ステップS22)。
そして、ファームウェア書換部602は、不揮発性メモリ201内のファームウェアデータ202が正常に更新されたか否かを検証する(ステップS23)。正常に更新されていないと判別した場合(ステップS23のNo)、ファームウェア書換部602は、再度更新用ファームウェアデータ700を用いて、不揮発性メモリ201内のファームウェアデータ202を書き換える。
正常に更新されたと判別した場合(ステップS23のYes)、更新情報削除部603が、HDD121内の更新情報220を削除する(ステップS24)。HDD121内の更新情報220を削除することで、この後に実施される再起動後に、再度ファームウェアの更新を行うという無限ループに陥ることがない。
削除後、更新情報削除部603は、システムBIOS500に対して再起動を指示し、再起動する(ステップS25)。そして、ステップS16に戻り、POST/初期化部501は、Power-On Self Test(POST) を実行して必要な機器が正常に動作するかをチェックする。また、同時にそれら周辺機器の初期化も行う(ステップS16)。
ステップS17において、更新情報220が存在しないと判断した場合(ステップS17のNo)、MBR実行部505は、MBR210を探し、MBR210を実行する(ステップS30)。
MBR実行部505は、事前に設定されたデバイスリストを順にあたって、ブート可能な周辺機器を探す。そのようなデバイスが見つからない場合、エラーが発生してブート処理は停止する。ブート可能デバイスを発見すると、そのブートセクター内のMBR210をロードして実行する(ステップS30)。
MBR210のブートストラップローダは、パーティションテーブルを調べてアクティブなパーティションを探す。アクティブなパーティションが見つかったら、ブートストラップローダは、MBR210のブートストラップローダはパーティションのブートセクターをロードして実行する。
以上説明した処理によって、フレキシブルディスクを有しない情報処理装置において、パワーオン時にファームウェア書き換えを行い、ファームウェアの書き換えを安全且つ確実に行うことができる。
なお、APP/FWロード部503が、更新用ファームウェアデータ700Bをメモリ113にロードしていたが、FW更新アプリケーション600が更新情報220に基づいて更新用ファームウェアデータ700Bをメモリ113にロードしても良い。
なお、上述した実施形態では、HDD121のファームウェアを更新する例を説明したが、他のデバイスのファームウェアの更新にも適用することが出来る。
また、FW更新アプリケーションデータ600A,600Bと更新用ファームウェアデータ700A,700Bとが別のファイルであったが、一つのファイルにパッケージングされていても良い。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
111…CPU(プロセッサ),113…主メモリ,121…ハードディスクドライブ(デバイス、記憶装置),121A…未予約領域,121B…第1パーティション,201…不揮発性メモリ,202…ファームウェア,203…コントローラ,210…MBR,220…更新情報,300…設定アプリケーション,301…データ検出部,302…ファイルデフラグ部,303…アドレス情報取得部,304…書込部,305…再起動指令部,400…オペレーティングシステム,500…システムBIOS,501…初期化部,502…更新情報サーチ部,503…APP/FWロード部,504…APP起動部,505…MBR実行部,600A,600B…FW更新アプリケーションデータ,600…FW更新アプリケーション,601…FW検出部,602…FW書換部,603…更新情報削除部,700…更新用ファームウェアデータ。
Claims (12)
- メモリと、
ファームウェアが格納された不揮発性メモリと、前記ファームウェアに基づいた処理を実行するコントローラとを有するデバイスと、
前記不揮発性メモリに保存されているファームウェアを更新するための更新用データ、および更新アプリケーションデータが格納される記憶装置と、
前記更新アプリケーションデータおよび前記更新用データを断片化していない状態にする処理と、前記更新アプリケーションデータおよび前記更新用データの格納場所を示すアドレス情報を取得する処理と、前記更新アプリケーションデータおよび前記更新用データのアドレス情報を含む更新情報を前記記憶装置に書き込む処理と、パワーオン時に前記記憶装置に前記更新情報が書き込まれているか否かを検出する処理と、前記更新情報が書き込まれていると判断した場合に、前記更新情報に基づいて前記記憶装置内の前記更新アプリケーションデータを前記メモリにロードする処理と、マルチタスク機能を有するオペレーティングシステムをブートする前に前記メモリにロードされた前記更新アプリケーションデータに基づいて前記更新用データを用いて前記不揮発性メモリに格納されているファームウェアを更新する処理とを実行するプロセッサと
を具備することを特徴とする情報処理装置。 - 前記プロセッサは、前記更新処理後に、前記更新アプリケーションデータに基づいて前記更新情報を削除する処理を実行することを特徴とする請求項1記載の情報処理装置。
- 前記プロセッサは、システムBIOSに基づいて前記検出処理およびロード処理を実行することを特徴とする請求項1記載の情報処理装置。
- 前記デバイスは、ハードディスクドライブであることを特徴とする請求項1記載の情報処理装置。
- 前記記憶装置は、ハードディスクドライブであって、
前記格納場所を示すアドレス情報は、先頭セクタのLBA(Logical Block Adress)、およびサイズであることを特徴とする請求項1記載の情報処理装置。 - 前記更新情報は、前記記憶装置の先頭セクタと第1パーティションとの間の領域に書き込まれることを特徴とする請求項5記載の情報処理装置。
- 記憶装置に格納された更新アプリケーションデータおよび前記更新用データを断片化していない状態にし、
前記更新アプリケーションデータおよび前記更新用データの格納場所を示すアドレス情報を取得し、
前記更新アプリケーションデータおよび前記更新用データのアドレス情報を含む更新情報を前記記憶装置に書き込む処理と、
パワーオン時に前記先頭セクタと前記第1パーティションとの間の領域に前記更新情報が書き込まれているか否かを検出し、
前記更新情報が書き込まれていると判断した場合に、前記更新情報に基づいて前記記憶装置内の前記更新アプリケーションデータを前記メモリにロードし、
マルチタスク機能を有するオペレーティングシステムをブートする前に、前記メモリにロードされた前記更新アプリケーションデータに基づいて前記更新用データを用いてデバイスの不揮発性メモリに格納されているファームウェアを更新する
ことを特徴とするファームウェアの更新方法。 - 前記更新処理後に、前記更新アプリケーションデータに基づいて前記更新情報を削除することを特徴とする請求項7記載のファームウェアの更新方法。
- 前記ロード処理は、システムBIOSに基づいて前記実行されることを特徴とする請求項7記載のファームウェアの更新方法。
- 前記デバイスは、ハードディスクドライブであることを特徴とする請求項7の記載のファームウェアの更新方法。
- 前記記憶装置は、ハードディスクドライブであって、
前記格納場所を示すアドレス情報は、先頭セクタのLBA(Logical Block Adress)、およびサイズであることを特徴とする請求項7記載のファームウェアの更新方法。 - 前記更新情報は、前記記憶装置の先頭セクタと第1パーティションとの間の領域に書き込まれることを特徴とする請求項11記載のファームウェアの更新方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007119930A JP2008276555A (ja) | 2007-04-27 | 2007-04-27 | 情報処理装置、およびファームウェア更新方法 |
US12/062,679 US20080270685A1 (en) | 2007-04-27 | 2008-04-04 | Information processing apparatus and firmware updating method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007119930A JP2008276555A (ja) | 2007-04-27 | 2007-04-27 | 情報処理装置、およびファームウェア更新方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008276555A true JP2008276555A (ja) | 2008-11-13 |
Family
ID=39888383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007119930A Pending JP2008276555A (ja) | 2007-04-27 | 2007-04-27 | 情報処理装置、およびファームウェア更新方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20080270685A1 (ja) |
JP (1) | JP2008276555A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101517286B1 (ko) * | 2012-07-20 | 2015-05-04 | 오베르뛰르 테크놀로지스 | 보안 요소를 위한 운영체제 업데이트 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8954552B2 (en) * | 2008-09-18 | 2015-02-10 | Dell Products, Lp | Method of using an information handling system to receive an update while in abare metal state, and an information handling system and machine-executable code for carrying out the method |
KR20120041351A (ko) * | 2010-10-21 | 2012-05-02 | 엘지전자 주식회사 | 영상 표시 기기의 소프트웨어 업그레이드 방법 및 그를 이용한 영상 표시 기기 |
EP2453352A1 (en) * | 2010-11-08 | 2012-05-16 | Gemalto SA | Software updating process for an embedded device |
TWI502507B (zh) * | 2013-01-22 | 2015-10-01 | Wistron Corp | 電池韌體更新方法、可攜式電子裝置及充電電池模組 |
WO2015060853A1 (en) * | 2013-10-24 | 2015-04-30 | Intel Corporation | Techniques for pre-os image rewriting to provide cross-architecture support, security introspection, and performance optimization |
US10289399B2 (en) | 2014-01-22 | 2019-05-14 | Hewlett-Packard Development Company, L.P. | System firmware configuration data |
JP6199796B2 (ja) * | 2014-04-24 | 2017-09-20 | 京セラドキュメントソリューションズ株式会社 | 設定更新方法及び画像形成装置 |
TWI636400B (zh) * | 2017-08-02 | 2018-09-21 | 宇瞻科技股份有限公司 | 快速更新韌體之儲存裝置 |
JP2020017059A (ja) * | 2018-07-25 | 2020-01-30 | 日本電気株式会社 | 情報処理装置、情報処理システム、情報処理方法及びプログラム |
KR102607122B1 (ko) * | 2018-07-25 | 2023-11-28 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
JP7408931B2 (ja) * | 2019-06-28 | 2024-01-09 | 株式会社リコー | 電子機器、情報処理システム、情報処理方法およびプログラム |
-
2007
- 2007-04-27 JP JP2007119930A patent/JP2008276555A/ja active Pending
-
2008
- 2008-04-04 US US12/062,679 patent/US20080270685A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101517286B1 (ko) * | 2012-07-20 | 2015-05-04 | 오베르뛰르 테크놀로지스 | 보안 요소를 위한 운영체제 업데이트 |
US9779246B2 (en) | 2012-07-20 | 2017-10-03 | Oberthur Technologies | System and method for updating an operating system for a smart card or other secure element |
Also Published As
Publication number | Publication date |
---|---|
US20080270685A1 (en) | 2008-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008276555A (ja) | 情報処理装置、およびファームウェア更新方法 | |
TWI515660B (zh) | 韌體變量更新方法 | |
JP5911504B2 (ja) | ストリーミング技術に基づくソフトウェア・イメージのアップグレード | |
JP5889933B2 (ja) | コンピュータの動作不良を防止する方法、コンピュータ・プログラムおよびコンピュータ | |
US8266611B2 (en) | Hard disk drive with disk embedded DOS boot image and firmware download method | |
JP5767565B2 (ja) | ソフトウェア・イメージの管理方法、コンピュータ・プログラム、およびシステム(共有メモリ・ブロックを用いた複数のソフトウェア・イメージの管理) | |
US20080091874A1 (en) | System and method for loading programs from hdd independent of operating system | |
US9424022B2 (en) | Method for updating firmware of an electronic device within a computer | |
JP6259459B2 (ja) | Bpramを使用したオペレーティング・システムのレイアウトおよび実行 | |
JP5860543B2 (ja) | ブートデータのロード | |
JP2006079628A (ja) | ユーザデータをパーティションファイルに記憶する、又はユーザデータを含むパーティションファイルを使用するシステム及び方法 | |
KR102226558B1 (ko) | 맞춤형 통합 확장 펌웨어 인터페이스 드라이버를 설치한 컴퓨터-읽기가능 레코딩 매체 및 그것의 방법 | |
TWI450194B (zh) | 作業系統處理方法以及系統、以及儲存其之電腦可讀取記錄媒體 | |
CN111796882A (zh) | 电子设备系统处理方法、装置及电子设备 | |
JP2015114750A (ja) | 調査用プログラム,情報処理装置及び情報処理方法 | |
KR101582919B1 (ko) | 전자장치 및 그 부팅방법 | |
JP4735765B2 (ja) | Linuxプログラム起動システム | |
US7234039B1 (en) | Method, system, and apparatus for determining the physical memory address of an allocated and locked memory buffer | |
JP5025670B2 (ja) | 情報処理装置およびデータ記憶装置 | |
KR20150058092A (ko) | 네트워크 부트 시스템 | |
JP6100750B2 (ja) | メモリおよびコントローラを備える装置およびデータ記憶装置を備える装置 | |
JP3702233B2 (ja) | 情報処理システムおよびプログラム実行モード制御方法 | |
JP2008059388A (ja) | 情報処理装置および情報処理装置に適用されるハードディスクのデータ消去方法 | |
JP2008009494A (ja) | 画像形成装置 | |
JP2021026603A (ja) | 情報処理装置、制御方法、及びプログラム |