Docs: Gather configuration options in a section

Signed-off-by: Anton Komlev <anton.komlev@arm.com>
Change-Id: Ia59485647cb34694c7b7274022825af3b8eef526
diff --git a/docs/building/tfm_build_instruction.rst b/docs/building/tfm_build_instruction.rst
index cf24848..93b3948 100644
--- a/docs/building/tfm_build_instruction.rst
+++ b/docs/building/tfm_build_instruction.rst
@@ -43,49 +43,14 @@
  - For building with the IAR toolchain, please see the notes in
    :doc:`IAR software requirements <tfm_build_instruction_iar>`
 
-.. _tfm_cmake_configuration:
-
-Cmake configuration
+Basic configuration
 ===================
 
-All configuration options are provided by cmake variables, and their default
-values, with docstrings, can be found in ``config/config_base.cmake``.
+TF-M has many options for configuration and fine-tuning. Please check the
+:ref:`tf-m_configuration` section for details. The **base** configuration
+will be build by default with only essential modules SPM and platform hence
+a platform must be selected via ``TFM_PLATFORM`` options, it can be:
 
-Configuration is provided in multiple stages. Each stage will not override any
-config that has already been set at any of the prior stages.
-
-   1. Command-line variable settings are applied.
-   2. If the ``TFM_EXTRA_CONFIG_PATH`` variable has been set, that file is
-      loaded.
-   3. If TEST_PSA_TEST is set, then PSA API test related config is applied from
-      ``config/tests/config_test_psa_api.cmake``.
-   4. If it exists, CMAKE_BUILD_TYPE specific config is applied from
-      ``config/build_type/<build_type>.cmake``.
-   5. Target specific config from ``platform/ext/target/<target_platform>/config.cmake``
-      is applied.
-   6. If CRYPTO_HW_ACCELERATOR is set, then a config specific to the
-      accelerator type is applied if it exists.
-   7. If it exists, TFM Profile specific config is applied from
-      ``config/profile/<tfm_profile>.cmake``.
-   8. ``config/config_base.cmake`` is loaded.
-   9. If ``TEST_S`` or ``TEST_NS`` or other single test suite config like
-      ``TEST_NS_ATTESTATION`` (see `Regression test configuration`_)is set, then
-      config from ``${TFM_TEST_REPO_PATH}/test/config/set_config.cmake`` and
-      ``${TFM_TEST_REPO_PATH}/test/config/default_ns_test_config.cmake`` or
-      ``${TFM_TEST_REPO_PATH}/test/config/default_s_test_config.cmake`` or
-      ``${TFM_TEST_REPO_PATH}/test/config/default_test_config.cmake`` is
-      applied.
-
-.. Warning::
-    This means that command-line settings are not applied when they conflict
-    with required platform settings. If it is required to override platform
-    settings (this is not usually a good idea) then TFM_EXTRA_CONFIG_PATH should be
-    used.
-
-Required cmake parameters for building TF-M
--------------------------------------------
-
-``TFM_PLATFORM`` is required to select the target platform, it can be:
  - A relative path under ``<TF-M_root>/platform/ext/target``,
    for example ``arm/mps2/an521``.
  - An absolute path of target platform, mainly used for out-of-tree platform
@@ -103,9 +68,7 @@
  - ``Debug``
  - ``RelWithDebInfo``
  - ``Release``
- - ``MinSizeRel``
-
-``MinSizeRel`` is default.
+ - ``MinSizeRel`` - default
 
 Debug symbols are added by default to all builds, but can be removed
 from ``Release`` and ``MinSizeRel`` builds by setting
@@ -119,9 +82,9 @@
 Other cmake parameters
 ----------------------
 
-The full list of default options is in ``config/config_base.cmake``. Several
-important options are listed below.
-
+The full list of default options is in ``config/config_base.cmake`` and
+explained in :ref:`tfm_cmake_configuration`. Several important options
+are listed below.
 
 +---------------------+----------------------------------------+---------------+
 | Parameter           | Description                            | Default value |
