こんにちは、NXPチームの皆様、
私はAB_SWAPとHSE_Bを使用してS32K328のメモリレイアウトを作成しているのですが、IVTの位置をどのように扱うべきかについて明確な説明が必要です。
S32K3xxリファレンスマニュアルより:
S32K328のメモリマップを見ると、次のようになっています。
IVT配置
AB_SWAP内の複数のIVTアドレス
二次/代替領域の使用
ベストプラクティス
こんにちは、 @venkatesh-kv
1.利用可能な定義済みアドレスにIVTを1つ配置すれば十分です。必ずしも0x40_0000のようなプライマリロケーションである必要はありません。有効なIVTを指定された順番で検索するのはSBAFの責任です。
IVT のアップデート中に何らかの問題が発生した場合に備えて、2 番目の IVT をバックアップとして使用するオプションがあります。これは通常、IVT のブート構成ワードの BOOT_SEQ ビットによってセキュアブートを有効にする際に行われます。
2. AB_SWAP モードの S32K328 には、IVT の可能な位置が 3 つあります: 0x40_0000、0x60_0000、0x1000_0000。SBAFは有効なIVTをこの順番で検索します。住所が小さいほど、優先順位が高くなります。例えば、0x40_0000に有効なIVTが存在する場合、SBAFはこのIVTを使用し、他の場所をチェックしません。
3. エリアを予約しておく必要はなく、コードやデータ用に利用できます。
4. このユースケースでは、前述のバックアップとして他のIVTロケーションを利用することができます。また、Secure Boot アプリケーションノートの「6.2 Update IVT」セクションでも説明されています。
ダウンロード可能:
https://www.nxp.com/products/S32K3
アプリケーションノートはこちらでご覧いただけます:
ドキュメント -> Secure Files -> Secure Boot アプリケーションノート v0.1.1.0(AN744511)
関連するデモプロジェクトはこちらからダウンロードできます:
Design Resources - > ソフトウェア - > Secure Files - > SecureBootAppNoteDemo(SW745310)
よろしくお願いいたします。
ルーカス