i.MX RT1024 EVK にセキュアブートを実装しようとしています。
これが私の主な疑問点につながります。
もし自分で ブートローダーとアプリケーションのファームウェアを持っていて、どちらも必要な FCFBブロックをすでに含んでいるとします。本番環境では、ファームウェアに署名するだけで十分です。署名プロセスで既存のFCFBブロックを変更したり削除したりすることは望んでいませんし、署名ツールが実際にイメージをフラッシュメモリに書き込むことも望んでいません。
私が懸念しているのは、SPT経由でイメージに署名すると、FCFBブロックが解除されてしまうように見えることです。
SPTの契約手続きについて、私の理解が間違っているのでしょうか?既に起動可能なイメージに、既存のFCFBブロックを保持したまま署名する正しい方法は何ですか?
こんにちは、 @Abhay2080 さん。
NXP MIMXRTシリーズにご関心をお寄せいただきありがとうございます!
あなたの観察は正しく、あなたが見ている行動は意図的なものです。
1. FCFBが契約後に消える理由
SPT ( _nopadding.bin ) の署名付き出力は IVT から始まると定義されており、FCFB は決して含まれません。これは公式SPTユーザーガイド(画像を書くセクション)に明確に記載されています:
「バイナリ画像はFCBブロックを含まない『ノーパディング』形式である必要があります。FCBブロックは別のステップで書き込まれるためです。」— MCUXpresso Secure Provisioning Tool ユーザーガイド、画像作成セクション
これはツールのバグではありません。BootROMはまずFCFBを読み取ります — HABが呼び出される前に— FlexSPIコントローラを初期化します。HAB認証はIVTから始まる地域のみをカバーします。FCFBは、建築構造上、HABの契約範囲外である。
2. 生産ソリューション:手動マージ
SPTは、符号付きバイナリ出力においてFCFBを自動的に保持しません。Flashloaderを使用せずに、プログラマーがすぐに使用できる完全なイメージを作成するための正しい方法は、手動でマージすることです。
signed_nopadding.bin (IVTから開始、FCFBなし)。final_image = fcfb_block + signed_nopadding.bin 。final_imageをフラッシュしてください。こちらの投稿をご覧ください: NXPコミュニティ:RT1064署名付き暗号化ブートローダー – 本番JTAGのフラッシュ
また、CSTツールに慣れている方であれば、署名範囲を直接指定できるはずです。しかし、私はこの方法をローカル環境では試していません。
この説明がお役に立てば幸いです!
よろしくお願いします、
ギャビン