@@ -143,128 +106,13 @@
 |                     | argument (``CRYPTO`` etc).             |               |
 +---------------------+----------------------------------------+---------------+
 
-Regression test configuration
------------------------------
-
-Regression test configuration is controlled entirely by ``TEST_NS`` or
-``TEST_S`` or single test suite configuration. The group test
-configurations and single test suite configurations are listed below, all of
-them are disabled by default.
-
-+---------------------+--------------------------------------------------------------------+
-| Parameter           | Description                                                        |
-+=====================+====================================================================+
-| TEST_NS_ATTESTATION | Build non-secure regression Attestation tests.                     |
-+---------------------+--------------------------------------------------------------------+
-| TEST_NS_T_COSE      | Build non-secure regression t_cose tests.                          |
-+---------------------+--------------------------------------------------------------------+
-| TEST_NS_QCBOR       | Build non-secure regression QCBOR tests.                           |
-+---------------------+--------------------------------------------------------------------+
-| TEST_NS_CRYPTO      | Build non-secure regression Crypto tests.                          |
-+---------------------+--------------------------------------------------------------------+
-| TEST_NS_ITS         | Build non-secure regression ITS tests.                             |
-+---------------------+--------------------------------------------------------------------+
-| TEST_NS_PS          | Build non-secure regression PS tests.                              |
-+---------------------+--------------------------------------------------------------------+
-| TEST_NS_PLATFORM    | Build non-secure regression Platform tests.                        |
-+---------------------+--------------------------------------------------------------------+
-| TEST_NS_FWU         | Build non-secure regression FWU tests.                             |
-+---------------------+--------------------------------------------------------------------+
-| TEST_NS_IPC         | Build non-secure regression IPC tests.                             |
-+---------------------+--------------------------------------------------------------------+
-| TEST_NS_SLIH_IRQ    | Build non-secure regression Second-Level Interrupt Handling tests. |
-+---------------------+--------------------------------------------------------------------+
-| TEST_NS_FLIH_IRQ    | Build non-secure regression First-Level Interrupt Handling tests.  |
-+---------------------+--------------------------------------------------------------------+
-| TEST_NS_MULTI_CORE  | Build non-secure regression multi-core tests.                      |
-+---------------------+--------------------------------------------------------------------+
-| TEST_S_ATTESTATION  | Build secure regression Attestation tests.                         |
-+---------------------+--------------------------------------------------------------------+
-| TEST_S_CRYPTO       | Build secure regression Crypto tests.                              |
-+---------------------+--------------------------------------------------------------------+
-| TEST_S_ITS          | Build secure regression ITS tests.                                 |
-+---------------------+--------------------------------------------------------------------+
-| TEST_S_PS           | Build secure regression PS tests.                                  |
-+---------------------+--------------------------------------------------------------------+
-| TEST_S_PLATFORM     | Build secure regression Platform tests.                            |
-+---------------------+--------------------------------------------------------------------+
-| TEST_S_FWU          | Build secure regression FWU tests.                                 |
-+---------------------+--------------------------------------------------------------------+
-| TEST_S_IPC          | Build secure regression IPC tests.                                 |
-+---------------------+--------------------------------------------------------------------+
-
-Individual test suites can be enabled when their dependencies like partitions or
-other specific configurations are set. On the one hand, some test suites depend
-on other test suites. On the other hand, some test suites conflict with
-other test suites. Test configurations and dependencies will be
-checked in ``${TFM_TEST_REPO_PATH}/test/config/check_config.cmake``.
-
-If regression testing is enabled by ``TEST_NS`` or ``TEST_S``, individual
-test suites will be enabled or disabled as appropriate for the TF-M
-configuration (i.e. all enabled secure partitions will be tested).
-
-Some cryptographic tests can be enabled and disabled. This is done to prevent
-false failures from being reported when a smaller Mbed Crypto config is being
-used which does not support all features.
-
-+---------------------------------------+---------------------------------------+---------------+
-| Parameter                             | Description                           | Default value |
-+=======================================+=======================================+===============+
-| TFM_CRYPTO_TEST_ALG_CBC               | Test CBC cryptography mode            | ON            |
-+---------------------------------------+---------------------------------------+---------------+
-| TFM_CRYPTO_TEST_ALG_CCM               | Test CCM cryptography mode            | ON            |
-+---------------------------------------+---------------------------------------+---------------+
-| TFM_CRYPTO_TEST_ALG_CFB               | Test CFB cryptography mode            | ON            |
-+---------------------------------------+---------------------------------------+---------------+
-| TFM_CRYPTO_TEST_ALG_ECB               | Test ECB cryptography mode            | ON            |
-+---------------------------------------+---------------------------------------+---------------+
-| TFM_CRYPTO_TEST_ALG_CTR               | Test CTR cryptography mode            | ON            |
-+---------------------------------------+---------------------------------------+---------------+
-| TFM_CRYPTO_TEST_ALG_OFB               | Test OFB cryptography mode            | ON            |
-+---------------------------------------+---------------------------------------+---------------+
-| TFM_CRYPTO_TEST_ALG_GCM               | Test GCM cryptography mode            | ON            |
-+---------------------------------------+---------------------------------------+---------------+
-| TFM_CRYPTO_TEST_ALG_SHA_384           | Test SHA-384 cryptography algorithm   | ON            |
-+---------------------------------------+---------------------------------------+---------------+
-| TFM_CRYPTO_TEST_ALG_SHA_512           | Test SHA-512 cryptography algorithm   | ON            |
-+---------------------------------------+---------------------------------------+---------------+
-| TFM_CRYPTO_TEST_HKDF                  | Test HKDF key derivation algorithm    | ON            |
-+---------------------------------------+---------------------------------------+---------------+
-| TFM_CRYPTO_TEST_ECDH                  | Test ECDH key agreement algorithm     | ON            |
-+---------------------------------------+---------------------------------------+---------------+
-| TFM_CRYPTO_TEST_CHACHA20              | Test ChaCha20 stream cipher           | ON            |
-+---------------------------------------+---------------------------------------+---------------+
-| TFM_CRYPTO_TEST_ALG_CHACHA20_POLY1305 | Test ChaCha20-Poly1305 AEAD algorithm | ON            |
-+---------------------------------------+---------------------------------------+---------------+
-
 TF-M Profiles
 -------------
 
 TF-M Profiles are implemented as a single cmake configuration file, under the
 ``config/profile`` directory. A good understanding can be gained quickly by
 looking at the Profile configuration files, but the ultimate reference for
