JP2004086353A - Firmware write control method and card device to which the write control method is applied - Google Patents
Firmware write control method and card device to which the write control method is applied 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によってセットされたコードデータが予め決められた正当な値である場合にのみ許可される。
【選択図】 図1A mechanism for safely executing writing or rewriting of firmware in a nonvolatile memory after mounting the nonvolatile memory in a card device is realized.
A flash memory device includes a flash ROM register provided in a card interface unit of a card device capable of communicating with a host device without controlling a firmware. Firmware can be written to the flash memory 30 in the memory 10. Furthermore, an access protect register 212 is provided in the card interface unit 21 as a mechanism for preventing the contents of the flash memory 30 from being erroneously or intentionally rewritten. Is permitted only when the code data set by the host device 1 in the access protection register 212 is a predetermined valid value.
[Selection diagram] Fig. 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…アクセスプロテクトレジスタ[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a firmware write control method and a card device to which the write control method is applied.
[0002]
[Prior art]
In recent years, various portable electronic devices such as personal computers, PDAs, cameras, and mobile phones have been developed. In these electronic devices, a memory card, which is one of the removable storage devices, is often used. For example, a PCMCIA card (PC card) is known as a typical memory card.
[0003]
The memory card can be freely accessed from a portable electronic device. A memory card provided with a protection function for reading and writing user data is also known (Japanese Patent Laid-Open No. 7-200767).
[0004]
As the memory card, in addition to the above-described PCMCIA card (PC card), an even smaller SD (Secure Digital) memory card is known. The SD memory card is a stamp-size memory card having a built-in nonvolatile memory, and is specially designed to meet demands for miniaturization, capacity, and high speed.
[0005]
Recently, SDIO cards such as wireless communication cards have been standardized as application products of SD memory cards, and designs, developments, and sales of new card devices are starting to be started by various companies. The SDIO card performs a function as a predetermined peripheral device such as wireless communication, for example, according to firmware stored in a nonvolatile memory built in the card.
[0006]
[Problems to be solved by the invention]
However, there are the following problems when manufacturing an SDIO card.
[0007]
That is, when manufacturing a card device, usually, necessary data is written by itself for the components mounted on the card device before mounting, and then mounted on the card.
[0008]
However, if an error is detected in the write data in the inspection after packaging of the card device, a so-called retrace process such as removal of the component and rewriting of data is required. Since the SDIO card is a very small card, it takes a lot of time to remove components after packaging.
[0009]
In particular, since an SDIO card needs to be equipped with a non-volatile memory storing firmware, if an error is detected even in a part of the firmware in the inspection after packaging, the non-volatile memory itself is removed. Work such as rewriting the firmware is required, resulting in an increase in manufacturing cost.
[0010]
The present invention has been made in view of the above circumstances, and has a firmware write control method and a card capable of safely executing writing or rewriting of firmware in a nonvolatile memory after mounting the nonvolatile memory in a card device. It is intended to provide a device.
[0011]
[Means for Solving the Problems]
In order to solve the above-mentioned problems, the present invention provides a nonvolatile memory provided in a card device detachably mounted on a host device, for writing firmware for causing the card device to execute a predetermined function. A firmware writing control method, wherein a card interface unit capable of communicating with the host device without control of the firmware is provided in the card device, and a card interface unit provided in the card interface unit of the card device is provided. Determining whether the code data set by the host device in one register is a predetermined valid value; and accessing the non-volatile memory from the host device according to the determination result Via a second register provided in the card interface unit The firmware of the write operation to the nonvolatile memory by the host apparatus, characterized by comprising a step of enabling or disabling.
[0012]
According to this firmware write control method, it is possible to safely execute the writing or rewriting of the firmware in the nonvolatile memory after the nonvolatile memory is mounted on the card device.
[0013]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
FIG. 1 shows a relationship between a
[0014]
The
[0015]
The
[0016]
The
[0017]
As shown, the
[0018]
The
[0019]
The firmware stored in the
[0020]
The
[0021]
In the present embodiment, writing of firmware and card attribute information to the
[0022]
A flash
[0023]
The flash
[0024]
The access protect
[0025]
The
[0026]
Next, an operation of writing firmware in the
[0027]
FIG. 2 shows a basic procedure for writing firmware in the
[0028]
As shown in FIG. 3, the flash
[0029]
Hereinafter, a basic procedure for writing firmware and card attribute information from a state where nothing has been written to the
[0030]
When the
[0031]
Next, the firmware writing / updating
[0032]
The above is the basic procedure. The
[0033]
As described above, since the firmware can be written in the
[0034]
Note that if the address of the
[0035]
FIG. 4 shows the configuration of the access protect
[0036]
Unless code data having a valid value is set, use of the
[0037]
When code data having a valid value is set in the access protect
[0038]
Unless code data having a valid value is set in the access protect
[0039]
Hereinafter, the procedure of the writing process when the access authentication using the
[0040]
When the
[0041]
Next, the firmware writing / updating
[0042]
When the initialization is completed, the common function (function number 0) register can be accessed at this point. However, the
[0043]
In the
[0044]
When the correct code data value is set in the access protect
[0045]
The firmware write /
[0046]
The access protect
[0047]
Even after the
[0048]
It is preferable to provide a write protect register for performing write protection of the
[0049]
As shown in FIG. 8, a write protect register (Write Protect) is provided in the common function register of the
[0050]
As shown in FIG. 9, specific write protection release data set in the
[0051]
Hereinafter, with reference to the flowchart of FIG. 10, a description will be given of a procedure of a write process in a case where write protection using a write protect register is used in addition to access authentication using the access protect
[0052]
When the
[0053]
Next, the firmware writing / updating
[0054]
When the initialization is completed, the common function (function number 0) register can be accessed at this point. However, the
[0055]
In the
[0056]
When the correct code data value is set in the access protect
[0057]
The firmware writing / updating
[0058]
As described above, according to the present embodiment, by using the
[0059]
【The invention's effect】
As described above in detail, according to the present invention, it is possible to safely execute the writing or rewriting of firmware in the nonvolatile memory after the nonvolatile memory is mounted on the card device.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a relationship between a card device according to an embodiment of the present invention and a host device which can be used by mounting the card device.
FIG. 2 is an exemplary flowchart illustrating the procedure of a firmware write operation in the embodiment.
FIG. 3 is an exemplary view showing a configuration of a flash ROM access register in the embodiment.
FIG. 4 is an exemplary view showing a configuration of an access protection register according to the embodiment;
FIG. 5 is an exemplary block diagram showing a configuration example for restricting use of a flash ROM access register by using an access protect register in the embodiment;
FIG. 6 is an exemplary flowchart illustrating a second example of the procedure of a firmware write operation in the embodiment.
FIG. 7 is an exemplary flowchart illustrating a third example of the procedure of a firmware write operation in the embodiment.
FIG. 8 is a diagram showing a configuration of a write protect register in the embodiment.
FIG. 9 is a block diagram showing a configuration example for write-protecting the flash memory using the write protect register in the embodiment.
FIG. 10 is an exemplary flowchart illustrating a fourth example of the procedure of a firmware write operation in the embodiment.
[Explanation of symbols]
1. Host device
10. SDIO card
11 Host controller
21 SDIO control unit
22 ... Baseband core
23 ... MPU
211: Flash ROM access register
212: Access protect register
Claims (12)
前記カード装置内には、前記ファームウェアの制御無しで前記ホスト装置と通信可能なカードインタフェース部が設けられており、
前記カード装置の前記カードインタフェース部内に設けられた第1のレジスタに前記ホスト装置によってセットされたコードデータが予め決められた正当な値であるか否かを判定するステップと、
前記判定結果に応じて、前記不揮発性メモリを前記ホスト装置からアクセスするために前記カードインタフェース部内に設けられた第2のレジスタを介して実行される前記ホスト装置による前記不揮発性メモリへのファームウェアの書き込み動作を、許可又は禁止するステップとを具備することを特徴とするファームウェア書き込み制御方法。A firmware write control method for writing firmware for causing the card device to execute a predetermined function to a nonvolatile memory provided in a card device detachably mounted on a host device, comprising:
In the card device, a card interface unit capable of communicating with the host device without control of the firmware is provided,
Determining whether the code data set by the host device in a first register provided in the card interface unit of the card device is a predetermined valid value,
According to the result of the determination, the host device executes a firmware update to the nonvolatile memory by the host device, which is executed through a second register provided in the card interface unit in order to access the nonvolatile memory from the host device. A step of permitting or inhibiting a write operation.
前記判定ステップは、
前記ホスト装置によって前記複数のレジスタにそれぞれセットされる複数のデータの組み合わせから構成されるコードデータの値が予め決められた正当な値であるか否かを判定するステップを含むことを特徴とする請求項1記載のファームウェア書き込み制御方法。The first register includes a plurality of registers having different addresses from each other,
The determining step includes:
A step of determining whether or not a value of code data composed of a combination of a plurality of data respectively set in the plurality of registers by the host device is a predetermined valid value. The firmware write control method according to claim 1.
前記カード装置の前記カードインタフェース部内に設けられた第3のレジスタに前記ホスト装置によって所定のデータがセットされた場合、前記ライトプロテクト機能を解除するステップをさらに具備することを特徴とする請求項1記載のファームウェア書き込み制御方法。The card device is provided with a write protect function for inhibiting writing to the nonvolatile memory,
2. The method according to claim 1, further comprising the step of releasing the write protect function when predetermined data is set in a third register provided in the card interface unit of the card device by the host device. The described firmware writing control method.
前記ファームウェアの制御無しで前記ホスト装置と通信可能なカードインタフェース部と、
前記カード装置の前記カードインタフェース部内に設けられた第1のレジスタに前記ホスト装置によってセットされたコードデータが予め決められた正当な値であるか否かを判定する手段と、
前記判定結果に応じて、前記不揮発性メモリを前記ホスト装置からアクセスするために前記カードインタフェース部内に設けられた第2のレジスタを介して実行される前記ホスト装置による前記不揮発性メモリへのファームウェアの書き込み動作を、許可又は禁止する手段とを具備することを特徴とするカード装置。In a card device that is configured to be removably attachable to a host device and operates according to firmware stored in a nonvolatile memory,
A card interface unit capable of communicating with the host device without control of the firmware,
Means for determining whether the code data set by the host device in a first register provided in the card interface unit of the card device is a predetermined valid value,
According to the result of the determination, the host device executes a firmware update to the nonvolatile memory by the host device, which is executed through a second register provided in the card interface unit in order to access the nonvolatile memory from the host device. A card device comprising: means for permitting or prohibiting a writing operation.
前記判定手段は、
前記ホスト装置によって前記複数のレジスタにそれぞれセットされる複数のデータの組み合わせから構成されるコードデータの値が予め決められた正当な値であるか否かを判定する手段を含むことを特徴とする請求項5記載のカード装置。The first register includes a plurality of registers having different addresses from each other,
The determining means includes:
Means for determining whether a value of code data composed of a combination of a plurality of data respectively set in the plurality of registers by the host device is a predetermined valid value or not. The card device according to claim 5.
前記カードインタフェース部内に設けられた第3のレジスタに前記ホスト装置によって所定のデータがセットされた場合、前記ライトプロテクト手段によるライトプロテクトを解除する手段とをさらに具備することを特徴とする請求項5記載のカード装置。Write protection means for write-protecting the non-volatile memory to prohibit writing to the non-volatile memory;
6. The system according to claim 5, further comprising: means for canceling write protection by said write protection means when predetermined data is set by said host device in a third register provided in said card interface unit. The card device according to the above.
前記カード装置内には、前記ファームウェアの制御無しで前記ホスト装置と通信可能なカードインタフェース部が設けられており、
前記ホスト装置に、前記不揮発性メモリへのアクセスを可能にするためのコードデータを、前記カード装置の前記カードインタフェース部内に設けられた第1のレジスタにセットさせるコードデータ設定ステップと、
前記ホスト装置に、前記不揮発性メモリを前記ホスト装置からアクセスするために前記カードインタフェース部内に設けられた第2のレジスタに前記不揮発性メモリをアクセスするためのコマンドおよび書き込みデータをセットさせることにより、前記第2のレジスタを介した前記不揮発性メモリへのファームウェアの書き込み動作を前記ホスト装置に実行させるステップとを具備することを特徴とするファームウェア書き込み制御方法。A firmware write control method for writing firmware for causing the card device to execute a predetermined function to a nonvolatile memory provided in a card device attachable to a host device,
In the card device, a card interface unit capable of communicating with the host device without control of the firmware is provided,
A code data setting step of causing the host device to set code data for enabling access to the nonvolatile memory to a first register provided in the card interface unit of the card device;
By causing the host device to set a command and write data for accessing the nonvolatile memory in a second register provided in the card interface unit to access the nonvolatile memory from the host device, Causing the host device to execute an operation of writing firmware to the nonvolatile memory via the second register.
前記コードデータ設定ステップは、
前記ホスト装置に、前記コードデータを構成する複数のデータを前記複数のレジスタにそれぞれセットさせるステップを含むことを特徴とする請求項9記載のファームウェア書き込み制御方法。The first register includes a plurality of registers having different addresses from each other,
The code data setting step includes:
10. The firmware write control method according to claim 9, further comprising the step of causing the host device to set a plurality of data constituting the code data in the plurality of registers.
前記ホスト装置に、前記ライトプロテクト機能を解除するためのデータを前記カード装置の前記カードインタフェース部内に設けられた第3のレジスタにセットさせるステップをさらに具備することを特徴とする請求項9記載のファームウェア書き込み制御方法。The card device is provided with a write protect function for inhibiting writing to the nonvolatile memory,
10. The method according to claim 9, further comprising the step of causing the host device to set data for releasing the write protect function in a third register provided in the card interface unit of the card device. Firmware writing control method.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002243976A JP2004086353A (en) | 2002-08-23 | 2002-08-23 | Firmware write control method and card device to which the write control method is applied |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002243976A JP2004086353A (en) | 2002-08-23 | 2002-08-23 | Firmware write control method and card device to which the write control method is applied |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004086353A true JP2004086353A (en) | 2004-03-18 |
Family
ID=32052601
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002243976A Pending JP2004086353A (en) | 2002-08-23 | 2002-08-23 | Firmware write control method and card device to which the write control method is applied |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2004086353A (en) |
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 (en) * | 2010-06-28 | 2013-11-07 | Huawei Device Co Ltd | Wireless internet access device, sd control chip, and method for data communication |
| JP2017518558A (en) * | 2014-04-08 | 2017-07-06 | マイクロン テクノロジー, インク. | Apparatus and method for securing an access protection scheme |
| JP2020149615A (en) * | 2019-03-15 | 2020-09-17 | 株式会社バッファロー | Equipment management systems, network equipment, management equipment, and programs |
-
2002
- 2002-08-23 JP JP2002243976A patent/JP2004086353A/en 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 (en) * | 2010-06-28 | 2013-11-07 | Huawei Device Co Ltd | Wireless internet access device, sd control chip, and method for data communication |
| JP2017518558A (en) * | 2014-04-08 | 2017-07-06 | マイクロン テクノロジー, インク. | Apparatus and method for securing an access protection scheme |
| 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 (en) * | 2019-03-15 | 2020-09-17 | 株式会社バッファロー | Equipment management systems, network equipment, management equipment, and programs |
| JP7280483B2 (en) | 2019-03-15 | 2023-05-24 | 株式会社バッファロー | Device management system, network device, management device, and program |
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 | |
| KR100524988B1 (en) | Multimedia card apparatus capable of interfacing USB host and interfacing method of the same | |
| 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 (en) | Data processing circuit and communication portable terminal device | |
| JP2003132305A (en) | Apparatus and method for controlling a memory card | |
| KR20040044913A (en) | Memory card and its initial setting method | |
| JP4678083B2 (en) | Memory device and memory access restriction method | |
| JP2004086353A (en) | Firmware write control method and card device to which the write control method is applied | |
| US20040186947A1 (en) | Access control system for nonvolatile memory | |
| JPH07175725A (en) | Semiconductor memory device | |
| JP4053245B2 (en) | Semiconductor memory device that can prevent unauthorized use | |
| JP2006236200A (en) | Card-like storage device and its host device | |
| US6889299B1 (en) | Semiconductor integrated circuit | |
| JP2021144553A (en) | Sensor device | |
| JP7589584B2 (en) | Circuit device and electronic device | |
| JP2007115187A (en) | Portable electronic device and IC card |
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 |