docs: Fix typos etc
Fix trivial typos, spaces, indentations and other bits in the
documentation.
Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
Change-Id: I4aa6ef65a6caeb73862904033fb29e55dee69f2a
diff --git a/docs/building/run_tfm_examples_on_arm_platforms.rst b/docs/building/run_tfm_examples_on_arm_platforms.rst
index 3df69f5..6aab523 100644
--- a/docs/building/run_tfm_examples_on_arm_platforms.rst
+++ b/docs/building/run_tfm_examples_on_arm_platforms.rst
@@ -39,7 +39,7 @@
.. code-block:: bash
- <DS_PATH>/sw/models/bin/FVP_MPS2_AEMv8M \
+ <DS_PATH>/sw/models/bin/FVP_MPS2_AEMv8M \
--parameter fvp_mps2.platform_type=2 \
--parameter cpu0.baseline=0 \
--parameter cpu0.INITVTOR_S=0x10000000 \
@@ -65,11 +65,11 @@
.. code-block:: bash
--application cpu0=<build_dir>/bin/bl2.axf \
- --data cpu0=<build_dir>/bin/tfm_s_ns_signed.bin@0x10080000
+ --data cpu0=<build_dir>/tfm_s_ns_signed.bin@0x10080000
Test software upgrade with BL2 bootloader
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-BL2 bootloader is mandatory to test software update. Furthermore two TF-M blob
+BL2 bootloader is mandatory to test software update. Furthermore, two TF-M blobs
must be built. Outputs of example application and regression test can be used to
test it. Load output of example application to the primary slot (0x10080000) and
output of regression test to the secondary slot (0x10180000). Add the following
@@ -77,7 +77,7 @@
.. code-block:: bash
- --data cpu0=<build_dir>/bin/tfm_s_ns_signed.bin@0x10180000
+ --data cpu0=<build_dir>/tfm_s_ns_signed.bin@0x10180000
To run the example code on SSE 200 FPGA on MPS2 board
=====================================================
@@ -562,4 +562,4 @@
.. _Keil MDK: http://www2.keil.com/mdk5
.. _Keil MDK Documentation: https://www2.keil.com/mdk5/docs
-*Copyright (c) 2017-2023, Arm Limited. All rights reserved.*
+*Copyright (c) 2017-2024, Arm Limited. All rights reserved.*
diff --git a/docs/building/tests_build_instruction.rst b/docs/building/tests_build_instruction.rst
index 31fcd99..e1d43ab 100644
--- a/docs/building/tests_build_instruction.rst
+++ b/docs/building/tests_build_instruction.rst
@@ -6,7 +6,7 @@
Thus, tests require an extension of SPE side with test code and extra functionality
for some Non-Secure test cases. To inject that test code into SPE the
``CONFIG_TFM_TEST_DIR`` option is used. When SPE build system sees this option
-it adds the corresponding folder via ``add_subdirectory(${CONFIG_TFM_TEST_DIR} tf-m-test)``
+it adds the corresponding folder via ``add_subdirectory(${CONFIG_TFM_TEST_DIR} tf-m-tests)``
and includes it to SPE binary.
Also, test configurations should be passed to SPE build to include building Secure Tests.
@@ -104,5 +104,5 @@
--------------
-*Copyright (c) 2017-2023, Arm Limited. All rights reserved.*
+*Copyright (c) 2017-2024, Arm Limited. All rights reserved.*
*Copyright (c) 2022, Cypress Semiconductor Corporation. All rights reserved.*
diff --git a/docs/building/tfm_build_instruction.rst b/docs/building/tfm_build_instruction.rst
index a75d705..7b1b5d2 100644
--- a/docs/building/tfm_build_instruction.rst
+++ b/docs/building/tfm_build_instruction.rst
@@ -154,7 +154,7 @@
+----------------------------+------------------------------------------+---------------+
| PROJECT_CONFIG_HEADER_FILE | User defined header file for TF-M config | |
+----------------------------+------------------------------------------+---------------+
-| TFM_ISOLATION_LEVEL | Set TFM isolation level. | 1 |
+| TFM_ISOLATION_LEVEL | Set TF-M isolation level. | 1 |
+----------------------------+------------------------------------------+---------------+
| TFM_PROFILE | See :ref:`tf-m_profiles`. | |
+----------------------------+------------------------------------------+---------------+
@@ -269,8 +269,8 @@
cd <Mbed Crypto base folder>
git clone https://github.com/ARMmbed/mbedtls
cd mbedtls
- git checkout <MBEDCRYPTO_VERSION from <TF-M source dir>/config_base.cmake>
- git apply <TF-M source dir>/lib/ext/mbedcrypo/*.patch
+ git checkout <MBEDCRYPTO_VERSION> from <TF-M source dir>/config/config_base.cmake>
+ git apply <TF-M source dir>/lib/ext/mbedcrypto/*.patch
.. Note::
@@ -351,5 +351,5 @@
--------------
-*Copyright (c) 2017-2023, Arm Limited. All rights reserved.*
+*Copyright (c) 2017-2024, Arm Limited. All rights reserved.*
*Copyright (c) 2022, Cypress Semiconductor Corporation. All rights reserved.*
diff --git a/docs/configuration/index.rst b/docs/configuration/index.rst
index 28ed681..27fdac9 100644
--- a/docs/configuration/index.rst
+++ b/docs/configuration/index.rst
@@ -15,7 +15,7 @@
test_configuration.rst
TF-M is highly configurable project with many configuration options to meet
-a user needs. A user can select the desired set of services and fine-tune
+a user's needs. A user can select the desired set of services and fine-tune
them to their requirements. There are two types of configuration options
Build configuration
@@ -58,7 +58,7 @@
Building (CMake) options and Component options (.h file)
Use a custom profile.
- Another method is to take existing TF-M profile and adjust the desired
+ Another method is to take an existing TF-M profile and adjust the desired
options manually editing CMake and config header files. This is for users
familiar with TF-M.
@@ -92,7 +92,7 @@
.. Note::
To ensure a clear intention and conscious choice, all options must be
provided explicitly via a project configuration file. Default values
- on step 1 will generate warnings which expected to break a build.
+ on step 1 will generate warnings which are expected to break a build.
.. _Base_configuration:
@@ -288,6 +288,6 @@
--------------
-*Copyright (c) 2022, Arm Limited. All rights reserved.*
+*Copyright (c) 2022,2024, Arm Limited. All rights reserved.*
*Copyright (c) 2023 Cypress Semiconductor Corporation (an Infineon company)
or an affiliate of Cypress Semiconductor Corporation. All rights reserved.*
diff --git a/docs/design_docs/dual-cpu/mailbox_ns_agent_update.rst b/docs/design_docs/dual-cpu/mailbox_ns_agent_update.rst
index 27fd2d3..3839c41 100644
--- a/docs/design_docs/dual-cpu/mailbox_ns_agent_update.rst
+++ b/docs/design_docs/dual-cpu/mailbox_ns_agent_update.rst
@@ -20,7 +20,7 @@
in their names. The concept ``mailbox`` in this document represent the
mechanism described above, which is not referring to the external concepts.
-When the first version ``Mailbox NS Agent`` was introduced, the generic FFM
+When the first version ``Mailbox NS Agent`` was introduced, the generic FF-M
interrupt handling was not ready. Hence a customized solution
``Multiple Core`` is implemented. This customized implementation:
@@ -33,19 +33,19 @@
- Make SPM manage other components in a unified way (For example, it is
simpler for SPM if all non-SPM components under the IPC model act as
- ``processes``.)
+ ``processes``).
- Can use FF-M compliant interrupt mechanism and APIs.
Following the above guidelines makes the ``Mailbox NS Agent`` work like a
-``partition``. The agent has an endless loop and waits for signals, calls FFM
+``partition``. The agent has an endless loop and waits for signals, calls FF-M
API based on the parsing result on the communication messages. But there are
still issues after looking closer to the requirements of the agent:
-- SPM treats FFM Client API caller's ID as the client ID. While the mailbox NS
+- SPM treats FF-M Client API caller's ID as the client ID. While the mailbox NS
agent may represent multiple non-secure clients. Hence it needs to tell
- SPM which non-secure client it is representing, and the default FFM Client
+ SPM which non-secure client it is representing, and the default FF-M Client
API does not have such capability.
-- FFM Client API blocks caller before the call is replied; while the
+- FF-M Client API blocks caller before the call is replied; while the
mailbox NS Agent needs to respond to the non-secure interrupts in time.
Blocking while waiting for a reply may cause the non-secure communication
message not to be handled in time.
@@ -70,19 +70,19 @@
Component types and the callable API set
.. note::
- 3 non-SPM component types here: FFM-compliant Secure Partition
+ 3 non-SPM component types here: FF-M-compliant Secure Partition
(aka ``partition``), Trustzone-based NS Agent (aka ``Trustzone NS Agent``)
and mailbox-based NS Agent (aka ``Mailbox NS Agent``).
``Trustzone NS Agent`` is mentioned here for the comparison purpose. The
implementation details for this NS agent type is not introduced here.
-To make the programming model close to the FFM compliance, the
+To make the programming model close to the FF-M compliance, the
``Mailbox NS Agent`` is designed as:
- Working like a standard Secure Partition under the IPC model, has one
- single thread, can call FFM standard API.
+ single thread, can call FF-M standard API.
- Having a manifest file to describe the attributes and resources and a
- positive valued ``Partition ID`` in the manifest.
+ positive value ``Partition ID`` in the manifest.
Services rely on the ``client_id`` to apply policy-checking, hence SPM
needs to know which ``client_id`` the mailbox NS Agent is representing when
@@ -185,7 +185,7 @@
.. code-block:: c
- struct client_param_t {
+ struct client_params_t {
int32_t ns_client_id_stateless;
const psa_invec *p_invecs;
psa_outvec *p_outvecs;
@@ -197,7 +197,7 @@
.. note::
The vectors and non-secure client ID are recorded in the internal handle.
- Hence it is safe to claim ``client_param_t`` instance as local variable.
+ Hence it is safe to claim ``client_params_t`` instance as local variable.
Agent-specific Client API
=========================
@@ -218,7 +218,7 @@
case. This mechanism can provide chances for the agents calling APIs for their
own service accessing and API works asynchronously.
-As mentioned, the standard FFM Client service accessing API are blocked until
+As mentioned, the standard FF-M Client service accessing API are blocked until
the IPC message gets replied to. While this API returns immediately without
waiting for acknowledgement. Unless an error occurred, these agent-specific
API returns PSA_SUCCESS always. The replies for these access requests are
@@ -238,7 +238,7 @@
for the auxiliary data added. This member is ignored for connection-based
services because ``agent_psa_connect()`` already assigned one in the
connected handle.
-- Has a composited agrument ``control``.
+- Has a composite argument ``control``.
The encoding scheme for ``control``:
@@ -382,7 +382,7 @@
Manifest tooling update
***********************
The manifest for agents involves specific keys ('ns_agent' e.g.), these keys
-give hints about how to achieve out-of-FFM partitions which might be abused
+give hints about how to achieve out-of-FF-M partitions which might be abused
easily by developers, for example, claim partitions as agents. Some
restrictions need to be applied in the manifest tool to limit the general
secure service development referencing these keys.
@@ -400,7 +400,7 @@
"non_ffm_attributes": "ns_agent", "other_option",
``non_ffm_attributes`` tells the manifest tool that ``ns_agent`` is valid
-in ns_agent_mailbox.ymal. Otherwise, the manifest tool reports an error when a
+in ns_agent_mailbox.yaml. Otherwise, the manifest tool reports an error when a
non-agent service abuses ns_agent in its manifest.
***********************************
@@ -418,7 +418,7 @@
system topologies:
- If there is one Trustzone-based NSPE, this NSPE is the recommended place no
- matter how many mailbox agents are in the system.
+ matter how many mailbox agents there are in the system.
- If there are only mailbox-based NSPEs, entering IDLE can happen in
one of the mailbox agents.
diff --git a/docs/design_docs/media/abi_scheduler.svg b/docs/design_docs/media/abi_scheduler.svg
index 34d7f40..7d5ac85 100644
--- a/docs/design_docs/media/abi_scheduler.svg
+++ b/docs/design_docs/media/abi_scheduler.svg
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Do not edit this file with editors other than diagrams.net -->
+<!-- Do not edit this file with editors other than draw.io -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="423px" height="182px" viewBox="-0.5 -0.5 423 182" content="<mxfile host="app.diagrams.net" modified="2021-09-26T06:40:48.327Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36" etag="BVD9jAIebmczNn1dO7Ma" version="15.2.9" type="device"><diagram id="pE8yNmrzc9lT-nbtH71B" name="Page-1">5VnRcuI2FP0aZtoHMraEMTwSAmEnWUqWTJs8ZVRbsdXYFitEwP36yljCxhKOmwK7Sf2QsY6ka+mec69uRAsO4801Q4vwK/Vx1AKWv2nBqxYA0AXibwakOQAsCQSM+DlkF8Cc/I0laEl0RXy83BvIKY04WeyDHk0S7PE9DDFG1/vDnmm0/9UFCrAGzD0U6egfxOdhjvaAW+ATTIJQfdnu9vOeGKnBcifLEPl0XYLgqAWHjFKev8WbIY4y3ym/5PPGB3p3C2M44U0mjMa4P8Cb9M5aezztwm/TCLbV4l5RtJI7nojd4CUX4IwRyghPhc25F2J/hZlAb6n3InfEU+UmjjdiEZcoIkEiEE+sSQyGl6+YcSK8OZAdnC4Eyugq8XG2Lku0nmnC59KULdtjFJMok8w9CmmMJDqkEWXbD0LL6opH4EvO6Ave68ke0eOjZbj9iDIq1WVnnbr3pEOzFeNNCZLevMY0xpwJZ1iqtyOdJ6XtKGeuC6EAS2JhWSRqIpLiDHa2C/7Ei6TQTKcT9J8mT9e3zuTGGa4HNzSdt9tQIwb7Qs6ySRkPaUATFI0KtEJGMeaWZlxtnfcX5jyV3kMrTgUU8jgq8WfmSzkc6PyNt8+OPxVb0Myo5FpwxdIH+dlt4zFrXDiqebUpd16lqrUh/EHuJXsvzRKtYlLWUHMOCmRJV8zDNSR0ZJpCLMBy6l18+926/hPfP7uol45upsmUtaW9jKFauTEcIU5e9xOSSTpy6oyShBey7FoVteUbkKPKCUNNPKTvXsVQvkPN0Fa5u/W/X8wdLTUNI4Llt8oaLxRsa4IChthvlnCqqSsmvr8NGMQ8aQ10a4T9TKLIJOIjZJ4KMd2Onnh6hrxzsrRj2xpVc8xeiQgTYVd4CcCt42dIuJQTmvxEFLo/hkLY/XEcpu1gOr9Dv5OXb0/f06eH+9FvkYnDweyLACYoEU5j7z7yd04/z6lf4Sxj0jrWgd+rcObonNnAQBo4AmnG8q2ncTYef60JLssQSuZgO3Cglwg7yPMxPO1Ujh63WXQ4p3J0X3P0JfJecOKXstsv8/FUGP8yG/76CSgAPxsFKkF97OK2KGEv3F3Z+qhq0wY1rHUBVOH6WK5bjUWsIU0OxdO0vK09KMr1bV1yOll9q4RqV7Ky/c56VzNUPWuPV++aBQ4+hcDNOrVrdXowKqw3ouI/Crwu15f1XRsIJxc4rOiyWk40Frj7RqScWuCdTyHwQqvgX2m1iAz3bBm8LjG/mcD7Z9I3qMiyes/QWN9VQ7CZvgeMobQ0bJENWDY/cRzHql+XWztevOQrOG6w9T9DsH2gu0DjHV/nTCFUvU1w+hdO731RBMXcfvl50/Lxjo26e9LyxcRldjGh/z/wIa8ktH/JDEpr/BuE6Uqic6IbiTrBa2Tpte3/jyxonY0s0Sx+WcwDsfh5Fo7+AQ==</diagram></mxfile>"><defs/><g><rect x="111" y="10" width="200" height="140" fill="none" stroke="#000000" stroke-dasharray="3 3" pointer-events="all"/><g fill="#006666" font-family="Tahoma" font-weight="bold" text-anchor="middle" font-size="10px"><text x="210.5" y="25.5">Highest Priority/Scheduer Lock</text></g><path d="M 91 150 L 100.9 150" fill="none" stroke="#006666" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 107.65 150 L 98.65 154.5 L 100.9 150 L 98.65 145.5 Z" fill="#006666" stroke="#006666" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="11" y="130" width="80" height="40" rx="10.4" ry="10.4" fill="#006666" stroke="#000000" stroke-width="2" pointer-events="all"/><g fill="#FFFFFF" font-family="Tahoma" font-weight="bold" text-anchor="middle" font-size="10px"><text x="50.5" y="153.5">Client</text></g><rect x="331" y="130" width="80" height="40" rx="10.8" ry="10.8" fill="#006666" stroke="#000000" stroke-width="2" pointer-events="all"/><g fill="#FFFFFF" font-family="Tahoma" font-weight="bold" text-anchor="middle" font-size="10px"><text x="370.5" y="147.5">Service/</text><text x="370.5" y="159.5">Partition</text></g><rect x="151" y="140" width="120" height="20" fill="#ffff00" stroke="#000000" pointer-events="all"/><g fill="#006666" font-family="Tahoma" font-weight="bold" text-anchor="middle" font-size="12px"><text x="210.5" y="154.5">API Handler</text></g><rect x="121" y="60" width="80" height="50" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><g fill="#000000" font-family="Tahoma" font-weight="bold" text-anchor="middle" font-size="10px"><text x="160.5" y="88.5">FFM</text></g><rect x="221" y="60" width="80" height="50" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="all"/><g fill="#000000" font-family="Tahoma" font-weight="bold" text-anchor="middle" font-size="10px"><text x="260.5" y="82.5">Backend</text><text x="260.5" y="94.5">(SFN/IPC)</text></g><path d="M 181 140 L 181 120.1" fill="none" stroke="#00cccc" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 181 113.35 L 185.5 122.35 L 181 120.1 L 176.5 122.35 Z" fill="#00cccc" stroke="#00cccc" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 241 110 L 241 129.9" fill="none" stroke="#00cccc" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 241 136.65 L 236.5 127.65 L 241 129.9 L 245.5 127.65 Z" fill="#00cccc" stroke="#00cccc" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 181 60 L 181 40 L 241 40 L 241 49.9" fill="none" stroke="#00cccc" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 241 56.65 L 236.5 47.65 L 241 49.9 L 245.5 47.65 Z" fill="#00cccc" stroke="#00cccc" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 311 150 L 320.9 150" fill="none" stroke="#006666" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 327.65 150 L 318.65 154.5 L 320.9 150 L 318.65 145.5 Z" fill="#006666" stroke="#006666" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><rect x="111" y="140" width="40" height="20" fill="#ffff00" stroke="#000000" pointer-events="all"/><g fill="#006666" font-family="Tahoma" font-weight="bold" text-anchor="middle" font-size="12px"><text x="130.5" y="154.5">ABI 1</text></g><rect x="271" y="140" width="40" height="20" fill="#ffff00" stroke="#000000" pointer-events="all"/><g fill="#006666" font-family="Tahoma" font-weight="bold" text-anchor="middle" font-size="12px"><text x="290.5" y="154.5">ABI 2</text></g></g></svg>
\ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="403px" height="162px" viewBox="-0.5 -0.5 403 162" content="<mxfile host="app.diagrams.net" modified="2024-03-04T10:42:52.622Z" agent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0" etag="6sEdXA2xhvzA24dVOHtQ" version="24.0.1" type="device">
 <diagram id="pE8yNmrzc9lT-nbtH71B" name="Page-1">
 <mxGraphModel dx="523" dy="332" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
 <root>
 <mxCell id="0" />
 <mxCell id="1" parent="0" />
 <mxCell id="EFe9AexyQ0wcty63RNl3-20" value="Highest Priority/Scheduler Lock" style="text;align=center;verticalAlign=top;rounded=0;fontStyle=1;fontFamily=Tahoma;fontColor=#006666;strokeColor=#000000;dashed=1;fontSize=10;" parent="1" vertex="1">
 <mxGeometry x="140" y="520" width="200" height="140" as="geometry" />
 </mxCell>
 <mxCell id="5g9_H_GL5HK5CwAKoyS--3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=0;fontFamily=Tahoma;fontSize=12;fontColor=#FFFFFF;strokeWidth=3;strokeColor=#006666;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="5g9_H_GL5HK5CwAKoyS--4" target="QmLq0GbeTf7a8yEKNnNr-1" edge="1">
 <mxGeometry relative="1" as="geometry">
 <mxPoint y="600" as="sourcePoint" />
 <mxPoint x="140" y="580" as="targetPoint" />
 </mxGeometry>
 </mxCell>
 <mxCell id="5g9_H_GL5HK5CwAKoyS--4" value="Client" style="rounded=1;strokeWidth=2;fontSize=10;fontStyle=1;fontFamily=Tahoma;verticalAlign=middle;arcSize=26;fontColor=#FFFFFF;fillColor=#006666;" parent="1" vertex="1">
 <mxGeometry x="40" y="640" width="80" height="40" as="geometry" />
 </mxCell>
 <mxCell id="5g9_H_GL5HK5CwAKoyS--11" value="Service/&#xa;Partition" style="rounded=1;strokeWidth=2;fontSize=10;fontStyle=1;fontFamily=Tahoma;verticalAlign=middle;arcSize=27;fontColor=#FFFFFF;fillColor=#006666;" parent="1" vertex="1">
 <mxGeometry x="360" y="640" width="80" height="40" as="geometry" />
 </mxCell>
 <mxCell id="y-gNSQaVikR_qy_XTEOl-11" value="API Handler" style="text;align=center;verticalAlign=middle;rounded=0;fontStyle=1;fontFamily=Tahoma;fontColor=#006666;strokeColor=#000000;fillColor=#FFFF00;" parent="1" vertex="1">
 <mxGeometry x="180" y="650" width="120" height="20" as="geometry" />
 </mxCell>
 <mxCell id="EFe9AexyQ0wcty63RNl3-8" value="FFM" style="rounded=0;fontSize=10;strokeWidth=2;fontFamily=Tahoma;fontStyle=1;verticalAlign=middle;" parent="1" vertex="1">
 <mxGeometry x="150" y="570" width="80" height="50" as="geometry" />
 </mxCell>
 <mxCell id="EFe9AexyQ0wcty63RNl3-9" value="Backend&#xa;(SFN/IPC)" style="rounded=0;fontSize=10;strokeWidth=2;fontFamily=Tahoma;fontStyle=1;verticalAlign=middle;" parent="1" vertex="1">
 <mxGeometry x="250" y="570" width="80" height="50" as="geometry" />
 </mxCell>
 <mxCell id="EFe9AexyQ0wcty63RNl3-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=0;fontFamily=Tahoma;fontSize=12;fontColor=#FFFFFF;strokeWidth=3;entryX=0.75;entryY=1;entryDx=0;entryDy=0;exitX=0.25;exitY=0;exitDx=0;exitDy=0;strokeColor=#00CCCC;" parent="1" source="y-gNSQaVikR_qy_XTEOl-11" target="EFe9AexyQ0wcty63RNl3-8" edge="1">
 <mxGeometry relative="1" as="geometry">
 <mxPoint x="210" y="610" as="sourcePoint" />
 <mxPoint x="210" y="640" as="targetPoint" />
 </mxGeometry>
 </mxCell>
 <mxCell id="EFe9AexyQ0wcty63RNl3-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=0;fontFamily=Tahoma;fontSize=12;fontColor=#FFFFFF;strokeWidth=3;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;strokeColor=#00CCCC;" parent="1" source="EFe9AexyQ0wcty63RNl3-9" target="y-gNSQaVikR_qy_XTEOl-11" edge="1">
 <mxGeometry relative="1" as="geometry">
 <mxPoint x="230" y="620" as="sourcePoint" />
 <mxPoint x="270" y="610" as="targetPoint" />
 </mxGeometry>
 </mxCell>
 <mxCell id="EFe9AexyQ0wcty63RNl3-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=0;fontFamily=Tahoma;fontSize=12;fontColor=#FFFFFF;strokeWidth=3;entryX=0.25;entryY=0;entryDx=0;entryDy=0;exitX=0.75;exitY=0;exitDx=0;exitDy=0;strokeColor=#00CCCC;" parent="1" source="EFe9AexyQ0wcty63RNl3-8" target="EFe9AexyQ0wcty63RNl3-9" edge="1">
 <mxGeometry relative="1" as="geometry">
 <mxPoint x="220" y="680" as="sourcePoint" />
 <mxPoint x="220" y="630" as="targetPoint" />
 <Array as="points">
 <mxPoint x="210" y="550" />
 <mxPoint x="270" y="550" />
 </Array>
 </mxGeometry>
 </mxCell>
 <mxCell id="EFe9AexyQ0wcty63RNl3-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=0;fontFamily=Tahoma;fontSize=12;fontColor=#FFFFFF;strokeWidth=3;strokeColor=#006666;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="QmLq0GbeTf7a8yEKNnNr-4" edge="1">
 <mxGeometry relative="1" as="geometry">
 <mxPoint x="260" y="659.58" as="sourcePoint" />
 <mxPoint x="359.9999999999999" y="659.58" as="targetPoint" />
 </mxGeometry>
 </mxCell>
 <mxCell id="QmLq0GbeTf7a8yEKNnNr-1" value="ABI 1" style="text;align=center;verticalAlign=middle;rounded=0;fontStyle=1;fontFamily=Tahoma;fontColor=#006666;strokeColor=#000000;fillColor=#FFFF00;" parent="1" vertex="1">
 <mxGeometry x="140" y="650" width="40" height="20" as="geometry" />
 </mxCell>
 <mxCell id="QmLq0GbeTf7a8yEKNnNr-4" value="ABI 2" style="text;align=center;verticalAlign=middle;rounded=0;fontStyle=1;fontFamily=Tahoma;fontColor=#006666;strokeColor=#000000;fillColor=#FFFF00;" parent="1" vertex="1">
 <mxGeometry x="300" y="650" width="40" height="20" as="geometry" />
 </mxCell>
 </root>
 </mxGraphModel>
 </diagram>
</mxfile>
"><defs/><g><g><rect x="101" y="0" width="200" height="140" fill="none" stroke="#000000" stroke-dasharray="3 3" pointer-events="all"/></g><g><g fill="#006666" font-family="Tahoma" font-weight="bold" text-anchor="middle" font-size="10px"><text x="200.5" y="15.5">Highest Priority/Scheduler Lock</text></g></g><g><path d="M 81 140 L 90.9 140" fill="none" stroke="#006666" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 97.65 140 L 88.65 144.5 L 90.9 140 L 88.65 135.5 Z" fill="#006666" stroke="#006666" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="1" y="120" width="80" height="40" rx="10.4" ry="10.4" fill="#006666" stroke="rgb(0, 0, 0)" stroke-width="2" pointer-events="all"/></g><g><g fill="#FFFFFF" font-family="Tahoma" font-weight="bold" text-anchor="middle" font-size="10px"><text x="40.5" y="143.5">Client</text></g></g><g><rect x="321" y="120" width="80" height="40" rx="10.8" ry="10.8" fill="#006666" stroke="rgb(0, 0, 0)" stroke-width="2" pointer-events="all"/></g><g><g fill="#FFFFFF" font-family="Tahoma" font-weight="bold" text-anchor="middle" font-size="10px"><text x="360.5" y="137.5">Service/</text><text x="360.5" y="149.5">Partition</text></g></g><g><rect x="141" y="130" width="120" height="20" fill="#ffff00" stroke="#000000" pointer-events="all"/></g><g><g fill="#006666" font-family="Tahoma" font-weight="bold" text-anchor="middle" font-size="12px"><text x="200.5" y="144.5">API Handler</text></g></g><g><rect x="111" y="50" width="80" height="50" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="2" pointer-events="all"/></g><g><g fill="rgb(0, 0, 0)" font-family="Tahoma" font-weight="bold" text-anchor="middle" font-size="10px"><text x="150.5" y="78.5">FFM</text></g></g><g><rect x="211" y="50" width="80" height="50" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="2" pointer-events="all"/></g><g><g fill="rgb(0, 0, 0)" font-family="Tahoma" font-weight="bold" text-anchor="middle" font-size="10px"><text x="250.5" y="72.5">Backend</text><text x="250.5" y="84.5">(SFN/IPC)</text></g></g><g><path d="M 171 130 L 171 110.1" fill="none" stroke="#00cccc" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 171 103.35 L 175.5 112.35 L 171 110.1 L 166.5 112.35 Z" fill="#00cccc" stroke="#00cccc" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 231 100 L 231 119.9" fill="none" stroke="#00cccc" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 231 126.65 L 226.5 117.65 L 231 119.9 L 235.5 117.65 Z" fill="#00cccc" stroke="#00cccc" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 171 50 L 171 30 L 231 30 L 231 39.9" fill="none" stroke="#00cccc" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 231 46.65 L 226.5 37.65 L 231 39.9 L 235.5 37.65 Z" fill="#00cccc" stroke="#00cccc" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g><g><path d="M 301 140 L 310.9 140" fill="none" stroke="#006666" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 317.65 140 L 308.65 144.5 L 310.9 140 L 308.65 135.5 Z" fill="#006666" stroke="#006666" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/></g><g><rect x="101" y="130" width="40" height="20" fill="#ffff00" stroke="#000000" pointer-events="all"/></g><g><g fill="#006666" font-family="Tahoma" font-weight="bold" text-anchor="middle" font-size="12px"><text x="120.5" y="144.5">ABI 1</text></g></g><g><rect x="261" y="130" width="40" height="20" fill="#ffff00" stroke="#000000" pointer-events="all"/></g><g><g fill="#006666" font-family="Tahoma" font-weight="bold" text-anchor="middle" font-size="12px"><text x="280.5" y="144.5">ABI 2</text></g></g></g></svg>
\ No newline at end of file
diff --git a/docs/design_docs/services/index.rst b/docs/design_docs/services/index.rst
index 73c6109..3fa1021 100644
--- a/docs/design_docs/services/index.rst
+++ b/docs/design_docs/services/index.rst
@@ -6,7 +6,7 @@
:maxdepth: 1
Secure Partition Manager <secure_partition_manager.rst>
- Secure RTL <secure_partition_runtime_library.rst>
+ Secure Partition RTL <secure_partition_runtime_library.rst>
Inter-Process Communication <tfm_psa_inter_process_communication.rst>
Stateless Services <stateless_rot_service.rst>
Service Signing <tfm_uniform_secure_service_signature.rst>
@@ -18,4 +18,4 @@
--------------
-*Copyright (c) 2023, Arm Limited. All rights reserved.*
+*Copyright (c) 2023-2024, Arm Limited. All rights reserved.*
diff --git a/docs/design_docs/services/secure_partition_manager.rst b/docs/design_docs/services/secure_partition_manager.rst
index 839eced..eac3de4 100644
--- a/docs/design_docs/services/secure_partition_manager.rst
+++ b/docs/design_docs/services/secure_partition_manager.rst
@@ -1,7 +1,7 @@
########################
Secure Partition Manager
########################
-This document describes the Secure Partition Manager(`SPM`) implementation
+This document describes the Secure Partition Manager (`SPM`) implementation
design in Trusted Firmware-M (`TF-M`).
.. note::
@@ -27,7 +27,7 @@
Secure services (aka `Service`) is the component providing secure
functionalities in `SPE`, and `Client` is the user of the `Service`. A service
-act as a client when it is accessing its depending services.
+acts as a client when it is accessing its depending services.
Services are grouped into `Secure Partition` (aka `partition`). A partition:
@@ -40,7 +40,7 @@
Partitions use FF-M `Secure Partition API` when it needs to operate on client
data or reply to a client.
-`SPM` is the centre of an FF-M compliant implementation, which set up and
+`SPM` is the centre of an FF-M compliant implementation, which sets up and
maintains a firmware framework that:
- Implements `Client API` and `Secure Partition API`.
@@ -48,7 +48,7 @@
- Involves necessary implementation-defined items to support the
implementation.
-SPM interfaces are consist of these two categories:
+SPM interfaces consist of these two categories:
- FF-M defined API.
- Extended API to support the implementation.
@@ -130,7 +130,7 @@
non-secure can not share the stack. It also has dedicated execution bodies.
For example, RPC-based `NS Agent` has a while loop that keeps waiting for
messages; and Trustzone-based `NS Agent` has veneer code to take over `NSPE`
- secure call. This makes `NS Agent` is a component more like a `process`.
+ secure call. This makes `NS Agent` to be a component more like a `process`.
Hence in the simplest implementation (`SFN model implementation` mentioned
above), `NS Agent` is the only process in the system, the scheduling
logic can be extremely simplified since no other process execution needs to
@@ -225,10 +225,10 @@
The lifecycle is initiated by a secure bootloader usually. And in this stage
of SPM initializing, SPM double-checks the lifecycle set up status (following
a specific lifecycle management guidelines). Note that the hardware debugger
-setting can be part of lifecycle settings.
+settings can be part of lifecycle settings.
.. important::
- Double-check debugger setting when performing a product release.
+ Double-check debugger settings when performing a product release.
SPM runtime initialization
--------------------------
@@ -248,7 +248,7 @@
* Init partition isolation boundaries (MMIO e.g.).
* Init partition interrupts.
-After no more partitions to be loaded, the SPM runtime is set up but
+After no more partitions need to be loaded, the SPM runtime is set up but
partitions' initialization routines have not run yet - the partition runtime
context is initialized for the routine call.
@@ -298,7 +298,7 @@
execution, plus a few SPM executions when SPM API gets called.
.. important::
- The service access process introduce in this chapter
+ The service access process introduced in this chapter
(Such as `Secure service access`_) is abstracted from the FF-M
specification. Reference the FF-M specification for the details of each
step.
@@ -355,10 +355,10 @@
SPM is placed in the PRoT domain. It MAY have isolation boundaries under
particular isolation levels. For example:
-- There are boundaries between ARoT components and SPM under isolated level 2
+- There are boundaries between ARoT components and SPM under isolation level 2
and 3.
-Then API SPM provided needs to support the function call (no boundary
+The API SPM provided needs to support the function call (no boundary
switching) and cross-boundary call. A direct call reaches the API entrance
directly, while a cross-boundary call needs a mechanism (Supervisor call e.g.)
to cross the boundary first before reaching the API entrance.
@@ -399,7 +399,7 @@
- Can see the prepared caller and callee context, with exited SPM context. It
is an ideal place for subsequent operations such as context switching.
-A example code:
+An example code:
.. code-block:: c
@@ -407,7 +407,7 @@
{
status = spm_api(p);
/*
- * Now both the caller and calle context are
+ * Now both the caller and callee contexts are
* managed by spm_api.
*/
if (status == ACTION1) {
@@ -441,7 +441,7 @@
if the target partition model is `SFN` and there are boundaries between SPM
and the target partition. After this, requests a specific call type to the
SPM ABI module.
-- The target service routine is get called with the message parameter if
+- The target service routine is called with the message parameter if
there are no boundaries between SPM and the target partition and the
partition runtime is `SFN`.
- The message is queued into the partition message list if the target
@@ -458,19 +458,19 @@
---------------------
FF-M API allows multiple sessions for a service if the service is classic
connection-based. The service can maintain multiple local session data and use
-`rhande` in the message body to identify which client this session is bound
+`rhandle` in the message body to identify which client this session is bound
with.
But this does not mean when an ongoing service accessing is preempted,
another service access request can get a chance for new access. This is
because of the limited context storage - supporting multiple contexts in a
-common service costs much memory, and runtime operations(allocation and
+common service costs much memory, and runtime operations (allocation and
re-location). Limited the context content in the stack only can mitigate the
effort, but this requirement requires too much for the service development.
The implementation-decisions are:
-- IPC partitions handles messages one by one, the client get blocked before
+- IPC partitions handles messages one by one, the client gets blocked before
the service replying to the client.
- The client is blocked when accessing services are handling a service
request in an SFN partition.
@@ -634,13 +634,13 @@
NS Agent
========
-The `NS Agent`(`NSA`) forwards NSPE service access request to SPM. It is a
+The `NS Agent` (`NSA`) forwards NSPE service access request to SPM. It is a
special `partition` that:
- It does not provide FF-M aligned secure services.
- It runs with the second-lowest priority under `IPC model implementation`
(The IDLE thread has the lowest priority).
-- It has isolation boundaries and an individual stacks.
+- It has isolation boundaries and an individual stack.
- It requires specific services and mechanisms compared to common partitions.
There are two known types for NS Agent:
@@ -653,7 +653,7 @@
Trustzone-M specific
--------------------
-The functionalities of a Truszone-M specific NSA is:
+The functionalities of a Trustzone-M specific NSA is:
- Launch NSPE when booting.
- Wait in the veneer code, and get executed when NSPE accesses services.
@@ -671,7 +671,7 @@
RPC specific
------------
-Compare to Trustzone-M NSA, RPC NSA looks closer to a generic partition:
+Compared to Trustzone-M NSA, RPC NSA looks closer to a generic partition:
- It has a message loop, keep waiting for RPC events.
- It converts received RPC events into FF-M API call to target services.
@@ -688,7 +688,7 @@
=========
A partition is a set of services in the same scope. Services are generally
implemented as functions, and the partition exposes the services in different
-ways bases on the partition model: `IPC` or `SFN`.
+ways based on the partition model: `IPC` or `SFN`.
A partition build generates these outputs:
@@ -703,15 +703,15 @@
-----------------
SPM needs to set up runtime objects to manage partitions by parsing the load
information of partitions. In general, the partition load information is
-stored in a const memory are can be random read directly, hence SPM can direct
+stored in a const memory area can be random read directly, hence SPM can direct
link runtime objects to the load information without a copy operation. This
is called a `Static Load` mechanism.
Each partition has different numbers of dependencies and services, this makes
-the load information size of each partition is different, it would be hard
-to put such variable size elements in an array. The solution here is putting
-these elements in a dedicated section, for SPM enumerating while loading.
-Each partition can define variable size load information type bases on the
+the load information size of each partition different, it would be hard to put
+such variable size elements in an array. The solution here is putting these
+elements in a dedicated section, for SPM enumerating while loading.
+Each partition can define variable size load information type based on the
common load info type.
The common load information:
@@ -746,8 +746,8 @@
- The tooling references symbols in a fixed pattern in the partition load
information.
- The HAL implementation needs to provide the symbols being referenced.
-- SPM calls HAL API to bind the partition info with devices When the partition
- gets loading.
+- SPM calls HAL API to bind the partition info with devices when the partition
+ gets loaded.
- The platform HAL acknowledges the binding if validation pass on SPM given
load information.
@@ -808,4 +808,4 @@
--------------
-*Copyright (c) 2021, Arm Limited. All rights reserved.*
+*Copyright (c) 2021,2024, Arm Limited. All rights reserved.*
diff --git a/docs/design_docs/services/secure_partition_runtime_library.rst b/docs/design_docs/services/secure_partition_runtime_library.rst
index 0549a76..e005f23 100644
--- a/docs/design_docs/services/secure_partition_runtime_library.rst
+++ b/docs/design_docs/services/secure_partition_runtime_library.rst
@@ -33,7 +33,7 @@
abbreviation is ``SPRTL``.
****************
-Design Principal
+Design Principle
****************
The following requirements are mandatory for SPRTL implementation:
@@ -77,7 +77,7 @@
C Runtime API
-------------
PSA FF describes a small set of the C standard library. Part of toolchain
-library API can be used as default if these APIs meet the `Design Principal`_
+library API can be used as default if these APIs meet the `Design Principle`_
and `Security Implementation Requirements`_. The toolchain 'header' and 'types'
can be reused to simplify the implementation.
@@ -365,4 +365,4 @@
--------------
-*Copyright (c) 2019-2020, Arm Limited. All rights reserved.*
+*Copyright (c) 2019-2024, Arm Limited. All rights reserved.*
diff --git a/docs/design_docs/services/stateless_rot_service.rst b/docs/design_docs/services/stateless_rot_service.rst
index c84eb5f..88af027 100644
--- a/docs/design_docs/services/stateless_rot_service.rst
+++ b/docs/design_docs/services/stateless_rot_service.rst
@@ -202,9 +202,9 @@
Similar stateless services in a partition could be grouped, and assign one
``SID`` for the group. The ``type`` parameter in ``psa_call()`` could be
extended to identify the service in group. In this case, it is recommended to
-use consecutive value for ``type``.
+use consecutive values for ``type``.
-It is recommended that each Seccure Partition declares one stateless service
+It is recommended that each Secure Partition declares one stateless service
and uses the type parameter to distinguish different stateless services.
Therefore, more stateless services can be supported.
@@ -227,4 +227,4 @@
--------------
-*Copyright (c) 2021-2023, Arm Limited. All rights reserved.*
+*Copyright (c) 2021-2024, Arm Limited. All rights reserved.*
diff --git a/docs/design_docs/software/code_sharing.rst b/docs/design_docs/software/code_sharing.rst
index 5f11bb5..14db411 100644
--- a/docs/design_docs/software/code_sharing.rst
+++ b/docs/design_docs/software/code_sharing.rst
@@ -174,8 +174,8 @@
| Heap |
+-------------------+
-Patching mbedTLS
-================
+Patching Mbed TLS
+=================
In order to share some global function pointers from mbed-crypto that are
related to dynamic memory allocation, their scope must be extended from private
to global. This is needed because some compiler toolchain only extract the
@@ -185,7 +185,7 @@
`lib/ext/mbedcrypto/0002-Enable-crypto-code-sharing-between-independent-binar.patch`
-The patch need to manually applied in the mbedtls repo, if code sharing is
+The patch needs to be manually applied in the Mbed TLS repo, if code sharing is
enabled. The patch has no effect on the functional behaviour of the
cryptographic library, it only extends the scope of some variables.
@@ -304,7 +304,7 @@
version of the shared code. Then new code cannot rely on the shared version.
The changed code and all the other shared code where it is referenced from must
be ignored and the updated version of the functions must be compiled in the
-SPE binary. The mbedTLS library is API compatible with its current version
+SPE binary. The Mbed TLS library is API compatible with its current version
(``v2.24.0``) since the ``mbedtls-2.7.0 release`` (2018-02-03).
To minimise the risk of incompatibility, use the same compiler flags to build
@@ -364,4 +364,4 @@
--------------
-*Copyright (c) 2020-2022, Arm Limited. All rights reserved.*
\ No newline at end of file
+*Copyright (c) 2020-2024, Arm Limited. All rights reserved.*
diff --git a/docs/design_docs/software/hardware_abstraction_layer.rst b/docs/design_docs/software/hardware_abstraction_layer.rst
index bf70d6c..be06dd3 100644
--- a/docs/design_docs/software/hardware_abstraction_layer.rst
+++ b/docs/design_docs/software/hardware_abstraction_layer.rst
@@ -282,7 +282,7 @@
Isolation API
=============
The :term:`PSA-FF-M` defines three isolation levels and a memory access rule to
-provide diverse levels of securitiy. The isolation API provides the functions to
+provide diverse levels of security. The isolation API provides the functions to
implement these requirements.
The Isolation API operates on boundaries. A boundary represents a set of
@@ -480,7 +480,7 @@
**Return Values**
- ``TFM_HAL_SUCCESS`` - the isolation boundary has been set up.
-- ``TFM_HAL_ERROR_GENERIC`` - failed to set upthe isolation boundary.
+- ``TFM_HAL_ERROR_GENERIC`` - failed to set up the isolation boundary.
tfm_hal_memory_check()
^^^^^^^^^^^^^^^^^^^^^^
@@ -916,6 +916,6 @@
--------------
-*Copyright (c) 2020-2022, Arm Limited. All rights reserved.*
+*Copyright (c) 2020-2024, Arm Limited. All rights reserved.*
*Copyright (c) 2022 Cypress Semiconductor Corporation (an Infineon company)
or an affiliate of Cypress Semiconductor Corporation. All rights reserved.*
diff --git a/docs/design_docs/software/index.rst b/docs/design_docs/software/index.rst
index 45240ed..cc00ba8 100644
--- a/docs/design_docs/software/index.rst
+++ b/docs/design_docs/software/index.rst
@@ -9,8 +9,8 @@
Hardware Abstraction Layer <hardware_abstraction_layer.rst>
Cooperative Scheduling <tfm_cooperative_scheduling_rules.rst>
Code Templates <tfm_code_generation_with_jinja2.rst>
- Implicit Typecasintg <enum_implicit_casting.rst>
+ Implicit Typecasting <enum_implicit_casting.rst>
--------------
-*Copyright (c) 2023, Arm Limited. All rights reserved.*
+*Copyright (c) 2023-2024, Arm Limited. All rights reserved.*
diff --git a/docs/design_docs/software/tfm_cooperative_scheduling_rules.rst b/docs/design_docs/software/tfm_cooperative_scheduling_rules.rst
index 37270da..0b96f94 100644
--- a/docs/design_docs/software/tfm_cooperative_scheduling_rules.rst
+++ b/docs/design_docs/software/tfm_cooperative_scheduling_rules.rst
@@ -10,7 +10,7 @@
======================
On ArmV8-M CPUs, NSPE and SPE share the same physical processing element(PE). A
-TF-M enabled system need to be able to handle asynchronous events (interrupts)
+TF-M enabled systems need to be able to handle asynchronous events (interrupts)
regardless of current security state of the PE, and that may lead to scheduling
decisions. This introduces significant complexity into TF-M. To keep the
integrity of (NSPE and SPE) schedulers and call paths between NSPE and SPE,
@@ -41,7 +41,7 @@
`Involuntary security state switch`; when the software has no control over the
switch:
-- A NSPE interrupt take control into NSPE from SPE
+- A NSPE interrupt takes control into NSPE from SPE
- A SPE interrupt takes control into SPE from NSPE
`Voluntary security state switch`; when software programmatically makes the
@@ -207,4 +207,4 @@
--------------
-*Copyright (c) 2019, Arm Limited. All rights reserved.*
+*Copyright (c) 2019-2024, Arm Limited. All rights reserved.*
diff --git a/docs/getting_started/tfm_getting_started.rst b/docs/getting_started/tfm_getting_started.rst
index 31cbf0f..8983625 100644
--- a/docs/getting_started/tfm_getting_started.rst
+++ b/docs/getting_started/tfm_getting_started.rst
@@ -422,7 +422,7 @@
- Git
- gmake, aka GNU Make
- Python v3.x
- - a set of python modules listed in ``tools/requiremtns.txt``
+ - a set of python modules listed in ``tools/requirements.txt``
****************
Dependency chain
@@ -477,6 +477,6 @@
--------------
-*Copyright (c) 2017-2022, Arm Limited. All rights reserved.*
+*Copyright (c) 2017-2024, Arm Limited. All rights reserved.*
*Copyright (c) 2022 Cypress Semiconductor Corporation (an Infineon company)
or an affiliate of Cypress Semiconductor Corporation. All rights reserved.*
diff --git a/docs/glossary.rst b/docs/glossary.rst
index f80c614..5a9014b 100644
--- a/docs/glossary.rst
+++ b/docs/glossary.rst
@@ -7,7 +7,7 @@
Application RoT
`PSA term`_. The security domain in which additional security services
- are implemented.
+ are implemented. Also referred as ARoT.
HAL
Hardware Abstraction Layer:
@@ -41,7 +41,7 @@
PSA RoT
`PSA term`_. This defines the most trusted security domain within a PSA
- system.
+ system. Also referred as PRoT.
SFN
Secure Function:
@@ -140,4 +140,4 @@
--------------
-*Copyright (c) 2017-2022, Arm Limited. All rights reserved.*
+*Copyright (c) 2017-2024, Arm Limited. All rights reserved.*
diff --git a/docs/integration_guide/tfm_secure_irq_integration_guide.rst b/docs/integration_guide/tfm_secure_irq_integration_guide.rst
index 73fdc2c..770ff9f 100644
--- a/docs/integration_guide/tfm_secure_irq_integration_guide.rst
+++ b/docs/integration_guide/tfm_secure_irq_integration_guide.rst
@@ -17,7 +17,7 @@
Interrupt Handling Model
************************
-TF-M supports the two interrupt handling model defined by FF-M:
+TF-M supports the two interrupt handling models defined by FF-M:
- First-Level Interrupt Handling (FLIH)
@@ -259,7 +259,7 @@
For example if the manifest declares ``"source": 5``, then the function name
is ``irq_5_init``.
-If the mannifest declares ``"source" : "TIMER_1_IRQ"`` then the function
+If the manifest declares ``"source" : "TIMER_1_IRQ"`` then the function
name is ``timer_1_irq_init``.
The function will be called by the Framework automatically during
@@ -402,6 +402,6 @@
--------------
-*Copyright (c) 2021-2023, Arm Limited. All rights reserved.*
+*Copyright (c) 2021-2024, Arm Limited. All rights reserved.*
*Copyright (c) 2022 Cypress Semiconductor Corporation (an Infineon company)
or an affiliate of Cypress Semiconductor Corporation. All rights reserved.*