-Profiles are the design documents in the ``docs/technical_references/profiles/``
-directory.
-
-PSA test configuration
-----------------------
-
-PSA tests are configured by using the ``TEST_PSA_API`` cmake variable. The
-variable should be set to the name of the test suite that is desired. It is
-_not_ supported to set both ``TEST_PSA_API`` and ``TEST_S`` or ``TEST_NS``.
-
-The Functional API tests are:
- - ``CRYPTO``
- - ``INITIAL_ATTESTATION``
- - ``STORAGE`` (INTERNAL_TRUSTED_STORAGE and PROTECTED_STORAGE)
- - ``INTERNAL_TRUSTED_STORAGE``
- - ``PROTECTED_STORAGE``
-
-The Firmware Framework test suites are:
- - ``IPC``
-
-Note that these map directly to the ``SUITE`` cmake variable used in the
-psa-arch-tests documentation.
+Profiles is in :ref:`tf-m_profiles`.
 
 *******************
 TF-M build examples
diff --git a/docs/configuration/build_configuration.rst b/docs/configuration/build_configuration.rst
new file mode 100644
index 0000000..f82d6d7
--- /dev/null
+++ b/docs/configuration/build_configuration.rst
@@ -0,0 +1,39 @@
+.. _tfm_cmake_configuration:
+
+###################
+Build configuration
+###################
+
+All configuration options are provided by cmake variables, and their default
+values, with docstrings, can be found in ``config/config_base.cmake``.
+
+Configuration is provided in multiple stages. Each stage will not override any
+config that has already been set at any of the prior stages.
+
+   1. Command-line variable settings are applied.
+   2. If the ``TFM_EXTRA_CONFIG_PATH`` variable has been set, that file is
+      loaded.
+   3. If TEST_PSA_TEST is set, then PSA API test related config is applied from
+      ``config/tests/config_test_psa_api.cmake``.
+   4. If it exists, CMAKE_BUILD_TYPE specific config is applied from
+      ``config/build_type/<build_type>.cmake``.
+   5. Target specific config from ``platform/ext/target/<target_platform>/config.cmake``
+      is applied.
+   6. If CRYPTO_HW_ACCELERATOR is set, then a config specific to the
+      accelerator type is applied if it exists.
+   7. If it exists, TFM Profile specific config is applied from
+      ``config/profile/<tfm_profile>.cmake``.
+   8. ``config/config_default.cmake`` is loaded.
+   9. If ``TEST_S`` or ``TEST_NS`` or other single test suite config like
+      ``TEST_NS_ATTESTATION`` (see :ref:`test_configuration`) is set, then
+      config from ``${TFM_TEST_REPO_PATH}/test/config/set_config.cmake`` and
+      ``${TFM_TEST_REPO_PATH}/test/config/default_ns_test_config.cmake`` or
+      ``${TFM_TEST_REPO_PATH}/test/config/default_s_test_config.cmake`` or
+      ``${TFM_TEST_REPO_PATH}/test/config/default_test_config.cmake`` is
+      applied.
+
+.. Warning::
+    This means that command-line settings are not applied when they conflict
+    with required platform settings. If it is required to override platform
+    settings (this is not usually a good idea) then TFM_EXTRA_CONFIG_PATH should be
+    used.
diff --git a/docs/configuration/index.rst b/docs/configuration/index.rst
index 7c2cc2d..29db514 100644
--- a/docs/configuration/index.rst
+++ b/docs/configuration/index.rst
@@ -1,3 +1,5 @@
+.. _tf-m_configuration:
+
 #############
 Configuration
 #############
