2415877_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2415877_ja-JP

2415877_ja-JP

S32k322マイクロコントローラにHSEファームウェアをインストールします。

NXPサポートチームの皆さん、こんにちは。

私は S32K322 マイクロコントローラのセキュリティ実装に取り組んでおり、AESのセキュリティ運用と乱数生成(TRNG)のためにHSE(ハードウェアセキュリティエンジン)モジュールを活用する必要があります。

以下の情報を提供していただけますか:

  1. S32K322 (2MBフラッシュメモリ搭載)専用に構成された、公式HSEファームウェアインストール例プロジェクト。

  2. S32K322 HSEファームウェアのセットアップに必要な標準リンカスクリプト(.ld)、IVTオフセット、およびメモリ境界設定。

  3. S32K322派生製品と互換性のある正確なHSE-Bファームウェアのバイナリパッケージバージョンの確認。

Re: HSE Firmware install in S32k322 microcontroller .

こんにちは、 @Ranjith_kumar


HSEデモ事例をご紹介します。

https://www.nxp.com/webapp/Download?colCode=S32K3_HSE_DemoExamples


プロジェクト S32K344_HSE_FW_INSTALL は他の S32K3 派生モデルに簡単に移植可能です。


しかし、どのプロジェクトでもHSEファームウェアをインストールできます。以下の手順を実行するだけで済みます。

- OTP UTEST メモリの 0x1B00_0000 に HSE 機能フラグをプログラムします。これは通常のフラッシュプログラミングで「手動」で行うこともできます(前述のS32K344_HSE_FW_INSTALLで示されています)。または、ブート設定ワードでビットを設定しFW_USAGE_FLAG_PROGRAM SBAFによって自動的に行うこともできます。この自動プログラミング機能は、SBAFバージョン0.15.0以降でのみ利用可能ですのでご注意ください。非常に古い機器をお持ちの場合は、動作しない可能性があり、手動でのプログラミングが必要になります。

ピンク色のファイルをフラッシュメモリのどこかに書き込み、オフセット0x2CにあるIVTにピンク色のファイルへのポインタを追加する。

その後、MCUをリセットするだけです(FULL_MEMファームウェアの場合は2回、AB_SWAPファームウェアなら3回)で完了です。


低レベルでは、次のようになります。

これは、いくつかのアプリケーションのIVTであり(複数の場所が使用可能で、この場合はデータフラッシュが使用されます)、FW_USAGE_FLAG_PROGRAMが設定され、FWイメージへのポインタが含まれています。

lukaszadrapa_1-1790254703462.png


ピンク色のファイルには0x480000がプログラムされています。

lukaszadrapa_2-1790254714965.png

リセット後、UTESTでフィーチャーフラグが自動的にプログラムされ、HSEファームウェアがインストールされます(HSE GPRレジスタのビット0(アドレス0x4039_C028)が設定されます)。

lukaszadrapa_3-1790254752856.png


S32K344_HSE_FW_INSTALLでは、機能フラグはソフトウェアによってプログラムされます(main.cファイルを参照)。

ポインタは、ファイル boot_header.c 内の IVT に追加されます。

ピンク色のファイルは、S32K344_flash_full_mem.ld または S32K344_flash_ab_swap.ld 内のプロジェクトにリンクされています。必要な構成によって異なります。


詳細については、HSE-Bファームウェアリファレンスマニュアルの以下のリソースをご覧ください。2.8:

表17.BCWコンテンツ

表119。BCWビットマッピング

表118。IVT構造

表143。HSE_CONFIG_GPR3 (0x4039C028) のステータスビット


標準RTDプロジェクトをお持ちの場合、プロジェクトにこれを実装する方法は次のとおりです。

- startup_cm7.s を開くファイルと、オフセット0x2Cにあるピンク色のファイルへのポインタを追加します。

lukaszadrapa_4-1790254832253.png


- オフセット0x4のIVT内にあるブート構成ワードのビット9を設定します。

lukaszadrapa_5-1790254850401.png


そして、リンカーファイル(例えば「linker_flash_s32k322.ld」)に移動します。そしてProject S32K344_HSE_FW_INSTALLで見られるのと同じ方法でピンクファイルをリンクしてください。

lukaszadrapa_6-1790254941316.pnglukaszadrapa_7-1790254948399.png


それだけです。プロジェクトをビルドしてMCUに読み込み、デバイスを何度かリセットするだけです。


S32K322用HSEファームウェアの最新製品版を入手する方法:

S32K3標準ソフトウェアへ進む:

https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=SW32K3-STDSW-D

「オートモーティブ SW - S32K3 - HSEファームウェア」を選択してください

ここでS32K3x2およびS32K3x4の0.2.55.0を検索してください:

lukaszadrapa_8-1790255036426.png

HSE_FW_S32K342_0.2.55.0_D2512.exe をダウンロードしてください。このバージョンは S32K322 にも対応しています。


最後に、LauterbachのTrace32を使うと、添付スクリプトを使ってファームウェアをインストールできます。デフォルトの位置情報方法を使っています。


よろしくお願いいたします。

ルーカス

Re: HSE Firmware install in S32k322 microcontroller .

こんにちは、 @lukaszadrapa さん。

サポートありがとうございます。ご指示いただいた通り、S32K322デバイスにHSEファームウェアを正常にインストールすることができました。

新しいピンク色のファイルを使用してHSEファームウェアを新しいバージョンにアップデートする必要があるのですが、問題が発生しています。私のコードはHSEファームウェアアップデートフロー(HSE_SRV_ID_FIRMWARE_UPDATE)に基づいており、サービスは以下を返します。

HSE_SRV_RSP_VERIFY_FAILED (0x55A5A164)

設定の詳細:
- デバイス:S32K322
- ファームウェアバリアント: FULL_MEM
- 現在インストールされているHSE FWバージョン:添付画像
- 新しいピンク色のファイル: リンカーファイルに追加
- 更新モード: ONE_SHOT
- 新しいピンク色の画像の位置: 0x00400000

HSEファームウェアを更新するための例コードがあれば教えてもらえますか?

Ranjith_kumar_0-1790752089440.png

#define HSE_SRV_RSP_VERIFY_FAILED ((hseSrvResponse_t)0x55A5A164UL)

Ranjith_kumar_1-1790752155950.png


Tags (1)
No ratings
Version history
Last update:
Thursday
Updated by: