ホーム フォーラム Texas Instruments マイコン C2000 リリース時のDCSMによる保護について

このトピックには10件の返信が含まれ、2人の参加者がいます。1 年、 5 ヶ月前umamiti umamiti さんが最後の更新を行いました。

11件の投稿を表示中 - 1 - 11件目 (全11件中)
  • 投稿者
    投稿
  • #20534 返信

    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タスクなど
    特定のメモリにロードしたプログラムからでもアクセスは制限されないという認識で良いか。

    #20536 返信
    umamiti
    umamiti
    従業員

    ご投稿ありがとうございます。

    TRMとC2000Wareのdscmサンプルプロジェクトの.sysconfigを参考にしていますが、
    特にZoneを分けずに一括でパスワード保護したい場合は以下のような設定で良いのでしょうか。
    リリース後もパスワードを知る作業者によるデバッグや書き換えは行います。

    【ZONE1 Header】
    ・PSWDLOCK :Enable
    【ZONE1 Per LINKPOINTER】
    ・Password 0-3:任意パスワード
    ・RAM、FLASH:すべて「Secured by this zone」

    基本的には上記の設定を行うことで、ご希望の設定になるかと存じますが、念のため、再度下記の各資料をご確認いただけますようお願い致します。

    ・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をご参照下さい。

    以上、よろしくお願いいたします。

    #20537 返信

    guest

    お世話になります。

    ご回答ありがとうございます。
    上記設定でパスワード保護を行いました。

    WaitモードにてCCSからJTAG接続し、
    以下の4つのレジスタを設定したパスワードに変更して
    別のプログラムをロードしようとしましたが失敗しました。

    DcsmBank0Z1Regs_Z1_CSMKEY0~3(0x5F010~0x5F017)

    何か別の操作が必要でしょうか。
    あるいは原因を特定するにはどうすれば良いでしょうか。

    #20538 返信

    guest

    追記

    パスを入力した時点で、DcsmBank0Z1Regs_Z1_CRのUNSECUREビットは1になっていますが、
    プログラムをロードしようとするとErasingFlashの段階でLoad failed.となり、
    CSMKEY0-3およびUnsecureビットが初期化されます。

    #20539 返信
    umamiti
    umamiti
    従業員

    ご確認ありがとうございます。

    お手数ですが、下記のURLをご参考に、再書き込みをお試し頂けますでしょうか。

    上記の対策内容を実施しても書き込みが出来ない場合、実施した対策内容とCCS上にエラーメッセージを共有頂けますと幸いです。

    以上、よろしくお願いいたします。

    #20540 返信

    guest

    お世話になります。

    On-chip Flash GUIからではなく、直接レジスタにパスワードを書き込んでいたのが原因のようです。
    CCSでプログラムをロードする最初にOn-Chip Flash GUIに入力されているパスワードの値で
    上書きされるためにエラーとなっていたようでした。

    また、以下のE2Eでも議論されていますが、Bootモードピン(デフォルトGPIO24, 32)の入力を
    直接操作する以外に、Waitモード(あるいは、もしあればその他のパスワード解除可能なモード)に
    入る手法はありますでしょうか。

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1210237/tms320f280049-reflashing-password-protected-flash-memory/4578799?tisearch=e2e-sitesearch&keymatch=password#4578799

    #20541 返信
    umamiti
    umamiti
    従業員

    ご確認ありがとうございます。

    また、以下のE2Eでも議論されていますが、Bootモードピン(デフォルトGPIO24, 32)の入力を
    直接操作する以外に、Waitモード(あるいは、もしあればその他のパスワード解除可能なモード)に
    入る手法はありますでしょうか。

    以下のE2Eの通り、デバイスをリセット状態にした状態でJTAG接続を確立し、接続が確立された後にリセットを解除する方法が挙げられます。

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/937326/ccs-tms320f28069-do-not-use-wait-mode

    以上、よろしくお願いいたします。

    #20542 返信

    guest

    ご回答ありがとうございます。

    >デバイスをリセット状態にした状態でJTAG接続を確立し、接続が確立された後にリセットを解除する方法が挙げられます

    承知しました。
    ご提示いただいたリンク先ではリセットボタンが無い状況の様ですが、
    もしも可能なら、こちらもリセットボタンを操作せずJTAGピンからの操作で
    完結させたいと思います。

    途中から個別に連絡している様で詳細が分からないのですが、方法がありますでしょうか。

    #20543 返信

    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()

    #20561 返信

    guest

    Resetボタンを押してWaitモードに入れなかった件については、
    CCSの再起動によって出来る様になったため、こちらの環境による一時的なものであったようです。
    申し訳ありません。

    Boot pinおよびResetボタンを使用しない方法については、
    進展が無い様なのでこのままクローズしていただいて結構です。

    以上ご確認のほどよろしくお願いします。

    #20562 解決済み提案を取消 | 返信
    umamiti
    umamiti
    従業員

    本件、ご返信が遅くなり大変申し訳ございません
    (弊社が側のシステムエラーにより、前回の送信が完了されておりませんでした。)

    ご確認いただきありがとうございます。CCS再起動によって解決出来たとのこと、承知いたしました。

    Boot pinおよびResetボタンを使用しない方法について、メーカーに確認させて頂いた結果、現状ではおそらく無いとのことです。以前共有頂いたURLの方で更新をおまち頂けますと幸いです。

    以上、何卒よろしくお願いいたします。

11件の投稿を表示中 - 1 - 11件目 (全11件中)