@@ -12,53 +14,61 @@
     :maxdepth: 1
     :glob:
 
-    profiles/index
+    build_configuration.rst
+    Profiles <profiles/index>
+    test_configuration.rst
 
-TF-M is a complex project having many configuration options to adjust project
-for a user needs. A user can select the desired set of services and fine-tune
-them to user's requirements. There are 2 types of configuration options:
+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
+them to their requirements. There are two types of configuration options
 
-1. Building : to select which file or component to include into compilation.
+Building configuration
+   Specifies which file or component to include into compilation and build.
    These are options, usually used by a build system to enable/disable
    modules, specify location of external dependency or other selection,
    global to a project. These options shall be considered while adopting TF-M
    to other build systems.
    In the Base configuration table theses options have *Build* type.
 
-2. Component tuning : to adjust a particular parameter to a desired value.
-   Those options are local to a component or externally referenced when
-   components are coupled. Usually, such options are located in C header
-   file. The Header File Config System has more details about it.
+Component tuning
+   To adjust a particular parameter to a desired value. Those options are
+   local to a component or externally referenced when components are coupled.
+   Options are in C header file. The <Header_configuration> has more details about it.
    In the Base configuration table theses options have *Component* type.
 
 .. Note::
-  Originally, TF-M used CMake variables for both building and component tuning
-  purposes. It was convenient to have a single system for both building and
-  component's configurations. To simplify and improve configurability and
-  better support build systems other than a CMake, TF-M introduced a header
-  file configuration and moved component options into a dedicated config headers.
+   Originally, TF-M used CMake variables for both building and component tuning
+   purposes. It was convenient to have a single system for both building and
+   component's configurations. To simplify and improve configurability and
+   better support build systems other than a CMake, TF-M introduced a
+   Header configuration and moved component options into a dedicated
+   config headers.
 
 ****************
 How to configure
 ****************
 
