diff --git a/docs/developer/deployments/index.rst b/docs/developer/deployments/index.rst
deleted file mode 100644
index 40a6949..0000000
--- a/docs/developer/deployments/index.rst
+++ /dev/null
@@ -1,31 +0,0 @@
-Deployments
-===========
-In the context of the Trusted Services project, a deployment represents a build of an
-assembly of components that is intended to run within a specific environment. Some
-deployments may be built for different platforms using platform specific components
-if needed. The concept of a deployment is general purpose and can be applied to building
-a wide range of targets such as secure partition images, user-space tools, shared libraries
-and test executables.
-
-Supported deployments are described on the following pages:
-
-.. toctree::
-    :maxdepth: 1
-
-    secure-partitions
-    test-executables
-    libraries
-    tools-demo-apps
-
-Related deployments:
-
-  - :ref:`Project Structure`
-  - :ref:`Portability Model`
-  - :ref:`Build Instructions`
-  - :ref:`Running Tests`
-
---------------
-
-*Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.*
-
-SPDX-License-Identifier: BSD-3-Clause
diff --git a/docs/developer/deployments/libraries.rst b/docs/developer/deployments/libraries.rst
deleted file mode 100644
index 2e60d86..0000000
--- a/docs/developer/deployments/libraries.rst
+++ /dev/null
@@ -1,51 +0,0 @@
-Libraries
-=========
-Some deployments build common functionality into libraries that may be used by
-other deployments or external applications. The following library deployments
-are currently supported:
-
-libts
------
-Userspace applications that depend on trusted services may use *libts* for handling
-service discovery and RPC messaging. A major benefit to application developers is
-that *libts* entirely decouples client applications from details of where a service
-provider is deployed and how to communicate with it. All TS test executables and
-tools that interact with service providers use *libts*.
-
-To facilitate test and development within a native PC environment, the *libts*
-deployment for the *linux-pc* environment integrates a set of service providers
-into the library itself. From a client application's perspective, this looks
-exactly the same as when running on a target platform with service providers
-deployed in secure processing environments. For more information, see:
-:ref:`Service Locator`.
-
-.. list-table::
-  :widths: 1 2
-  :header-rows: 0
-
-  * - Supported Environments
-    - * | *linux-pc* - service providers integrated into library
-      * | *arm-linux* - communicates with service providers in secure processing environment
-  * - Used by
-    - * Userspace applications
-
-libsp
------
-*libsp* provides a functional interface for using FF-A messaging and memory
-management facilities. *libsp* is used in SP deployments. For more information, see:
-:ref:`libsp`.
-
-.. list-table::
-  :widths: 1 2
-  :header-rows: 0
-
-  * - Supported Environments
-    - * | *opteesp*
-  * - Used by
-    - * Secure partitions
-
---------------
-
-*Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.*
-
-SPDX-License-Identifier: BSD-3-Clause
diff --git a/docs/developer/deployments/secure-partitions.rst b/docs/developer/deployments/secure-partitions.rst
deleted file mode 100644
index 8e6ba24..0000000
--- a/docs/developer/deployments/secure-partitions.rst
+++ /dev/null
@@ -1,133 +0,0 @@
-Secure Partitions
-=================
-Secure partition (SP) deployments are concerned with building SP images that can
-be loaded and run under a secure partition manager such as Hafnium or OP-TEE.
-SP images will usually include service provider components that expose a
-service interface that may be reached using FF-A messages. A set of SP images
-will be loaded and verified by device firmware to provide the required services.
-
-The following SP deployments are currently supported:
-
-crypto
-------
-An instance of the crypto service provider is built into an SP image to
-perform cryptographic operations on behalf of clients running in different
-partitions. Backend crypto operations are implemented by the crypto library
-component of MbedTLS. This deployment provides the cryptographic facilities
-needed for PSA certification. For more information, see:
-:ref:`Crypto Service Description`.
-
-.. list-table::
-  :widths: 1 2
-  :header-rows: 0
-
-  * - Supported Environments
-    - * *opteesp* (runs as an S-EL0 SP under OP-TEE)
-  * - External Dependencies
-    - * | TRNG (platform specific)
-      * | Secure storage SP
-
-attestation
------------
-An instance of the attestation service provider is built into an SP image
-to support remote attestation use-cases. The service provider obtains a
-trusted view of the boot state of device firmware from the TPM event log
-collected by the boot loader. This deployment provides the initial attestation
-facility needed for PSA certification. For more information, see:
-:ref:`Attestation Service Description`.
-
-.. list-table::
-  :widths: 1 2
-  :header-rows: 0
-
-  * - Supported Environments
-    - * *opteesp* (runs as an S-EL0 SP under OP-TEE)
-  * - External Dependencies
-    - * | TPM Event Log (via SP boot parameter)
-      * | Crypto SP
-
-internal-trusted-storage & protected-storage
---------------------------------------------
-Two secure storage SP deployments are provided to allow different classes
-of storage to coexist on a device. Both deployments build an instance of
-the secure storage service provider with a storage backend. To allow
-different security trade-offs to be made and to support different hardware,
-a system integrator may configure which storage backend to use. Secure storage
-is a requirement for PSA certification. For more information, see:
-:ref:`Secure Storage Service Description`.
-
-.. list-table::
-  :widths: 1 2
-  :header-rows: 0
-
-  * - Supported Environments
-    - * *opteesp* (runs as an S-EL0 SP under OP-TEE)
-  * - External Dependencies
-    - * Depends on configured storage backend
-
-se-proxy
---------
-The se-proxy SP provides access to services hosted by a secure enclave (hence
-'se'). A secure enclave consists of a separate MCU, connected to the host via
-a secure communications channel. To protect access to the communication channel,
-the se-proxy SP is assigned exclusive access to the communication peripheral via
-device or memory regions defined in the SP manifest. The deployment integrates
-multiple service providers into the SP image. After performing access control,
-service requests are forwarded to the secure enclave.
-
-The se-proxy deployment includes proxies for the following services:
-
-  - Crypto
-  - Attestation
-  - Internal Trusted Storage
-  - Protected Storage
-
-.. list-table::
-  :widths: 1 2
-  :header-rows: 0
-
-  * - Supported Environments
-    - * *opteesp* (runs as an S-EL0 SP under OP-TEE)
-  * - External Dependencies
-    - * SE communication peripheral (platform specific)
-
-smm-gateway
------------
-An instance of the smm-variable service provider is built into the smm-gateway SP
-image to provide secure world backing for UEFI SMM services. The smm-gateway SP
-provides a lightweight alternative to StMM. For more information, see:
-:ref:`UEFI SMM Services`.
-
-.. list-table::
-  :widths: 1 2
-  :header-rows: 0
-
-  * - Supported Environments
-    - * *opteesp* (runs as an S-EL0 SP under OP-TEE)
-  * - External Dependencies
-    - * | Secure storage service instance (e.g. hosted by protected-storage SP)
-      * | Crypto service instance (e.g. hosted crypto SP)
-
-env-test
---------
-An instance of the test runner service provider is built into an SP image to
-allow test cases to be run from within the SP isolated environment. The SP
-image also includes environment and platform specific test cases to allow
-access to FF-A services and platform hardware to be tested. The test runner
-service provider is intended to be used in conjunction with a client that
-coordinates which tests to run and collects test results.
-
-.. list-table::
-  :widths: 1 2
-  :header-rows: 0
-
-  * - Supported Environments
-    - * *opteesp* (runs as an S-EL0 SP under OP-TEE)
-  * - External Dependencies
-    - * Any hardware accessed by test cases (platform specific)
-
---------------
-
-*Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.*
-
-SPDX-License-Identifier: BSD-3-Clause
diff --git a/docs/developer/deployments/test-executables.rst b/docs/developer/deployments/test-executables.rst
deleted file mode 100644
index db569f3..0000000
--- a/docs/developer/deployments/test-executables.rst
+++ /dev/null
@@ -1,113 +0,0 @@
-Test Executables
-================
-The Trusted Services project maintains a number of deployments concerned with
-test. Although there may be some coverage overlap between different deployments,
-in general, the built test executables corresponding to different deployments
-serve different purposes. Most test executables may be run either on target
-hardware or a development PC as a native application. For more information, see:
-:ref:`Running Tests`.
-
-The following test deployments are currently supported:
-
-component-test
---------------
-The component-test deployment combines a large set of tests and components into
-a monolithic image that may be run as a userspace application. The CppUtest test
-framework is used for running tests and capturing results. The component-test
-executable may be built and run very quickly to obtain a first pass check for
-build failures or regressions.
-
-.. list-table::
-  :widths: 1 2
-  :header-rows: 0
-
-  * - Supported Environments
-    - * | *linux-pc*
-      * | *arm-linux*
-  * - Used for
-    - * | Build testing
-      * | Development support and debug
-      * | Regression testing
-
-ts-service-test
----------------
-The ts-service-test deployment combines test suites that exercise service providers
-via their standard service interfaces where test cases perform the role of service client.
-Service discovery and RPC messaging is handled by the *libts* shared library. On real targets,
-the *libts* library uses a dynamic discovery mechanism to locate and communicate with real
-service deployments. For native PC builds, service providers are embedded into the *libts*
-library itself, allowing service level testing within a native PC environment.
-
-.. list-table::
-  :widths: 1 2
-  :header-rows: 0
-
-  * - Supported Environments
-    - * | *linux-pc* - tests against service providers integrated into *libts*
-      * | *arm-linux* - tests against real service deployments
-  * - Used for
-    - * | End-to-end service testing
-      * | Security testing
-      * | Development support and debug
-      * | Regression testing
-
-uefi-test
----------
-The uefi-test deployment includes service level tests for UEFI SMM services.
-
-.. list-table::
-  :widths: 1 2
-  :header-rows: 0
-
-  * - Supported Environments
-    - * | *linux-pc* - tests against service providers integrated into *libts*
-      * | *arm-linux* - tests against real service deployments using MM_COMMUNICATE
-  * - Used for
-    - * | UEFI service level testing
-      * | Regression testing
-
-psa-api-test
-------------
-Used for PSA API conformance testing using test suites from: `PSA Arch Test project`_.
-Tests are integrated with service clients to enable end-to-end testing against deployed
-service providers. Separate executables are built for each API under test. As with
-ts-service-test and uefi-test, service discovery and messaging is handled by *libts*,
-allowing API tests to be run on real targets or within a native PC environment.
-
-.. list-table::
-  :widths: 1 2
-  :header-rows: 0
-
-  * - Supported Environments
-    - * | *linux-pc* - tests against service providers integrated into *libts*
-      * | *arm-linux* - tests against real service deployments
-  * - Used for
-    - * | PSA API conformance testing
-      * | Regression testing
-
-ts-remote-test
---------------
-The ts-remote-test deployment builds a userspace application that allows a remote
-test runner to be discovered and controlled. It implements a subset of the the
-CppUtest command line interface but instead of running tests directly, it
-communicates with the remote test runner to run tests and collect results. Can
-be used, for example, to control the running of tests included in the env-test
-deployment.
-
-.. list-table::
-  :widths: 1 2
-  :header-rows: 0
-
-  * - Supported Environments
-    - * | *linux-pc* - tests against test runner service provider integrated into *libts*
-      * | *arm-linux* - tests against real test runner deployment e.g. env-test
-  * - Used for
-    - * | Running environment tests
-
---------------
-
-.. _`PSA Arch Test project`: https://github.com/ARM-software/psa-arch-tests.git
-
-*Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.*
-
-SPDX-License-Identifier: BSD-3-Clause
diff --git a/docs/developer/deployments/tools-demo-apps.rst b/docs/developer/deployments/tools-demo-apps.rst
deleted file mode 100644
index f3c3adf..0000000
--- a/docs/developer/deployments/tools-demo-apps.rst
+++ /dev/null
@@ -1,41 +0,0 @@
-Tools & Demo Applications
-=========================
-The following deployments are concerned with building tools and demo applications.
-
-platform-inspect
-----------------
-The *platform-inspect* tool may be run from a Linux terminal to inspect and
-report information about platform firmware. Functionality is currently limited
-to retrieving a firmware attestation report and printing its contents.
-
-.. list-table::
-  :widths: 1 2
-  :header-rows: 0
-
-  * - Supported Environments
-    - * | *linux-pc*
-      * | *arm-linux*
-  * - Used for
-    - * | Obtaining information about platform firmware
-
-ts-demo
--------
-*ts-demo* is a simple application that uses the Crypto service to perform some
-typical sign, verify and encrypt operations. It is intended to be used as an
-example of how trusted services can be used by userspace applications.
-
-.. list-table::
-  :widths: 1 2
-  :header-rows: 0
-
-  * - Supported Environments
-    - * | *linux-pc*
-      * | *arm-linux*
-  * - Used for
-    - * | Provides an example for how to use trusted services
-
---------------
-
-*Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.*
-
-SPDX-License-Identifier: BSD-3-Clause
diff --git a/docs/developer/index.rst b/docs/developer/index.rst
index 5fe886f..1fdccae 100644
--- a/docs/developer/index.rst
+++ b/docs/developer/index.rst
@@ -1,5 +1,5 @@
-Developer Docs
-==============
+Developer Documents
+===================
 
 .. toctree::
     :maxdepth: 1
