JP2005321843A - ファームウェアの書換え方法 - Google Patents

ファームウェアの書換え方法 Download PDF

Info

Publication number
JP2005321843A
JP2005321843A JP2004136988A JP2004136988A JP2005321843A JP 2005321843 A JP2005321843 A JP 2005321843A JP 2004136988 A JP2004136988 A JP 2004136988A JP 2004136988 A JP2004136988 A JP 2004136988A JP 2005321843 A JP2005321843 A JP 2005321843A
Authority
JP
Japan
Prior art keywords
firmware
module
version
rewriting
flash memory
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
JP2004136988A
Other languages
English (en)
Inventor
Mutsuhiro Yokoyama
睦裕 横山
Shingo Kato
眞悟 加藤
Taro Nakamura
太郎 中村
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.)
Hitachi Ltd
Hitachi Information Technology Co Ltd
Original Assignee
Hitachi Ltd
Hitachi Information Technology Co Ltd
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 Hitachi Ltd, Hitachi Information Technology Co Ltd filed Critical Hitachi Ltd
Priority to JP2004136988A priority Critical patent/JP2005321843A/ja
Publication of JP2005321843A publication Critical patent/JP2005321843A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】 ファームウェア書換え後のブートに失敗した場合、以前のファームウェアバージョンからのブートを容易にする。
【解決手段】 フラッシュメモリ内の限られた領域に2つのファームウェアを格納する為、フラッシュメモリを書込み可能な単位で分割し、書換え時は変更のあるモジュール単位で書き換える。変更のあるモジュールの差分データを作り、書き換え領域の縮小を行う。フラッシュメモリ内のモジュールの領域と空き領域を管理し、以前のレビジョンモジュールを上書き消去せず残し、書換え後のブートに失敗した場合、以前のバージョンのファームウェアからの復旧を可能とする。
【選択図】 図1

Description