-The default TF-M build includes the minimum set of components required in any
-project: SPM and a selected platform. This is not very useful for any product
-and desired services shall be enabled by a user. There are several independent
-ways to configure TF-M.
+TF-M Project provides a base build, defined in config_base.cmake. It includes
+SPM and platform code only. Starting from the base, users can enable required
+services and features using several independent methods to configure TF-M.
 
-1. Use profiles. There are 4 sets of predefined configurations for a elected
+Use <Profiles>.
+   There are 4 sets of predefined configurations for a selected
    use cases, called profiles. A user can select a profile by providing
    -DTFM_PROFILE=<profile file name>.
    Each profiles represented by a pair of configuration files for
    Building (CMake) options and Component options (.h file)
 
-2. A custom profile. Another method is to take a profile as a base and manually
-   modify desired options.
+Use a custom profile.
+   Another method is to take existing TF-M profile and adjust the desired
+   options manually editing CMake and config header files. This is for users
+   familiar with TF-M.
 
-3. Use KConfig system. This is recommended method especially for beginners.
-   KConfig ensurers that all selected options are consistent and valid. This
-   is new in v1.7.0 and it covers only SPM and PSA ervices. As an output
+Use <Kconfig_system>.
+   This method is recommended for beginners. Starting from the
+   <base configuration> a user can enable necessary services and options.
+   KConfig ensurers that all selected options are consistent and valid.
+   This is new in v1.7.0 and it covers only SPM and PSA ervices. As an output
    KConfig produces a pair of configuration files, similar to a profile.
 
 .. Note::
@@ -70,10 +80,21 @@
 **********
 Priorities
 **********
-Note::
 
-   TODO: Need a secion on configuration Priorities
+A project configueration performed in multiple steps with priorities.
+The list below explains the process but for the details specific to
+:ref:`tfm_cmake_configuration` or <Header_configuration> please
+check the corresponded document.
 
+#. The base configuration with default values is used as a starting point
+#. A profile options applied on top of the base
+#. A platform can check the selected configuration and apply restrictions
+#. Finally, command line options can modify the composed set
+
+.. Note::
+   To ensure a clear intention and conscious choice, all options must be
+   providede explicitly via a project configuration file. Default values
+   on step 1 will generate warnings which expected to break a build.
 
 --------------
 
diff --git a/docs/configuration/profiles/index.rst b/docs/configuration/profiles/index.rst
index 1b3e69b..1000aa5 100644
--- a/docs/configuration/profiles/index.rst
+++ b/docs/configuration/profiles/index.rst
@@ -1,5 +1,8 @@
+.. _tf-m_profiles:
+
+#############
 TF-M Profiles
-=============
+#############
 
 The capabilities and resources may dramatically vary on different IoT devices.
 Some IoT devices may have very limited memory resource. The program on those devices should keep
@@ -83,4 +86,4 @@
 
 --------------
 
