STM32U5
TFM Flash メモリ・フットプリ
ント
Rev 1.0

こちらのプレゼンテーションへようこそ。ここでは、TFM
Flash メモリのフットプリントに影響するパラメータについて詳しく説明します。

1概要：TFM アプリケーションのアーキテクチャ
4 つの主要ソフトウェアコン
ポーネント（ブート、セキュアおよび非セキュアアプリケーション、ローダ） サイズは設定によって異なります

TFM_SBSFU_Boot

TFM_Appli セキュア

TFM_Loader

TFM_Appli 非セキュア

アプリケーションレベル

MCUboot

信頼できるファームウェア

PC
ソフトウェアMbed-crypto
ユーティリ
ティ

ミドルウェア･レベル

ボードサポートパッケージドライバ
ハードウェア抽象化レイヤー（HAL）
BSP コンポーネント

CMSIS

低階層（LL）
ドライバ

この図は、TFM が依存するソフトウェアレイヤ、ミドルウェア用のユーティリティ、ドライバ用の CMSIS をまとめたものです。
STM32CubeU5 に用意されている TFM ベースのアプリケーションサン
プルは、4 つの主要なソフトウェアコンポーネントで構成されており、これはユーザのニーズに応じて設定できます。
- TFM_SBSFU_Boot：セキュア・ブートおよびセキュアファーム
ウェア更新アプリケーション- TFM_Loader ：USART 上の Ymodem プロトコルに基づくアプリ
ケーションローダ- TFM_Appli_Secure：非セキュアなユーザアプリケーションにセキュアサービスを提供するセキュアアプリケーション（ランタイム）- TFM_Appli_NonSecure：非セキュアなユーザアプリケーションです。
以降のスライドに、これらの各コンポーネントの最小構成および完全な構成でのフットプリントの見積もりを示します。

2

TFM Flash のフットプリント/寸法パラメータ
メモリ･フットプリントはいくつかのシステムパラメータによって決まります-ハードウェア構成：内部 Flash のみまたは外部 Flash あり、STM32U5 ハードウェアアクセラレーション暗号化機能-

開発モードまたは量産モード（ログ…）-

ファームウェアイメージ数：1 つのファームウェアイメージ（非セキュアアプリケーションとセキュアアプリケーションの組み合わせ）または 2 つのファームウェアイメージ-

ファームウェアスロット数：プライマリおよびセカンダリスロット（OTA FW 更新 UC を有効化）またはプライマリスロットのみ（アクティブイメージの上書き）
SBSFU 暗号化方式の設定：RSA または ECC に基づいた非対称暗号化方式、ファームウェア暗号化のサポート-

スタンドアロン・ローカル・ローダの機能
非セキュアアプリケーションで必要となるセキュアサービスのタイプと数：-

初期証明サービス-

セキュア・ストレージ・サービス-

内部信頼ストレージサービス--

暗号サービスIDE：STM32CubeIDE、Keil、IAR
3

このスライドは、TFM Flash のフットプリントに影響するパラメータを示しています。
フットプリントは、内部または外部 Flash のハードウェア設定（特にページサイズ）と、Flash領域で可能な暗号化によって決まります。
イメージの更新に使用されるファームウェアイメージの数とファームウェアスロットの数は、フットプリントに影響します。
サイズには、SBSFU 暗号化方式の設定（RSA または ECC に基づく非対称）も影響します。
イメージローダが必要な場合、これも Flash の一部を消費します。
セキュアサービスのタイプと数は、明らかにメモリ･フットプリントに影響します。
コードのコンパクトさは、コンパイラによって提供される最適化のレベルにも依存します。
以降のスライドでは、次の設定に基づいて指標を示します。
- サイズのアライメントでは、8 KB の Flash メモリのセクタアライメント制約が考慮されます。
- IDE は「-Oz イメージサイズ」オプション付きの Keil® ツールチェーン MDK-ARM 5.31.0です。

3

TFM_SBSFU_Boot メモリ･フットプリント

設定

IDE
全体サイズ

最小設定

SBSFU の例

TFM_SBSFU の完全な例

SBSFU モードのみ

SBSFU モードのみ

TFM_SBSFU モード

TFM セキュアサービスなし

TFM セキュアサービスなし

TFM セキュアサービス

量産モード

開発モード

開発モード

ローカル・ローダとの互換性なし

ローカル・ローダと互換

ローカル・ローダと互換

ファームウェアスロット x 1 のみ

ファームウェアスロット x 1 のみ

ファームウェアスロット x 2

ファームウェアイメージ x 1

ファームウェアイメージ x 1

ファームウェアイメージ x 2

上書きモード

上書きモード

上書きモードハードウェアアクセラレーション暗号化

ハードウェアアクセラレーション暗号化

ハードウェアアクセラレーション暗号化

RSA 2048 暗号化方式

RSA 2048 暗号化方式

RSA 2048 暗号化方式

ファームウェアの暗号化なし

ファームウェアの暗号化

ファームウェアの暗号化

耐タンパなし内部および外部の耐タンパ

内部および外部の耐タンパ

Keil®（ツールチェーン MDK-ARM 5.31.0、オプション「-Oz イメージサイズ」付き）

48KB

72KB

80KB

4

