ホーム › フォーラム › Texas Instruments › マイコン › C2000 › リリース時のDCSMによる保護について
このトピックには10件の返信が含まれ、2人の参加者がいます。1 年、 5 ヶ月前に umamiti さんが最後の更新を行いました。
-
投稿者投稿
-
guestリリース時のDCSMによる保護について
C2000 F280049を使用しています。
リリース用にパスワードによる読み出し、書き込み保護を構成したいと考えています。
TRMとC2000Wareのdscmサンプルプロジェクトの.sysconfigを参考にしていますが、
特にZoneを分けずに一括でパスワード保護したい場合は以下のような設定で良いのでしょうか。
リリース後もパスワードを知る作業者によるデバッグや書き換えは行います。【ZONE1 Header】
・PSWDLOCK :Enable
【ZONE1 Per LINKPOINTER】
・Password 0-3:任意パスワード
・RAM、FLASH:すべて「Secured by this zone」(特に分からない所)
・PSWDLOCK、CRCLOCKは必要か
・「Secured by this zone」と「〃(EXEONLY)」の違い
・同じZONEによってSecuredになっていれば、CLAタスクなど
特定のメモリにロードしたプログラムからでもアクセスは制限されないという認識で良いか。ご投稿ありがとうございます。
TRMとC2000Wareのdscmサンプルプロジェクトの.sysconfigを参考にしていますが、
特にZoneを分けずに一括でパスワード保護したい場合は以下のような設定で良いのでしょうか。
リリース後もパスワードを知る作業者によるデバッグや書き換えは行います。【ZONE1 Header】
・PSWDLOCK :Enable
【ZONE1 Per LINKPOINTER】
・Password 0-3:任意パスワード
・RAM、FLASH:すべて「Secured by this zone」基本的には上記の設定を行うことで、ご希望の設定になるかと存じますが、念のため、再度下記の各資料をご確認いただけますようお願い致します。
- TMS320F28004x Real-Time Microcontrollers Technical Reference Manual (Rev. F)
- C2000™ DCSM Security Tool (Rev. A)
・PSWDLOCK、CRCLOCKは必要か
それぞれ必須機能ではございませんので、用途に合わせて貴社にて設定頂ければと存じます。
・PSWDLOCK・・・設定することで、USER OTP内のパスワードの場所をロックすることができます。
・CRCLOCK・・・設定することで、セキュアメモリ上のデータに対するVCU経由でのCRC計算をロックすることが出来ます。
詳細につきましては、TMR「3.13.1.5 Password Lock」とこちらのURLを合わせてご参照下さい。・「Secured by this zone」と「〃(EXEONLY)」の違い
「Secured by this zone」では、該当するGRABRAM/GRABSECTのみが変更されます。
「Secured by this zone(EXEONLY)」では、該当するGRABRAM/GRABSECTとEXEONLYRAM/EXEONLYSECTが変更され、EXEONLYはより高度なセキュリティを実装します。
詳細につきましては、TRM「3.13.1.4 Execute-Only Protection 」をご参照下さい。・同じZONEによってSecuredになっていれば、CLAタスクなど
特定のメモリにロードしたプログラムからでもアクセスは制限されないという認識で良いか。本製品につきましては、同じソーン内であればCLAからのアクセスが可能とのことです。
詳細につきましては、こちらのURLをご参照下さい。以上、よろしくお願いいたします。
guestお世話になります。
ご回答ありがとうございます。
上記設定でパスワード保護を行いました。WaitモードにてCCSからJTAG接続し、
以下の4つのレジスタを設定したパスワードに変更して
別のプログラムをロードしようとしましたが失敗しました。DcsmBank0Z1Regs_Z1_CSMKEY0~3(0x5F010~0x5F017)
何か別の操作が必要でしょうか。
あるいは原因を特定するにはどうすれば良いでしょうか。
guest追記
パスを入力した時点で、DcsmBank0Z1Regs_Z1_CRのUNSECUREビットは1になっていますが、
プログラムをロードしようとするとErasingFlashの段階でLoad failed.となり、
CSMKEY0-3およびUnsecureビットが初期化されます。ご確認ありがとうございます。
お手数ですが、下記のURLをご参考に、再書き込みをお試し頂けますでしょうか。
上記の対策内容を実施しても書き込みが出来ない場合、実施した対策内容とCCS上にエラーメッセージを共有頂けますと幸いです。
以上、よろしくお願いいたします。
guestお世話になります。
On-chip Flash GUIからではなく、直接レジスタにパスワードを書き込んでいたのが原因のようです。
CCSでプログラムをロードする最初にOn-Chip Flash GUIに入力されているパスワードの値で
上書きされるためにエラーとなっていたようでした。また、以下のE2Eでも議論されていますが、Bootモードピン(デフォルトGPIO24, 32)の入力を
直接操作する以外に、Waitモード(あるいは、もしあればその他のパスワード解除可能なモード)に
入る手法はありますでしょうか。ご確認ありがとうございます。
また、以下のE2Eでも議論されていますが、Bootモードピン(デフォルトGPIO24, 32)の入力を
直接操作する以外に、Waitモード(あるいは、もしあればその他のパスワード解除可能なモード)に
入る手法はありますでしょうか。以下のE2Eの通り、デバイスをリセット状態にした状態でJTAG接続を確立し、接続が確立された後にリセットを解除する方法が挙げられます。
以上、よろしくお願いいたします。
guestご回答ありがとうございます。
>デバイスをリセット状態にした状態でJTAG接続を確立し、接続が確立された後にリセットを解除する方法が挙げられます
承知しました。
ご提示いただいたリンク先ではリセットボタンが無い状況の様ですが、
もしも可能なら、こちらもリセットボタンを操作せずJTAGピンからの操作で
完結させたいと思います。途中から個別に連絡している様で詳細が分からないのですが、方法がありますでしょうか。
guest追記
ご提案いただいた方法で、Resetボタンを押した状態で
接続を行いましたが、パスワードをUnlockすることが出来ませんでした。DebugセッションのCPUリスト横のアイコンは接続状態になっていますが、
接続時にエラーが出力されていたので、正常な状態にないかもしれません。
接続後にCCSからCPU Reset等は試しました。以上ご確認の程よろしくお願いいたします。
エラーログ:
C28xx_CPU1: Trouble Reading Register PC: (Error -1137 @ 0x0) Device is held in reset. Take the device out of reset, and retry the operation. (Emulation package 9.7.0.00213)
C28xx_CPU1: GEL: Error while executing OnTargetConnect(): Internal error while writing 0x0005F412@Data
at *((int*) 0x5F412)=0x0003 [f280049c.gel:83]
at OnTargetConnect()
guestResetボタンを押してWaitモードに入れなかった件については、
CCSの再起動によって出来る様になったため、こちらの環境による一時的なものであったようです。
申し訳ありません。Boot pinおよびResetボタンを使用しない方法については、
進展が無い様なのでこのままクローズしていただいて結構です。以上ご確認のほどよろしくお願いします。
本件、ご返信が遅くなり大変申し訳ございません
(弊社が側のシステムエラーにより、前回の送信が完了されておりませんでした。)ご確認いただきありがとうございます。CCS再起動によって解決出来たとのこと、承知いたしました。
Boot pinおよびResetボタンを使用しない方法について、メーカーに確認させて頂いた結果、現状ではおそらく無いとのことです。以前共有頂いたURLの方で更新をおまち頂けますと幸いです。
以上、何卒よろしくお願いいたします。
-
投稿者投稿