@@ -10,8 +10,6 @@
     portability-model
     service-access-protocols
     service-locator
-    deployments/index
-    service-descriptions/index
     software-requirements
     build-instructions
     running-tests
diff --git a/docs/developer/service-descriptions/attest-service-description.rst b/docs/developer/service-descriptions/attest-service-description.rst
deleted file mode 100644
index 2843ede..0000000
--- a/docs/developer/service-descriptions/attest-service-description.rst
+++ /dev/null
@@ -1,269 +0,0 @@
-Attestation Service Description
-===============================
-Service Overview
-----------------
-The Attestation service is responsible for reporting on the security state of a device.
-Because information is signed, a remote party may verify that the information is intact
-and authentic.  The Attestation service can be used as part of an infrastructure for
-remote security monitoring.  The Attestation service provider performs the following
-functions:
-
-  1. Collates information about device hardware and firmware.  This information must be obtained in a secure way to provide a suitably trustworthy snapshot of a device's security state.
-  2. Prepares and signs a report that includes the information as a set of claims about the device.
-
-Like other trusted services, the Attestation service provider runs within a secure
-processing environment such as a secure partition or secondary MCU.  Service operations
-are invoked by clients using a service access protocol that defines the serialization of
-requests and responses carried by the underlying RPC layer.  Client-side adapters are
-available that support service access using the following C APIs:
-
-  - **PSA Initial Attestation API** - used during normal device operation to obtain a fresh attestation token.
-  - **Attestation Provisioning API** - used during manufacture for key provisioning operations.
-
-Project Directories
--------------------
-Components within the Trusted Services project related to the Attestation service are
-located under the following directories:
-
-.. list-table::
-  :header-rows: 1
-
-  * - Directory
-    - Contains
-  * - components/service/attestation
-    - Service specific code and API header files.
-  * - protocols/service/attestation
-    - Service access protocol definitions.
-  * - deployments/attestation
-    - Build files and deployment specific code for building the attestation service provider to run in different environments.
-  * - deployments/platform-inspect
-    - A user-space application that retrieves information about platform firmware and hardware and produces a pretty printed output.
-
-Attestation report
-------------------
-A fresh attestation report may be requested at any time to obtain the current view
-of a device's security state.  The report is encoded as a CBOR token, signed using
-the CBOR Object Signing and Encryption protocol (COSE).  For more information about
-the report contents and encoding, see:
-https://www.psacertified.org/blog/what-is-an-entity-attestation-token/.  The following
-text shows the typical content of an attestation report.  This report was retrieved
-and decoded using the *platform-inspect* command line application::
-
-  attestation_report:
-    challenge:  32 2d 69 64 ba df b2 f3 28 e8 27 88 50 68 c2 94 7c 4d a9 71 ce 14 e9 f4 88 26 45 9d 2c f5 3c 1b
-    client_id:  0
-    boot_seed:  6c eb 03 90 46 e2 09 27 f2 1c 7c a2 2c 1a a6 a2 bd 41 5e 3c aa be 4a b1 fd 35 52 95 b9 74 32 42
-    security_lifecycle: 3000
-    instance_id:    01 cb e9 65 fc 88 90 69 36 4b b1 0c ef 04 ae 97 aa d7 7c f9 74 41 4d f5 41 0c d3 9d e3 df 97 de c5
-    sw_components:
-      type:   BL_2
-      digest: a8 4f b4 7b 54 d9 4b ab 49 73 63 f7 9b fc 66 cb 85 12 ab 18 6f 24 74 01 5d cf 33 f3 80 9e 9b 20
-
-      type:   BL_31
-      digest: 2f d3 43 6c 6f ef 9b 11 c2 16 dd 1f 8b df 9b a5 24 14 a5 c1 97 0c 3a 6c 78 bf ef 64 0f c1 23 e1
-
-      type:   HW_CONFIG
-      digest: f3 de 4e 17 a1 a5 a7 fe d9 d9 f4 16 3c 49 36 7e ae f7 2f 2a a8 87 e6 b6 22 89 cd 27 dc 1c 80 25
-
-      type:   SOC_FW_CONFIG
-      digest: 4e e4 8e 5a e6 50 ed e0 b5 a3 54 8a 1f d6 0e 8a ea 0e 71 75 0e a4 3f 82 76 ce af cd 7c b0 91 e0
-
-      type:   BL_32
-      digest: 62 22 4f 0f b0 5d b4 77 1b 3f a5 2e ab 76 1e 61 17 b8 c6 6e ac 8c c8 4d 2e b0 7d 70 08 60 4b 41
-
-      type:   BL32_EXTRA1_IMAGE
-      digest: 39 d2 b8 5d 93 5d f6 d8 f8 ed 0c 1a 3a e3 c8 90 72 19 f4 88 5c 79 15 05 7b f0 76 db c1 4c 5d 77
-
-      type:   BL_33
-      digest: b5 d6 08 61 dd fa 6d da a3 f7 a5 de d6 8f 6f 39 25 b1 57 fa 3e db 46 42 58 24 8e 81 1c 45 5d 38
-
-      type:   NT_FW_CONFIG
-      digest: 25 10 60 5d d4 bc 9d 82 7a 16 9f 8a cc 47 95 a6 fd ca a0 c1 2b c9 99 8f 51 20 ff c6 ed 74 68 5a
-
-Design Description
-------------------
-Components related to the Attestation service are partitioned as follows:
-
-.. uml:: uml/AttestPartitioning.puml
-
-The partitioning into components reflects the following problem areas:
-
-.. list-table::
-  :header-rows: 1
-
-  * - Component
-    - Problem Area
-  * - claims
-    - Collecting diverse information about a device and presenting it in a uniform way.  Provides an extensible framework that allows new sources of information to be added while avoiding coupling to other components.
-  * - client
-    - Client side adapters for calling service operations.
-  * - key_mngr
-    - Manages provisioning related operations and access to the key (IAK) used for report signing.
-  * - reporter
-    - Combines the set of claims that forms the content of an attestation report, encoding it and signing using the IAK.
-  * - provider
-    - The service provider that handles incoming requests.
-  * - protocol
-    - The service access protocol definition that describes supported operations and the serialization of input and output parameters.
-
-Claims Model
-''''''''''''
-The set of available claims about a device and the method for obtaining them is likely to
-vary between different platforms.  The following are examples of likely variations:
-
-  - The method for collecting boot measurements will depend on the boot loader and on SoC architecture.  Some likely variations are:
-
-    - Passed forward using a TPM event log or via a proprietary format.
-    - Boot measurements are stored in TPM PCR type registers that need to be read to obtain claims about loaded components.
-  - The set of information passed forward by the boot loader may vary between platforms.  Information such as the boot seed or device lifecycle state may be owned by the boot loader on some platforms but not on others.
-  - Platform vendors may wish to include custom claims within the attestation report that reflect vendor specific views of security state.
-
-To accommodate these variations, a flexible claims model is implemented with the following
-characteristics:
-
-  - Any claim is represented by a common structure with members to identify:
-
-    - The category of claim - e.g. this is a claim about device hardware, firmware, the verification service.
-    - The subject of the claim - a claim specific identifier
-    - A variant id to identify the data type for a claim - e.g. integer, byte string, text string or a collection.
-  - Arbitrarily complex claim structures may be presented in a normalized way using combinations of claim variants.
-  - Claims are collected by a set of 'claim sources'.  Each concrete claim source implements the platform specific method for collecting information and representing it in standard way.  The set of claim sources used may vary for different deployments.
-  - Claim sources are registered with the claims_register.  This is a singleton that provides methods for querying for different sets of claims e.g. all device claims or all firmware measurements.  By collating claims by category, tight coupling between the reporter and the set of available claims is avoided.
-
-The following class diagram illustrates the implemented claims model:
-
-.. uml:: uml/AttestClaimsModel.puml
-
-Claim Sources
-"""""""""""""
-It is envisaged that the number of concrete claim sources will grow to cope with differences
-between platforms and the need to include custom claims in attestation reports.  The following
-table lists some existing claim sources:
-
-.. list-table::
-  :header-rows: 1
-
-  * - Claim Source
-    - Description
-  * - event_log
-    - A claim source that sources a claim_collection variant.  An iterator may be created that allows claims within a TCG event log to be iterated over and accessed.
-  * - boot_seed_generator
-    - Where a boot seed is not available from another source, a boot_seed_generator may be used in a deployment.  On the first call to get_claim(), a random boot seed is generated and returned as a byte_string claim variant.  On subsequent calls, the same boot seed value is return.
-  * - instance_id
-    - A claim source that returns a device instance ID, derived from the IAK public key.
-  * - null_lifecycle
-    - Used when there is no hardware backed support for the device lifecycle state variable.  This claim source just returns a lifecycle state of 'unknown'.
-
-Reporter
-""""""""
-The contents of the attestation report created by the reporter is determined by the set of
-claim sources registered with the claims_register.  To generate a PSA compliant attestation
-report, the reporter queries for the following categories of claim:
-
-  - Device
-  - Verification service
-  - Boot measurements
-
-Having collated all claims, the report is serialized as a CBOR object using the qcbor
-open source library.  The CBOR object is then signed using the *t_cose* library to produce
-the final attestation token.
-
-Provisioning Flows
-------------------
-The Attestation service uses the IAK (an ECDSA key pair) for signing attestation reports.
-An external verification service needs a way of establishing trust in the IAK used by a
-device to sign a report.  This trust relationship is formed when a device is provisioned
-during manufacture.  During provisioning, the following steps must be performed in a
-secure manufacturing environment:
-
-  1.  A unique IAK is generated and stored as a persistent key in the device's secure key store.
-  2.  The IAK public key is obtained and stored in a central database of trusted devices.  The hash of the IAK public key (the device's instance ID) is used as the database key for accessing the stored key.
-
-To verify the authenticity of an attestation report, an external verifier must query
-the database using the instance ID claim contained within the report.  The signature on
-the report is viewed as authentic if the following are true:
-
-  - A key record exists for the given instance ID within the database.
-  - The signature is verified successfully using the corresponding public key.
-
-The attestation access protocol supports operations to support provisioning.  These
-operations may be invoked using simple client C API (see *attest_provision.h*) or by
-using the access protocol directly for non-C clients.  The following two alternative
-provisioning flows are supported:
-
-Self-generated IAK
-''''''''''''''''''
-When a device powers up before provisioning has been performed, no IAK will exist in
-the device's key store.  As long as no attestation related service operations are
-performed, the device will remain in this state.  To trigger the self generation of
-an IAK, factory provisioning software should call the *export_iak_public_key* operation.
-If no IAK exists, one will be generated using the device's TRNG.  A benefit of this
-flow is that the IAK private key value is never externally exposed.  To support test
-deployments where no persistent storage is used, the self-generated IAK flow may
-optionally generate a volatile key instead of persistent key.:
-
-.. uml:: uml/AttestSelfGeneratedIAKflow.puml
-
-Imported IAK
-''''''''''''
-To support external generation of the IAK, a one-time key import operation is also
-supported.  When a device is in the pre-provisioned state where no IAK exists, the
-import_iak may be called by factory provisioning software.  Importantly, *import_iak*
-may only be called once.  An attempt to call it again will be rejected.:
-
-.. uml:: uml/AttestImportedIAKflow.puml
-
-Testing the Attestation Service
--------------------------------
-The following CppUtest based test suites are available for attestation service testing.
-All component and service level tests may be run on a real target device and as part
-of a native PC built binary.
-
-Component-Level Test Suites
-'''''''''''''''''''''''''''
-Test suites included in deployments of *component-test*:
-
-.. list-table::
-  :header-rows: 1
-
-  * - Test Suite
-    - Coverage
-    - File Location
-  * - TcgEventLogTests
-    - Tests decoding and iterator access to a TCG event log.
-    - service/attestation/claims/sources/event_log/test
-  * - AttestationReporterTests
-    - Checks the contents and signing of a generated attestation report.
-    - service/attestation/test/component
-
-Service-Level Test Suites
-'''''''''''''''''''''''''
-Test suites included in deployments of *ts-service-test*.  Test cases act as conventional
-service clients:
-
-.. list-table::
-  :header-rows: 1
-
-  * - Test Suite
-    - Coverage
-    - File Location
-  * - AttestationServiceTests
-    - Different attestation token request scenarios
-    - service/attestation/test/service
-  * - AttestationProvisioningTests
-    - Tests provisioning flows and checks defence against misuse of provisioning operations.
-    - service/attestation/test/service
-
-Environment Tests
-'''''''''''''''''
-When deployed within a secure partition, the attestation SP relies on access to externally
-provided information such as the TPM event log.  Test have been added to the *env_test* SP
-deployment to check that features that the attestation SP relies on are working as expected.
-Tests included in the *env_test* SP deployment may be invoked from Linux user-space using the
-*ts-remote-test/arm-linux* deployment.
-
---------------
-
-*Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.*
-
-SPDX-License-Identifier: BSD-3-Clause
diff --git a/docs/developer/service-descriptions/crypto-service-description.rst b/docs/developer/service-descriptions/crypto-service-description.rst
deleted file mode 100644
index 717c73b..0000000
--- a/docs/developer/service-descriptions/crypto-service-description.rst
+++ /dev/null
@@ -1,85 +0,0 @@
-Crypto Service Description
-==========================
-Service Overview
-----------------
-The Crypto service provides a rich set of cryptographic operations with the backing
-of a private key store.  Clients identify keys using opaque key handles, enabling
-cryptographic operations to be performed without exposing key values beyond the
-boundary of the service's secure processing environment.  This pattern underpins
-the security guarantees offered by the Crypto service.
-
-The set of supported operations is aligned to the PSA Crypto API.  C API functions
-are invoked by clients using the Crypto service access protocol.  All types and values
-defined by the PSA Crypto C API are projected by the Crypto access protocol.  The
-one-to-one mapping between the C API and Crypto access protocol allows developers
-to use PSA Crypto documentation and examples to understand details of the protocol.
-
-Supported operations fall into the following categories:
-
-  * Key lifetime management
-  * Message signing and signature verification
-  * Asymmetric encryption/decryption
-  * Random number generation
-
-Service Provider Implementation
--------------------------------
-The default crypto service provider uses the Mbed Crypto library to implement backend
-operations.   The following diagram illustrates the component dependencies in the crypto
-service provider implementation (note that there are many more handlers than
-illustrated):
-
-.. uml:: uml/CryptoProviderClassDiagram.puml
-
-The packages illustrated reflect the partitioning of the code into separate directories.
-Functionality is partitioned as follows:
-
-Crypto Provider
-'''''''''''''''
-Implements the set of handlers that map incoming RPC call requests to PSA Crypto API
-function calls.  A separate handler function exists for each operation supported by the
-service.
-
-Crypto Serializer
-'''''''''''''''''
-Incoming call request parameters are de-serialized and response parameters serialized
-by a serializer.  The trusted services framework allows for the use of alternative
-serializers to support different parameter encoding schemes.
-
-Mbed Crypto
-'''''''''''
-All cryptographic operations are handled by an instance of the Mbed Crypto library.
-The library is built with a specific configuration that creates dependencies on the
-following:
-
-  * PSA ITS API for persistent key storage
-  * External entropy source
-
-Secure Storage
-''''''''''''''
-Persistent storage of keys is handled by an instance of the Secure Storage service.
-The service is accessed via a client that presents the PSA ITS API at its upper edge.
-This is needed for compatibility with Mbed Crypto.  As long as it meets security
-requirements, any Secure Storage service provider may be used.  An RPC session between
-the Crypto and Secure Storage service providers is established during initialization
-and is maintained for the lifetime of the Crypto service provider.
-
-Entropy Source
-''''''''''''''
-Certain cryptographic operations, such as key generation, require use of a
-cryptographically secure random number generator.  To allow a hardware TRNG to be used,
-the Mbed Crypto library is configured to use an externally provided entropy source.
-Any deployment of the service provider must include an implementation of the following
-function::
-
-  int mbedtls_hardware_poll(void *data, unsigned char *output, size_t len, size_t *olen)
-
-For production deployments, an implementation of this function should be provided that
-obtains the requested bytes of entropy from a suitable source.  To allow the Crypto
-service to be used where no hardware backed implementation is available, a software
-only implementation is provided.
-
---------------
-
-*Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.*
-
-SPDX-License-Identifier: BSD-3-Clause
diff --git a/docs/developer/service-descriptions/image/smm-gateway-layers.svg b/docs/developer/service-descriptions/image/smm-gateway-layers.svg
deleted file mode 100644
index e930e6c..0000000
--- a/docs/developer/service-descriptions/image/smm-gateway-layers.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Do not edit this file with editors other than diagrams.net -->
-<!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" style="background-color: rgb(255, 255, 255);" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1243px" height="319px" viewBox="-0.5 -0.5 1243 319" content="&lt;mxfile host=&quot;confluence.arm.com&quot; modified=&quot;2021-12-15T14:28:45.848Z&quot; agent=&quot;5.0 (X11)&quot; etag=&quot;RyVEXBLsGt1b45TKPOvv&quot; version=&quot;15.3.7&quot; type=&quot;atlas&quot;&gt;&lt;mxAtlasLibraries/&gt;&lt;diagram id=&quot;wNY_4wXUTk2zhrBGsPOK&quot; name=&quot;Page-1&quot;&gt;7VpZd9o4FP41nDPzQA9YtoFHtrRp4wmFpFleOMYWRo1tMbLCkl8/khcwkoCcBIjJNH2odbXY/u69311MCbSDxVdiTycWdqFf0iruogQ6JU3TgFZh/3HJMpFUQaOWSDyC3FS2FgzQC0yF6UbvGbkw2lhIMfYpmm4KHRyG0KEbMpsQPN9cNsb+5l2ntpfesbIWDBzbh9KyO+TSSSKtG7nV3yDyJtmdq5V0JrCzxakgmtgunudEoFsCbYIxTa6CRRv6HL0Ml2TfxZbZ1YMRGNLXbMCX92DgwoVjVMu3326Nxa8AlNNTZrb/nL5w20f8QK3SI9iBUYRCjw264QwRHAbxVPw2dJlBRPBz6EJ+l2oJtOYTROFgajt8ds6sgskmNPDT6THy/Tb2MYn3gq7J/zF5RAl+grkZHWgdo8ZmfHsE/R6OEEU4ZHMOewbIFrVmkFDENHUlLKCY39P2kadc3kwnRphSHPBHwiHN3bgS/60eKdM6YBIZ8gw/djZc5ESpCr5CHEBKlmxJOls2MtNJPaKsp+P52ry0bM0kZ1ogsyw7NWlvdfha6+wiVbzaCObN25vpyyj48eg+jsOLZvQIaFmXjCAKgqFnUzi3+aMPeifSeUtLof9kOq9q+3WuH03nL4/ez6sZMhrgx8U0+P6z3QhnZU3Seb/HTqq0bd9n0Gmmzx6hNeJXHr/6y7KG7WvLuv3nst286f69wyIq+y3iII4ENkGtK/yoqsDUPBakQILUYvxpewmDXtlLJa4XF80CgllVsdKx0OxY5rwf3nlRff777sGbWfWX7lYD7YbuFCMehopvoqtkYLuJVhunBPWcTVQEU2Wip0WzJqEpoQRDt8mzUB6UfJtlU04cZGxCZXEOLwYTWd6n2MaDBz74YmTDziI/2VlmowWi99kZ7Dq3i43Wm/gg27NVNxF+Jg7cH0PY23iQ7ndl6Gap9hZN5xSpCoaZjEDfpmi2maCrlJveoZfQxcqQ9MamIWk1wUCSF0+35TNq6SRdOEkTTkqgkU6KrW314m83wLrszhaP4WsSlAySeRvdtLW9SVOAXJdvbxEYoRd7FB/FLSfm4fhNjVbJ6GR5W8t2nryYHnIZ1jj+U5rbTt8S+WFV6aXPUcoXU0reqHzR9NpBLKdqbmi7XBW0jcfjCL5X0coMXS7TDsY0J2UMUCwm0MSQYjbYq7+NC6TwJLLK4bhAaSJyvsTCNhPkAnzxqWCn8f/vqOB6bBGrg5cAhNMHs69PrfpAQQUDSGaIuR0j/rR3855UTSjWmaY0x1EV6645Mg3zSPWHdsLyQwmz7E68JzKzCYqtjeG7Qn1K8Ay5PHM+P9xF1lLgrp8Ud7lCKXyk2+WmhYl05qaejbemvKLBiAcdLsopYZVblQNW9f9q9i+bravusNe/vrluX1+dQ6zbaf5FinVa7QSxDv/bb5Dho/a9v7hpTX4PW8OnjiLW7WlSspSHrfj4ZoXY8D1l40eJpBzOzqbxI2J50r6PEkzF9xLoPJM4K6CY8C+Kfz6avFftuhCxlN/JgELtB/lmotS7sYWOtrekEz76cBfS6wWjI/N86UjE8uPpSG5DK+joU5QrIvaKauW00GepUEHKlbd+NtiqmnyZsyuvyH8C2OXwBSmHNOE3GO/o++m1vUcdriRS26CcJZ9h52+3exWpHDpJ608Nh5zFfyq2KQg7gKrg0pW3s4OYLMhHHZsd5IbalqT0bEgh84I/pBDDIVejn4oU9nZaX5uC1IpFMkIKAhqCxbyWYgxtz0HHJhi5Ku4NePoxyIqQQVaEnCvhZB722QmHDdc/R0+Wr3/VD7r/AQ==&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><rect x="1" y="17" width="250" height="300" rx="37.5" ry="37.5" fill="#e6e6e6" stroke="#432d57" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 248px; height: 1px; padding-top: 14px; margin-left: 2px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Client Processing Environment</div></div></div></foreignObject><text x="126" y="14" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Client Processing Environment</text></switch></g><rect x="431" y="17" width="450" height="300" rx="45" ry="45" fill="#e6e6e6" stroke="#b20000" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 448px; height: 1px; padding-top: 14px; margin-left: 432px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">smm_gateway SP</div></div></div></foreignObject><text x="656" y="14" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">smm_gateway SP</text></switch></g><rect x="21" y="137" width="210" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 167px; margin-left: 22px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">RPC Caller<br />(MM_COMMUNICATE)</div></div></div></foreignObject><text x="126" y="171" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">RPC Caller...</text></switch></g><rect x="21" y="197" width="210" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 227px; margin-left: 22px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Messaging Layer<br />(FFA)</div></div></div></foreignObject><text x="126" y="231" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Messaging Layer...</text></switch></g><rect x="451" y="137" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 167px; margin-left: 452px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">RPC Endpoint<br />(MM_COMMUNICATE)</div></div></div></foreignObject><text x="546" y="171" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">RPC Endpoint...</text></switch></g><rect x="451" y="197" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 227px; margin-left: 452px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Messaging Layer<br />(FFA)</div></div></div></foreignObject><text x="546" y="231" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Messaging Layer...</text></switch></g><path d="M 237.37 167 L 444.63 167" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 232.12 167 L 239.12 163.5 L 237.37 167 L 239.12 170.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 449.88 167 L 442.88 170.5 L 444.63 167 L 442.88 163.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 158px; margin-left: 331px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">MM COMMUNICATE</div></div></div></foreignObject><text x="331" y="161" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MM COMMUNICATE</text></switch></g><path d="M 237.37 227 L 444.63 227" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 232.12 227 L 239.12 223.5 L 237.37 227 L 239.12 230.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 449.88 227 L 442.88 230.5 L 444.63 227 L 442.88 223.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 218px; margin-left: 331px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">FFA Messaging</div></div></div></foreignObject><text x="331" y="221" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">FFA Messaging</text></switch></g><rect x="21" y="77" width="210" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 107px; margin-left: 22px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Service Client</div></div></div></foreignObject><text x="126" y="111" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Service Client</text></switch></g><rect x="451" y="77" width="410" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 408px; height: 1px; padding-top: 107px; margin-left: 452px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">smm_variable service provider</div></div></div></foreignObject><text x="656" y="111" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">smm_variable service provider</text></switch></g><path d="M 237.37 107 L 444.63 107" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 232.12 107 L 239.12 103.5 L 237.37 107 L 239.12 110.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 449.88 107 L 442.88 110.5 L 444.63 107 L 442.88 103.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 98px; margin-left: 342px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SMM_VARIABLE_PROTOCOL</div></div></div></foreignObject><text x="342" y="101" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">SMM_VARIABLE_PROTOCOL</text></switch></g><rect x="671" y="137" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 167px; margin-left: 672px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">RPC Caller<br />(FFARPC)</div></div></div></foreignObject><text x="766" y="171" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">RPC Caller...</text></switch></g><rect x="671" y="197" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 227px; margin-left: 672px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Messaging Layer<br />(FFA)</div></div></div></foreignObject><text x="766" y="231" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Messaging Layer...</text></switch></g><rect x="1011" y="17" width="230" height="300" rx="34.5" ry="34.5" fill="#e6e6e6" stroke="#b20000" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 228px; height: 1px; padding-top: 14px; margin-left: 1012px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">secure storage SP</div></div></div></foreignObject><text x="1126" y="14" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">secure storage SP</text></switch></g><rect x="1031" y="137" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 167px; margin-left: 1032px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">RPC Endpoint<br />FFARPC</div></div></div></foreignObject><text x="1126" y="171" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">RPC Endpoint...</text></switch></g><rect x="1031" y="197" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 227px; margin-left: 1032px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Messaging Layer<br />(FFA)</div></div></div></foreignObject><text x="1126" y="231" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Messaging Layer...</text></switch></g><rect x="1031" y="77" width="190" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 107px; margin-left: 1032px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">secure storage service provider</div></div></div></foreignObject><text x="1126" y="111" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">secure storage service provider</text></switch></g><path d="M 867.37 227 L 1024.63 227" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 862.12 227 L 869.12 223.5 L 867.37 227 L 869.12 230.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1029.88 227 L 1022.88 230.5 L 1024.63 227 L 1022.88 223.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 218px; margin-left: 942px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">FFA Messaging</div></div></div></foreignObject><text x="942" y="221" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">FFA Messaging</text></switch></g><path d="M 867.37 166.5 L 1024.63 166.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 862.12 166.5 L 869.12 163 L 867.37 166.5 L 869.12 170 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1029.88 166.5 L 1022.88 170 L 1024.63 166.5 L 1022.88 163 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 157px; margin-left: 942px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">FFARPC</div></div></div></foreignObject><text x="942" y="161" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">FFARPC</text></switch></g><path d="M 867.37 107 L 1024.63 107" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 862.12 107 L 869.12 103.5 L 867.37 107 L 869.12 110.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1029.88 107 L 1022.88 110.5 L 1024.63 107 L 1022.88 103.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 98px; margin-left: 942px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">PSA Secure Storage</div></div></div></foreignObject><text x="942" y="101" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">PSA Secure Storage</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Viewer does not support full SVG 1.1</text></a></switch></svg>
\ No newline at end of file
diff --git a/docs/developer/service-descriptions/index.rst b/docs/developer/service-descriptions/index.rst
deleted file mode 100644
index 6574a3e..0000000
--- a/docs/developer/service-descriptions/index.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-Service Descriptions
-====================
-
-.. toctree::
-    :maxdepth: 1
-    :caption: Contents:
-
-    attest-service-description
-    crypto-service-description
-    secure-storage-service-description
-    uefi-smm-services
-
---------------
-
-*Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.*
-
-SPDX-License-Identifier: BSD-3-Clause
diff --git a/docs/developer/service-descriptions/secure-storage-service-description.rst b/docs/developer/service-descriptions/secure-storage-service-description.rst
deleted file mode 100644
index defb2b5..0000000
--- a/docs/developer/service-descriptions/secure-storage-service-description.rst
+++ /dev/null
@@ -1,172 +0,0 @@
-Secure Storage Service Description
-==================================
-Service Overview
-----------------
-The Secure Storage service provides a generic persistent object store for valuable
-assets such as cryptographic keys.  The confidentiality and integrity of stored data
-is typically achieved using keys that are bound to the device.  The backend object
-store can be implemented in different ways, depending on available hardware such as:
-
-  * On-SoC secure world peripherals such as NV counters.
-  * A hardware unique key stored in OTP.
-  * Internal flash (on-die or in package).
-  * On-SoC crypto island with persistent storage.
-  * RPMB partition in a an external eMMC chip.
-
-The secure storage service provider architecture offers flexibility to use alternative
-backend storage implementations to suite available hardware.
-
-Service Access Protocol
------------------------
-A client accesses any instance of the Secure Storage service using a common secure
-storage access protocol.  Although multiple secure storage service instances may exist
-on a device, they are all accessed using the same access protocol.  By standardizing on
-a common protocol, client applications maintain compatibility with any secure storage
-provider instance.
-
-The protocol definition lives here::
-
-  protocols/service/secure_storage
-
-PSA Storage Classes
--------------------
-Backend storage implementations that rely on external components, such as a flash chip,
-will require security measures that are not necessarily needed when on-chip or in-package
-storage is used.  The PSA Storage API specification introduces the storage classes
-*Protected* and *Internal Trusted* to distinguish between externally and internally provided
-storage. These storage class designations are used for naming secure storage service instances.
-For example, the secure storage deployment that uses an RPMB backend is referred to as
-Protected Storage.  The two storage classes have the following characteristics.  Both
-classes of storage are required to support the notion of data ownership and to implement
-access control based on policy set by the owner.
-
-Internal Trusted Storage
-''''''''''''''''''''''''
-Internal trusted storage uses isolated or shielded locations for storage.  Example
-storage backends could be on-die or in package flash memory that is inherently secure.
-Alternatively, storage may be delegated to an on-die secure enclave that offers equivalent
-security properities.  An external storage device may also be used, as long as there is a
-cryptographic binding between the owning secure partition and the stored data that prevents
-unauthorized access to the storage device.
-
-To provide a persisent store for fundamental objects such as device ID and trust anchor
-certificates, access control based on the secure lifecycle state should be possible to
-support access policies such as r/w during manufacture but read-only in all other lifecycle
-states.
-
-Protected Storage
-'''''''''''''''''
-Protected storage uses an external memory device for persistent storage.  To meet PSA
-security goals, the following protection measures should exist:
-
-  * Privacy and integrity protection to prevent data access and modification by an
-    unauthorized agent.
-  * Replay protection to prevent the current set of stored data being replaced by an
-    old set.
-
-Common implementation options for a protected store are:
-
-  * RPMB partition in an eMMC device.  Access to the device is brokered by a normal-world
-    agent such as tee-supplicant.
-  * Dedicated serial flash device with secure-world only access.
-  * Normal-world filesystem for backend storage.  Data is encrypted and integrity protected
-    in the secure-world.
-
-PSA Storage C API
------------------
-For client application developers who wish to use the PSA Storage API to access secure
-storage, two storage frontends are available; one that implements the Protected Storage
-API and another that implements the Internal Trusted Storage API.
-
-Storage Frontend and Backend Separation
----------------------------------------
-For flexibility, secure storage components are separated between frontend and backend.
-All storage backends implement a common public interface and may be used with any storage
-frontend.  A storage frontend presents an interface that suites a particular type of consumer.
-The following class diagram illustrates how a storage frontend is decoupled from any concrete
-storage backend through the use of an abstract storage backend interface.
-
-.. uml:: uml/SecureStorageClassDiagram.puml
-
-Some example storage frontends:
-
-  * Secure storage service provider - provides access using the secure storage access protocol.
-  * ITS frontend - provides secure storage access via PSA Internal Trusted Storage C API
-  * PS frontend - provides secure storage access via PSA Protected Storage C API
-
-Some example storage backends:
-
-  * RPMB storage backend
-  * Secure enclave storage backend
-  * Normal-world filesystem backend
-  * Secure storage service client
-
-Components related to storage frontends and backends live under the following TS project directories::
-
-  components/service/secure_storage/frontend
-  components/service/secure_storage/backend
-
-Storage Frontend and Backend Responsibilities
----------------------------------------------
-A storage frontend is responsible for presenting an interface that is suitable for a particular
-type of consumer.  For example, the Mbed TLS library depends on the PSA Internal Trusted Storage C
-API for accessing persistent storage.  The ITS frontend provides an implementation of this API at
-its upper edge.  Where appropriate, a storage frontend will be responsible for sanitizing input
-parameters.
-
-A storage backend is responsible for:
-
-  * Realizing the common storage backend interface.
-  * Implementing per object access control based on the provided client ID.  The client ID associated
-    with the creator of an object is treated as the object owner.
-  * Providing persistent storage with appropriate security and robustness properties.
-
-Storage Factory
----------------
-To decouple generic code from environment and platform specific code, a storage factory
-interface is defined that provides a common interface for constructing storage backends.
-A concrete storage factory may use environment specific methods and configuration to construct
-a suitable storage backend.  Allows new storage backends to be added without impacting service
-provider implementations. The factory method uses PSA storage classifications to allow a
-service provider to specify the security characteristics of the backend. How those security
-characteristics are realized will depend on the secure processing environment and platform.
-
-A concrete storage factory may exploit any of the following to influence how the storage
-backend is constructed:
-
-  * Environment and platform specific factory component used in deployment
-  * Runtime configuration e.g. from Device Tree
-  * The PSA storage classification specified by the SP initialization code.
-
-Concrete storage factory components live under the following TS project directory::
-
-  components/service/secure_storage/factory
-
-Storage Frontend/Backend Combinations
--------------------------------------
-The following storage frontend/backend combinations are used in different deployments.
-
-Persistent Key Store for Crypto Service Provider
-''''''''''''''''''''''''''''''''''''''''''''''''
-The Crypto service provider uses the Mbed Crypto portion of Mbed TLS to implement crypto
-operations.  Persistent keys are stored via the PSA Internal Trusted Storage C API.
-In the opteesp deployment of the Crypto service provider, a storage client backend is
-used that accesses a secure store provided by a separate secure partition.  The following
-deployment diagram illustrates the storage frontend/backend combination used:
-
-.. uml:: uml/InternalTrustedDeploymentDiagram.puml
-
-Proxy for OP-TEE Provided Storage
-'''''''''''''''''''''''''''''''''
-When service providers are deployed in secure partitions running under OP-TEE, access
-to OP-TEE provided secure storage is possible via an S-EL1 SP that hosts a secure storage
-provider instance.  The following deployment diagram illustrates how secure storage
-access is brokered by an S-EL0 proxy:
-
-.. uml:: uml/ProtectedProxyDeploymentDiagram.puml
-
---------------
-
-*Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.*
-
-SPDX-License-Identifier: BSD-3-Clause
diff --git a/docs/developer/service-descriptions/uefi-smm-services.rst b/docs/developer/service-descriptions/uefi-smm-services.rst
deleted file mode 100644
index 3795063..0000000
--- a/docs/developer/service-descriptions/uefi-smm-services.rst
+++ /dev/null
@@ -1,243 +0,0 @@
-UEFI SMM Services
-=================
-The Trusted Services project provides support for UEFI System Management Mode (SMM) services via the
-SMM Gateway secure partition. The SMM Gateway adopts the API Gateway design pattern, popular in
-microservices architecture. The pattern decouples clients from backend service providers using an
-API gateway that presents a domain specific interface to clients while delegating operations to a
-set of backend microservices. An API gateway will typically use multiple backend services and may
-perform protocol translation while presenting a single service entry point for clients. The SMM
-Gateway works in a similar manner - clients access SMM services using standard SMM protocol messages,
-carried by an RPC mechanism. Service requests are forwarded by the SMM Gateway to backend service
-providers for operations such as secure persistent storage and signature verification.
-
-SMM Gateway is intended to be used on non-EDK2 platforms as an alternative to the EDK2 StandaloneMM
-(StMM) component. The current SMM Gateway version only supports the SMM Variable service. Additional
-SMM service providers may be added to SMM Gateway if required. By deliberately limiting functionality
-and exploiting backend services, the SMM Gateway SP can be significantly lighter-weight than StMM.
-This option is intended to be used on more resource constrained devices that tend to use u-boot.
-There is of course the possibility that other SMM services will need to be supported in the future.
-In such cases, a judgement should be made as to whether StMM should be used rather than extending the SP.
-
-.. uml:: uml/SmmGatewayOverview.puml
-
-SMM Variable Service
---------------------
-Overview
-''''''''
-UEFI Variable support is provided by the *smm_variable* service provider component. This service provider
-is structured in the same way as other service providers within the TS project. Features of this
-component are:
-
-  * Source file location:  ``components/service/smm_variable``
-  * Public interface definitions: ``protocols/service/smm_variable``
-  * Can be used with any RPC layer - not tied to MM Communicate RPC.
-  * Volatile and non-volatile storage is accessed via instances of the common *storage_backend* interface.
-
-The *smm-gateway/opteesp* deployment integrates the *smm_variable* service provider with the following:
-
-  * An MM Communicate based RPC endpoint.
-  * A *mock_store* instance for volatile variables.
-  * A *secure_storage_client* for non-volatile variables.
-
-During SP initialization, the *smm-gateway* uses pre-configured information to discover a backend secure
-storage SP for NV storage.
-
-The following diagram illustrates how the *smm_variable* service provider is integrated into the *smm-gateway*.
-
-.. image:: image/smm-gateway-layers.svg
-
-Because the *smm_variable* service provider is independent of any particular environment, alternative deployments
-are possible e.g.
-
-  * *smm_variable* service provider running within a GP TA with storage off-loaded to the GP TEE Internal API.
-  * *smm_variable* service provider running within a secure enclave with its own internal flash storage.
-
-Supported Functions
-'''''''''''''''''''
-The *smm_variable* service provider supports the following functions:
-
-.. list-table::
-  :header-rows: 1
-
-  * - SMM Variable Function
-    - Purpose
-    - Backend service interaction
-  * - SMM_VARIABLE_FUNCTION_GET_VARIABLE
-    - Get variable data identified by GUID/name.
-    - Query index and get object from appropriate storage backend.
-  * - SMM_VARIABLE_FUNCTION_GET_NEXT_VARIABLE_NAME
-    - Called multiple times to enumerate stored variables.
-    - Find variable in index and return next.
-  * - SMM_VARIABLE_FUNCTION_SET_VARIABLE
-    - Adds a new variable or updates an existing one.
-    - | Sets object in storage backend and if necessary, updates index
-      | and syncs to storage.
-  * - SMM_VARIABLE_FUNCTION_QUERY_VARIABLE_INFO
-    - Returns information about the variable store.
-    - Iterates over stored variables to determine space used.
-  * - SMM_VARIABLE_FUNCTION_EXIT_BOOT_SERVICE
-    - Called by OS when boot phase is complete.
-    - | Updates view of runtime state held by smm_variable service provider.
-      | State variable used when implementing state dependent access control.
-  * - SMM_VARIABLE_FUNCTION_VAR_CHECK_VARIABLE_PROPERTY_SET
-    - | Set constraints that are checked on the SetVariable operation.
-      | Allows a platform to set check policy.
-    - | Variable index holds variable check constraints object for each variable.
-      | This is updated by this function.
-  * - SMM_VARIABLE_FUNCTION_VAR_CHECK_VARIABLE_PROPERTY_GET
-    - Get the variable check constraints.
-    - Reads the variable check constraints object.
-  * - SMM_VARIABLE_FUNCTION_GET_PAYLOAD_SIZE
-    - | Returns the maximum variable data size, excluding any
-      | auth header.
-    - | Considers size constraints imposed by backend stores and RPC response
-      | payload constraints.
-
-Supported Variable Attributes
-'''''''''''''''''''''''''''''
-The following variable attributes are supported:
-
-.. list-table::
-  :widths: 3 1 3
-  :header-rows: 1
-
-  * - SMM Variable Attribute
-    - Support
-    - Comment
-  * - EFI_VARIABLE_NON_VOLATILE
-    - yes
-    - Determines which storage backend is used.
-  * - EFI_VARIABLE_BOOTSERVICE_ACCESS
-    - yes
-    - Boot service access controlled by smm_variable service provider.
-  * - EFI_VARIABLE_RUNTIME_ACCESS
-    - yes
-    - Runtime access controlled by smm_variable service provider.
-  * - EFI_VARIABLE_HARDWARE_ERROR_RECORD
-    - no
-    -
-  * - EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS
-    - no
-    -
-  * - EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS
-    - not yet
-    - Will be needed for secure boot support
-  * - EFI_VARIABLE_APPEND_WRITE
-    - yes
-    - Implemented by overwriting entire variable data.
-
-SMM Variable Tests
-''''''''''''''''''
-The following test components exist for the SMM Variable service:
-
-.. list-table::
-  :header-rows: 1
-
-  * - Test Component
-    - Description
-    - Included in deployments
-  * - ``component/service/smm_variable/backend/test``
-    - | Component tests for the variable_index and variable_store backend
-      | components. Can be run in a native PC environment.
-    - ``deployments/component-test/*``
-  * - ``component/service/smm_variable/test/service``
-    - | End-to-end service level tests that call service operations from
-      | the perspective of a client.  Can be run in a native PC environment
-      | or on the Arm target platform.
-    - | ``deployments/ts-service-test/linux-pc``
-      | ``deployments/uefi-test/arm-linux``
-
-SMM Gateway Build Configuration
--------------------------------
-The smm-gateway SP image may be built using the default configuration parameters defined
-within relevant source files. In practice, it is likely that at least some configuration
-values will need to be overridden. The following table lists build-time configuration
-parameters that may be overridden by global C pre-processor defines.
-
-.. list-table::
-  :widths: 2 2 2 1
-  :header-rows: 1
-
-  * - Config define
-    - Usage
-    - File
-    - Default value
-  * - SMM_GATEWAY_MAX_UEFI_VARIABLES
-    - Maximum number of variables
-    - ``deployments/smm-gateway/smm_gateway.c``
-    - 40
-  * - SMM_GATEWAY_NV_STORE_SN
-    - The service ID for the backend NV variable store
-    - ``deployments/smm-gateway/smm_gateway.c``
-    - Protected Storage SP
-
-MM Communicate RPC Layer
-------------------------
-To maintain compatibility with existing SMM service clients, an MM Communicate based RPC
-layer has been developed that uses the same 'carveout' buffer scheme as StMM. When SMM
-Gateway is used instead of StMM, existing SMM variable clients should interoperate seamlessly.
-The MM Communicate RPC components implement the standard TS RPC interfaces and can be used as
-a general purpose RPC for calls from normal world to secure world. The following MM Communicate
-RPC components have been added:
-
-  * ``components/rpc/mm_communicate/endpoint/sp`` - an RPC endpoint that handles FFA direct
-    calls with MM Communicate and SMM message carried in a shared 'carveout' buffer. Call requests
-    are demultiplexed to the appropriate service interface based on the service GUID carried in
-    the MM Communicate header.  Suitable for use in SP deployments.
-  * ``components/rpc/mm_communicate/caller/linux`` - an RPC caller that calls service operations
-    associated with the destination service interface from Linux user-space. Uses the MM Communicate
-    protocol, sent over FFA using the Debug FFA kernel driver.  Service level tests that run against
-    the SMM Gateway use this RPC caller for invoking SMM service operations.
-
-The following register mapping is assumed for FFA based direct calls to an SP that handles the MM
-Communicate RPC protocol:
-
-.. list-table::
-  :widths: 1 2 2 2
-  :header-rows: 1
-
-  * - Registers
-    - FF-A layer
-    - MM_COMMUNICATE Request
-    - MM_COMMUNICATE Response
-  * - W0
-    - Function ID
-    - | FFA_MSG_SEND_DIRECT_REQ
-      | (0x8400006F/0xC400006F)
-    - | FFA_MSG_SEND_DIRECT_RESP
-      | (0x84000070/0xC4000070)
-  * - W1
-    - Source/Destination ID
-    - Source/Destination ID
-    - Source/Destination ID
-  * - W2/X2
-    - Reserved
-    - 0x00000000
-    - 0x00000000
-  * - W3/X3
-    - Parameter[0]
-    - Address of the MM communication buffer
-    - | ARM_SVC_ID_SP_EVENT_COMPLETE
-      | (0x84000061/0xC4000061)
-  * - W4/X4
-    - Parameter[1]
-    - Size of the MM communication buffer
-    - SUCCESS/[error code]
-  * - W5/X5
-    - Parameter[2]
-    - 0x00000000
-    - 0x00000000
-  * - W6/X6
-    - Parameter[3]
-    - 0x00000000
-    - 0x00000000
-  * - W7/X7
-    - Parameter[4]
-    - 0x00000000
-    - 0x00000000
-
---------------
-
-*Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.*
-
-SPDX-License-Identifier: BSD-3-Clause
diff --git a/docs/developer/service-descriptions/uml/AttestClaimsModel.puml b/docs/developer/service-descriptions/uml/AttestClaimsModel.puml
deleted file mode 100644
index fb54f71..0000000
--- a/docs/developer/service-descriptions/uml/AttestClaimsModel.puml
+++ /dev/null
@@ -1,43 +0,0 @@
-'-------------------------------------------------------------------------------
-' Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
-'
-' SPDX-License-Identifier: BSD-3-Clause
-'
-'-------------------------------------------------------------------------------
-
-@startuml
-
-abstract class claim_iterator {
-	{abstract} void first()
-	{abstract} void next()
-	{abstract} bool is_done()
-	{abstract} claim current()
-}
-
-abstract class claim_source {
-	{abstract} bool get_claim(claim *claim)
-}
-
-class claim {
-	+category: int
-	+subject_id: int
-	+variant_id: int
-}
-
-class claims_register <<singleton>> {
-	void add_claim_source(claim_source)
-	void query_by_category(category, claim_vector)
-}
-
-claim <|-- claim_collection
-claim <|-- text_string_claim
-claim <|-- byte_string_claim
-claim <|-- integer_claim
-claim <|-- measurement_claim
-
-claim_iterator ..> claim
-claim_collection ..> claim_iterator
-claim_source ..> claim
-claims_register -> "0..*" claim_source
-
-@enduml
diff --git a/docs/developer/service-descriptions/uml/AttestImportedIAKflow.puml b/docs/developer/service-descriptions/uml/AttestImportedIAKflow.puml
deleted file mode 100644
index fef117c..0000000
--- a/docs/developer/service-descriptions/uml/AttestImportedIAKflow.puml
+++ /dev/null
@@ -1,21 +0,0 @@
-'-------------------------------------------------------------------------------
-' Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
-'
-' SPDX-License-Identifier: BSD-3-Clause
-'
-'-------------------------------------------------------------------------------
-
-@startuml
-participant "factory app"
-participant "attestation service"
-participant "keystore"
-
-hnote over "keystore": empty
-"factory app" -> "attestation service" : import_iak
-"attestation service" -> "keystore" : check_exists
-"attestation service" <-- "keystore" : false
-"attestation service" -> "keystore" : store_key
-hnote over "keystore": provisioned
-"factory app" <-- "attestation service" : success
-
-@enduml
diff --git a/docs/developer/service-descriptions/uml/AttestPartitioning.puml b/docs/developer/service-descriptions/uml/AttestPartitioning.puml
deleted file mode 100644
index 9e85862..0000000
--- a/docs/developer/service-descriptions/uml/AttestPartitioning.puml
+++ /dev/null
@@ -1,23 +0,0 @@
-'-------------------------------------------------------------------------------
-' Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
-'
-' SPDX-License-Identifier: BSD-3-Clause
-'
-'-------------------------------------------------------------------------------
-
-@startuml
-
-package claims
-package client
-package key_mngr
-package reporter
-package provider
-package protocol
-
-client ..> protocol
-provider ..> protocol
-provider ..> reporter
-provider ..> key_mngr
-reporter ..> claims
-
-@enduml
diff --git a/docs/developer/service-descriptions/uml/AttestSelfGeneratedIAKflow.puml b/docs/developer/service-descriptions/uml/AttestSelfGeneratedIAKflow.puml
deleted file mode 100644
index 7fdae1b..0000000
--- a/docs/developer/service-descriptions/uml/AttestSelfGeneratedIAKflow.puml
+++ /dev/null
@@ -1,22 +0,0 @@
-'-------------------------------------------------------------------------------
-' Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
-'
-' SPDX-License-Identifier: BSD-3-Clause
-'
-'-------------------------------------------------------------------------------
-
-@startuml
-participant "factory app"
-participant "attestation service"
-participant "keystore"
-
-hnote over "keystore": empty
-"factory app" -> "attestation service" : export_iak_public_key
-"attestation service" -> "keystore" : check_exists
-"attestation service" <-- "keystore" : false
-"attestation service" -> "attestation service" : generate_key
-"attestation service" -> "keystore" : store_key
-hnote over "keystore": provisioned
-"factory app" <-- "attestation service" : public_key
-
-@enduml
diff --git a/docs/developer/service-descriptions/uml/CryptoProviderClassDiagram.puml b/docs/developer/service-descriptions/uml/CryptoProviderClassDiagram.puml
deleted file mode 100644
index 65c6d83..0000000
--- a/docs/developer/service-descriptions/uml/CryptoProviderClassDiagram.puml
+++ /dev/null
@@ -1,49 +0,0 @@
-'-------------------------------------------------------------------------------
-' Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
-'
-' SPDX-License-Identifier: BSD-3-Clause
-'
-'-------------------------------------------------------------------------------
-
-@startuml
-allow_mixing
-left to right direction
-
-
-package CryptoProvider
-{
-	class handler
-	class generate_key_handler
-	class import_key_handler
-	class sign_hash_handler
-	generate_key_handler --|> handler
-	import_key_handler --|> handler
-	sign_hash_handler --|> handler
-}
-package CryptoSerializer
-{
-	class crypto_serializer
-	class protobuf_crypto_serializer
-	class packed_c_crypto_serializer
-	protobuf_crypto_serializer --|> crypto_serializer
-	packed_c_crypto_serializer --|> crypto_serializer
-}
-package MbedCrypto
-{
-	class libmbedcrypto
-}
-package SecureStorage
-{
-	class its_client
-}
-package EntropySource
-{
-	class hw_entropy_source
-}
-
-CryptoProvider ..> CryptoSerializer
-CryptoProvider ..> MbedCrypto
-MbedCrypto ..> SecureStorage
-MbedCrypto ..> EntropySource
-
-@enduml
\ No newline at end of file
diff --git a/docs/developer/service-descriptions/uml/InternalTrustedDeploymentDiagram.puml b/docs/developer/service-descriptions/uml/InternalTrustedDeploymentDiagram.puml
deleted file mode 100644
index 13d26b0..0000000
--- a/docs/developer/service-descriptions/uml/InternalTrustedDeploymentDiagram.puml
+++ /dev/null
@@ -1,20 +0,0 @@
-'-------------------------------------------------------------------------------
-' Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
-'
-' SPDX-License-Identifier: BSD-3-Clause
-'
-'-------------------------------------------------------------------------------
-
-@startuml
-
-node crypto_sp {
-	[its_frontend] -> [secure_storage_client]
-}
-
-node internal_trusted_store_sp {
-	[secure_storage_provider] -> [secure_flash_store]
-}
-
-[secure_storage_client] -> [secure_storage_provider]
-
-@enduml
\ No newline at end of file
diff --git a/docs/developer/service-descriptions/uml/ProtectedProxyDeploymentDiagram.puml b/docs/developer/service-descriptions/uml/ProtectedProxyDeploymentDiagram.puml
deleted file mode 100644
index a6d5c14..0000000
--- a/docs/developer/service-descriptions/uml/ProtectedProxyDeploymentDiagram.puml
+++ /dev/null
@@ -1,25 +0,0 @@
-'-------------------------------------------------------------------------------
-' Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
-'
-' SPDX-License-Identifier: BSD-3-Clause
-'
-'-------------------------------------------------------------------------------
-
-@startuml
-
-node crypto_sp {
-	[its_frontend:0] -> [secure_storage_client:0]
-}
-
-node protected_store_sp {
-	[secure_storage_provider:1] -> [secure_storage_client:1]
-}
-
-node sel1_sp {
-	[secure_storage_provider:2] -> [optee_store:2]
-}
-
-[secure_storage_client:0] -> [secure_storage_provider:1]
-[secure_storage_client:1] -> [secure_storage_provider:2]
-
-@enduml
\ No newline at end of file
diff --git a/docs/developer/service-descriptions/uml/SecureStorageClassDiagram.puml b/docs/developer/service-descriptions/uml/SecureStorageClassDiagram.puml
deleted file mode 100644
index 60177eb..0000000
--- a/docs/developer/service-descriptions/uml/SecureStorageClassDiagram.puml
+++ /dev/null
@@ -1,28 +0,0 @@
-'-------------------------------------------------------------------------------
-' Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
-'
-' SPDX-License-Identifier: BSD-3-Clause
-'
-'-------------------------------------------------------------------------------
-
-@startuml
-
-interface storage_backend
-{
-	+{abstract} set()
-	+{abstract} get()
-	+{abstract} get_info()
-	+{abstract} remove()
-	+{abstract} create()
-	+{abstract} set_extended()
-}
-
-secure_flash_store -u--|> storage_backend
-secure_storage_client -u--|> storage_backend
-null_store -u--|> storage_backend
-
-secure_storage_provider -d--> storage_backend
-its_frontend -d--> storage_backend
-ps_frontend -d--> storage_backend
-
-@enduml
\ No newline at end of file
diff --git a/docs/developer/service-descriptions/uml/SmmGatewayOverview.puml b/docs/developer/service-descriptions/uml/SmmGatewayOverview.puml
deleted file mode 100644
index f53d2a4..0000000
--- a/docs/developer/service-descriptions/uml/SmmGatewayOverview.puml
+++ /dev/null
@@ -1,14 +0,0 @@
-'-------------------------------------------------------------------------------
-' Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
-'
-' SPDX-License-Identifier: BSD-3-Clause
-'
-'-------------------------------------------------------------------------------
-
-@startuml
-
-[u-boot efi services] -down- [smm gateway]
-[smm gateway] -down- [secure storage service]
-[smm gateway] -down- [crypto service]
-
-@enduml