この表は、TFM SBSFU ブートプログラムのサイズを示しています。
TFM_SBSFU_Boot アプリケーションは、Flash メモリの次のセクションで構成されています。
- BL2 NVCNT データ：アンチロールバック機能のファームウェアバージョン情報を格納するために使用される領域。
- SCRATCH 領域：イメージスワップ処理中にイメージデータを一時的に格納するためにTFM_SBSFU_Boot によって使用されます（上書きモードでは使用されません）。
- インテグレータの個人データ：SBSFU アプリケーションキーと、TFM セキュアアプリケーション
によって使用されるキーと情報を格納するために使用される領域。
- SBSFU コード：「セキュア・ブート」および「セキュアファームウェア更新」機能を管理するコード。
- HDP 有効化コード：アプリケーションを起動する前にすべての SBSFU コードと機密情報を非表示にするコード。
各セクションのフットプリントの詳細については、UM2851 ユーザーズマニュアル「Getting startedwith STM32CubeU5 TFM application」を参照してください。
この表では、次の 3 つの例を示します。
- 最小設定の例- STM32CubeU5 MCU パッケージで提供される SBSFU_Boot サンプル
- STM32CubeU5 MCU パッケージで提供される TFM_SBSFU_Boot サンプル
SBSFU のサンプルと TFM のサンプルの違いを太字で示しています。

4

TFM_Appli_Secure メモリ･フットプリント
設定

空のセキュアアプリケーションテンプレート

制限付き TFM 暗号化
サービスのみ完全な TFM セキュアサービス

1 レベルの隔離に対応する非
常に基本的なインフラストラクチャ

2 レベルの隔離に対応する TFM セキュリティインフラストラクチャ

2 レベルの隔離に対応する TFM セキュリティイン
フラストラクチャ

TFM 初期照明サービス

なし

いいえ

はいTFM セキュア・ストレージ・サービスなし

いいえあり（NV データは 16 KB）

TFM 内部信頼ストレージ
サービス

なし

いいえあり（NV データは 16 KB）

SHA256

オープンソース TFM リファレンス実装の場合にデフォルトで有効化されるすべての暗号化アルゴリズムで、AES す
べてのモード、RSA、ECC、HASH です

セキュリティインフラ

なし
TFM 暗号化サービス

AES GCMECDSA P256

暗号の実装

該当なし

使用されるハードウェア暗号化使用されるハードウェア暗号化

Keil®（ツールチェーン MDK-ARM 5.31.0、オプション「-Oz イメージサイズ」付き）

IDE

全体サイズ

8 KB

56KB

136KB

5

この表は、TFM セキュアアプリケーションのサイズを示しています。
セキュアアプリケーションは、非セキュアアプリケーションにより実行時に使用できるセキュアサービスを提供します。
異なるドメインの隔離とセキュア API メカニズムを備えたセキュリティアーキテクチャの設定
非セキュアなユーザアプリケーションで必要となるセキュアなサービスを提供
セキュアアプリケーションのバイナリはファームウェアイメージにカプセル化され、このファームウェアイメージには、「セキュア・ブート」または「セキュアファームウェア更新」機
能のコンテキストで使用されるメタデータが含まれています。
セキュアアプリケーションイメージのサイズは、設定の影響を受けます。
この表は、3 つの例を示しています。
空のセキュアアプリケーションテンプレート
制限付き TFM 暗号化サービスのみ
完全な TFM セキュアサービス

5

TFM_Appli_NonSecure のメモリ･フットプリント
設定
ファームウェアスロット数

セキュアアプリケーション

SBSFU の例
1

2

1 レベルの隔離

PSA L2 セキュリティインフラストラクチャ

基本トグル GPIO

完全な TFM セキュアサービス（オープンソース TFM リファレンス実装ではすべての暗号化アルゴリズムがデフォルトで有効化されています）

ローカル・ローダあり（UART/Ymodem プロトコル）

暗号の実装
IDE

アプリケーションで使用可能な最大サイズ

TFM の完全な例

ハードウェアアクセラレーション
Keil®（ツールチェーン MDK-ARM 5.31.0、オプション「-Oz イメージサイズ」付き）

最大 1.9M バイト

最大 750 KB

6

この表は、TFM 非セキュアアプリケーションのサイズを示しています。
内部 Flash メモリが使用される場合、非セキュアアプリケーション領域として使用可能なサイズは設定によって異なります。
この表に、STM32CubeU5 マイクロコントローラパッケージで提供されている 2 つの例を示します。
- SBSFU の例- TFM の完全な例

6

TFM_Loader のメモリ･フットプリント

設定

1 つの画像スロット

2 つの画像スロット

ファームウェアスロット数

1（プライマリスロットのみ）

2

Keil®（ツールチェーン MDK-ARM 5.31.0、オプション「-Oz イメージサイズ」付き）

IDEインタフェース

UART インタフェース

UART インタフェース

ダウンロードプロトコル

Ymodem プロトコル

Ymodem プロトコル

全体サイズ

セキュア：8 KB

セキュア：0 KB

非セキュア：16 KB

非セキュア：16 KB

7

この表は、TFM ローダのサイズを示しています。
TFM_Loader アプリケーションでは、Ymodem プロトコルに基づく UART イン
タフェースを使用して（一例として）、新しいファームウェアバージョンをダウンロードできます。
TFM_Loader アプリケーションはオプションです。必要でない場合は、完全に取り外すことができます。
インテグレータが、製品仕様に従って設定したり、他のハードウェアインタフェースや他のプロトコルをサポートするようにカスタマイズしたりできます。
TFM_Loader アプリケーションのサイズは、設定の影響を受ける可能性があります。
この表は、2 つの例を示しています。
- 1 つの画像スロット- 2 つの画像スロット

7

© STMicroelectronics - All rights reserved.
ST logo is a trademark or a registered trademark of STMicroelectronics International NV or its affiliates in the EU and/or other countries.
For additional information about ST trademarks, please refer to www.st.com/trademarks.
All other product or service names are the property of their respective owners.

このプレゼンテーションにご参加いただき、ありがとうございました。
TFM の動作を詳しく説明したプレゼンテーションを参照してください。
- STM32U5 の TFM 製品- TFM ポインタ8