blob: f1669d3c5fb6cde52eb41573d9d642574f26e98e [file] [log] [blame]
Anton Komlev2cd91532022-11-17 13:36:55 +00001.. _tf-m_profiles:
2
3#############
Anton Komlevaffe14f2022-11-01 00:07:41 +00004TF-M Profiles
Anton Komlev2cd91532022-11-17 13:36:55 +00005#############
Anton Komlevaffe14f2022-11-01 00:07:41 +00006
7The capabilities and resources may dramatically vary on different IoT devices.
8Some IoT devices may have very limited memory resource. The program on those devices should keep
9small memory footprint and basic functionalities.
10On the other hand, some devices may consist of more memory and extended storage, to support stronger
11software capabilities.
12
13Diverse IoT use cases also require different levels of security and requirements on device resource.
14For example, use cases require different cipher capabilities. Selecting cipher suites can be
15sensitive to memory footprint on devices with constrained resource.
16
17Trusted Firmware-M (TF-M) defines several general profiles, such as Profile Small, Profile Medium,
18Profile Medium ARoT-less and Profile Large, to provide different levels of security to fit diverse
19device capabilities and use cases applied on the top of the base configuration.
20
21Each profile specifies a predefined list of features, targeting typical use cases with specific
22hardware constraints. Profiles can serve as reference designs, based on which developers can
23continue further development and configurations, according to use case.
24
25TF-M Profiles align with Platform Security Architecture specifications and certification
26guidelines. It can help vendors to simplify security configuring for PSA certification.
27
28Please check the table below to compare differences while details are discussed
29in the links below.
30
31.. toctree::
32 :maxdepth: 1
33 :glob:
34
35 Small <tfm_profile_small>
36 ARoT-less <tfm_profile_medium_arot-less>
37 Medium <tfm_profile_medium>
38 Large <tfm_profile_large>
39
40+----------------------------------------+--------+--------+---------+--------+--------+
41| Option | Base | Small |ARoT-less| Medium | Large |
42+========================================+========+========+=========+========+========+
Anton Komlev5fd99432022-11-26 22:08:05 +000043| TFM_ISOLATION_LEVEL | 1 | 1 | 1 | 2 | 3 |
Anton Komlevaffe14f2022-11-01 00:07:41 +000044+----------------------------------------+--------+--------+---------+--------+--------+
45| CONFIG_TFM_SPM_BACKEND | SFN | SFN | SFN | IPC | IPC |
46+----------------------------------------+--------+--------+---------+--------+--------+
47| TFM_PARTITION_CRYPTO | OFF | ON | ON | ON | ON |
48+----------------------------------------+--------+--------+---------+--------+--------+
49| TFM_PARTITION_INTERNAL_TRUSTED_STORAGE | OFF | ON | ON | ON | ON |
50+----------------------------------------+--------+--------+---------+--------+--------+
51| TFM_PARTITION_PLATFORM | OFF | OFF | ON | ON | ON |
52+----------------------------------------+--------+--------+---------+--------+--------+
53| TFM_PARTITION_PROTECTED_STORAGE | OFF | OFF | OFF | ON | ON |
54+----------------------------------------+--------+--------+---------+--------+--------+
55| TFM_PARTITION_INITIAL_ATTESTATION | OFF | ON | ON | ON | ON |
56+----------------------------------------+--------+--------+---------+--------+--------+
Anton Komlev5fd99432022-11-26 22:08:05 +000057| SYMMETRIC_INITIAL_ATTESTATION | OFF | ON | OFF | OFF | OFF |
Anton Komlevaffe14f2022-11-01 00:07:41 +000058+----------------------------------------+--------+--------+---------+--------+--------+
59| TFM_PARTITION_FIRMWARE_UPDATE | OFF | OFF | ON | OFF | OFF |
60+----------------------------------------+--------+--------+---------+--------+--------+
Anton Komlev5fd99432022-11-26 22:08:05 +000061| PS_CRYPTO_AEAD_ALG | GCM | `-` | `-` | CCM | CCM |
62+----------------------------------------+--------+--------+---------+--------+--------+
63| PSA_FRAMEWORK_HAS_MM_IOVEC | OFF | ON | OFF | OFF | OFF |
64+----------------------------------------+--------+--------+---------+--------+--------+
65| MCUBOOT_IMAGE_NUMBER :sup:`1` | 2 | 1 | 2 | 2 | 2 |
66+----------------------------------------+--------+--------+---------+--------+--------+
Anton Komlevaffe14f2022-11-01 00:07:41 +000067| *Advanced options, defined in the corresponded header (.h) file* |
68+----------------------------------------+--------+--------+---------+--------+--------+
Andrej Butok44d9d6c2023-05-26 13:41:25 +020069| CRYPTO_ENGINE_BUF_SIZE | 0x2080 | 0x400 | 0x2080 | 0x2080 | 0x2380 |
Anton Komlevaffe14f2022-11-01 00:07:41 +000070+----------------------------------------+--------+--------+---------+--------+--------+
Anton Komlev5bc799f2022-11-10 18:22:48 +000071| CRYPTO_ASYM_SIGN_MODULE_ENABLED | ON | OFF | ON | ON | ON |
Anton Komlevaffe14f2022-11-01 00:07:41 +000072+----------------------------------------+--------+--------+---------+--------+--------+
Anton Komlev5bc799f2022-11-10 18:22:48 +000073| CRYPTO_ASYM_ENCRYPT_MODULE_ENABLED | ON | OFF | OFF | OFF | ON |
Anton Komlevaffe14f2022-11-01 00:07:41 +000074+----------------------------------------+--------+--------+---------+--------+--------+
75| CRYPTO_SINGLE_PART_FUNCS_DISABLED | OFF | ON | OFF | OFF | OFF |
76+----------------------------------------+--------+--------+---------+--------+--------+
77| CRYPTO_CONC_OPER_NUM | 8 | 4 | 8 | 8 | 8 |
78+----------------------------------------+--------+--------+---------+--------+--------+
Anton Komlevaffe14f2022-11-01 00:07:41 +000079| CONFIG_TFM_CONN_HANDLE_MAX_NUM | 8 | 3 | 8 | 8 | 8 |
80+----------------------------------------+--------+--------+---------+--------+--------+
Anton Komlev5fd99432022-11-26 22:08:05 +000081| ITS_BUF_SIZE :sup:`2` | 512 | 32 | 32 | 32 | 512 |
Anton Komlevaffe14f2022-11-01 00:07:41 +000082+----------------------------------------+--------+--------+---------+--------+--------+
Anton Komlev5fd99432022-11-26 22:08:05 +000083
841. `MCUBOOT_IMAGGE_NUMBER` value is taken from MCUBoot default configuration,
85 execept profile Small.
862. Many platforms redefine `ITS_BUF_SIZE` value.
Anton Komlevaffe14f2022-11-01 00:07:41 +000087
88Each profile has predefined configuration for cryptographic library, located in
89``/lib/ext/mbedcrypto/mbedcrypto_config/``
90
91--------------
92
Anton Komlev2cd91532022-11-17 13:36:55 +000093*Copyright (c) 2020, Arm Limited. All rights reserved.*