-Copyright (c) 2020, Arm Limited. All rights reserved.*
+*Copyright (c) 2020, Arm Limited. All rights reserved.*
diff --git a/docs/configuration/test_configuration.rst b/docs/configuration/test_configuration.rst
new file mode 100644
index 0000000..8f2825d
--- /dev/null
+++ b/docs/configuration/test_configuration.rst
@@ -0,0 +1,121 @@
+.. _test_configuration:
+
+###################
+Tests configuration
+###################
+
+Regression tests
+================
+
+Regression test configuration is controlled entirely by ``TEST_NS`` or
+``TEST_S`` or single test suite configuration. The group test
+configurations and single test suite configurations are listed below, all of
+them are disabled by default.
+
++---------------------+--------------------------------------------------------------------+
+| Parameter           | Description                                                        |
++=====================+====================================================================+
+| TEST_NS_ATTESTATION | Build non-secure regression Attestation tests.                     |
++---------------------+--------------------------------------------------------------------+
+| TEST_NS_T_COSE      | Build non-secure regression t_cose tests.                          |
++---------------------+--------------------------------------------------------------------+
+| TEST_NS_QCBOR       | Build non-secure regression QCBOR tests.                           |
++---------------------+--------------------------------------------------------------------+
+| TEST_NS_CRYPTO      | Build non-secure regression Crypto tests.                          |
++---------------------+--------------------------------------------------------------------+
+| TEST_NS_ITS         | Build non-secure regression ITS tests.                             |
++---------------------+--------------------------------------------------------------------+
+| TEST_NS_PS          | Build non-secure regression PS tests.                              |
++---------------------+--------------------------------------------------------------------+
+| TEST_NS_PLATFORM    | Build non-secure regression Platform tests.                        |
++---------------------+--------------------------------------------------------------------+
+| TEST_NS_FWU         | Build non-secure regression FWU tests.                             |
++---------------------+--------------------------------------------------------------------+
+| TEST_NS_IPC         | Build non-secure regression IPC tests.                             |
++---------------------+--------------------------------------------------------------------+
+| TEST_NS_SLIH_IRQ    | Build non-secure regression Second-Level Interrupt Handling tests. |
++---------------------+--------------------------------------------------------------------+
+| TEST_NS_FLIH_IRQ    | Build non-secure regression First-Level Interrupt Handling tests.  |
++---------------------+--------------------------------------------------------------------+
+| TEST_NS_MULTI_CORE  | Build non-secure regression multi-core tests.                      |
++---------------------+--------------------------------------------------------------------+
+| TEST_S_ATTESTATION  | Build secure regression Attestation tests.                         |
++---------------------+--------------------------------------------------------------------+
+| TEST_S_CRYPTO       | Build secure regression Crypto tests.                              |
++---------------------+--------------------------------------------------------------------+
+| TEST_S_ITS          | Build secure regression ITS tests.                                 |
++---------------------+--------------------------------------------------------------------+
+| TEST_S_PS           | Build secure regression PS tests.                                  |
++---------------------+--------------------------------------------------------------------+
+| TEST_S_PLATFORM     | Build secure regression Platform tests.                            |
++---------------------+--------------------------------------------------------------------+
+| TEST_S_FWU          | Build secure regression FWU tests.                                 |
++---------------------+--------------------------------------------------------------------+
+| TEST_S_IPC          | Build secure regression IPC tests.                                 |
++---------------------+--------------------------------------------------------------------+
+
+Individual test suites can be enabled when their dependencies like partitions or
+other specific configurations are set. On the one hand, some test suites depend
+on other test suites. On the other hand, some test suites conflict with
+other test suites. Test configurations and dependencies will be
+checked in ``${TFM_TEST_REPO_PATH}/test/config/check_config.cmake``.
+
+If regression testing is enabled by ``TEST_NS`` or ``TEST_S``, individual
+test suites will be enabled or disabled as appropriate for the TF-M
+configuration (i.e. all enabled secure partitions will be tested).
+
+Some cryptographic tests can be enabled and disabled. This is done to prevent
+false failures from being reported when a smaller Mbed Crypto config is being
+used which does not support all features.
+
++---------------------------------------+---------------------------------------+---------------+
+| Parameter                             | Description                           | Default value |
++=======================================+=======================================+===============+
+| TFM_CRYPTO_TEST_ALG_CBC               | Test CBC cryptography mode            | ON            |
++---------------------------------------+---------------------------------------+---------------+
+| TFM_CRYPTO_TEST_ALG_CCM               | Test CCM cryptography mode            | ON            |
++---------------------------------------+---------------------------------------+---------------+
+| TFM_CRYPTO_TEST_ALG_CFB               | Test CFB cryptography mode            | ON            |
++---------------------------------------+---------------------------------------+---------------+
+| TFM_CRYPTO_TEST_ALG_ECB               | Test ECB cryptography mode            | ON            |
++---------------------------------------+---------------------------------------+---------------+
+| TFM_CRYPTO_TEST_ALG_CTR               | Test CTR cryptography mode            | ON            |
++---------------------------------------+---------------------------------------+---------------+
+| TFM_CRYPTO_TEST_ALG_OFB               | Test OFB cryptography mode            | ON            |
++---------------------------------------+---------------------------------------+---------------+
+| TFM_CRYPTO_TEST_ALG_GCM               | Test GCM cryptography mode            | ON            |
++---------------------------------------+---------------------------------------+---------------+
+| TFM_CRYPTO_TEST_ALG_SHA_384           | Test SHA-384 cryptography algorithm   | ON            |
++---------------------------------------+---------------------------------------+---------------+
+| TFM_CRYPTO_TEST_ALG_SHA_512           | Test SHA-512 cryptography algorithm   | ON            |
++---------------------------------------+---------------------------------------+---------------+
+| TFM_CRYPTO_TEST_HKDF                  | Test HKDF key derivation algorithm    | ON            |
++---------------------------------------+---------------------------------------+---------------+
+| TFM_CRYPTO_TEST_ECDH                  | Test ECDH key agreement algorithm     | ON            |
++---------------------------------------+---------------------------------------+---------------+
+| TFM_CRYPTO_TEST_CHACHA20              | Test ChaCha20 stream cipher           | ON            |
++---------------------------------------+---------------------------------------+---------------+
+| TFM_CRYPTO_TEST_ALG_CHACHA20_POLY1305 | Test ChaCha20-Poly1305 AEAD algorithm | ON            |
++---------------------------------------+---------------------------------------+---------------+
+
+PSA tests
+=========
+
+PSA tests are configured by using the ``TEST_PSA_API`` cmake variable. The
+variable should be set to the name of the test suite that is desired. It is
+_not_ supported to set both ``TEST_PSA_API`` and ``TEST_S`` or ``TEST_NS``.
+
+The Functional API tests are:
+ - ``CRYPTO``
+ - ``INITIAL_ATTESTATION``
+ - ``STORAGE`` (INTERNAL_TRUSTED_STORAGE and PROTECTED_STORAGE)
+ - ``INTERNAL_TRUSTED_STORAGE``
+ - ``PROTECTED_STORAGE``
+
+The Firmware Framework test suites are:
+ - ``IPC``
+ - ``SFN``
+ - ``Interrupt``
+
+Note that these map directly to the ``SUITE`` cmake variable used in the
+psa-arch-tests documentation.
diff --git a/docs/introduction/readme.rst b/docs/introduction/readme.rst
index 3bdda6f..d33e1ee 100644
--- a/docs/introduction/readme.rst
+++ b/docs/introduction/readme.rst
@@ -14,13 +14,21 @@
 not limited to using the `Arm TrustZone technology`_ on Armv8-M and Armv8.1-M
 architectures. In pre-Armv8-M architectures physical core isolation is required.
 
-**Trusted Firmware-M consists of:**
+**TF-M consists of:**
 
-- Secure Boot to authenticate integrity of NSPE and SPE images
-- TF-M Core responsible for controlling the isolation, communication and
-  execution within SPE and with NSPE
-- Crypto, Internal Trusted Storage (ITS), Protected Storage (PS) and
-  Attestation secure services
+- Secure Boot to authenticate NSPE and SPE images
+- TF-M Core for controlling the isolation, communication
+  and execution within SPE and with NSPE
+- Crypto, Internal Trusted Storage (ITS), Protected Storage (PS),
+  Firmware Update and Attestation secure services
+
+TF-M implements PSA-FF-M defined IPC and SFN mechanisms to allow communication
+between isolated firmware partitions. TF-M is highly configurable allowing users
+to only include the required secure services and features. Project provides
+‘TF-M base’ build with just TF-M core and platform drivers and 4 predefined
+configurations known as :ref:`tf-m_profiles`. TF-M Profiles or TF-M base can
+be configured to include required services and features as described in the
+'Configuration' section.
 
 .. figure:: readme_tfm_v8.png
    :scale: 65 %