JP2004086353A - ファームウェア書き込み制御方法および同書き込み制御方法が適用されるカード装置 - Google Patents
ファームウェア書き込み制御方法および同書き込み制御方法が適用されるカード装置 Download PDFInfo
- Publication number
- JP2004086353A JP2004086353A JP2002243976A JP2002243976A JP2004086353A JP 2004086353 A JP2004086353 A JP 2004086353A JP 2002243976 A JP2002243976 A JP 2002243976A JP 2002243976 A JP2002243976 A JP 2002243976A JP 2004086353 A JP2004086353 A JP 2004086353A
- Authority
- JP
- Japan
- Prior art keywords
- register
- card
- firmware
- host device
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/40—Security arrangements using identity modules
- H04W12/47—Security arrangements using identity modules using near field communication [NFC] or radio frequency identification [RFID] modules
Landscapes
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
【課題】カード装置への不揮発性メモリの実装後にその不揮発性メモリに対するファームウェアの書き込みまたは書き換えを安全に実行する仕組みを実現する。
【解決手段】ファームウェアの制御無しでホスト装置1と通信可能なカード装置10内のカードインタフェース部21内に設けられたフラッシュROMレジスタ211を利用することにより、フラッシュメモリ30の実装後において、カード装置10内のフラッシュメモリ30にファームウェアを書き込むことが出来る。さらに、カードインタフェース部21内にはフラッシュメモリ30の内容が誤って或いは作為的に書き換えられることを防止するための機構としてアクセスプロテクトレジスタ212が用意されており、ホスト装置1によるファームウェアの書き込み動作は、アクセスプロテクトレジスタ212にホスト装置1によってセットされたコードデータが予め決められた正当な値である場合にのみ許可される。
【選択図】 図1
【解決手段】ファームウェアの制御無しでホスト装置1と通信可能なカード装置10内のカードインタフェース部21内に設けられたフラッシュROMレジスタ211を利用することにより、フラッシュメモリ30の実装後において、カード装置10内のフラッシュメモリ30にファームウェアを書き込むことが出来る。さらに、カードインタフェース部21内にはフラッシュメモリ30の内容が誤って或いは作為的に書き換えられることを防止するための機構としてアクセスプロテクトレジスタ212が用意されており、ホスト装置1によるファームウェアの書き込み動作は、アクセスプロテクトレジスタ212にホスト装置1によってセットされたコードデータが予め決められた正当な値である場合にのみ許可される。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明はファームウェア書き込み制御方法および同書き込み制御方法が適用されるカード装置に関する。
【0002】
【従来の技術】
近年、パーソナルコンピュータ、PDA、カメラ、携帯電話等の様々な携帯型電子機器が開発されている。これら電子機器においては、リムーバブル記憶デバイスの1つであるメモリカードが多く用いられている。代表的なメモリカードとしては、例えば、PCMCIAカード(PCカード)が知られている。
【0003】
メモリカードは携帯型電子機器から自由にアクセスすることが出来る。また、ユーザデータの読み出しおよび書き込みに保護機能を設けたメモリカードも知られている(特開平7−200767号公報)。
【0004】
メモリカードとしては、上述のPCMCIAカード(PCカード)の他に、それよりも更に小型のSD(Secure Digital)メモリカードも知られている。SDメモリカードは不揮発性メモリを内蔵する切手サイズのメモリカードであり、小型化、容量、および高速化の要求に見合うように特に設計されている。
【0005】
また、最近では、SDメモリカードの応用製品として、例えば無線通信カードなどのSDIOカードが規格化され、各社から新規カードデバイスとして設計、開発、販売が開始されようとしている。SDIOカードは、そのカード内に内蔵された不揮発性メモリに格納されているファームウェアに従って、例えば無線通信等の所定の周辺デバイスとしての機能を実行する。
【0006】
【発明が解決しようとする課題】
しかし、SDIOカードの製造に際しては、次のような問題がある。
【0007】
すなわち、通常は、カードデバイスの製造に際しては、そのカードデバイスに搭載する部品についてはその実装前に部品単体で必要なデータの書き込みが行われた後にカードに実装される。
【0008】
しかし、もしそのカードデバイスのパッケージング後の検査において書き込みデータにエラーが検出された場合には、その部品の取り外しおよびデータの書き直しといったいわゆる後戻り工程が必要となる。SDIOカードは非常に小型のカードであるので、パッケージング後の部品の取り外し等の作業には多くの時間を要することとなる。
【0009】
特に、SDIOカードにおいてはファームウェアを格納した不揮発性メモリを搭載することが必要であるので、パッケージング後の検査においてファームウェアの一部にでもエラーが検出されると、その不揮発性メモリ自体を取り外してファームウェアを書き直すといった作業が必要となり、結果的に製造コストの増大を招くことになる。
【0010】
本発明は上述の事情を考慮してなされたもので、カード装置への不揮発性メモリの実装後にその不揮発性メモリに対するファームウェアの書き込みまたは書き換えを安全に実行することが可能なファームウェア書き込み制御方法およびカード装置を提供することを目的とする。
【0011】
【課題を解決するための手段】
上述の課題を解決するため、本発明は、ホスト装置に取り外し自在に装着されるカード装置内に設けられた不揮発性メモリに、前記カード装置に所定の機能を実行させるためのファームウェアを書き込むためのファームウェア書き込み制御方法であって、前記カード装置内には、前記ファームウェアの制御無しで前記ホスト装置と通信可能なカードインタフェース部が設けられており、前記カード装置の前記カードインタフェース部内に設けられた第1のレジスタに前記ホスト装置によってセットされたコードデータが予め決められた正当な値であるか否かを判定するステップと、前記判定結果に応じて、前記不揮発性メモリを前記ホスト装置からアクセスするために前記カードインタフェース部内に設けられた第2のレジスタを介して実行される前記ホスト装置による前記不揮発性メモリへのファームウェアの書き込み動作を、許可又は禁止するステップとを具備することを特徴とする。
【0012】
このファームウェア書き込み制御方法においては、カード装置への不揮発性メモリの実装後にその不揮発性メモリに対するファームウェアの書き込みまたは書き換えを安全に実行することが可能となる。
【0013】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
図1には、本発明の一実施形態に係るカード装置10とそれを装着して使用可能なホスト装置1との関係が示されている。以下では、カード装置10としてSDIOカードを使用する場合を例示して説明する。
【0014】
SDIOカード10は、例えばパーソナルコンピュータ、PDA、カメラ、携帯電話等の各種ホスト装置1に設けられたSDカードスロット2に着脱自在に装着して使用されるカードデバイスである。ホスト装置1には、SDIOカード10を制御するホストコントローラ11が設けられている。SDIOカード10とホストコントローラ11との通信は、全てホストコントローラ11からのコマンドによって制御される。
【0015】
ホストコントローラ11とSDIOカード10との間を接続するSDバス50は、6本の通信線(データDAT0−3,コマンドCMD,クロックCLK)と3本の電源供給線(VDD,VSS,VSS)を含む。これに対応して、SDメモリカード10には、4本のデータピン[DAT0−3]、コマンドピン[CMD]、クロック信号ピン[CLK]、電源ピン[VDD]、2つのグランドピン[VSS]が設けられている。
【0016】
SDIOカード10は、例えば、無線通信カード、LANカード、またはGPSカード等として機能する。以下では、Bluetooth(R)規格の近距離無線通信カード(Bluetoothカード)として実現した場合を想定することとする。
【0017】
SDIOカード10には、図示のように、LSI20、フラッシュメモリ30、およびRF・アンテナ部40が実装されている。
【0018】
LSI20は、SDIO制御部21とベースバンドコア22とMPU23とを1チップ化したLSIである。フラッシュメモリ30は、SDIOカード10の動作を規定するファームウェアおよびホスト装置1にカードを認識させるためのカード属性情報等の記憶のために用いられる不揮発性メモリである。フラッシュメモリ30のデータ入出力端子およびアドレス入力端子はそれぞれLSI20に直接接続されている。
【0019】
フラッシュメモリ30に格納されたファームウェアは、MPU23によって実行される。MPU23がファームウェアを実行することにより、SDIOカード10はBluetoothカードとして機能することが出来る。
【0020】
SDIO制御部21はホストコントローラ11と通信するためのカードインタフェースである。このSDIO制御部21はファームウェアの制御無しで、すなわちMPU23の制御無しで、ホストコントローラ11と通信できるように構成されている。すなわち、SDIO制御部21にはカード識別動作等のために使用される共通ファンクションレジスタとして幾つかのレジスタが内蔵されており、ホスト装置1は、ホストコントローラ11およびSDバス50を介してSDIOカード10に動作コマンド(SDコマンド)を送信するだけで、SDIO制御部21内の所望の共通ファンクションレジスタにアクセスすることが出来る。
【0021】
本実施形態においては、フラッシュメモリ30へのファームウェアおよびカード属性情報の書き込みは、フラッシュメモリ30をSDIOカード10に実装した後に行われる。すなわち、ラッシュメモリ30へのファームウェアおよびカード属性情報の書き込みは、SDIOカード10の全ての部品実装およびパッケージングが完了した後に、ホスト装置1による制御によって実行される。この書き込み動作はSDIOカード10の工場出荷前に実行されるものである。もちろんSDIOカード10の出荷後においても、ユーザは、ホスト装置1によって実行される専用のプログラムを用いて、SDIOカード10のフラッシュメモリ30に格納されているファームウェアを書き換えることが出来る。
【0022】
このようなフラッシュメモリ30の実装後におけるファームウェアの書き込み/更新を実現するため、SDIO制御部21の共通ファンクションレジスタ内には、フラッシュROMアクセスレジスタ211およびアクセスプロテクトレジスタ212が設けられている。
【0023】
フラッシュROMアクセスレジスタ211は、ホスト装置1からフラッシュメモリ30をアクセスするために設けられたフラッシュROM制御用レジスタである。ホスト装置1は、フラッシュROMアクセスレジスタ211をアクセスするためのSDコマンドをSDバス50を介してSDIOカード10に発行することにより、フラッシュROMアクセスレジスタ211にコマンドや書き込みデータをセットする。これにより、ホスト装置1による制御で、フラッシュメモリ30へのファームウェアおよびカード属性情報の書き込み動作を実行する事が出来る。
【0024】
アクセスプロテクトレジスタ212は、フラッシュメモリ30をそれに対するアクセスから保護するために設けられたレジスタである。フラッシュROMアクセスレジスタ211を介したフラッシュメモリ30に対するアクセスは、予め決められたコードデータがホスト装置1によってアクセスプロテクトレジスタ212にセットされた場合にのみ許可される。
【0025】
MPU23はフラッシュメモリ30に格納されたファームウェアを実行することにより、ベースバンドコア22と共同して、近距離無線通信に必要な動作を実行する。
【0026】
次に、図2および図3を参照して、フラッシュメモリ30にファームウェアを書き込む動作について説明する。
【0027】
図2はフラッシュメモリ30にファームウェアを書き込むための基本手順を示しており、また図3はフラッシュROMアクセスレジスタ211の構成を示している。
【0028】
図3に示されているように、フラッシュROMアクセスレジスタ211は、ホスト装置1からリード・ライト可能な8bit幅の1個のデータレジスタ(リード動作時はFlash Memory Data Read Register、ライト動作時はFlash Memory Data Write Registerとして機能する)と、ホスト装置1からそれぞれリード・ライト可能な8bit幅の3個のアドレスレジスタ(下位8bitのアドレス設定に用いられるFlash Memory Lower Adress Register、中位8bitのアドレス設定に用いられるFlash Memory Middle Adress Register、上位8bitのアドレス設定に用いられるFlash Memory High Adress Register)とから構成されている。データレジスタは8bit幅のデータ線を介してフラッシュメモリ30のデータ入出力端子に直接的に接続され、また3個のアドレスレジスタは24bit幅のアドレス線を介してフラッシュメモリ30のアドレス入力端子に直接的に接続されている。
【0029】
以下、図2のフローチャートを参照して、SDIOカード10のパッケージング後において、フラッシュメモリ30に何も書き込まれていない状態からファームウェアおよびカード属性情報を書き込むための基本手順について説明する。
【0030】
SDIOカード10がホスト装置1のSDカードスロット2に装着されると(ステップS11)、ホストコントローラ11によって初期電源電圧がSDIOカード10に印加され、これによりSDIOカード10は初期化動作可能となる。ファームウェア書込み/更新プログラム12は、ホストコントローラ11を介してSDIOカード10に初期化用のSDコマンドを発行することにより、SDIOカード10を初期化する(ステップS12)。このとき、LSI20内で動作しているのはSDIO制御部21のみである。
【0031】
次いで、ファームウェア書込み/更新プログラム12は、初期化が完了したかどうかをSDIO制御部21からのレスポンスで確認する(ステップS13)。初期化完了後、フラッシュROMレジスタ211(データレジスタおよびアドレスレジスタ)へのアクセスが可能となる。ファームウェア書込み/更新プログラム12はフラッシュROMレジスタ211にアクセスする(ステップS14)。このフラッシュROMレジスタ211へのアクセスもSDコマンドによって行われる。ファームウェア書込み/更新プログラム12は、フラッシュROMレジスタ211にアクセスして、フラッシュROMレジスタ211に書込みコマンド(消去コマンドおよびプログラムコマンド)およびアドレス、さらには書き込みデータをセットすることによってフラッシュメモリ30の書き込み動作を制御し、フラッシュメモリ30にファームウェアを書き込む(ステップS14,S15)。
【0032】
以上が基本手順である。SDIO制御部21は初期印加電源電圧だけで動作し、ベースバンドコア22、MPU23の動作、またはフラッシュメモリ30に存在すべきファームウェアの動作を一切必要としない。またフラッシュROMレジスタ211のデータレジスタおよびアドレスレジスタからフラッシュメモリ30へはアドレス、データが直接的に接続されているため、コマンド発行及び書き込みデータのセットというフラッシュEEPROMにデータを書き込むための通常の手順をホスト装置1がフラッシュROMレジスタ211を用いて行うだけで、フラッシュメモリ30の制御をSDIOカード10が挿入されたホスト装置1側から行うことができる。
【0033】
このように、SDIOカード10のパッケージング後に、そのSDIOカード10に搭載されたフラッシュメモリ30にファームウェアを書き込むことができるので、上述した後戻り工程の発生を防止することが可能となる。また、SDIOカード10の出荷後においても、上記と同様の基本手順でファームウェアの書き込みを行うことにより、SDIOカード10のファームウェアの更新を行うことも出来る。
【0034】
なお、上述の基本手順のみではフラッシュROMレジスタ211のアドレスがわかってしまえば容易に読み出しや書きこみが行えてしまう。したがって製品出荷後に偶然のアクセスや解析によりファームウェアやカード属性情報の破壊や、書き換えが行われてしまう可能性がある。そこで、本実施形態においては、フラッシュメモリ30へのアクセスを容易にはできないようにするための保護手段としてアクセスプロテクトレジスタ212が設けられており、このアクセスプロテクトレジスタ212に所定のコードデータがセットされない限り、フラッシュROMレジスタ211を介したフラッシュメモリ30へのアクセスを禁止している。
【0035】
アクセスプロテクトレジスタ212の構成を図4に示す。アクセスプロテクトレジスタ212は、アクセス認証用の32bitのコードデータをセットできるようにするために、それぞれ8bit幅の4個のレジスタ(Protect Register<07:00>、Protect Register<15:08>、Protect Register<23:16>、Protect Register<31:24>)から構成されている。これら4個のレジスタは互いに異なるアドレスが割り当てられており、これら4個のレジスタそれぞれにセットされるデータの組み合わせからなる合計32bitのコードデータが予め決められた正当な値であるか否かが判定される。
【0036】
正当な値のコードデータがセットされない限り、フラッシュROMレジスタ211の使用は無効化され、そのフラッシュROMレジスタ211を介したフラッシュメモリ30へのアクセスは禁止される。これは、例えば、図5に示すように、フラッシュROMレジスタ211のデータレジスタ211aおよびアドレスレジスタ211bそれぞれとフラッシュメモリ30との間に配置されたフラッシュROM制御用インタフェース300内にゲート回路301を設け、このゲート回路301によってデータレジスタ211aおよびアドレスレジスタ211bそれぞれとフラッシュメモリ30のデータ入出力端子DATAおよびアドレス入力端子ADDRとの間を接続または非接続するという構成によって実現することが出来る。フラッシュROM制御用インタフェース300は、フラッシュメモリ30の制御端子CONTにライトイネーブル信号、アウトプットイネーブル信号等の制御信号を供給するためのメモリコントローラである。
【0037】
正当な値のコードデータがアクセスプロテクトレジスタ212にセットされた場合、ゲート回路301はオンし、データレジスタ211aおよびアドレスレジスタ211bそれぞれとフラッシュメモリ30のデータ入出力端子DATAおよびアドレス入力端子ADDRとの間を接続する。これにより、データレジスタ211aおよびアドレスレジスタ211bが有効となり、これらレジスタを介したフラッシュメモリ30のアクセスが許可される。
【0038】
正当な値のコードデータがアクセスプロテクトレジスタ212にセットされない限りは、データレジスタ211aおよびアドレスレジスタ211bは有効にならず、フラッシュメモリ30のアクセスは禁止される。この場合、たとえホスト装置1が当該レジスタをリードしたとしても“0”しか読むことが出来ない。
【0039】
以下、図6のフローチャートを参照して、アクセスプロテクトレジスタ212を利用したアクセス認証を追加した場合における書き込み処理の手順を説明する。
【0040】
SDIOカード10がホスト装置1のSDカードスロット2に装着されると(ステップS21)、ホストコントローラ11によって初期電源電圧がSDIOカード10に印加され、これによりSDIOカード10は初期化動作可能となる。ファームウェア書込み/更新プログラム12は、ホストコントローラ11を介してSDIOカード10に初期化用のSDコマンドを発行することにより、SDIOカード10を初期化する(ステップS22)。このとき、LSI20内で動作しているのはSDIO制御部21のみである。
【0041】
次いで、ファームウェア書込み/更新プログラム12は、初期化が完了したかどうかをSDIO制御部21からのレスポンスで確認する(ステップS23)。
【0042】
初期化が完了するとこの時点で共通ファンクション(ファンクション番号0番)レジスタのアクセスが可能となる。ただしフラッシュROMレジスタ211はこの段階では保護状態のレジスタとなっており、当該レジスタをリードしても“0”が読めるだけである。ファームウェア書込み/更新プログラム12は、アクセスプロテクトレジスタ212を構成する4個のレジスタそれぞれを順次アクセスし、予め決められた32bitの所定のコードデータ(KEYコード)をアクセスプロテクトレジスタ212にセットする(ステップS24)。
【0043】
SDIO制御部21内では、コードデータが正しい値であるかどうかが判別される(ステップS25)。この判別処理は、例えば、正しいコードデータ値とアクセスプロテクトレジスタ212にセットされたコードデータ値とを比較する回路をSDIO制御部21内に設けること等によって実現される。
【0044】
アクセスプロテクトレジスタ212に正しいコードデータ値がセットされた場合、ゲート回路301がオンすることにより、SDIO制御部21内のフラッシュROMレジスタ211と直結のアドレス、データ線が有効になり、フラッシュメモリ30のアクセスが許可される。
【0045】
ファームウェア書込み/更新プログラム12は、フラッシュROMレジスタ211にアクセスして、フラッシュROMレジスタ211に書込みコマンド(消去コマンドおよびプログラムコマンド)およびアドレス、さらに書き込みデータをセットすることによってフラッシュメモリ30の書き込み動作を制御し、フラッシュメモリ30にファームウェアを書き込む(ステップS26,S27)。
【0046】
アクセスプロテクトレジスタ212は1つのレジスタでも実現可能である。しかし、8ビットのデータの場合にはアクセスを可能にするコードデータの値が解析される恐れもある。さらに容易に特定できないようにするためにも32ビット(複数レジスタ)にすることが好ましい。この場合、アドレスの異なる複数のレジスタにセットされるデータの組み合わせをコードデータの値とし、それが正しいがどうかを判別することにより、各レジスタとそれにセットされる値との関係をも考慮したアクセス認証が可能となる。
【0047】
また、SDIOカード10の出荷後においても、上記と同様の手順で、SDIOカード10のファームウェアの更新を行うことが出来る。さらに、フラッシュメモリ30に何も書かれていないSDIOカード10であることを確認するために、図7のフローチャートに示すように、上述のステップS23とS24との間に、当該SDIOカード10が正常動作しているかどうかを判断するステップ100を追加してもよい。
【0048】
なお、アクセスプロテクトレジスタ212に加え、さらに、フラッシュメモリ30の書き込み保護を行うためのライトプロテクトレジスタを設けることが好ましい。この場合、アクセスプロテクトレジスタ212に正しいコードデータがセットされた段階では、フラッシュメモリ30に対して許可されるアクセスはリードオンリーとなり、ライトプロテクトレジスタに特定のライトプロテクト解除データがセットされた段階でフラッシュメモリ30に対するライトアクセスが許可される。
【0049】
SDIO制御部21の共通ファンクションレジスタ内には、上述のフラッシュROMレジスタを構成するデータレジスタおよびアドレスレジスタと上述のアクセスプロテクトレジスタに加え、図8に示すように、ライトプロテクトレジスタ(Write Protect)も設けられることになる。
【0050】
図9に示すように、ホスト装置1によってライトプロテクトレジスタ401にセットされる特定のライトプロテクト解除データは、フラッシュROM制御用インタフェース300内のライトイネーブル回路(WE回路)302に対して、ライトイネーブル信号の発生を許可する信号として供給される。これにより、フラッシュメモリ30のライトプロテクトを解除することが出来る。
【0051】
以下、図10のフローチャートを参照して、アクセスプロテクトレジスタ212を利用したアクセス認証の他にライトプロテクトレジスタによる書き込み保護を利用した場合における書き込み処理の手順を説明する。
【0052】
SDIOカード10がホスト装置1のSDカードスロット2に装着されると(ステップS31)、ホストコントローラ11によって初期電源電圧がSDIOカード10に印加され、これによりSDIOカード10は初期化可能となる。ファームウェア書込み/更新プログラム12は、ホストコントローラ11を介してSDIOカード10に初期化用のSDコマンドを発行することにより、SDIOカード10を初期化する(ステップS32)。このとき、LSI20内で動作しているのはSDIO制御部21のみである。
【0053】
次いで、ファームウェア書込み/更新プログラム12は、初期化が完了したかどうかをSDIO制御部21からのレスポンスで確認する(ステップS33)。
【0054】
初期化が完了するとこの時点で共通ファンクション(ファンクション番号0番)レジスタのアクセスが可能となる。ただしフラッシュROMレジスタ211はこの段階では保護状態のレジスタとなっており、当該レジスタをリードしても“0”が読めるだけである。ファームウェア書込み/更新プログラム12は、アクセスプロテクトレジスタ212を構成する4個のレジスタそれぞれを順次アクセスし、予め決められた32bitの所定のコードデータ(KEYコード)をアクセスプロテクトレジスタ212にセットする(ステップS34)。
【0055】
SDIO制御部21内では、コードデータが正しい値であるかどうかが判別される(ステップS35)。この判別処理は、例えば、正しいコードデータ値とアクセスプロテクトレジスタ212にセットされたコードデータ値とを比較する回路をSDIO制御部21内に設けること等によって実現される。
【0056】
アクセスプロテクトレジスタ212に正しいコードデータ値がセットされた場合、ゲート回路301がオンすることにより、SDIO制御部21内のフラッシュROMレジスタ211と直結のアドレス、データ線が有効になり、フラッシュメモリ30のアクセスが許可される。ただし、フラッシュメモリ30はライトプロテクトされているので、フラッシュメモリ30はリードオンリー状態となる。
【0057】
ファームウェア書込み/更新プログラム12は、ライトプロテクトレジスタにライトプロテクト解除用のデータをセットすることにより、フラッシュメモリ30に対するライトプロテクトを解除する(ステップS36,S37)。この後、ファームウェア書込み/更新プログラム12は、フラッシュROMレジスタ211にアクセスして、フラッシュROMレジスタ211に書込みコマンド(消去コマンドおよびプログラムコマンド)およびアドレス、さらに書き込みデータをセットすることによってフラッシュメモリ30の書き込み動作を制御し、フラッシュメモリ30にファームウェアを書き込む(ステップS38,S39)。
【0058】
以上のように、本実施形態によれば、ファームウェアの制御無しでホスト装置1と通信可能なSDIO制御部21内に設けられたフラッシュROMレジスタ211を利用することにより、フラッシュメモリ30の実装後に、ホスト装置1による制御で、SDIOカード10内のフラッシュメモリ30にファームウェアを書き込むことが出来る。特に、SDIO制御部21内に設けられたアクセスプロテクトレジスタ212、さらにはライトプロテクトレジスタを併用することで、SDIOカード10のパッケージング後におけるファームウェアの書き込み/更新を許容しつつ、SDIOカード10をその不用意なアクセス等に起因するファームウェアの破壊等から保護することが出来る。
【0059】
【発明の効果】
以上詳述した如く本発明によれば、カード装置への不揮発性メモリの実装後にその不揮発性メモリに対するファームウェアの書き込みまたは書き換えを安全に実行することが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るカード装置とそれを装着して使用可能なホスト装置との関係を示すブロックブロック図。
【図2】同実施形態におけるファームウェア書き込み動作の手順を示すフローチャート。
【図3】同実施形態におけるフラッシュROMアクセスレジスタの構成を示す図。
【図4】同実施形態におけるアクセスプロテクトレジスタの構成を示す図。
【図5】同実施形態においてアクセスプロテクトレジスタを用いてフラッシュROMアクセスレジスタの使用を制限するための構成例を示すブロック図。
【図6】同実施形態におけるファームウェア書き込み動作の手順の第2の例を示すフローチャート。
【図7】同実施形態におけるファームウェア書き込み動作の手順の第3の例を示すフローチャート。
【図8】同実施形態におけるライトプロテクトレジスタの構成を示す図。
【図9】同実施形態においてライトプロテクトレジスタを用いてフラッシュメモリを書き込み保護するための構成例を示すブロック図。
【図10】同実施形態におけるファームウェア書き込み動作の手順の第4の例を示すフローチャート。
【符号の説明】
1…ホスト装置
10…SDIOカード
11…ホストコントローラ
21…SDIO制御部
22…ベースバンドコア
23…MPU
211…フラッシュROMアクセスレジスタ
212…アクセスプロテクトレジスタ
【発明の属する技術分野】
本発明はファームウェア書き込み制御方法および同書き込み制御方法が適用されるカード装置に関する。
【0002】
【従来の技術】
近年、パーソナルコンピュータ、PDA、カメラ、携帯電話等の様々な携帯型電子機器が開発されている。これら電子機器においては、リムーバブル記憶デバイスの1つであるメモリカードが多く用いられている。代表的なメモリカードとしては、例えば、PCMCIAカード(PCカード)が知られている。
【0003】
メモリカードは携帯型電子機器から自由にアクセスすることが出来る。また、ユーザデータの読み出しおよび書き込みに保護機能を設けたメモリカードも知られている(特開平7−200767号公報)。
【0004】
メモリカードとしては、上述のPCMCIAカード(PCカード)の他に、それよりも更に小型のSD(Secure Digital)メモリカードも知られている。SDメモリカードは不揮発性メモリを内蔵する切手サイズのメモリカードであり、小型化、容量、および高速化の要求に見合うように特に設計されている。
【0005】
また、最近では、SDメモリカードの応用製品として、例えば無線通信カードなどのSDIOカードが規格化され、各社から新規カードデバイスとして設計、開発、販売が開始されようとしている。SDIOカードは、そのカード内に内蔵された不揮発性メモリに格納されているファームウェアに従って、例えば無線通信等の所定の周辺デバイスとしての機能を実行する。
【0006】
【発明が解決しようとする課題】
しかし、SDIOカードの製造に際しては、次のような問題がある。
【0007】
すなわち、通常は、カードデバイスの製造に際しては、そのカードデバイスに搭載する部品についてはその実装前に部品単体で必要なデータの書き込みが行われた後にカードに実装される。
【0008】
しかし、もしそのカードデバイスのパッケージング後の検査において書き込みデータにエラーが検出された場合には、その部品の取り外しおよびデータの書き直しといったいわゆる後戻り工程が必要となる。SDIOカードは非常に小型のカードであるので、パッケージング後の部品の取り外し等の作業には多くの時間を要することとなる。
【0009】
特に、SDIOカードにおいてはファームウェアを格納した不揮発性メモリを搭載することが必要であるので、パッケージング後の検査においてファームウェアの一部にでもエラーが検出されると、その不揮発性メモリ自体を取り外してファームウェアを書き直すといった作業が必要となり、結果的に製造コストの増大を招くことになる。
【0010】
本発明は上述の事情を考慮してなされたもので、カード装置への不揮発性メモリの実装後にその不揮発性メモリに対するファームウェアの書き込みまたは書き換えを安全に実行することが可能なファームウェア書き込み制御方法およびカード装置を提供することを目的とする。
【0011】
【課題を解決するための手段】
上述の課題を解決するため、本発明は、ホスト装置に取り外し自在に装着されるカード装置内に設けられた不揮発性メモリに、前記カード装置に所定の機能を実行させるためのファームウェアを書き込むためのファームウェア書き込み制御方法であって、前記カード装置内には、前記ファームウェアの制御無しで前記ホスト装置と通信可能なカードインタフェース部が設けられており、前記カード装置の前記カードインタフェース部内に設けられた第1のレジスタに前記ホスト装置によってセットされたコードデータが予め決められた正当な値であるか否かを判定するステップと、前記判定結果に応じて、前記不揮発性メモリを前記ホスト装置からアクセスするために前記カードインタフェース部内に設けられた第2のレジスタを介して実行される前記ホスト装置による前記不揮発性メモリへのファームウェアの書き込み動作を、許可又は禁止するステップとを具備することを特徴とする。
【0012】
このファームウェア書き込み制御方法においては、カード装置への不揮発性メモリの実装後にその不揮発性メモリに対するファームウェアの書き込みまたは書き換えを安全に実行することが可能となる。
【0013】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
図1には、本発明の一実施形態に係るカード装置10とそれを装着して使用可能なホスト装置1との関係が示されている。以下では、カード装置10としてSDIOカードを使用する場合を例示して説明する。
【0014】
SDIOカード10は、例えばパーソナルコンピュータ、PDA、カメラ、携帯電話等の各種ホスト装置1に設けられたSDカードスロット2に着脱自在に装着して使用されるカードデバイスである。ホスト装置1には、SDIOカード10を制御するホストコントローラ11が設けられている。SDIOカード10とホストコントローラ11との通信は、全てホストコントローラ11からのコマンドによって制御される。
【0015】
ホストコントローラ11とSDIOカード10との間を接続するSDバス50は、6本の通信線(データDAT0−3,コマンドCMD,クロックCLK)と3本の電源供給線(VDD,VSS,VSS)を含む。これに対応して、SDメモリカード10には、4本のデータピン[DAT0−3]、コマンドピン[CMD]、クロック信号ピン[CLK]、電源ピン[VDD]、2つのグランドピン[VSS]が設けられている。
【0016】
SDIOカード10は、例えば、無線通信カード、LANカード、またはGPSカード等として機能する。以下では、Bluetooth(R)規格の近距離無線通信カード(Bluetoothカード)として実現した場合を想定することとする。
【0017】
SDIOカード10には、図示のように、LSI20、フラッシュメモリ30、およびRF・アンテナ部40が実装されている。
【0018】
LSI20は、SDIO制御部21とベースバンドコア22とMPU23とを1チップ化したLSIである。フラッシュメモリ30は、SDIOカード10の動作を規定するファームウェアおよびホスト装置1にカードを認識させるためのカード属性情報等の記憶のために用いられる不揮発性メモリである。フラッシュメモリ30のデータ入出力端子およびアドレス入力端子はそれぞれLSI20に直接接続されている。
【0019】
フラッシュメモリ30に格納されたファームウェアは、MPU23によって実行される。MPU23がファームウェアを実行することにより、SDIOカード10はBluetoothカードとして機能することが出来る。
【0020】
SDIO制御部21はホストコントローラ11と通信するためのカードインタフェースである。このSDIO制御部21はファームウェアの制御無しで、すなわちMPU23の制御無しで、ホストコントローラ11と通信できるように構成されている。すなわち、SDIO制御部21にはカード識別動作等のために使用される共通ファンクションレジスタとして幾つかのレジスタが内蔵されており、ホスト装置1は、ホストコントローラ11およびSDバス50を介してSDIOカード10に動作コマンド(SDコマンド)を送信するだけで、SDIO制御部21内の所望の共通ファンクションレジスタにアクセスすることが出来る。
【0021】
本実施形態においては、フラッシュメモリ30へのファームウェアおよびカード属性情報の書き込みは、フラッシュメモリ30をSDIOカード10に実装した後に行われる。すなわち、ラッシュメモリ30へのファームウェアおよびカード属性情報の書き込みは、SDIOカード10の全ての部品実装およびパッケージングが完了した後に、ホスト装置1による制御によって実行される。この書き込み動作はSDIOカード10の工場出荷前に実行されるものである。もちろんSDIOカード10の出荷後においても、ユーザは、ホスト装置1によって実行される専用のプログラムを用いて、SDIOカード10のフラッシュメモリ30に格納されているファームウェアを書き換えることが出来る。
【0022】
このようなフラッシュメモリ30の実装後におけるファームウェアの書き込み/更新を実現するため、SDIO制御部21の共通ファンクションレジスタ内には、フラッシュROMアクセスレジスタ211およびアクセスプロテクトレジスタ212が設けられている。
【0023】
フラッシュROMアクセスレジスタ211は、ホスト装置1からフラッシュメモリ30をアクセスするために設けられたフラッシュROM制御用レジスタである。ホスト装置1は、フラッシュROMアクセスレジスタ211をアクセスするためのSDコマンドをSDバス50を介してSDIOカード10に発行することにより、フラッシュROMアクセスレジスタ211にコマンドや書き込みデータをセットする。これにより、ホスト装置1による制御で、フラッシュメモリ30へのファームウェアおよびカード属性情報の書き込み動作を実行する事が出来る。
【0024】
アクセスプロテクトレジスタ212は、フラッシュメモリ30をそれに対するアクセスから保護するために設けられたレジスタである。フラッシュROMアクセスレジスタ211を介したフラッシュメモリ30に対するアクセスは、予め決められたコードデータがホスト装置1によってアクセスプロテクトレジスタ212にセットされた場合にのみ許可される。
【0025】
MPU23はフラッシュメモリ30に格納されたファームウェアを実行することにより、ベースバンドコア22と共同して、近距離無線通信に必要な動作を実行する。
【0026】
次に、図2および図3を参照して、フラッシュメモリ30にファームウェアを書き込む動作について説明する。
【0027】
図2はフラッシュメモリ30にファームウェアを書き込むための基本手順を示しており、また図3はフラッシュROMアクセスレジスタ211の構成を示している。
【0028】
図3に示されているように、フラッシュROMアクセスレジスタ211は、ホスト装置1からリード・ライト可能な8bit幅の1個のデータレジスタ(リード動作時はFlash Memory Data Read Register、ライト動作時はFlash Memory Data Write Registerとして機能する)と、ホスト装置1からそれぞれリード・ライト可能な8bit幅の3個のアドレスレジスタ(下位8bitのアドレス設定に用いられるFlash Memory Lower Adress Register、中位8bitのアドレス設定に用いられるFlash Memory Middle Adress Register、上位8bitのアドレス設定に用いられるFlash Memory High Adress Register)とから構成されている。データレジスタは8bit幅のデータ線を介してフラッシュメモリ30のデータ入出力端子に直接的に接続され、また3個のアドレスレジスタは24bit幅のアドレス線を介してフラッシュメモリ30のアドレス入力端子に直接的に接続されている。
【0029】
以下、図2のフローチャートを参照して、SDIOカード10のパッケージング後において、フラッシュメモリ30に何も書き込まれていない状態からファームウェアおよびカード属性情報を書き込むための基本手順について説明する。
【0030】
SDIOカード10がホスト装置1のSDカードスロット2に装着されると(ステップS11)、ホストコントローラ11によって初期電源電圧がSDIOカード10に印加され、これによりSDIOカード10は初期化動作可能となる。ファームウェア書込み/更新プログラム12は、ホストコントローラ11を介してSDIOカード10に初期化用のSDコマンドを発行することにより、SDIOカード10を初期化する(ステップS12)。このとき、LSI20内で動作しているのはSDIO制御部21のみである。
【0031】
次いで、ファームウェア書込み/更新プログラム12は、初期化が完了したかどうかをSDIO制御部21からのレスポンスで確認する(ステップS13)。初期化完了後、フラッシュROMレジスタ211(データレジスタおよびアドレスレジスタ)へのアクセスが可能となる。ファームウェア書込み/更新プログラム12はフラッシュROMレジスタ211にアクセスする(ステップS14)。このフラッシュROMレジスタ211へのアクセスもSDコマンドによって行われる。ファームウェア書込み/更新プログラム12は、フラッシュROMレジスタ211にアクセスして、フラッシュROMレジスタ211に書込みコマンド(消去コマンドおよびプログラムコマンド)およびアドレス、さらには書き込みデータをセットすることによってフラッシュメモリ30の書き込み動作を制御し、フラッシュメモリ30にファームウェアを書き込む(ステップS14,S15)。
【0032】
以上が基本手順である。SDIO制御部21は初期印加電源電圧だけで動作し、ベースバンドコア22、MPU23の動作、またはフラッシュメモリ30に存在すべきファームウェアの動作を一切必要としない。またフラッシュROMレジスタ211のデータレジスタおよびアドレスレジスタからフラッシュメモリ30へはアドレス、データが直接的に接続されているため、コマンド発行及び書き込みデータのセットというフラッシュEEPROMにデータを書き込むための通常の手順をホスト装置1がフラッシュROMレジスタ211を用いて行うだけで、フラッシュメモリ30の制御をSDIOカード10が挿入されたホスト装置1側から行うことができる。
【0033】
このように、SDIOカード10のパッケージング後に、そのSDIOカード10に搭載されたフラッシュメモリ30にファームウェアを書き込むことができるので、上述した後戻り工程の発生を防止することが可能となる。また、SDIOカード10の出荷後においても、上記と同様の基本手順でファームウェアの書き込みを行うことにより、SDIOカード10のファームウェアの更新を行うことも出来る。
【0034】
なお、上述の基本手順のみではフラッシュROMレジスタ211のアドレスがわかってしまえば容易に読み出しや書きこみが行えてしまう。したがって製品出荷後に偶然のアクセスや解析によりファームウェアやカード属性情報の破壊や、書き換えが行われてしまう可能性がある。そこで、本実施形態においては、フラッシュメモリ30へのアクセスを容易にはできないようにするための保護手段としてアクセスプロテクトレジスタ212が設けられており、このアクセスプロテクトレジスタ212に所定のコードデータがセットされない限り、フラッシュROMレジスタ211を介したフラッシュメモリ30へのアクセスを禁止している。
【0035】
アクセスプロテクトレジスタ212の構成を図4に示す。アクセスプロテクトレジスタ212は、アクセス認証用の32bitのコードデータをセットできるようにするために、それぞれ8bit幅の4個のレジスタ(Protect Register<07:00>、Protect Register<15:08>、Protect Register<23:16>、Protect Register<31:24>)から構成されている。これら4個のレジスタは互いに異なるアドレスが割り当てられており、これら4個のレジスタそれぞれにセットされるデータの組み合わせからなる合計32bitのコードデータが予め決められた正当な値であるか否かが判定される。
【0036】
正当な値のコードデータがセットされない限り、フラッシュROMレジスタ211の使用は無効化され、そのフラッシュROMレジスタ211を介したフラッシュメモリ30へのアクセスは禁止される。これは、例えば、図5に示すように、フラッシュROMレジスタ211のデータレジスタ211aおよびアドレスレジスタ211bそれぞれとフラッシュメモリ30との間に配置されたフラッシュROM制御用インタフェース300内にゲート回路301を設け、このゲート回路301によってデータレジスタ211aおよびアドレスレジスタ211bそれぞれとフラッシュメモリ30のデータ入出力端子DATAおよびアドレス入力端子ADDRとの間を接続または非接続するという構成によって実現することが出来る。フラッシュROM制御用インタフェース300は、フラッシュメモリ30の制御端子CONTにライトイネーブル信号、アウトプットイネーブル信号等の制御信号を供給するためのメモリコントローラである。
【0037】
正当な値のコードデータがアクセスプロテクトレジスタ212にセットされた場合、ゲート回路301はオンし、データレジスタ211aおよびアドレスレジスタ211bそれぞれとフラッシュメモリ30のデータ入出力端子DATAおよびアドレス入力端子ADDRとの間を接続する。これにより、データレジスタ211aおよびアドレスレジスタ211bが有効となり、これらレジスタを介したフラッシュメモリ30のアクセスが許可される。
【0038】
正当な値のコードデータがアクセスプロテクトレジスタ212にセットされない限りは、データレジスタ211aおよびアドレスレジスタ211bは有効にならず、フラッシュメモリ30のアクセスは禁止される。この場合、たとえホスト装置1が当該レジスタをリードしたとしても“0”しか読むことが出来ない。
【0039】
以下、図6のフローチャートを参照して、アクセスプロテクトレジスタ212を利用したアクセス認証を追加した場合における書き込み処理の手順を説明する。
【0040】
SDIOカード10がホスト装置1のSDカードスロット2に装着されると(ステップS21)、ホストコントローラ11によって初期電源電圧がSDIOカード10に印加され、これによりSDIOカード10は初期化動作可能となる。ファームウェア書込み/更新プログラム12は、ホストコントローラ11を介してSDIOカード10に初期化用のSDコマンドを発行することにより、SDIOカード10を初期化する(ステップS22)。このとき、LSI20内で動作しているのはSDIO制御部21のみである。
【0041】
次いで、ファームウェア書込み/更新プログラム12は、初期化が完了したかどうかをSDIO制御部21からのレスポンスで確認する(ステップS23)。
【0042】
初期化が完了するとこの時点で共通ファンクション(ファンクション番号0番)レジスタのアクセスが可能となる。ただしフラッシュROMレジスタ211はこの段階では保護状態のレジスタとなっており、当該レジスタをリードしても“0”が読めるだけである。ファームウェア書込み/更新プログラム12は、アクセスプロテクトレジスタ212を構成する4個のレジスタそれぞれを順次アクセスし、予め決められた32bitの所定のコードデータ(KEYコード)をアクセスプロテクトレジスタ212にセットする(ステップS24)。
【0043】
SDIO制御部21内では、コードデータが正しい値であるかどうかが判別される(ステップS25)。この判別処理は、例えば、正しいコードデータ値とアクセスプロテクトレジスタ212にセットされたコードデータ値とを比較する回路をSDIO制御部21内に設けること等によって実現される。
【0044】
アクセスプロテクトレジスタ212に正しいコードデータ値がセットされた場合、ゲート回路301がオンすることにより、SDIO制御部21内のフラッシュROMレジスタ211と直結のアドレス、データ線が有効になり、フラッシュメモリ30のアクセスが許可される。
【0045】
ファームウェア書込み/更新プログラム12は、フラッシュROMレジスタ211にアクセスして、フラッシュROMレジスタ211に書込みコマンド(消去コマンドおよびプログラムコマンド)およびアドレス、さらに書き込みデータをセットすることによってフラッシュメモリ30の書き込み動作を制御し、フラッシュメモリ30にファームウェアを書き込む(ステップS26,S27)。
【0046】
アクセスプロテクトレジスタ212は1つのレジスタでも実現可能である。しかし、8ビットのデータの場合にはアクセスを可能にするコードデータの値が解析される恐れもある。さらに容易に特定できないようにするためにも32ビット(複数レジスタ)にすることが好ましい。この場合、アドレスの異なる複数のレジスタにセットされるデータの組み合わせをコードデータの値とし、それが正しいがどうかを判別することにより、各レジスタとそれにセットされる値との関係をも考慮したアクセス認証が可能となる。
【0047】
また、SDIOカード10の出荷後においても、上記と同様の手順で、SDIOカード10のファームウェアの更新を行うことが出来る。さらに、フラッシュメモリ30に何も書かれていないSDIOカード10であることを確認するために、図7のフローチャートに示すように、上述のステップS23とS24との間に、当該SDIOカード10が正常動作しているかどうかを判断するステップ100を追加してもよい。
【0048】
なお、アクセスプロテクトレジスタ212に加え、さらに、フラッシュメモリ30の書き込み保護を行うためのライトプロテクトレジスタを設けることが好ましい。この場合、アクセスプロテクトレジスタ212に正しいコードデータがセットされた段階では、フラッシュメモリ30に対して許可されるアクセスはリードオンリーとなり、ライトプロテクトレジスタに特定のライトプロテクト解除データがセットされた段階でフラッシュメモリ30に対するライトアクセスが許可される。
【0049】
SDIO制御部21の共通ファンクションレジスタ内には、上述のフラッシュROMレジスタを構成するデータレジスタおよびアドレスレジスタと上述のアクセスプロテクトレジスタに加え、図8に示すように、ライトプロテクトレジスタ(Write Protect)も設けられることになる。
【0050】
図9に示すように、ホスト装置1によってライトプロテクトレジスタ401にセットされる特定のライトプロテクト解除データは、フラッシュROM制御用インタフェース300内のライトイネーブル回路(WE回路)302に対して、ライトイネーブル信号の発生を許可する信号として供給される。これにより、フラッシュメモリ30のライトプロテクトを解除することが出来る。
【0051】
以下、図10のフローチャートを参照して、アクセスプロテクトレジスタ212を利用したアクセス認証の他にライトプロテクトレジスタによる書き込み保護を利用した場合における書き込み処理の手順を説明する。
【0052】
SDIOカード10がホスト装置1のSDカードスロット2に装着されると(ステップS31)、ホストコントローラ11によって初期電源電圧がSDIOカード10に印加され、これによりSDIOカード10は初期化可能となる。ファームウェア書込み/更新プログラム12は、ホストコントローラ11を介してSDIOカード10に初期化用のSDコマンドを発行することにより、SDIOカード10を初期化する(ステップS32)。このとき、LSI20内で動作しているのはSDIO制御部21のみである。
【0053】
次いで、ファームウェア書込み/更新プログラム12は、初期化が完了したかどうかをSDIO制御部21からのレスポンスで確認する(ステップS33)。
【0054】
初期化が完了するとこの時点で共通ファンクション(ファンクション番号0番)レジスタのアクセスが可能となる。ただしフラッシュROMレジスタ211はこの段階では保護状態のレジスタとなっており、当該レジスタをリードしても“0”が読めるだけである。ファームウェア書込み/更新プログラム12は、アクセスプロテクトレジスタ212を構成する4個のレジスタそれぞれを順次アクセスし、予め決められた32bitの所定のコードデータ(KEYコード)をアクセスプロテクトレジスタ212にセットする(ステップS34)。
【0055】
SDIO制御部21内では、コードデータが正しい値であるかどうかが判別される(ステップS35)。この判別処理は、例えば、正しいコードデータ値とアクセスプロテクトレジスタ212にセットされたコードデータ値とを比較する回路をSDIO制御部21内に設けること等によって実現される。
【0056】
アクセスプロテクトレジスタ212に正しいコードデータ値がセットされた場合、ゲート回路301がオンすることにより、SDIO制御部21内のフラッシュROMレジスタ211と直結のアドレス、データ線が有効になり、フラッシュメモリ30のアクセスが許可される。ただし、フラッシュメモリ30はライトプロテクトされているので、フラッシュメモリ30はリードオンリー状態となる。
【0057】
ファームウェア書込み/更新プログラム12は、ライトプロテクトレジスタにライトプロテクト解除用のデータをセットすることにより、フラッシュメモリ30に対するライトプロテクトを解除する(ステップS36,S37)。この後、ファームウェア書込み/更新プログラム12は、フラッシュROMレジスタ211にアクセスして、フラッシュROMレジスタ211に書込みコマンド(消去コマンドおよびプログラムコマンド)およびアドレス、さらに書き込みデータをセットすることによってフラッシュメモリ30の書き込み動作を制御し、フラッシュメモリ30にファームウェアを書き込む(ステップS38,S39)。
【0058】
以上のように、本実施形態によれば、ファームウェアの制御無しでホスト装置1と通信可能なSDIO制御部21内に設けられたフラッシュROMレジスタ211を利用することにより、フラッシュメモリ30の実装後に、ホスト装置1による制御で、SDIOカード10内のフラッシュメモリ30にファームウェアを書き込むことが出来る。特に、SDIO制御部21内に設けられたアクセスプロテクトレジスタ212、さらにはライトプロテクトレジスタを併用することで、SDIOカード10のパッケージング後におけるファームウェアの書き込み/更新を許容しつつ、SDIOカード10をその不用意なアクセス等に起因するファームウェアの破壊等から保護することが出来る。
【0059】
【発明の効果】
以上詳述した如く本発明によれば、カード装置への不揮発性メモリの実装後にその不揮発性メモリに対するファームウェアの書き込みまたは書き換えを安全に実行することが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るカード装置とそれを装着して使用可能なホスト装置との関係を示すブロックブロック図。
【図2】同実施形態におけるファームウェア書き込み動作の手順を示すフローチャート。
【図3】同実施形態におけるフラッシュROMアクセスレジスタの構成を示す図。
【図4】同実施形態におけるアクセスプロテクトレジスタの構成を示す図。
【図5】同実施形態においてアクセスプロテクトレジスタを用いてフラッシュROMアクセスレジスタの使用を制限するための構成例を示すブロック図。
【図6】同実施形態におけるファームウェア書き込み動作の手順の第2の例を示すフローチャート。
【図7】同実施形態におけるファームウェア書き込み動作の手順の第3の例を示すフローチャート。
【図8】同実施形態におけるライトプロテクトレジスタの構成を示す図。
【図9】同実施形態においてライトプロテクトレジスタを用いてフラッシュメモリを書き込み保護するための構成例を示すブロック図。
【図10】同実施形態におけるファームウェア書き込み動作の手順の第4の例を示すフローチャート。
【符号の説明】
1…ホスト装置
10…SDIOカード
11…ホストコントローラ
21…SDIO制御部
22…ベースバンドコア
23…MPU
211…フラッシュROMアクセスレジスタ
212…アクセスプロテクトレジスタ
Claims (12)
- ホスト装置に取り外し自在に装着されるカード装置内に設けられた不揮発性メモリに、前記カード装置に所定の機能を実行させるためのファームウェアを書き込むためのファームウェア書き込み制御方法であって、
前記カード装置内には、前記ファームウェアの制御無しで前記ホスト装置と通信可能なカードインタフェース部が設けられており、
前記カード装置の前記カードインタフェース部内に設けられた第1のレジスタに前記ホスト装置によってセットされたコードデータが予め決められた正当な値であるか否かを判定するステップと、
前記判定結果に応じて、前記不揮発性メモリを前記ホスト装置からアクセスするために前記カードインタフェース部内に設けられた第2のレジスタを介して実行される前記ホスト装置による前記不揮発性メモリへのファームウェアの書き込み動作を、許可又は禁止するステップとを具備することを特徴とするファームウェア書き込み制御方法。 - 前記第1のレジスタは互いにアドレスが異なる複数のレジスタから構成されており、
前記判定ステップは、
前記ホスト装置によって前記複数のレジスタにそれぞれセットされる複数のデータの組み合わせから構成されるコードデータの値が予め決められた正当な値であるか否かを判定するステップを含むことを特徴とする請求項1記載のファームウェア書き込み制御方法。 - 前記カード装置には、前記不揮発性メモリへの書き込みを禁止するライトプロテクト機能が設けられており、
前記カード装置の前記カードインタフェース部内に設けられた第3のレジスタに前記ホスト装置によって所定のデータがセットされた場合、前記ライトプロテクト機能を解除するステップをさらに具備することを特徴とする請求項1記載のファームウェア書き込み制御方法。 - 前記第2のレジスタは、前記不揮発性メモリのデータ入出力端子およびアドレス入力端子にそれぞれ結合されたデータレジスタおよびアドレスレジスタを含むことを特徴とする請求項1記載のファームウェア書き込み制御方法。
- ホスト装置に取り外し自在に装着可能に構成され、不揮発性メモリに格納されたファームウェアに従って動作するカード装置において、
前記ファームウェアの制御無しで前記ホスト装置と通信可能なカードインタフェース部と、
前記カード装置の前記カードインタフェース部内に設けられた第1のレジスタに前記ホスト装置によってセットされたコードデータが予め決められた正当な値であるか否かを判定する手段と、
前記判定結果に応じて、前記不揮発性メモリを前記ホスト装置からアクセスするために前記カードインタフェース部内に設けられた第2のレジスタを介して実行される前記ホスト装置による前記不揮発性メモリへのファームウェアの書き込み動作を、許可又は禁止する手段とを具備することを特徴とするカード装置。 - 前記第1のレジスタは互いにアドレスが異なる複数のレジスタから構成されており、
前記判定手段は、
前記ホスト装置によって前記複数のレジスタにそれぞれセットされる複数のデータの組み合わせから構成されるコードデータの値が予め決められた正当な値であるか否かを判定する手段を含むことを特徴とする請求項5記載のカード装置。 - 前記不揮発性メモリへの書き込みを禁止するために前記不揮発性メモリをライトプロテクトするライトプロテクト手段と、
前記カードインタフェース部内に設けられた第3のレジスタに前記ホスト装置によって所定のデータがセットされた場合、前記ライトプロテクト手段によるライトプロテクトを解除する手段とをさらに具備することを特徴とする請求項5記載のカード装置。 - 前記第2のレジスタは、前記不揮発性メモリのデータ入出力端子およびアドレス入力端子にそれぞれ結合されたデータレジスタおよびアドレスレジスタを含むことを特徴とする請求項5記載のカード装置。
- ホスト装置に装着可能なカード装置内に設けられた不揮発性メモリに、前記カード装置に所定の機能を実行させるためのファームウェアを書き込むためのファームウェア書き込み制御方法であって、
前記カード装置内には、前記ファームウェアの制御無しで前記ホスト装置と通信可能なカードインタフェース部が設けられており、
前記ホスト装置に、前記不揮発性メモリへのアクセスを可能にするためのコードデータを、前記カード装置の前記カードインタフェース部内に設けられた第1のレジスタにセットさせるコードデータ設定ステップと、
前記ホスト装置に、前記不揮発性メモリを前記ホスト装置からアクセスするために前記カードインタフェース部内に設けられた第2のレジスタに前記不揮発性メモリをアクセスするためのコマンドおよび書き込みデータをセットさせることにより、前記第2のレジスタを介した前記不揮発性メモリへのファームウェアの書き込み動作を前記ホスト装置に実行させるステップとを具備することを特徴とするファームウェア書き込み制御方法。 - 前記第1のレジスタは互いにアドレスが異なる複数のレジスタから構成されており、
前記コードデータ設定ステップは、
前記ホスト装置に、前記コードデータを構成する複数のデータを前記複数のレジスタにそれぞれセットさせるステップを含むことを特徴とする請求項9記載のファームウェア書き込み制御方法。 - 前記カード装置には、前記不揮発性メモリへの書き込みを禁止するライトプロテクト機能が設けられており、
前記ホスト装置に、前記ライトプロテクト機能を解除するためのデータを前記カード装置の前記カードインタフェース部内に設けられた第3のレジスタにセットさせるステップをさらに具備することを特徴とする請求項9記載のファームウェア書き込み制御方法。 - 前記第2のレジスタは、前記不揮発性メモリのデータ入出力端子およびアドレス入力端子にそれぞれ結合されたデータレジスタおよびアドレスレジスタを含むことを特徴とする請求項9記載のファームウェア書き込み制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002243976A JP2004086353A (ja) | 2002-08-23 | 2002-08-23 | ファームウェア書き込み制御方法および同書き込み制御方法が適用されるカード装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002243976A JP2004086353A (ja) | 2002-08-23 | 2002-08-23 | ファームウェア書き込み制御方法および同書き込み制御方法が適用されるカード装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004086353A true JP2004086353A (ja) | 2004-03-18 |
Family
ID=32052601
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002243976A Pending JP2004086353A (ja) | 2002-08-23 | 2002-08-23 | ファームウェア書き込み制御方法および同書き込み制御方法が適用されるカード装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2004086353A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7490193B2 (en) | 2005-06-13 | 2009-02-10 | Samsung Electronics Co., Ltd | Flash memory devices with MMC interfaces and methods of operating the same |
| JP2013229920A (ja) * | 2010-06-28 | 2013-11-07 | Huawei Device Co Ltd | 無線インターネットアクセス装置、sd制御チップ、及びデータ通信の方法 |
| JP2017518558A (ja) * | 2014-04-08 | 2017-07-06 | マイクロン テクノロジー, インク. | アクセス保護スキームを確保するための装置及び方法 |
| JP2020149615A (ja) * | 2019-03-15 | 2020-09-17 | 株式会社バッファロー | 機器管理システム、ネットワーク機器、管理装置、及びプログラム |
-
2002
- 2002-08-23 JP JP2002243976A patent/JP2004086353A/ja active Pending
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7490193B2 (en) | 2005-06-13 | 2009-02-10 | Samsung Electronics Co., Ltd | Flash memory devices with MMC interfaces and methods of operating the same |
| JP2013229920A (ja) * | 2010-06-28 | 2013-11-07 | Huawei Device Co Ltd | 無線インターネットアクセス装置、sd制御チップ、及びデータ通信の方法 |
| JP2017518558A (ja) * | 2014-04-08 | 2017-07-06 | マイクロン テクノロジー, インク. | アクセス保護スキームを確保するための装置及び方法 |
| US11030122B2 (en) | 2014-04-08 | 2021-06-08 | Micron Technology, Inc. | Apparatuses and methods for securing an access protection scheme |
| US11809335B2 (en) | 2014-04-08 | 2023-11-07 | Lodestar Licensing Group, Llc | Apparatuses and methods for securing an access protection scheme |
| JP2020149615A (ja) * | 2019-03-15 | 2020-09-17 | 株式会社バッファロー | 機器管理システム、ネットワーク機器、管理装置、及びプログラム |
| JP7280483B2 (ja) | 2019-03-15 | 2023-05-24 | 株式会社バッファロー | 機器管理システム、ネットワーク機器、管理装置、及びプログラム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10747299B2 (en) | Card and host apparatus | |
| US7558110B2 (en) | IC module and cellular phone | |
| US5687346A (en) | PC card and PC card system with dual port ram and switchable rewritable ROM | |
| US6188602B1 (en) | Mechanism to commit data to a memory device with read-only access | |
| US8190840B2 (en) | Memory devices with data protection | |
| US9245634B2 (en) | Initialization of flash storage via an embedded controller | |
| US6587916B2 (en) | Microcomputer with built-in programmable nonvolatile memory | |
| US5928336A (en) | PC card and peripheral device | |
| US6453397B1 (en) | Single chip microcomputer internally including a flash memory | |
| US8316200B2 (en) | Microcomputer, electronic instrument, and flash memory protection method | |
| US20050182858A1 (en) | Portable memory device with multiple I/O interfaces | |
| JP5041980B2 (ja) | データ処理回路及び通信携帯端末装置 | |
| JP2003132305A (ja) | メモリカードを制御するための装置および方法 | |
| JP4678083B2 (ja) | メモリ装置およびメモリアクセス制限方法 | |
| JP2004086353A (ja) | ファームウェア書き込み制御方法および同書き込み制御方法が適用されるカード装置 | |
| US20040186947A1 (en) | Access control system for nonvolatile memory | |
| CN100555317C (zh) | 数据存储装置、ic卡和数据存储方法 | |
| JPH07175725A (ja) | 半導体記憶装置 | |
| JP4053245B2 (ja) | 不正利用を防止できる半導体記憶装置 | |
| JP2006236200A (ja) | カード状記憶装置とそのホスト装置 | |
| US6889299B1 (en) | Semiconductor integrated circuit | |
| JP7589584B2 (ja) | 回路装置及び電子機器 | |
| JP2005316734A (ja) | 集積回路のモード設定方法及び装置 | |
| JP2007115187A (ja) | 携帯可能電子装置およびicカード | |
| JP2007122241A (ja) | メモリカードコントローラ及びメモリカード |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050816 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051014 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051206 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060418 |