こんにちは、
RT1176 CPU上で署名および暗号化処理のテストを行っています。
基本的なシステム構成は、UART/JTAG <-> RT1176 <-> SPI Nor Flashです
テストに使用するソフトウェアは以下の通りです:
- RT1176テストファームウェア(起動後にLEDを点灯させるだけのシンプルなファームウェア)
- NXP MCUXpresso セキュアプロビジョニング / blhost (UART を介した署名および暗号化用)
- Segger JFlash(JTAG経由でFlashアクセス用)
これまでに以下のテストを実施しました:
1) CPUがアンロックされ、署名がオフになっている間、ファームウェア(署名なし/暗号化されていない状態)は正常に起動し、JTAG経由で問題なくフラッシュにアクセスできます。
2) CPUがアンロックされて署名が有効な間、ファームウェア(署名済み/暗号化されていない状態)は正常に起動し、JTAG経由で問題なくフラッシュにアクセスできます。
3) CPUがロックされて署名がオンになっている間、ファームウェア(署名済み/暗号化済み)が起動せず、JTAG経由でフラッシュへのアクセスが不安定になります。
つまり、暗号化の問題があるということです。しかし、大きな暗号化問題を検証する前に、ステップ3の不安定なフラッシュ挙動を理解したいと思います。
いくつかのテストで、フラッシュ問題はBT_FUSE_SELが吹き抜けた直後に必ず発生することが明らかになりました(BT_FUSE_SEL無傷時はJTAG経由のフルフラッシュアクセスBT_FUSE_SEL、吹き飛ばすとJTAG経由の不安定なフラッシュアクセス)。現在テスト中のため、ヒューズ設定によるJTAGの無効化は行っていません。
では、質問はこうです:
なぜBT_FUSE_SELがフラッシュへのアクセスを失わせるのでしょうか?(CPUがロックされているときに、何らかの読み出し保護機能が有効になっているのでしょうか?)segger jflashツールは、CPUがロックされている場合に問題が発生するのでしょうか?
こちらもご覧ください:
https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/mxrt1176-quot-half-quot-bricked-after-programmin...
-同じ問題>:BT_FUSE_SEL >フラッシュアクセスできません
よろしくお願いします。
よろしくお願いします、
フロリアン
こんにちは、 @florian_arndt さん。
NXP MIMXRTシリーズにご関心をお寄せいただきありがとうございます!
BT_FUSE_SELは、SPI NOR読み出し保護を直接有効にしたり、JTAGを無効にしたりするものではありません。その機能は、ブートROMにBOOT_CFGピンではなく、eFuseに保存されているブート構成を使用させることです。
OTFAD/encrypted-XIP構成がeFuseにもプログラムされている場合、BT_FUSE_SELを書き込むことで、その構成が起動のたびに有効になり、BOOT_CFGピンを介してそれをバイパスする可能性がなくなります。誤ったOTFADコンテキスト、キー、アドレス範囲、または暗号化されたイメージは、アプリケーション開始前にブートROMが失敗する原因となることがあります。
したがって、現時点で最も可能性の高い原因は、ブートに関連するGPIOがバイパスされているものの、対応するeFuseが正しく設定されていないことだと考えられます。BT_FUSE_SEL自体はJTAG接続に影響を与えません。問題点を迅速に特定するために、A/Bテストを実施することをお勧めします。
よろしくお願いします、
ギャビン