本発明はファームウェアの書換え方法に関し、特に書換え可能なフラッシュメモリを備えるシステムのファームウェアの書換えを安全に行う方法に関する。
従来、ファームウェアを格納するフラッシュメモリを複数面持たないシステムのファームウェアの書換えは、ファームウェアイメージ全体の書換え、もしくは特開2002−342100号公報にあるような変更部分のみの書換えにより、フラッシュメモリ内のファームウェアイメージを常に新しいバージョンのファームウェアに上書き更新していた。
特開2002−342100号公報
従来の上書き方法では書換えを行ったバージョンのファームウェアのブートに失敗した場合、以前のバージョンのファームウェアに戻す方法は、再度ファームウェアの書換えを行う他なく、書換え作業に要する時間やコストがかかるという課題がある。
前記課題を解決するため、本発明のファームウェア書換え方法は、ファームウェアを格納するフラッシュメモリ内を複数の領域に分割し、フラッシュメモリ内のファームウェアを構成するモジュールの領域と空き領域の書換え優先度を管理し、以前のバージョンのモジュールを上書きせず書込みを行う領域を決定し、書込みを行う単位をファームウェア全体でなく、ファームウェアを構成するモジュール単位とし、尚且つ変更のあるモジュールのみとすることで、書換えに必要なフラッシュメモリの領域を縮小し、以前のファームウェアバージョンを残し、復旧を可能にするものである。
本発明によりファームウェアの書換え後のブートに失敗した場合、以前のバージョンのファームウェアからブートを行うことが可能な為、以前のファームウェアバージョンに戻す作業時間が不要となり、さらに通常のファームウェアの書換え作業時間の短縮が可能である。
図1、図2、図3を用いてフラッシュメモリに2つのファームウェアを格納する為の管理方法を述べる。図1は本発明においてファームウェアを格納するフラッシュメモリ100の図であり、1つのファームウェアバージョンしか存在しない場合は、ファームウェアイメージそのものである。ファームウェアイメージは書込みをするファームウェア全体のデータであり、初期書込みの際に妥当なモジュール配置となるエントリブロック101内情報を含むものとする。例としてフラッシュメモリ100のファームウェアバージョン0003を構成するモジュールは、フラッシュメモリ100で実行される最初のコードのモジュール1(レビジョン1)、RAM上で展開実行されるモジュール2(レビジョン2)、モジュール3(レビジョン1)とする。
エントリブロック101には通常、パワーオン直後最初に実行するコードのアドレスを示すファームウェアエントリポイント106が存在するが、2つのバージョンのモジュール1が同一レビジョンでないことを考慮し、バージョンに対応したモジュール1のエントリポイントを判断する為、ファームウェアエントリポイント106にはエントリポイント判定処理110のアドレスを登録する。
エントリポイント判定処理110は、図2のフラッシュメモリ100の領域管理テーブル107と図3のバージョン構成情報108を参照し、対象となるバージョンのモジュール1のジャンプ先アドレスをサーチし、ジャンプを行う。
動作するファームウェアバージョンは通常、書換えを行ったファームウェアのバージョンであり、カレントファームウェアバージョン109に情報を格納する。
図2はフラッシュメモリ100のモジュールのレビジョン、配置位置、サイズ、書換え優先度を管理している領域管理テーブル107の例である。書換え優先度は書換え時に以前のモジュールを上書き消去しないように、書換え可能な領域を管理するものである。書換え優先度は空き領域を“高”とし、優先的に書込みが行われる。カレントファームウェアバージョン109を構成するモジュールの領域は“書換え禁止”とし、書込みを認めない。以前のバージョンを構成するモジュールの領域は書換え優先度“低”とし、空き領域のサイズでは足りない場合に書換えを認める。モジュールのレビジョン、配置位置、サイズは、図3のバージョン構成情報108のカレントファームウェアバージョンを構成するモジュールのレビジョン情報と共に参照する。カレントファームウェアバージョンのファームウェアをブートする為、必要なモジュール構成をバージョン構成情報108から取得し、該当するレビジョンのモジュールを領域管理テーブル107の配置位置から実行のエントリポイント取得や、RAM上へ展開する為に読み出しを行う。
RAM上に展開して実行するモジュールが差分データである場合、先にベースとしたレビジョンのモジュールをRAM上に展開し、差分データに置換し命令を実行する。
図4と図5のフローを用いてファームウェア書換え時に従来のバージョンのファームウェアを消去せずに2つのファームウェアを格納する方法について説明する。
ステップS200:新たに書込まれるファームウェアイメージの各モジュールのレビジョンを比較する。同一であればそのモジュールの書込みは不要である。
書込みが不要な場合、次のモジュールの比較を行う。
ステップS201:書込むモジュールがRAM上に展開して実行するモジュールか判断する。
RAM上で実行可能なモジュールであれば、ステップS202で以前のレビジョンのモジュールとの差分データを抽出する。差分データにはベースとなったモジュールのレビジョンと、差分位置、差分の長さ、データ情報を抽出しておく。RAM上で実行可能でないモジュールである場合はモジュールデータそのものを書込み対象のデータとする。
ステップS203:抽出した差分データのブロックサイズがモジュールでデータを書込む為に必要なブロックサイズより小さい場合、ステップS204にて差分データを書込み対象データとする。サイズが同一の場合は差分にするメリットが無い為、ステップS205にてモジュールデータを書込み対象データとする。
ステップS206:領域管理テーブル107の書換え優先度を参照し、書換え優先度“高”の空き領域に書込み対象データが格納可能か判定する。
ステップS207:空き領域に格納できない場合、書換え優先度“低”である二世代前のレビジョンのモジュール領域に格納可能か判定する。格納不可能な場合は2つのファームウェアイメージを格納不可能とし、ステップS208にてフラッシュメモリ100へ新たなバージョンのファームウェアイメージ全体を書込み、処理を終了する。
ステップS209:格納可能な領域を発見した場合、書込み対象データを書込む。
ステップS210:全てのモジュールについてステップS200からの処理を行う。
ステップS211:全てのモジュールの書込みが終了した時点で領域管理テーブル107とバージョン構成情報108、カレントファームウェアバージョン109を更新する。
ファームウェアのブート状態を管理しておき、正常にブートしなかった場合はバージョン構成情報108から以前のファームウェアバージョンを読み出し、カレントファームウェアバージョン109を以前のバージョンに書換え、領域管理テーブルの書換え優先度を更新することによって以前のバージョンのファームウェアからのブートが可能となる。
本発明を実施するための最良の形態におけるフラッシュメモリのメモリ空間とファームウェアイメージのモジュール配置を示す図。 本発明を実施するための最良の形態における2つのファームウェアバージョンを管理する為のフラッシュメモリ内の領域管理テーブル。 本発明を実施するための最良の形態における各バージョンのファームウェアを構成するモジュールのレビジョン情報。 本発明を実施するための最良の形態におけるファームウェア書換え時のフローチャート。 本発明を実施するための最良の形態におけるファームウェア書換え時のフローチャート(図4の続き)。
符号の説明
0003…ファームウェアイメージ、100…フラッシュメモリ、101…エントリブロック、102…モジュール1、103…モジュール2、104…モジュール3、105…空き領域、106…ファームウェアエントリポイント、107…領域管理テーブル、108…バージョン構成情報、109…カレントファームウェアバージョン、110…エントリポイント判定処理。

Claims (3)

  1. ファームウェアを格納するフラッシュメモリ内を複数の領域に分割し、ファームウェアを構成するモジュールが格納されている領域と、空き領域とを書込みの優先度を設定して管理し、バージョンアップ時には以前のファームウェアバージョンのモジュールを上書き消去せず、復旧が可能なように優先度を参照して書込む領域を自動判別することを特徴としたファームウェアの書換え方法。
  2. ファームウェアを構成する各モジュールを、モジュール処理開始エントリポイントへのジャンプにより処理実行される独立したモジュールで構成し、書換え時には変更のあるモジュールのみを書込み、ファームウェアバージョンを構成するモジュールレビジョンを管理し、バージョンに応じて動作させるモジュール構成を切り換えることで、限られたフラッシュメモリに2つのバージョンのファームウェアを格納することを特徴とした請求項1のファームウェアの書換え方法。
  3. 変更対象となるモジュールのうち、モジュールをRAM上に展開して動作するモジュールに関しては、新しいファームウェアバージョンのモジュールと、以前のファームウェアバージョンのモジュールとの差分データを作成し、モジュールを書込む為に必要なブロック数より差分データを書込む為に必要なブロック数の方が少ない場合は差分データを書込むことを特徴とした請求項1又は、請求項2のファームウェアの書換え方法。
