diff --git a/docs/threat_models/TF-M-block-diagram.png b/docs/threat_models/TF-M-block-diagram.png
new file mode 100644
index 0000000..e5d0371
--- /dev/null
+++ b/docs/threat_models/TF-M-block-diagram.png
Binary files differ
diff --git a/docs/threat_models/generic_thread_model.rst b/docs/threat_models/generic_thread_model.rst
new file mode 100644
index 0000000..dbbf605
--- /dev/null
+++ b/docs/threat_models/generic_thread_model.rst
@@ -0,0 +1,1095 @@
+#######################################
+Trusted Firmware-M Generic Threat Model
+#######################################
+
+************
+Introduction
+************
+
+This document introduces a generic thread model of Trusted Firmware-M (TF-M).
+This generic thread model provides an overall analysis of TF-M implementation
+and identifies general threats and mitigation.
+
+.. note::
+
+  If you think a security vulnerability is found, please follow
+  Trustedfirmware.org [Security-Incident-Process]_ to contact TF-M security
+  team.
+
+Scope
+=====
+
+TF-M supports diverse models and topologies. It also implements multiple
+isolation levels. Each case may focus on different target of evaluation (TOE)
+and identify different assets and threats.
+TF-M implementation consists of several secure services, defined as
+Root of Trust (RoT) service. Those RoT services belong to diverse RoT
+(Application RoT or PSA RoT) and access different assets and hardware. Therefore
+each RoT service may require a dedicated threat model.
+
+The analysis on specific models, topologies or RoT services may be covered in
+dedicated thread model documents. Those threat models are out of the scope of
+this document.
+
+Methodology
+===========
+
+The threat modeling in this document follows the process listed below to
+build up the threat model.
+
+- Target of Evaluation (TOE)
+- Assets identification
+- Data Flow Diagram (DFD)
+- Threats Prioritization
+- Threats identification
+
+TOE is the entity on which threat modeling is performed. The logic behind this
+process is to firstly investigate the TOE which could be a system, solution or
+use case. This first step helps to identify the assets to be protected in TOE.
+
+According to TOE and assets, Trust Boundaries can be determined. The Data Flow
+Diagram (DFD) across Trust Boundaries is then defined to help identify the
+threats.
+
+Those threats should be prioritized based on a specific group of principals and
+metrics. The principals and metrics should also be specified.
+
+********************
+Target of Evaluation
+********************
+
+A typical TF-M system diagram from a high-level overview is shown below. TF-M is
+running in the Secure Processing Environment (SPE) and NS software is running in
+Non-secure Processing Environment (NSPE). For more details, please refer to
+Platform Security Architecture Firmware Framework for M (FF-M) [FF-M]_.
+
+.. figure:: TF-M-block-diagram.png
+
+The TOE in this general model is the SPE, including TF-M and other components
+running in SPE.
+
+The TOE can vary in different TF-M models, RoT services and usage scenarios.
+Refer to dedicated thread models for the specific TOE definitions.
+
+********************
+Asset identification
+********************
+
+In this threat model, assets include the general items listed below:
+
+- Hardware Root of Trust data, e.g.
+
+    - Hardware Unique Key (HUK)
+    - Root authentication key
+    - Other embedded root keys
+
+- Software RoT data, e.g.
+
+    - Secure Partition Manager (SPM) code and data
+    - Secure partition code and data
+    - NSPE data stored in SPE
+    - Data generated in SPE as requested by NSPE
+
+- Availability of entire RoT service
+
+- Secure logs, including event logs
+
+Assets may vary in different use cases and implementations. Additional assets
+can be defined in an actual usage scenario and a dedicated threat model.
+
+For example, in a network camera use case, the following data can be defined as
+assets too:
+
+- Certificate for connecting to cloud
+- Session keys for encryption/decryption in the communication with cloud
+- Keys to encrypt/decrypt the videos and photos
+
+*****************
+Data Flow Diagram
+*****************
+
+The Trust Boundary isolates SPE from NSPE, according to the TOE definition in
+`Target of Evaluation`_. The Trust Boundary mapped to block diagram is shown
+in the figure below. Other modules inside SPE stay in the same TOE as TF-M does.
+
+Valid Data flows across the Trust Boundary are also shown in the figure below.
+This thread model only focuses on the data flows related to TF-M.
+
+.. figure:: overall-DFD.png
+
+More details of data flows are listed below.
+
+.. _data-flow-table:
+
+.. table:: TF-M Data Flows between NSPE and SPE
+
+  +-----------+----------------------------------------------------------------+
+  | Data flow | Description                                                    |
+  +===========+================================================================+
+  | ``DF1``   | TF-M initializes NS entry and activates NSPE.                  |
+  |           |                                                                |
+  |           | - On single Armv8-M core platforms, TF-M will hand over the    |
+  |           |   control to Non-secure state.                                 |
+  |           | - On dual-cpu platforms, Secure core starts NS core booting.   |
+  +-----------+----------------------------------------------------------------+
+  | ``DF2``   | NSPE requests TF-M RoT services.                               |
+  |           |                                                                |
+  |           | - In TF-M Library model, NS invokes Secure Function calls      |
+  |           | - In TF-M IPC model, NS invokes PSA Client calls based on IPC  |
+  |           |   protocol defined in [FF-M]_.                                 |
+  |           |                                                                |
+  |           | In single Armv8-M core scenarios, SG instruction is executed   |
+  |           | in Non-secure Callable region to trigger a transition from     |
+  |           | Non-secure state to Secure state.                              |
+  |           |                                                                |
+  |           | On dual-cpu platforms, non-secure core sends PSA Client calls  |
+  |           | to secure core via mailbox.                                    |
+  +-----------+----------------------------------------------------------------+
+  | ``DF3``   | Secure Partitions fetch input data from NS and write back      |
+  |           | output data to NS.                                             |
+  |           |                                                                |
+  |           | In TF-M IPC model, as required in [FF-M]_, Secure Partitions   |
+  |           | should not directly access NSPE memory. Instead, RoT services  |
+  |           | relies on TF-M SPM to access NSPE memory.                      |
+  +-----------+----------------------------------------------------------------+
+  | ``DF4``   | TF-M returns RoT service results to NSPE after NS request to   |
+  |           | RoT service is completed.                                      |
+  |           |                                                                |
+  |           | In single Armv8-M core scenarios, it also trigger a transition |
+  |           | from Secure state back to Non-secure state.                    |
+  |           |                                                                |
+  |           | On dual-cpu platforms, secure core returns the result to       |
+  |           | non-secure core via mailbox.                                   |
+  +-----------+----------------------------------------------------------------+
+  | ``DF5``   | Non-secure interrupts preempt SPE execution in single Armv8-M  |
+  |           | core scenarios.                                                |
+  +-----------+----------------------------------------------------------------+
+  | ``DF6``   | Secure interrupts preempt NSPE execution in single Armv8-M     |
+  |           | core scenarios.                                                |
+  +-----------+----------------------------------------------------------------+
+
+.. note::
+
+  All the other data flows across the Trusted Boundary besides the valid ones
+  mentioned above should be prohibited by default.
+  Proper isolation must be configured to prevent NSPE directly accessing SPE.
+
+  Threats irrelevant to data flows in
+  :ref:`TF-M Data Flows between NSPE and SPE <data-flow-table>` may be specified
+  in `Miscellaneous threats`_.
+
+Data flows inside SPE (informative)
+===================================
+
+Since all the SPE components stay in the TOE within the same Trust Boundary in
+this threat model, the data flows between SPE components are not covered in this
+threat model. Instead, those data flows and corresponding threats will be
+identified in the dedicated threat model documents of TF-M RoT services and
+usage scenarios.
+
+Those data flows inside SPE include following examples:
+
+- Data flows between TF-M and BL2
+- Data flows between RoT services and SPM
+- Data flows between RoT services and corresponding secure hardware and assets,
+  such as secure storage device, crypto hardware accelerator and Hardware Unique
+  Key (HUK).
+
+*********************
+Threat identification
+*********************
+
+Threat priority
+===============
+
+Threat priority is indicated by the score calculated via Common Vulnerability
+Scoring System (CVSS) Version 3.1 [CVSS]_. The higher the threat scores, the
+greater severity the threat is with and the higher the priority is.
+
+CVSS scores can be mapped to qualitative severity ratings defined in CVSS 3.1
+specification [CVSS_SPEC]_. This threat model follows the same mapping between
+CVSS scores and threat priority rating.
+
+As a generic threat model, this document focuses on *Base Score* which reflects
+the constant and general severity of a threat according to its intrinsic
+characteristics.
+
+The *Impacted Component* defined in [CVSS_SPEC]_ refers to the assets listed in
+`Asset identification`_.
+
+Threats and mitigation list
+===========================
+
+This section lists generic threats and corresponding mitigation, based on the
+the analysis of data flows in `Data Flow Diagram`_.
+
+Threats are identified following ``STRIDE`` model. Please refer to [STRIDE]_ for
+more details.
+
+The field ``CVSS Score`` reflects the threat priority defined in
+`Threat priority`_. The field ``CVSS Vector String`` contains the textual
+representation of the CVSS metric values used to score the threat. Refer to
+[CVSS_SPEC]_ for more details of CVSS vector string.
+
+.. note::
+
+  A generic threat may have different behaviors and therefore require different
+  mitigation, in diverse TF-M models and usage scenarios.
+
+  This threat model document focuses on general analysis of the following
+  threats. For the details in a specific configuration and usage scenario,
+  please refer to the dedicated threat model document.
+
+NS entry initialization
+-----------------------
+
+This section identifies threats on ``DF1`` defined in `Data Flow Diagram`_.
+
+.. table:: TFM-GENERIC-NS-INIT-T-1
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-NS-INIT-T-1**                                |
+  +---------------+------------------------------------------------------------+
+  | Description   | The NS image can be tampered by an attacker                |
+  +---------------+------------------------------------------------------------+
+  | Justification | An attack may tamper the NS image to inject malicious code |
+  +---------------+------------------------------------------------------------+
+  | Category      | Tampering                                                  |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | By default TF-M relies on MCUBoot to validate NS image.    |
+  |               | The validation of NS image integrity and authenticity is   |
+  |               | completed in secure boot before jumping to NS entry or     |
+  |               | booting up NS core.                                        |
+  |               | Refer to [SECURE-BOOT]_ for more details.                  |
+  |               |                                                            |
+  |               | The validation may vary in diverse vendor platforms        |
+  |               | specific Chain of Trust (CoT) implementation.              |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 3.5 (Low)                                                  |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+.. table:: TFM-GENERIC-NS-INIT-T-2
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-NS-INIT-T-2**                                |
+  +---------------+------------------------------------------------------------+
+  | Description   | An attacker may replace the current NS image with an older |
+  |               | version.                                                   |
+  +---------------+------------------------------------------------------------+
+  | Justification | The attacker downgrades the NS image with an older version |
+  |               | which has been deprecated due to known security issues.    |
+  |               |                                                            |
+  |               | The older version image can pass the image signature       |
+  |               | validation and its vulnerabilities can be exploited by     |
+  |               | attackers.                                                 |
+  +---------------+------------------------------------------------------------+
+  | Category      | Tampering                                                  |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | TF-M relies on MCUBoot to perform anti-rollback            |
+  |               | protection.                                                |
+  |               |                                                            |
+  |               | TF-M defines a non-volatile counter API to support         |
+  |               | anti-rollback. Each platform must implement it using       |
+  |               | specific trusted hardware non-volatile counters.           |
+  |               | For more details, refer to [ROLLBACK-PROTECT]_.            |
+  |               |                                                            |
+  |               | The anti-rollback protection implementation can vary on    |
+  |               | diverse platforms.                                         |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 3.5 (Low)                                                  |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+.. table:: TFM-GENERIC-NS-INIT-T-I-1
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-NS-INIT-T-I-1**                              |
+  +---------------+------------------------------------------------------------+
+  | Description   | If SPE doesn't complete isolation configuration before     |
+  |               | NSPE starts, NSPE can access secure regions which it is    |
+  |               | disallowed to.                                             |
+  +---------------+------------------------------------------------------------+
+  | Justification | Secure data can be tampered or disclosed if NSPE is        |
+  |               | activated and accesses secure regions before isolation     |
+  |               | configuration is completed by SPE.                         |
+  +---------------+------------------------------------------------------------+
+  | Category      | Tampering/Information disclosure                           |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | SPE must complete and enable proper isolation to protect   |
+  |               | secure regions from being accessed by NSPE, before jumping |
+  |               | to NS entry or booting up NS core.                         |
+  |               |                                                            |
+  |               | TF-M executes isolation configuration at early stage of    |
+  |               | secure initialization before NS initialization starts.     |
+  |               |                                                            |
+  |               | On dual-cpu platform, platform specific initialization     |
+  |               | must halt NS core until isolation is completed, as defined |
+  |               | in [DUAL-CPU-BOOT]_.                                       |
+  |               |                                                            |
+  |               | TF-M defines isolation configuration HALs for platform     |
+  |               | implementation. The specific isolation configuration       |
+  |               | depends on platform specific implementation.               |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 9.0 (Critical)                                             |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+.. table:: TFM-GENERIC-NS-INIT-T-I-2
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-NS-INIT-T-I-2**                              |
+  +---------------+------------------------------------------------------------+
+  | Description   | If SPE doesn't complete isolation configuration before     |
+  |               | NSPE starts, NSPE can control devices or peripherals which |
+  |               | it is disallowed to.                                       |
+  +---------------+------------------------------------------------------------+
+  | Justification | On some platforms, devices and peripherals can be          |
+  |               | configured as Secure state in runtime. If security status  |
+  |               | configuration of those device and peripherals are not      |
+  |               | properly completed before NSPE starts, NSPE can control    |
+  |               | those device and peripherals and may be able to tamper     |
+  |               | data or access secure data.                                |
+  +---------------+------------------------------------------------------------+
+  | Category      | Tampering/Information disclosure                           |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | SPE must complete and enable proper configuration and      |
+  |               | isolation to protect critical devices and peripherals from |
+  |               | being accessed by NSPE, before jumping to NS entry or      |
+  |               | booting up NS core.                                        |
+  |               |                                                            |
+  |               | TF-M executes isolation configuration of devices and       |
+  |               | peripherals at early stage of secure initialization before |
+  |               | NS initialization starts.                                  |
+  |               |                                                            |
+  |               | The specific isolation configuration depends on platform   |
+  |               | specific implementation.                                   |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 9.0 (Critical)                                             |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+.. table:: TFM-GENERIC-NS-INIT-I-2
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-NS-INIT-I-2**                                |
+  +---------------+------------------------------------------------------------+
+  | Description   | If SPE leaves some SPE information in non-secure memory    |
+  |               | or shared registers when NSPE starts, NSPE may access      |
+  |               | those SPE information.                                     |
+  +---------------+------------------------------------------------------------+
+  | Justification | If NSPE can access those SPE information from shared       |
+  |               | registers or non-secure memory, secure information may be  |
+  |               | disclosed.                                                 |
+  +---------------+------------------------------------------------------------+
+  | Category      | Information disclosure                                     |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | SPE must clean up the secure information from shared       |
+  |               | registers before NS starts.                                |
+  |               |                                                            |
+  |               | TF-M invalidates registers not banked before handing over  |
+  |               | the system to NSPE on single Armv8-M platform.             |
+  |               |                                                            |
+  |               | On dual-cpu platforms, shared registers are implementation |
+  |               | defined, such as Inter-Processor Communication registers.  |
+  |               | Dual-cpu platforms must not store any data which may       |
+  |               | disclose secure information in the shared registers.       |
+  |               |                                                            |
+  |               | SPE must avoid storing SPE information in non-secure       |
+  |               | memory.                                                    |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 4.3 (Medium)                                               |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+.. table:: TFM-GENERIC-NS-INIT-D-1
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-NS-INIT-D-1**                                |
+  +---------------+------------------------------------------------------------+
+  | Description   | An attacker may block NS to boot up                        |
+  +---------------+------------------------------------------------------------+
+  | Justification | An attacker may block NS to boot up, such as by corrupting |
+  |               | NS image, to stop the whole system from performing normal  |
+  |               | functionalities.                                           |
+  +---------------+------------------------------------------------------------+
+  | Category      | Denial of service                                          |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | No SPE information will be disclosed and TF-M won't be     |
+  |               | directly impacted.                                         |
+  |               |                                                            |
+  |               | It relies on NSPE and platform specific implementation to  |
+  |               | mitigate this threat. It is out of scope of this threat    |
+  |               | model.                                                     |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 4.0 (Medium)                                               |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+NSPE requests TF-M secure service
+---------------------------------
+
+This section identifies threats on ``DF2`` defined in `Data Flow Diagram`_.
+
+.. table:: TFM-GENERIC-REQUEST-SERVICE-S-1
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-REQUEST-SERVICE-S-1**                        |
+  +---------------+------------------------------------------------------------+
+  | Description   | A malicious NS application may pretend as a secure client  |
+  |               | to access secure data which NSPE must not directly access. |
+  +---------------+------------------------------------------------------------+
+  | Justification | [FF-M]_ defines ``Client ID`` to distinguish clients which |
+  |               | request RoT services. Secure clients are assigned with     |
+  |               | positive IDs and non-secure clients are assigned with      |
+  |               | negative ones.                                             |
+  |               |                                                            |
+  |               | A malicious NS application may provide a positive          |
+  |               | ``Client ID`` to pretend as a secure client to access      |
+  |               | secure data.                                               |
+  +---------------+------------------------------------------------------------+
+  | Category      | Spoofing                                                   |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | TF-M checks the ``Client ID`` from NSPE. If the NS         |
+  |               | ``Client ID`` is not a valid one, TF-M will report this as |
+  |               | a security error.                                          |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 8.4 (High)                                                 |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+.. table:: TFM-GENERIC-REQUEST-SERVICE-T-1
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-REQUEST-SERVICE-T-1**                        |
+  +---------------+------------------------------------------------------------+
+  | Description   | An attacker in NSPE may tamper the service request input   |
+  |               | or output vectors between check and use                    |
+  |               | (Time-Of-Check-to-Time-Of-Use (TOCTOU)).                   |
+  +---------------+------------------------------------------------------------+
+  | Justification | If SPE validates the content in input/output vectors       |
+  |               | locally in NSPE memory, an attacker in NSPE can have a     |
+  |               | chance to tamper the content after the validation          |
+  |               | successfully passes. Then SPE will provide RoT service     |
+  |               | according to the corrupted parameters and it may cause     |
+  |               | further security issues.                                   |
+  +---------------+------------------------------------------------------------+
+  | Category      | Tampering                                                  |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | In TF-M implementation, the validation of NS input/output  |
+  |               | vectors are only executed after those vectors are copied   |
+  |               | from NSPE into SPE. It prevents an attack from NSPE to     |
+  |               | tamper those parameters after validation in TF-M.          |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 7.8 (High)                                                 |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+.. table:: TFM-GENERIC-REQUEST-SERVICE-T-2
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-REQUEST-SERVICE-T-2**                        |
+  +---------------+------------------------------------------------------------+
+  | Description   | A malicious NS application may request to tamper data      |
+  |               | belonging to SPE.                                          |
+  +---------------+------------------------------------------------------------+
+  | Justification | A malicious NS application may request SPE RoT services to |
+  |               | write malicious value to SPE data. The malicious NS        |
+  |               | application may try to tamper SPE assets, such as keys, or |
+  |               | modify configurations in SPE. The SPE data belongs to      |
+  |               | components in SPE and must not be accessed by NSPE.        |
+  +---------------+------------------------------------------------------------+
+  | Category      | Tampering                                                  |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | TF-M executes memory access check to all the RoT service   |
+  |               | requests. If a request doesn't have enough permission to   |
+  |               | access the target memory region, TF-M will refuse this     |
+  |               | request and assert a security error.                       |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 7.1 (High)                                                 |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+.. table:: TFM-GENERIC-REQUEST-SERVICE-R-1
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-REQUEST-SERVICE-R-1**                        |
+  +---------------+------------------------------------------------------------+
+  | Description   | A NS application may repudiate that it has requested       |
+  |               | services from a RoT service.                               |
+  +---------------+------------------------------------------------------------+
+  | Justification | A malicious NS application may call a RoT service to       |
+  |               | access critical data in SPE, which it is disallowed to,    |
+  |               | via a non-public vulnerability. It may refuse to admit     |
+  |               | that it has accessed that data.                            |
+  +---------------+------------------------------------------------------------+
+  | Category      | Repudiation                                                |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | TF-M implements an event logging secure service to record  |
+  |               | the critical events, such as the access to critical data.  |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 0.0 (None)                                                 |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:N               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+.. table:: TFM-GENERIC-REQUEST-SERVICE-I-1
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-REQUEST-SERVICE-I-1**                        |
+  +---------------+------------------------------------------------------------+
+  | Description   | A malicious NS application may request to read data        |
+  |               | belonging to SPE.                                          |
+  +---------------+------------------------------------------------------------+
+  | Justification | A malicious NS application may request SPE RoT services to |
+  |               | copy SPE data to NS memory. The SPE data belongs to        |
+  |               | components in SPE and must not be disclosed to NSPE, such  |
+  |               | as root keys.                                              |
+  +---------------+------------------------------------------------------------+
+  | Category      | Information disclosure                                     |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | TF-M executes memory access check to all the RoT service   |
+  |               | requests. If a request doesn't have enough permission to   |
+  |               | access the target memory region, TF-M will refuse this     |
+  |               | request and assert a security error.                       |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 7.1 (High)                                                 |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+.. table:: TFM-GENERIC-REQUEST-SERVICE-T-I-1
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-REQUEST-SERVICE-T-I-1**                      |
+  +---------------+------------------------------------------------------------+
+  | Description   | A malicious NS application may request to control secure   |
+  |               | device and peripherals, on which it doesn't have the       |
+  |               | permission.                                                |
+  +---------------+------------------------------------------------------------+
+  | Justification | A malicious NS application may request RoT services to     |
+  |               | control secure device and peripherals, on which it doesn't |
+  |               | have the permission.                                       |
+  +---------------+------------------------------------------------------------+
+  | Category      | Tampering/Information disclose                             |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | TF-M performs client check to validate whether the client  |
+  |               | has the permission to access the secure device and         |
+  |               | peripherals.                                               |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 9.0 (Critical)                                             |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+.. table:: TFM-GENERIC-REQUEST-SERVICE-D-1
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-REQUEST-SERVICE-D-1**                        |
+  +---------------+------------------------------------------------------------+
+  | Description   | A Malicious NS applications may frequently call secure     |
+  |               | services to block secure service requests from other NS    |
+  |               | applications.                                              |
+  +---------------+------------------------------------------------------------+
+  | Justification | TF-M runs on IoT devices with constrained resource. Even   |
+  |               | though multiple outstanding NS PSA Client calls can be     |
+  |               | supported in system, the number of NS PSA client calls     |
+  |               | served by TF-M simultaneously are still limited.           |
+  |               |                                                            |
+  |               | Therefore, if a malicious NS application or multiple       |
+  |               | malicious NS applications continue calling TF-M secure     |
+  |               | services frequently, it may block other NS applications to |
+  |               | request secure service from TF-M.                          |
+  +---------------+------------------------------------------------------------+
+  | Category      | Denial of service                                          |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | TF-M is unable to manage behavior of NS applications.      |
+  |               | Assets are not disclosed and TF-M is neither directly      |
+  |               | impacted in this threat.                                   |
+  |               |                                                            |
+  |               | It relies on NS OS to enhance scheduling policy and        |
+  |               | prevent a single NS application to occupy entire CPU time. |
+  |               | It is beyond the scope of this threat model.               |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 4.0 (Medium)                                               |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+.. table:: TFM-GENERIC-REQUEST-SERVICE-D-2
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-REQUEST-SERVICE-D-2**                        |
+  +---------------+------------------------------------------------------------+
+  | Description   | A malicious NS application may provide invalid NS memory   |
+  |               | addresses as the addresses of input and output data in RoT |
+  |               | service requests.                                          |
+  +---------------+------------------------------------------------------------+
+  | Justification | SPE may be unable to achieve full knowledge of NS memory   |
+  |               | mapping. SPE may fail to capture those invalid NS memory   |
+  |               | addresses during memory access check since those invalid   |
+  |               | addresses may not be included in isolation configuration.  |
+  |               |                                                            |
+  |               | In that case, SPE will access those invalid NS memory      |
+  |               | addresses later to read or write data. It may trigger a    |
+  |               | system error to crash the whole system immediately.        |
+  |               |                                                            |
+  |               | The malicious NS application may be blocked by NS MPU from |
+  |               | directly accessing that invalid NS memory address. But it  |
+  |               | may manipulate SPE to access that address instead.         |
+  +---------------+------------------------------------------------------------+
+  | Category      | Denial of service                                          |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | TF-M executes memory access check to the memory addresses  |
+  |               | in all the NS requests.                                    |
+  |               |                                                            |
+  |               | On single Armv8-M core platforms, TF-M invokes ``TT``      |
+  |               | instructions to execute memory address check. If a NS      |
+  |               | memory area is not matched in any valid SAU or MPU region, |
+  |               | it will be marked as invalid and any access permission is  |
+  |               | disallowed. Therefore, SPM will reject any NS request      |
+  |               | containing invalid NS memory addresses and reports it as   |
+  |               | as a security error.                                       |
+  |               |                                                            |
+  |               | On dual-core platforms, TF-M implements a default memory   |
+  |               | access check. If a NS memory area is not found in any      |
+  |               | memory region configured for isolation, it will be marked  |
+  |               | as invalid and therefore SPM will reject the corresponding |
+  |               | NS request. It will be reported as a security error.       |
+  |               |                                                            |
+  |               | Dual-core platforms may implement platform specific memory |
+  |               | check to replace the default one. It relies on platform    |
+  |               | specific implementation to capture invalid memory address. |
+  |               | It is out of the scope of this document.                   |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 3.2 (Low)                                                  |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:N/A:L               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+RoT services read and write NS data
+-----------------------------------
+
+This section identifies threats on ``DF3`` defined in `Data Flow Diagram`_.
+
+According to [FF-M]_, in TF-M IPC model, RoT services should rely on TF-M SPM to
+obtain NS input data and send response data back to NS memory.
+
+In Library model, RoT services directly read and write NS memory to simplify the
+implementation and decrease latency.
+
+.. _TFM-GENERIC-SECURE-SERVICE-RW-T-1:
+
+.. table:: TFM-GENERIC-SECURE-SERVICE-RW-T-1
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-SECURE-SERVICE-RW-T-1**                      |
+  +---------------+------------------------------------------------------------+
+  | Description   | An attacker may tamper NS input data while the RoT service |
+  |               | is processing those data.                                  |
+  +---------------+------------------------------------------------------------+
+  | Justification | A RoT service may access NS input data multiple times      |
+  |               | during its data processing. For example, it may validate   |
+  |               | or authenticate the NS input data before it performs       |
+  |               | further processing.                                        |
+  |               |                                                            |
+  |               | If the NS input data remains in NSPE memory during the RoT |
+  |               | service execution, an attacker may tamper the NS input     |
+  |               | data in NSPE memory after the validation passes.           |
+  +---------------+------------------------------------------------------------+
+  | Category      | Tampering                                                  |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | In TF-M IPC model, RoT services request SPM to read and    |
+  |               | write NS data. TF-M SPM follows [FF-M]_ to copy the NS     |
+  |               | input data into SPE memory region owned by the RoT         |
+  |               | service, before the RoT service processes the data.        |
+  |               | Therefore, the NS input data is protected during the RoT   |
+  |               | service execution from being tampered.                     |
+  |               |                                                            |
+  |               | In TF-M Library model, RoT services can directly access NS |
+  |               | memory. If a RoT service accesses NS input data multiple   |
+  |               | times during data processing, it is required to review and |
+  |               | confirm Library model implementation of the RoT service    |
+  |               | copies NS input data into SPE memory area before it        |
+  |               | processes the data.                                        |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 3.2 (Low)                                                  |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:N               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+.. _TFM-GENERIC-SECURE-SERVICE-RW-T-2:
+
+.. table:: TFM-GENERIC-SECURE-SERVICE-RW-T-2
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-SECURE-SERVICE-RW-T-2**                      |
+  +---------------+------------------------------------------------------------+
+  | Description   | A malicious NS application may embed secure memory         |
+  |               | addresses into a structure in RoT service request input    |
+  |               | vectors, to tamper secure memory which the NS application  |
+  |               | must not access.                                           |
+  +---------------+------------------------------------------------------------+
+  | Justification | [FF-M]_ limits the total number of input/output vectors to |
+  |               | 4. If a RoT service requires more input/output vectors, it |
+  |               | may define a parameter structure which embeds multiple     |
+  |               | input/output buffers addresses.                            |
+  |               |                                                            |
+  |               | However, as a potential security risk, a malicious NS      |
+  |               | application can put secure memory addresses into a valid   |
+  |               | parameter structure to bypass TF-M validation on those     |
+  |               | memory addresses.                                          |
+  |               |                                                            |
+  |               | The parameter structure can pass TF-M memory access check  |
+  |               | since itself is valid. However, if the RoT service parses  |
+  |               | the structure and directly write malicious data from NSPE  |
+  |               | to the secure memory addresses in parameter structure, the |
+  |               | secure data will be tampered.                              |
+  +---------------+------------------------------------------------------------+
+  | Category      | Tampering                                                  |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | It should be avoided to embed memory addresses into a      |
+  |               | single input/output vector. If more than 4 memory          |
+  |               | addresses are required in a RoT service request, it is     |
+  |               | recommended to split this request into two or multiple     |
+  |               | service calls and therefore each service call requires no  |
+  |               | more than 4 input/output vectors.                          |
+  |               |                                                            |
+  |               | In TF-M IPC model, RoT services request SPM to read and    |
+  |               | write NS data. SPM will validate the target addresses and  |
+  |               | can detect the invalid addresses to mitigate this threat.  |
+  |               |                                                            |
+  |               | In TF-M Library model, RoT services can directly access NS |
+  |               | memory. It is required to review and confirm Library model |
+  |               | implementation of RoT service request doesn't embed memory |
+  |               | addresses.                                                 |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 6.3 (Medium)                                               |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:N/I:H/A:N               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+.. table:: TFM-GENERIC-SECURE-SERVICE-RW-I-1
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-SECURE-SERVICE-RW-I-1**                      |
+  +---------------+------------------------------------------------------------+
+  | Description   | Similar to TFM-GENERIC-SECURE-SERVICE-RW-T-2_, a malicious |
+  |               | NS application can embed secure memory addresses in a      |
+  |               | parameter structure in RoT service request input vectors,  |
+  |               | to read secure data which the NS application must not      |
+  |               | access.                                                    |
+  +---------------+------------------------------------------------------------+
+  | Justification | Similar to the description in                              |
+  |               | TFM-GENERIC-SECURE-SERVICE-RW-T-2_, the secure memory      |
+  |               | addresses hidden in the RoT service input/output vector    |
+  |               | structure may bypass TF-M validation. Without a proper     |
+  |               | check, the RoT service may copy secure data to NSPE        |
+  |               | according to the secure memory addresses in structure,     |
+  |               | secure information can be disclosed.                       |
+  +---------------+------------------------------------------------------------+
+  | Category      | Information disclosure                                     |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | It should be avoided to embed memory addresses into a      |
+  |               | single input/output vector. If more than 4 memory          |
+  |               | addresses are required in a RoT service request, it is     |
+  |               | recommended to split this request into two or multiple     |
+  |               | service calls and therefore each service call requires no  |
+  |               | more than 4 input/output vectors.                          |
+  |               |                                                            |
+  |               | In TF-M IPC model, RoT services request SPM to read and    |
+  |               | write NS data. SPM will validate the target addresses and  |
+  |               | can detect the invalid addresses to mitigate this threat.  |
+  |               |                                                            |
+  |               | In TF-M Library model, RoT services can directly access NS |
+  |               | memory. It is required to review and confirm Library model |
+  |               | implementation of RoT service request doesn't embed memory |
+  |               | addresses.                                                 |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 6.3 (Medium)                                               |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+TF-M returns secure service result
+----------------------------------
+
+This section identifies threats on ``DF4`` defined in `Data Flow Diagram`_.
+
+When RoT service completes the request from NSPE, TF-M returns the success or
+failure error code to NS application.
+
+In single Armv8-M core scenario, TF-M writes the return code value in the
+general purpose register and returns to Non-secure state.
+
+On dual-cpu platforms, TF-M writes the return code to NSPE mailbox message queue
+via mailbox.
+
+.. table:: TFM-GENERIC-RETURN-CODE-I-1
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-RETURN-CODE-I-1**                            |
+  +---------------+------------------------------------------------------------+
+  | Description   | SPE may leave secure data in the registers not banked      |
+  |               | after the SPE completes PSA Client calls and executes      |
+  |               | ``BXNS`` to switch Armv8-M back to Non-secure state.       |
+  +---------------+------------------------------------------------------------+
+  | Justification | If SPE doesn't clean up the secure data in registers not   |
+  |               | banked before switching into NSPE in Armv8-M core, NSPE    |
+  |               | can read the SPE context from those registers.             |
+  +---------------+------------------------------------------------------------+
+  | Category      | Information disclosure                                     |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | In single Armv8-M core scenario, TF-M cleans general       |
+  |               | purpose registers not banked before switching into NSPE to |
+  |               | prevent NSPE probing secure context from the registers.    |
+  |               |                                                            |
+  |               | Current TF-M implementation doesn't support FPU in SPE.    |
+  |               | TF-M build will stop if FPU is enabled on platform.        |
+  |               | Therefore, FPU registers doesn't contain data that needs   |
+  |               | to be protected from NSPE.                                 |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 4.3 (Medium)                                               |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+NS interrupts preempts SPE execution
+------------------------------------
+
+This section identifies threats on ``DF5`` defined in `Data Flow Diagram`_.
+
+.. table:: TFM-GENERIC-NS-INTERRUPT-I-1
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-NS-INTERRUPT-I-1**                           |
+  +---------------+------------------------------------------------------------+
+  | Description   | Shared registers may contain secure data when NS           |
+  |               | interrupts occur.                                          |
+  +---------------+------------------------------------------------------------+
+  | Justification | The secure data in shared registers should be cleaned up   |
+  |               | before NSPE can access shared registers. Otherwise, secure |
+  |               | data leakage may occur.                                    |
+  +---------------+------------------------------------------------------------+
+  | Category      | Information disclosure                                     |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | In single Armv8-M core scenario, Armv8-M architecture      |
+  |               | automatically cleans up the registers not banked before    |
+  |               | switching to Non-secure state while taking NS interrupts.  |
+  |               |                                                            |
+  |               | Current TF-M implementation doesn't support FPU in SPE.    |
+  |               | TF-M build will stop if FPU is enabled on platform.        |
+  |               | Therefore, FPU registers doesn't contain data that needs   |
+  |               | to be protected from NSPE.                                 |
+  |               |                                                            |
+  |               | On dual-cpu platforms, shared registers are implementation |
+  |               | defined, such as Inter-Processor Communication registers.  |
+  |               | Dual-cpu platforms must not store any data which may       |
+  |               | disclose secure information in the shared registers.       |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 4.3 (Medium)                                               |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+.. table:: TFM-GENERIC-NS-INTERRUPT-D-1
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-NS-INTERRUPT-D-1**                           |
+  +---------------+------------------------------------------------------------+
+  | Description   | An attacker may trigger spurious NS interrupts frequently  |
+  |               | to block SPE execution.                                    |
+  +---------------+------------------------------------------------------------+
+  | Justification | In single Armv8-M core scenario, an attacker may inject a  |
+  |               | malicious NS application or hijack a NS hardware to        |
+  |               | frequently trigger spurious NS interrupts to keep          |
+  |               | preempting SPE and block SPE to perform normal secure      |
+  |               | execution.                                                 |
+  +---------------+------------------------------------------------------------+
+  | Category      | Denial of service                                          |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | It is out of scope of TF-M.                                |
+  |               |                                                            |
+  |               | Assets protected by TF-M won't be leaked. TF-M won't be    |
+  |               | directly impacted.                                         |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 4.0 (Medium)                                               |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+Secure interrupts preempts NSPE execution
+-----------------------------------------
+
+This section identifies threats on ``DF6`` defined in `Data Flow Diagram`_.
+
+.. table:: TFM-GENERIC-S-INTERRUPT-I-1
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-S-INTERRUPT-I-1**                            |
+  +---------------+------------------------------------------------------------+
+  | Description   | Shared registers may contain secure data when Armv8-M core |
+  |               | switches back to Non-secure state on Secure interrupt      |
+  |               | return.                                                    |
+  +---------------+------------------------------------------------------------+
+  | Justification | Armv8-M architecture doesn't automatically clean up shared |
+  |               | registers while returning to Non-secure state during       |
+  |               | Secure interrupt return.                                   |
+  |               |                                                            |
+  |               | If SPE leaves critical data in the Armv8-M registers not   |
+  |               | banked, NSPE can read secure context from those registers  |
+  |               | and secure data leakage may occur.                         |
+  +---------------+------------------------------------------------------------+
+  | Category      | Information disclosure                                     |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | TF-M saves NPSE context in general purpose register R4~R11 |
+  |               | into secure stack during secure interrupt entry.           |
+  |               | After secure interrupt handling completes, TF-M unstacks   |
+  |               | NSPE context from secure stack to overwrite secure context |
+  |               | in R4~R11 before secure interrupt return.                  |
+  |               |                                                            |
+  |               | Armv8-M architecture will automatically unstack NSPE       |
+  |               | context from non-secure stack to overwrite other registers |
+  |               | not banked, such as R0~R3 and R12, during secure interrupt |
+  |               | return, before NSPE software can access those registers.   |
+  |               |                                                            |
+  |               | Current TF-M implementation doesn't support FPU in SPE.    |
+  |               | TF-M build will stop if FPU is enabled on platform.        |
+  |               | Therefore, FPU registers doesn't contain data that needs   |
+  |               | to be protected from NSPE.                                 |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 4.3 (Medium)                                               |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+Miscellaneous threats
+---------------------
+
+This section collects threats irrelevant to the valid TF-M data flows shown
+above.
+
+.. table:: TFM-GENERIC-STACK-SEAL
+  :widths: 10 50
+
+  +---------------+------------------------------------------------------------+
+  | Index         | **TFM-GENERIC-STACK_SEAL**                                 |
+  +---------------+------------------------------------------------------------+
+  | Description   | Armv8-M processor Secure software Stack Sealing            |
+  |               | vulnerability.                                             |
+  +---------------+------------------------------------------------------------+
+  | Justification | On Armv8-M based processors with TrustZone, if Secure      |
+  |               | software does not properly manage the Secure stacks when   |
+  |               | the stacks are created, or when performing non-standard    |
+  |               | transitioning between states or modes, for example,        |
+  |               | creating a fake exception return stack frame to            |
+  |               | de-privilege an interrupt, it is possible for Non-secure   |
+  |               | world software to manipulate the Secure Stacks, and        |
+  |               | potentially influence Secure control flow.                 |
+  |               |                                                            |
+  |               | Refer to [STACK-SEAL]_ for details.                        |
+  +---------------+------------------------------------------------------------+
+  | Category      | Elevation of privilege                                     |
+  +---------------+------------------------------------------------------------+
+  | Mitigation    | TF-M has implemented common mitigation against stack seal  |
+  |               | vulnerability.                                             |
+  |               |                                                            |
+  |               | Refer to [ADVISORY-TFMV-1]_ for details on analysis and    |
+  |               | mitigation in TF-M.                                        |
+  +---------------+------------------------------------------------------------+
+  | CVSS Score    | 5.3 (Medium)                                               |
+  +---------------+------------------------------------------------------------+
+  | CVSS Vector   | CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:L               |
+  | String        |                                                            |
+  +---------------+------------------------------------------------------------+
+
+***************
+Version control
+***************
+
+.. table:: Version control
+
+  +---------+--------------------------------------------------+---------------+
+  | Version | Description                                      | TF-M version  |
+  +=========+==================================================+===============+
+  | v0.1    | Initial draft                                    | TF-M v1.1     |
+  +---------+--------------------------------------------------+---------------+
+
+*********
+Reference
+*********
+
+.. [Security-Incident-Process] `Security Incident Process <https://developer.trustedfirmware.org/w/collaboration/security_center/reporting/>`_
+
+.. [FF-M] `Arm® Platform Security Architecture Firmware Framework 1.0 <https://developer.arm.com/-/media/Files/pdf/PlatformSecurityArchitecture/Architect/DEN0063-PSA_Firmware_Framework-1.0.0-2.pdf?revision=2d1429fa-4b5b-461a-a60e-4ef3d8f7f4b4>`_
+
+.. [DUAL-CPU-BOOT] :doc:`Booting a dual core system </docs/design_documents/dual-cpu/booting_a_dual_core_system>`
+
+.. [CVSS] `Common Vulnerability Scoring System Version 3.1 Calculator <https://www.first.org/cvss/calculator/3.1>`_
+
+.. [CVSS_SPEC] `CVSS v3.1 Specification Document <https://www.first.org/cvss/v3-1/cvss-v31-specification_r1.pdf>`_
+
+.. [STRIDE] `The STRIDE Threat Model <https://docs.microsoft.com/en-us/previous-versions/commerce-server/ee823878(v=cs.20)?redirectedfrom=MSDN>`_
+
+.. [SECURE-BOOT] :doc:`Secure boot </docs/getting_started/tfm_secure_boot>`
+
+.. [ROLLBACK-PROTECT] :doc:`Rollback protection in TF-M secure boot </docs/design_documents/secure_boot_rollback_protection>`
+
+.. [STACK-SEAL] `Armv8-M processor Secure software Stack Sealing vulnerability <https://developer.arm.com/support/arm-security-updates/armv8-m-stack-sealing>`_
+
+.. [ADVISORY-TFMV-1] :doc:`Advisory TFMV-1 </docs/reference/security_advisories/stack_seal_vulnerability>`
+
+--------------------
+
+*Copyright (c) 2020 Arm Limited. All Rights Reserved.*
diff --git a/docs/threat_models/index.rst b/docs/threat_models/index.rst
new file mode 100644
index 0000000..227d4d4
--- /dev/null
+++ b/docs/threat_models/index.rst
@@ -0,0 +1,12 @@
+Threat Models
+=============
+
+.. toctree::
+    :maxdepth: 1
+    :glob:
+
+    *
+
+--------------
+
+*Copyright (c) 2020, Arm Limited. All rights reserved.*
diff --git a/docs/threat_models/overall-DFD.png b/docs/threat_models/overall-DFD.png
new file mode 100644
index 0000000..39cf4c8
--- /dev/null
+++ b/docs/threat_models/overall-DFD.png
Binary files differ
