(57)【要約】【課題】書き換えたファームウェアが意図しないバージョンの場合の誤動作を防止するファームウェア書換装置を提供する。【解決手段】ＲＡＭ２２に展開されたファームウェア４４によって、フラッシュメモリ３０に格納されているファームウェアを書き換えたとき、書き換え後のファームウェアのバージョン情報とＲＡＭ２２に展開されているファームウェア４４のバージョン情報とを比較し、これらが一致しないときフラッシュメモリ３０に格納されているファームウェアのチェックサムを異なる値に書き換える。これにより再起動時にチェックサムの不整合となって、誤ったバージョンのファームウェアの実行が防止される。【選択図】図１
2004355064.tif 000002
【特許請求の範囲】
【請求項１】
ファームウェアの書き換えを制御するファームウェア書換装置であって、
不揮発性記憶装置と、揮発性記憶装置と、不揮発性記憶装置の第１領域に格納されるファームウェアに含まれる第１機能部と、不揮発性記憶装置の第２領域に格納されるファームウェアに含まれる第２機能部と、ファームウェアに従って動作するコンピュータとを備え、
前記第２機能部は、前記第１領域に格納されたファームウェアとそのチェックサムとが整合するか否かを調べ、整合する場合にのみ第１領域に格納されたファームウェアを揮発性記憶装置に展開する展開手段と、展開後に前記揮発性記憶装置に格納されているファームウェアを前記コンピュータに実行させる実行権移行手段としてコンピュータを機能させ、
前記揮発性記憶装置に展開されたファームウェアに含まれる前記第１機能部は、自身の属するファームウェアのバージョン情報を取得する元バージョン取得手段と、外部装置からファームウェアを取得して第１領域を書き換える書換手段と、前記元バージョン取得手段が取得したバージョン情報と、書き換え後の第１領域に格納されているファームウェアのバージョン情報とを比較し、これらが一致しない場合に、書き換え後の第１領域に格納されているファームウェアをそのチェックサムと整合の取れない状態に書き換える強制書換手段としてコンピュータを機能させる
ことを特徴とするファームウェア書換装置。
【請求項２】
前記第２機能部は、前記第１領域に格納されているファームウェアとそのチェックサムとが整合しない場合に、外部装置からファームウェアを取得して第１領域を書き換える第２書換手段としてコンピュータを機能させる
ことを特徴とする請求項１に記載のファームウェア書換装置。
【請求項３】
ファームウェアの書き換え動作を制御するようにコンピュータを機能させるファームウェア書換プログラムであって、
不揮発性記憶装置の第１領域に格納されるファームウェアに含まれる第１機能部と不揮発性記憶装置の第２領域に格納されるファームウェアに含まれる第２機能部とを備え、
前記第２機能部は、前記第１領域に格納されたファームウェアとそのチェックサムとが整合するか否かを調べ、整合する場合にのみ第１領域に格納されたファームウェアを揮発性記憶装置に展開する展開手段と、展開後に前記揮発性記憶装置に格納されているファームウェアを前記コンピュータに実行させる実行権移行手段としてコンピュータを機能させ、
前記揮発性記憶装置に展開されたファームウェアに含まれる前記第１機能部は、自身の属するファームウェアのバージョン情報を取得する元バージョン取得手段と、外部装置からファームウェアを取得して第１領域を書き換える書換手段と、前記元バージョン取得手段が取得したバージョン情報と、書き換え後の第１領域に格納されているファームウェアのバージョン情報とを比較し、これらが一致しない場合に、書き換え後の第１領域に格納されているファームウェアをそのチェックサムと整合の取れない状態に書き換える強制書換手段としてコンピュータを機能させる
ことを特徴とするファームウェア書換プログラム。
【請求項４】
前記第２機能部は、前記第１領域に格納されているファームウェアとそのチェックサムとが整合しない場合に、外部装置からファームウェアを取得して第１領域を書き換える第２書換手段としてコンピュータを機能させる
ことを特徴とする請求項３に記載のファームウェア書換プログラム。
【請求項５】
不揮発性記憶装置に格納されたファームウェアを書き換えるファームウェア書換方法であって、
不揮発性記憶装置の第１領域に格納されるファームウェアに含まれる第１機能部と、不揮発性記憶装置の第２領域に格納されるファームウェアに含まれる第２機能部とを備え、
前記第２機能部がコンピュータを動作させて、前記第１領域に格納されたファームウェアとそのチェックサムとが整合するか否かを調べ、整合する場合にのみ第１領域に格納されたファームウェアを揮発性記憶装置に展開し、展開後に前記揮発性記憶装置に格納されているファームウェアを前記コンピュータが実行するように設定するステップと、
前記揮発性記憶装置に展開されたファームウェアに含まれる前記第１機能部がコンピュータを動作させて、自身の属するファームウェアのバージョン情報を元バージョンとして取得し、外部装置からファームウェアを取得して第１領域を書き換え、前記元バージョンと、書き換え後の第１領域に格納されているファームウェアのバージョン情報とを比較し、これらが一致しない場合に、書き換え後の第１領域に格納されているファームウェアをそのチェックサムと整合の取れない状態に書き換えるステップと
を有する
ことを特徴とするファームウェア書換方法。
【請求項６】
前記第２機能部が、前記第１領域に格納されているファームウェアとそのチェックサムとが整合しない場合に、外部装置からファームウェアを取得して第１領域を書き換えるステップをさらに有する
ことを特徴とする請求項５に記載のファームウェア書換方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フラッシュＲＯＭなどの不揮発性記憶装置に格納されているファームウェアを新たなものに書き換えるファームウェア書換装置及びファームウェア書換プログラム、ファームウェア書換方法に関する。
【０００２】
【従来の技術】
パーソナルコンピュータやプリンタ、複写機などＣＰＵ（中央処理装置）を備えた装置では、通常、フラッシュメモリなどの不揮発性メモリに、非圧縮の起動用ファームウェアと圧縮された通常動作用ファームウェアとを格納している。装置が起動されると、起動用ファームウェアで通常動作用ファームウェアを伸張して揮発性メモリに展開し、その後は、ここに展開された通常動作用ファームウェアで装置が動作するようになっている。
【０００３】
揮発性メモリに展開されたファームウェアは、不揮発性メモリに格納された通常動作用ファームウェアを新たなものに書き換える機能を有している。たとえば、サービスマンの操作に従ってデバッグモードに入ると、パーソナルコンピュータなどの外部装置から新たなファームウェアをダウンロードして、不揮発性メモリ内の通常動作用ファームウェアの書き換えが可能になる。ファームウェアの書き換え後は装置が再起動され、不揮発性メモリに格納されている通常動作用ファームウェアとそのチェックサムとが整合する場合には、当該ファームウェアが揮発性メモリに展開され、この新たなファームウェアに従って装置が動作するようになる。
【０００４】
【特許文献１】
特開２００１−３４４１５６号公報
【特許文献２】
特開平１１−１１０２１８号公報
【０００５】
【発明が解決しようとする課題】
書き換え途中で電源断などのトラブルがなく、ファームウェアの書き換えに成功すると、起動処理においてチェックサムが整合し、その後は、揮発性メモリに展開された新たなファームウェアで装置が動作するようになる。しかしながら、書き換えたファームウェアのバージョン自体が間違っている場合には、装置が正常に動作しなくなる。特に、書き換えたものが異なる機種のファームウェアの場合には、Ｉ／Ｏポートの設定などハードウェアの条件が相違するので、ファームウェアを再度書き換えることができなくなったり、装置が予期せぬ動作をしたりして、復旧が困難になってしまう。
【０００６】
本発明は、このような従来の技術が有する問題点に着目してなされたもので、書き換えたファームウェアが意図しないバージョンであった場合の誤動作を防止し、また再度の書き換えを可能にするファームウェア書換装置及びファームウェア書換プログラム、ファームウェア書換方法を提供することを目的としている。
【０００７】
【課題を解決するための手段】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１にかかわる発明は、ファームウェアの書き換えを制御するファームウェア書換装置であって、不揮発性記憶装置（３０）と、揮発性記憶装置（２２）と、不揮発性記憶装置（３０）の第１領域（３１）に格納されるファームウェアに含まれる第１機能部と、不揮発性記憶装置（３０）の第２領域（３２）に格納されるファームウェアに含まれる第２機能部と、ファームウェアに従って動作するコンピュータ（２１）とを備え、前記第２機能部は、前記第１領域（３１）に格納されたファームウェアとそのチェックサムとが整合するか否かを調べ、整合する場合にのみ第１領域（３１）に格納されたファームウェアを揮発性記憶装置（２２）に展開する展開手段と、展開後に前記揮発性記憶装置（２２）に格納されているファームウェアを前記コンピュータ（２１）に実行させる実行権移行手段としてコンピュータ（２１）を機能させ、前記揮発性記憶装置（２２）に展開されたファームウェアに含まれる前記第１機能部は、自身の属するファームウェアのバージョン情報を取得する元バージョン取得手段と、外部装置（２）からファームウェアを取得して第１領域（３１）を書き換える書換手段と、前記元バージョン取得手段が取得したバージョン情報と、書き換え後の第１領域（３１）に格納されているファームウェアのバージョン情報とを比較し、これらが一致しない場合に、書き換え後の第１領域（３１）に格納されているファームウェアをそのチェックサムと整合の取れない状態に書き換える強制書換手段としてコンピュータ（２１）を機能させることを特徴とするファームウェア書換装置である。
【０００８】
請求項２にかかわる発明は、前記第２機能部は、前記第１領域（３１）に格納されているファームウェアとそのチェックサムとが整合しない場合に、外部装置（２）からファームウェアを取得して第１領域（３１）を書き換える第２書換手段としてコンピュータ（２１）を機能させることを特徴とする請求項１に記載のファームウェア書換装置である。
【０００９】
請求項３にかかわる発明は、ファームウェアの書き換え動作を制御するようにコンピュータ（２１）を機能させるファームウェア書換プログラムであって、不揮発性記憶装置（３０）の第１領域（３１）に格納されるファームウェアに含まれる第１機能部と不揮発性記憶装置（３０）の第２領域（３２）に格納されるファームウェアに含まれる第２機能部とを備え、前記第２機能部は、前記第１領域（３１）に格納されたファームウェアとそのチェックサムとが整合するか否かを調べ、整合する場合にのみ第１領域（３１）に格納されたファームウェアを揮発性記憶装置（２２）に展開する展開手段と、展開後に前記揮発性記憶装置（２２）に格納されているファームウェアを前記コンピュータ（２１）に実行させる実行権移行手段としてコンピュータ（２１）を機能させ、前記揮発性記憶装置（２２）に展開されたファームウェアに含まれる前記第１機能部は、自身の属するファームウェアのバージョン情報を取得する元バージョン取得手段と、外部装置（２）からファームウェアを取得して第１領域（３１）を書き換える書換手段と、前記元バージョン取得手段が取得したバージョン情報と、書き換え後の第１領域（３１）に格納されているファームウェアのバージョン情報とを比較し、これらが一致しない場合に、書き換え後の第１領域（３１）に格納されているファームウェアをそのチェックサムと整合の取れない状態に書き換える強制書換手段としてコンピュータ（２１）を機能させることを特徴とするファームウェア書換プログラムである。
【００１０】
請求項４にかかわる発明は、前記第２機能部は、前記第１領域（３１）に格納されているファームウェアとそのチェックサムとが整合しない場合に、外部装置（２）からファームウェアを取得して第１領域（３１）を書き換える第２書換手段としてコンピュータ（２１）を機能させることを特徴とする請求項３に記載のファームウェア書換プログラムである。
【００１１】
請求項５にかかわる発明は、不揮発性記憶装置（３０）に格納されたファームウェアを書き換えるファームウェア書換方法であって、不揮発性記憶装置（３０）の第１領域（３１）に格納されるファームウェアに含まれる第１機能部と、不揮発性記憶装置（３０）の第２領域（３２）に格納されるファームウェアに含まれる第２機能部とを備え、前記第２機能部がコンピュータ（２１）を動作させて、前記第１領域（３１）に格納されたファームウェアとそのチェックサムとが整合するか否かを調べ、整合する場合にのみ第１領域（３１）に格納されたファームウェアを揮発性記憶装置（２２）に展開し、展開後に前記揮発性記憶装置（２２）に格納されているファームウェアを前記コンピュータ（２１）が実行するように設定するステップと、前記揮発性記憶装置（２２）に展開されたファームウェアに含まれる前記第１機能部がコンピュータ（２１）を動作させて、自身の属するファームウェアのバージョン情報を元バージョンとして取得し、外部装置（２）からファームウェアを取得して第１領域（３１）を書き換え、前記元バージョンと、書き換え後の第１領域（３１）に格納されているファームウェアのバージョン情報とを比較し、これらが一致しない場合に、書き換え後の第１領域（３１）に格納されているファームウェアをそのチェックサムと整合の取れない状態に書き換えるステップとを有することを特徴とするファームウェア書換方法である。
【００１２】
請求項６にかかわる発明は、前記第２機能部が、前記第１領域（３１）に格納されているファームウェアとそのチェックサムとが整合しない場合に、外部装置（２）からファームウェアを取得して第１領域（３１）を書き換えるステップをさらに有することを特徴とする請求項５に記載のファームウェア書換方法である。
【００１３】
請求項１または３、５に記載の発明によれば、フラッシュメモリなどの不揮発性記憶装置（３０）に格納されているファームウェアを書き換えた際に、そのバージョン情報が書換前のファームウェアと異なる場合に、書き換え後のファームウェアをそのチェックサムと整合しないように変更する。これにより、再起動した際に不揮発性記憶装置（３０）に格納された意図しないバージョンのファームウェアが揮発性記憶装置（２２）に展開されなくなり、当該ファームウェアの実行が防止される。なお、ここでいうバージョン情報は、装置のバージョンであり、機種や回路基板、Ｉ／Ｏポートの設定などの同一性を表すものである。したがって、ファームウェアのバージョン情報が相違すると、装置が予期せぬ動作をしたり、ファームウェアの再度の書き換えができなくなったりするなどの不具合が生じる。ファームウェアをそのチェックサムと整合しないように変更するには、チェックサム自体を異なる値に変更してもよいし、ファームウェアの一部（チェックサム以外の部分）を書き換えてもよい。
【００１４】
外部装置（２）としては、たとえばパーソナルコンピュータ（２１）がある。また外部装置（２）からの取得はネットワークや電子メールを利用してもよい。揮発性記憶装置（２２）に展開された第１機能部は、自身のバージョンを、第１領域に格納されている書き換え前のファームウェアから書換処理の直前に取得してもよいし、当初から自身のバージョン情報を揮発性記憶装置（２２）に展開しておき、ここから取得してもよい。
【００１５】
請求項２または４、６に記載の発明によれば、チェックサムが整合しない場合に、第２領域（３２）に格納されているファームウェアによって新たなファームウェアを外部装置（２）から第１領域にロードし得るので、第１領域を意図しないバージョンのファームウェアで書き換えた後の復旧が可能になる。なお、チェックサムの整合が取れない場合は第２領域（３２）に格納されているファームウェアだけで装置が動作するので、操作部や表示部はほとんど動作しない。そこで、たとえば、各バージョンに共通のＩ／Ｏポートを設けておき、ここに接続したＬＥＤやブザーを駆動することにより、ファームウェアの異常が使用者に報知される構成にするとよい。
【００１６】
【発明の実施の形態】
以下、図面に基づき本発明の一実施の形態を説明する。
図２は、本発明の実施の形態にかかわるファームウェア書換装置２０を含む情報処理装置１０の概略構成を示している。情報処理装置１０は、たとえば、複写機やプリンタ装置として構成されている。ファームウェア書換装置２０は、（ＣＰＵ中央処理装置）２１と、不揮発性記憶装置としてのフラッシュメモリ３０と、ＲＡＭ２２とから構成されている。ＣＰＵ２１には、入出力装置（Ｉ／Ｏ）１１が接続されている。
【００１７】
入出力装置１１には、たとえば、各種スイッチを備えた操作部や表示部のほか複写機やプリンタ装置としての機能を実現するための各種装置１２が接続される。これら各種装置１２が接続されるＩ／Ｏポートアドレスは、機種毎あるいは回路基板のバージョン毎に相違することが許されている。ただし、ファームウェアの異常を報知するために用意した報知用ＬＥＤ１３は、機種や回路基板のバージョンにかかわらず、同一アドレスのＩ／Ｏポートに接続されている。またファームウェアを書き換える際には、シリアル通信を利用してパーソナルコンピュータ等の外部装置２が接続される。
【００１８】
フラッシュメモリ３０の格納領域は、第１領域３１と第２領域３２に区分されている。第１領域３１には、通常動作用ファームウェアが圧縮された状態で格納される。第２領域３２には、電源ＯＮ後の起動用ファームウェアが非圧縮の状態で格納される。ＲＡＭ２２には、伸張した通常動作用ファームウェアが展開される。ＣＰＵ２１は、通常動作ではＲＡＭ２２に展開されたファームウェアに従って動作する。
【００１９】
第２領域３２に格納される起動用ファームウェアに含まれる第２機能部は、第１領域３１に格納された通常実行用ファームウェアとそのチェックサムとが整合するか否かを調べ、整合する場合にのみ第１領域３１に格納されたファームウェアをＲＡＭ２２に展開する展開手段としての機能と、展開後にＲＡＭ２２に格納されているファームウェアをＣＰＵ２１が実行するように設定する実行権移行手段としての機能を果たすようにＣＰＵ２１に動作させるプログラムである。
【００２０】
第１領域３１に格納される通常動作用ファームウェアに含まれる第１機能部は、ＲＡＭ２２に展開されると、自身の属する通常動作用ファームウェアのバージョン情報を取得する元バージョン取得手段としての機能と、外部装置２からファームウェアを取得して第１領域３１を書き換える書換手段としての機能と、元バージョン取得手段が取得したバージョン情報と、書き換え後のＣＰＵ２１に格納されている通常動作用ファームウェアのバージョン情報とを比較し、これらが一致しない場合に、書き換え後の第１領域３１に格納されているファームウェアをそのチェックサムと整合の取れない状態に書き換える強制書換手段としての機能を果たすようにＣＰＵ２１を動作させるプログラムである。
【００２１】
また第２機能部は、第１領域３１に格納されている通常動作用ファームウェアとそのチェックサムとが整合しない場合に、外部装置２から別の通常動作用ファームウェアを取得して第１領域３１を書き換える第２書換手段としてコンピュータを機能させるプログラムを含んでいる。
【００２２】
図３は、第２領域３２に格納された起動用ファームウェア（以後、第２ファームウェア４１とも呼ぶ）に基づく起動処理の流れを示している。また図４は、起動処理にかかわるデータの流れを示している。情報処理装置１０の電源がＯＮされると、ＣＰＵ２１は、第２ファームウェア４１をその先頭アドレスＳＴから実行する。ＣＰＵ２１は第２ファームウェア４１に従い、第１領域３１に格納されているファームウェア（以後、第１ファームウェア４２とも呼ぶ）がそのチェックサム４３と整合しているか否かを調べる（ステップＳ１０１）。ここでは、チェックサム４３は、第１ファームウェア４２の終端に格納されている。
【００２３】
第１ファームウェア４２とそのチェックサム４３とが整合する場合は（ステップＳ１０２；Ｙ）、圧縮されている第１ファームウェア４２を伸張し、第３ファームウェア４４としてＲＡＭ２２に展開する（ステップＳ１０３）。その後、ジャンプ命令等によりＣＰＵ２１のプログラムカウンタを第３ファームウェア４４の先頭アドレスに変更して、ＣＰＵ２１が第３ファームウェア４４に基づいて動作するように設定する。これにより起動処理が終了した後は、ＲＡＭ２２に展開された第３ファームウェア４４に従ってＣＰＵ２１が動作する。
【００２４】
フラッシュメモリ３０の第１領域３１に格納されているファームウェア（ここでは第１ファームウェア４２）とそのチェックサム４３とが整合しない場合には（ステップＳ１０２；Ｎ）、ＲＡＭ２２への展開を行なわず、チェックサムが不整合となった旨を報知用ＬＥＤ１３を点灯して報知する（ステップＳ１０４）。そしてフラッシュメモリ３０の第１領域３１に新たなファームウェアを書き込み得る状態を形成する（ステップＳ１０５）。たとえば、シリアル通信を用いてパーソナルコンピュータ等の外部装置２から新たなファームウェアをロードしてフラッシュメモリ３０の第１領域３１を書き換えるようになっている。
【００２５】
ＲＡＭ２２に展開された第３ファームウェア４４に従って動作している際に、サービスマン等によって特殊な操作（たとえばデバッグモードに入る操作）が成されると第３ファームウェア４４がフラッシュメモリ３０の第１領域３１に格納されている第１ファームウェア４２を書き換える書換処理が開始する。図５は、第３ファームウェア４４に基づく書換処理の流れを示している。また図６および図１は、書換処理におけるデータの流れを示している。
【００２６】
書換処理では、第１ファームウェア４２のバージョン情報４５を取得する（ステップＳ２０１）。ここでいうバージョン情報は、装置のバージョンであり、機種や回路基板、Ｉ／Ｏポートの設定などの同一性を表すものである。したがって、ファームウェアのバージョン情報が不適正な場合には、装置が予期せぬ動作をしたり、ファームウェアの再度の書き換えができなくなったりする。第１ファームウェア４２のバージョン情報４５は、特定のアドレス（たとえば第１ファームウェア４２のチェックサム４３の１つ手前のアドレス）に常に格納されている。
【００２７】
第３ファームウェア４４は、図６に示すように、特定のアドレスに格納されているバージョン情報４５を取得し、これをＲＡＭ２２にバージョン情報４６として格納する。バージョン情報４５が圧縮されている場合には、伸張したものをバージョン情報４６としてＲＡＭ２２に格納する。なお、起動処理において第２ファームウェア４１が第１ファームウェア４２をＲＡＭ２２に第３ファームウェア４４として展開する際にバージョン情報４５をＲＡＭ２２にバージョン情報４６として保存するように構成してもよい。
【００２８】
第３ファームウェア４４は、図１に示すように、外部装置２から新たなファームウェア（以後、第４ファームウェア４７とも呼ぶ）を取得し、これをフラッシュメモリ３０の第１領域３１に格納して書き換える（ステップＳ２０２）。続いて第４ファームウェア４７のバージョン情報４８を取得し、これをＲＡＭ２２にバージョン情報４９として格納する。バージョン情報４８が圧縮されている場合には、伸張したものをバージョン情報４９としてＲＡＭ２２に格納する。
【００２９】
第３ファームウェア４４は、バージョン情報４９と書き換え前の第１ファームウェア４２のバージョン情報４６とを比較し（ステップＳ２０３）。これらが一致する場合は（ステップＳ２０４；Ｙ）、書換処理を正常終了する。一方、これらのバージョン情報４６、４９が一致しない場合は（ステップＳ２０４；Ｎ）、第４ファームウェア４７のチェックサム５０を異なる値に書き換えて（ステップＳ２０５）、書換処理を終了する。
【００３０】
このようにバージョン情報が相違する場合に、第４ファームウェア４７のチェックサム５０を整合しない値に書き換えるので、その後、情報処理装置１０を再起動した際に実行される起動処理においてチェックサムが不整合となり（図３のステップＳ１０２；Ｎ）、エラーの報知（ステップＳ１０４）と、新たなファームウェアをフラッシュメモリ３０の第１領域３１に書き込む処理（ステップＳ１０５）が第２ファームウェア４１に基づいて実行される。
【００３１】
図７は、第２ファームウェア４１が外部装置２から新たなファームウェアとしての第５ファームウェア５１を取得して、フラッシュメモリ３０の第１領域３１を書き換える際のデータの流れを示している。第２ファームウェア４１に含まれる書換処理をＣＰＵ２１が実行することによりＣＰＵ２１は第２書換手段として機能し、第５ファームウェア５１への書き換えが行なわれる。このとき表示部や操作部など各種装置１２は動作せず、報知用ＬＥＤ１３のみが点灯する特別な警告状態になる。これにより、次に書き込むファームウェアのバージョンが間違いないことを充分確認するように使用者の注意を喚起することができる。
【００３２】
第２ファームウェア４１による書き換えは、操作部や表示部が一切動作しない状態で行なわれるので、外部装置２の主導で書換動作が行なわれるようにするとよい。たとえば、書き換えるファームウェアを外部装置２の側で指定し、シリアル通信等で外部装置２からファームウェア書換装置２０へ送信する。第２ファームウェア４１で動作するファームウェア書換装置２０は、外部装置２からのデータ入力待ち状態となっており、入力されたデータで自動的にフラッシュメモリ３０の第１領域３１を書き換えるように動作する。書換後は、自動的に図３に示す処理を再実行してもよいし、電源のＯＦＦ／ＯＮを待って再起動するようにしてもよい。
【００３３】
以上、本発明の実施形態を図面によって説明してきたが、具体的な構成は実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。例えば、実施の形態では、フラッシュメモリ３０の第１領域３１に格納された第４ファームウェア４７のバージョン情報４８を一旦ＲＡＭ２２にバージョン情報４９として格納してから第３ファームウェア４４のバージョン情報４６と比較したが、バージョン情報４８が非圧縮の場合は、第４ファームウェア４７から読み出したものとバージョン情報４６とを直接比較するように構成してもよい。
【００３４】
また実施の形態では第３ファームウェア４４が第１ファームウェア４２から自身のバージョン情報４６を取得するようにしたが、当初から第３ファームウェア４４が自身のバージョン情報を知っているように構成してもよい。たとえば、バージョン情報が当初から第３ファームウェア４４の所定箇所に格納されているように構成してもよい。
【００３５】
このほか、第３ファームウェア４４が自身のバージョン情報４６と第４ファームウェア４７のバージョン情報４９とが相違することを検知したとき、その旨の警告を出し、電源をＯＦＦする前に、ファームウェアを書き換える機会を使用者に再度与えるように構成してもよい。この場合、第３ファームウェア４４に基づいてＣＰＵ２１が動作する状態で再度の書換処理が実行される。なお、このように動作させる場合においても、書換途中で電源が断される場合を想定して第４ファームウェア４７のチェックサム５０を異なる値に書き換えておくとよい。
【００３６】
【発明の効果】
本発明にかかるファームウェア書換装置及びファームウェア書換プログラム、ファームウェア書換方法によれば、フラッシュメモリなどの不揮発性記憶装置に格納されているファームウェアを書き換えたとき、そのバージョン情報が書換前のファームウェアと異なる場合に、書き換え後のファームウェアをそのチェックサムと整合しないように変更するので、再起動した際に不揮発性記憶装置に格納された意図しないバージョンのファームウェアが揮発性記憶装置に展開されて実行されることが防止される。
【００３７】
またチェックサムが整合しない場合に、不揮発性記憶装置に格納されている起動用ファームウェアによって新たなファームウェアを外部装置から取得し得るように構成したものでは、意図しないバージョンのファームウェアで書き換えた後の復旧が可能になる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るファームウェア書換装置がフラッシュメモリの第１領域に格納されている通常動作用ファームウェアを書き換える際のデータの流れを示す説明図である。
【図２】本発明の実施の形態に係るファームウェア書換装置を含む情報処理装置の構成を示すブロック図である。
【図３】フラッシュメモリの第２領域に格納された起動用ファームウェアに基づく起動処理を示す流れ図である。
【図４】図３に示す起動処理におけるデータの流れを示す説明図である。
【図５】ＲＡＭに展開された第３ファームウェアに基づく書換処理を示す流れ図である。
【図６】図５の書換処理において第３ファームウェアのバージョン情報を取得する際のデータの流れを示す説明図である。
【図７】起動処理においてチェックサムが不整合の場合に第２ファームウェアが第５ファームウェアでフラッシュメモリの第１領域を書き換える際のデータの流れを示す説明図である。
【符号の説明】
ＳＴ…先頭アドレス
２…外部装置
１０…情報処理装置
１１…入出力装置（Ｉ／Ｏ）
１２…各種装置
１３…報知用ＬＥＤ
２０…ファームウェア書換装置
２１…ＣＰＵ
２２…ＲＡＭ
３０…フラッシュメモリ
３１…第１領域
３２…第２領域
４１…第２ファームウェア
４２…第１ファームウェア
４３、５０…チェックサム
４４…第３ファームウェア
４５、４６…バージョン情報
４７…第４ファームウェア
４８、４９…バージョン情報
５１…第５ファームウェア
【図１】
2004355064.tif 000003
【図２】
2004355064.tif 000004
【図３】
2004355064.tif 000005
【図４】
2004355064.tif 000006
【図５】
2004355064.tif 000007
【図６】
2004355064.tif 000008
【図７】
2004355064.tif 000009