JP2004136988A 2004-05-06 2004-05-06 ファームウェアの書換え方法 Pending JP2005321843A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004136988A JP2005321843A (ja) 2004-05-06 2004-05-06 ファームウェアの書換え方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004136988A JP2005321843A (ja) 2004-05-06 2004-05-06 ファームウェアの書換え方法

Publications (1)

Publication Number Publication Date
JP2005321843A true JP2005321843A (ja) 2005-11-17

Family

ID=35469111

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004136988A Pending JP2005321843A (ja) 2004-05-06 2004-05-06 ファームウェアの書換え方法

Country Status (1)

Country Link
JP (1) JP2005321843A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006251768A (ja) * 2005-02-10 2006-09-21 Alpine Electronics Inc 地図更新処理用データ作成方法、地図更新方法及び装置
JP2008165729A (ja) * 2006-12-07 2008-07-17 Denso Corp マイクロコンピュータ
EP1956807A1 (en) 2005-11-07 2008-08-13 Sony Ericsson Mobile Communications Japan, Inc. Communication terminal apparatus and computer program for graphical display of contacts
WO2010035597A1 (ja) * 2008-09-24 2010-04-01 日立ソフトウエアエンジニアリング株式会社 ファームウェア更新システム、及び更新イメージ生成・配布サーバ装置
US7934050B2 (en) 2006-12-07 2011-04-26 Denso Corporation Microcomputer for flash memory rewriting
JP2014142799A (ja) * 2013-01-24 2014-08-07 Hitachi Ltd 情報処理装置、情報処理方法およびサーバ

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006251768A (ja) * 2005-02-10 2006-09-21 Alpine Electronics Inc 地図更新処理用データ作成方法、地図更新方法及び装置
EP1956807A1 (en) 2005-11-07 2008-08-13 Sony Ericsson Mobile Communications Japan, Inc. Communication terminal apparatus and computer program for graphical display of contacts
JP2008165729A (ja) * 2006-12-07 2008-07-17 Denso Corp マイクロコンピュータ
US7934050B2 (en) 2006-12-07 2011-04-26 Denso Corporation Microcomputer for flash memory rewriting
JP4743182B2 (ja) * 2006-12-07 2011-08-10 株式会社デンソー マイクロコンピュータ
WO2010035597A1 (ja) * 2008-09-24 2010-04-01 日立ソフトウエアエンジニアリング株式会社 ファームウェア更新システム、及び更新イメージ生成・配布サーバ装置
JP2010079438A (ja) * 2008-09-24 2010-04-08 Hitachi Software Eng Co Ltd ファームウェア更新システム、及び更新イメージ生成・配布サーバ装置
JP2014142799A (ja) * 2013-01-24 2014-08-07 Hitachi Ltd 情報処理装置、情報処理方法およびサーバ

Similar Documents

Publication Publication Date Title
US8726262B2 (en) Firmware update system and information apparatus, and program
US7558904B2 (en) Controller, data memory system, data rewriting method, and computer program product
CN110096300B (zh) 一种fpga程序文件备份管理***、运行方法及升级方法
KR20010070416A (ko) 컴퓨터
JP2001209543A (ja) フラッシュ・マイコンにおけるプログラム書き換え方法
JP2016062319A (ja) データ読み出し装置、プログラムおよびデータ読み出し方法
JP2006085342A (ja) メモリ制御装置、メモリ制御方法、プログラム
JP2007226798A (ja) フラッシュメモリを制御する装置および方法
JP2005321843A (ja) ファームウェアの書換え方法
JP2009048557A (ja) データ更新装置及びデータ更新方法及びデータ更新プログラム
JP4826232B2 (ja) 情報処理装置およびブートプログラムの書き換え方法
US20110082995A1 (en) Information processing apparatus
JP2011175361A (ja) データ記憶装置及びデータ記憶方法
JP2007122419A (ja) 不揮発性データ更新システム、不揮発性データ更新方法及びプログラム
JP2009276883A (ja) 半導体補助記憶装置
JP4468342B2 (ja) データ管理方法
JP4910402B2 (ja) 不揮発性メモリの書き換え装置及び書き換え方法
JP2014112419A (ja) 携帯端末装置、ソフトウェア更新方法、動作制御方法及びプログラム
JP2005128613A (ja) 画像形成装置
JP2011039825A (ja) ファームウェア更新方法及びファームウェア更新装置
JP4517607B2 (ja) 電子機器及びそのプログラム更新方法
JP2007328824A (ja) メモリカード、不揮発性メモリ、不揮発性メモリのデータ書込み方法及びデータ書込み装置
CN116954499A (zh) 模拟eeprom的数据处理方法及装置
JP2005222531A (ja) データ記録装置及びデータ記録方法
JP2005071124A (ja) 不揮発メモリシステム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060515