diff --git a/docs/index.rst b/docs/index.rst
index 59dfb30..1318d1a 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -89,6 +89,7 @@
     docs/reference/index
     docs/design_documents/index
     platform/ext/index
+    docs/threat_models/index
 
 
 .. toctree::
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
