diff --git a/docs/developer/service-deployment-model.rst b/docs/developer/service-deployment-model.rst
index 9f79999..8200adf 100644
--- a/docs/developer/service-deployment-model.rst
+++ b/docs/developer/service-deployment-model.rst
@@ -1,5 +1,6 @@
 Service Deployment Model
 ========================
+
 A goal of the Trusted Services project is to provide a toolbox of reusable service components
 that can be deployed across a wide range of platforms. The project structure promotes reuse by
 grouping related source files into subdirectories that represent reusable components. Components
@@ -11,20 +12,19 @@
 deployments parent are sub-directories concerned with building and deploying different
 applications. Applications can generally be classified as one of the following:
 
-  - Service providers
-  - Test suites
-  - Libraries
-  - Development support applications
+  - Service providers (e.g. psa-crypto)
+  - Test suites (e.g. ts-service-test)
+  - Libraries (e.g. libts)
+  - Development support applications (e.g. fwu-tool)
 
 This page is mainly concerned with describing the conventions used to enable service providers
 to be deployed in different environments, on different platforms and with different capabilities.
 The conventions aim to minimize build definition duplication between alternative deployments
 while offering sufficient flexibility to customize capabilities and support different platforms.
-The service deployment model borrows from a pattern used for deploying cloud services where There
-is a similar requirement for deployment flexibility.
 
 Ports and Adapters Architecture
 -------------------------------
+
 An application is decoupled from any particular environment via a set of interfaces that reflect
 the needs of the application. This model conforms to the ports and adapters architectural
 pattern that aims to avoid tight coupling between application components and any particular
@@ -52,6 +52,7 @@
 
 Service Deployment Structure
 ----------------------------
+
 By convention, the directory structure for service provider deployments reflects the layers in
 the ports and adapters architecture. The following dependency diagram illustrates the set of
 relationships that exist for a fully defined deployment:
@@ -70,32 +71,39 @@
   * - Build Component
     - Defines
     - Reuse Scope
-  * - Application
-    - | Set of components that form the core application to be deployed.
-    - | All deployments of the application.
-  * - Infra
-    - | The set of adapters that realize the ports that the application depends on.
+  * - Deployment
+    - | Represents an application. Examples: a service provider, demo application, test application,
+      | some tool.
+    - | -
+  * - Infrastructure
+    - | A specific set of SW components that realize the ports that the application depends on.
       | An infrastructure definition may depend on:
 
-        * Environment specific components.
         * Drivers that conform to a driver model.
-        * Platform specific drivers.
     - | Any deployment that uses the same infrastructure to support the application.
       | This will depend on how specific the infrastructure is.  An infrastructure
-      | definition may allow for some level of configurability to enable deployment
+      | definition may allow for some level of configurability to enable a deployment
       | to impose a particular build configuration. Where an infrastructure includes
       | adapters that use a well supported driver model (such as UEFI), the scope
       | for reuse is large.
-  * - Env
+  * - Environment
     - | The set of environment specific components that are common across all
       | deployments of an application for a particular environment.
     - | All deployments of the application into a specific environment. There is
       | scope to improve reuse of environment specific components across multiple
       | deployments.
-  * - Config
-    - | Build configuration variables together with a particular application, infra
-      | and env.
-    - | Depends on how specific the config is.
+  * - Configuration
+    - | Build configuration variables together with a particular application, infrastructure
+      | and environment. Represents a specific build of the application.
+    - | None.
+  * - Platform
+    - | A specific set of hardware drivers and target platform specific settings.
+      | A platform definition may depend on:
+
+            * Hardware driver ports defined by various components.
+            * Hardware specific resources.
+            * Target specific resource selection.
+    - | None.
 
 Deployment Directory Structure
 ------------------------------
@@ -112,12 +120,11 @@
 Configuration Definitions
 ^^^^^^^^^^^^^^^^^^^^^^^^^
 To build a particular configuration of the block-storage service provider (in this case, one
-that uses flash storage on the N1SDP platform), use::
+that uses flash storage emulated with semihosting on the AEM FVP platform), use::
 
-  cd deployments/block-storage/config/n1sdp-flash
+  cd deployments/block-storage/config/semihosted-opteesp
   cmake -B build
-  cd build
-  make
+  cmake --build build
 
 The CMakeLists.txt file for the n1sdp-flash deployment of the block-storage service provider
 includes:
diff --git a/docs/developer/uml/ServiceDeploymentDependencies.puml b/docs/developer/uml/ServiceDeploymentDependencies.puml
index 515a7c5..b49c11c 100644
--- a/docs/developer/uml/ServiceDeploymentDependencies.puml
+++ b/docs/developer/uml/ServiceDeploymentDependencies.puml
@@ -7,19 +7,18 @@
 
 @startuml
 
-package Deployment
-package Application
-package Infrastructure
-package Environment
-package Platform
-package BuildConfig
-package Adapter
+component Deployment
+component Infrastructure
+component Environment
+component Configuration
+component Adapter
+component Adapter as pl_adapter
+component Platform
 
-Deployment -down.> Application
 Deployment -down.> Infrastructure
 Deployment -down.> Environment
-Deployment -down.> "0..1" Platform
-Deployment -down.> "0..1" BuildConfig
+Deployment -down.> Configuration
+Deployment -down.> Platform
 Infrastructure -down.> "0..*" Adapter
-
+Platform -down.> "0..*" "pl_adapter"
 @enduml
\ No newline at end of file
diff --git a/docs/project/contributing.rst b/docs/project/contributing.rst
index 5d8cb8f..1576df0 100644
--- a/docs/project/contributing.rst
+++ b/docs/project/contributing.rst
@@ -9,39 +9,46 @@
 Getting Started
 ---------------
 
-- Make sure you have a GitHub account and you are logged on `developer.trustedfirmware.org`_.
-- Send an email to the |TS_MAIL_LIST| about your work. This gives everyone
-  visibility of whether others are working on something similar.
+- Make sure you have a GitHub account and you are logged in at `review.trustedfirmware.org`_.
+- Make sure the following is configured in `Gerrit settings`_:
+
+    - Your public key is set under ``SSH Keys``. This will be needed when pushing changes.
+      Please see `Public keys section`_ of Gerrit documentation if you need new keys.
+    - The email address you will use in git is added under ``Email Addresses``.
+
 - Clone the |TS_REPO| on your own machine.
 
 Making Changes
 --------------
 
+- Send an email to the |TS_MAIL_LIST| about your work. This gives everyone visibility of whether others are working on
+  something similar.
 - Make commits of logical units. See these general `Git guidelines`_ for contributing to a project.
 - Follow the :ref:`Coding Style & Guidelines`.
 - Keep the commits on topic. If you need to fix another bug or make another enhancement, please create a separate
   change.
 - Avoid long commit series. If you do have a long series, consider whether some
   commits should be squashed together or addressed in a separate topic.
-- Make sure your commit messages are in the proper format. Please keel the 50/72 rule (for details see `Tim Popes blog entry`_.)
+- Make sure your commit messages are in the proper format. Please keep the 50/72 rule (for details see
+  `Tim Popes blog entry`_.)
 - Where appropriate, please update the documentation.
 
    - Consider which documents or other in-source documentation needs updating.
-   - Ensure that each changed file has the correct copyright and license information. Files that entirely consist of
-     contributions to this project should have a copyright notice and BSD-3-Clause SPDX license identifier of the form
-     as shown in :ref:`license`. Example copyright and license comment blocks are shown in :ref:`Coding Style & Guidelines`.
-     Files that contain changes to imported Third Party IP files should retain their original copyright and license
-     notices. For significant contributions you may add your own copyright notice in following format::
+   - For topics with multiple commits, you should make all documentation changes (and nothing else) in the last commit
+     of the series. Otherwise, include the documentation changes within the single commit.
+
+- Ensure that files have the correct copyright and license information. Files that entirely consist of contributions to
+  this project should have a copyright notice and BSD-3-Clause SPDX license identifier of the form as shown in
+  :ref:`license`. Example copyright and license comment blocks are shown in :ref:`Coding Style & Guidelines`. Files that
+  contain changes to imported Third Party IP files should retain their original copyright and license
+  notices. For significant contributions you may add your own copyright notice in following format::
 
         Portions copyright (c) [XXXX-]YYYY, <OWNER>. All rights reserved.
 
-     where XXXX is the year of first contribution (if different to YYYY) and YYYY is the year of most recent
-     contribution. *<OWNER>* is your name or your company name.
-   - For any change, ensure that YYYY is updated if a contribution is made in a year more recent than the previous YYYY.
-   - If you are submitting new files that you intend to be the technical sub-maintainer for (for example, a new platform
-     port), then also update the :ref:`maintainers` file.
-   - For topics with multiple commits, you should make all documentation changes (and nothing else) in the last commit
-     of the series. Otherwise, include the documentation changes within the single commit.
+  where `XXXX` is the year of first contribution (if different to `YYYY`) and `YYYY` is the year of most recent
+  contribution. `<OWNER>` is your name or your company name.
+- If you are submitting new files that you intend to be the technical sub-maintainer for (for example, a new platform
+  port), then also update the :ref:`maintainers` file.
 
 - Please test your changes.
 
@@ -54,37 +61,46 @@
   contribution is made under the terms of the :download:`Developer Certificate of Origin <../../dco.txt>`.
 
   More details may be found in the `Gerrit Signed-off-by Lines guidelines`_.
-
 - Ensure that each commit also has a unique ``Change-Id:`` line. If you have cloned the repository with the "`Clone with
   commit-msg hook`" clone method, this should already be the case.
 
   More details may be found in the `Gerrit Change-Ids documentation`_.
 
-- Submit your changes for review at https://review.trustedfirmware.org targeting the ``integration`` branch.
+- Select your target branch.
 
-  - The changes will then undergo further review and testing by the :ref:`maintainers`. Any review comments will be made
-    directly on your patch. This may require you to do some rework.
+    - If all commits of your change compile and run ok, then your review can target the ``integration`` branch.
+    - If not, a topic branch is needed. The name of the topic branch has to be kept reasonably sort and has to follow
+      this format: ``topics/<user-id>/<topic>``.
 
-  Refer to the `Gerrit Uploading Changes documentation`_ for more details.
+        - `user-id` is unique ID of the user (e.g. nick name, <first name>_<last name>, etc...).
+        - `topic` is a title reflecting the purpose of the change.
+- Push your changes to Gerrit. Refer to the `Gerrit Uploading Changes documentation`_ to see how this can be done.
+
+- The changes will then undergo further review and testing by the :ref:`maintainers`. Any review comments will be made
+  directly on your patch. This may require you to do some rework.
 
 - When the changes are accepted, the :ref:`maintainers` will integrate them.
 
-  - Typically, the :ref:`maintainers` will merge the changes into the ``integration`` branch.
-  - If the changes are not based on a sufficiently-recent commit, or if they cannot be automatically rebased, then the
-    :ref:`maintainers` may rebase it on the ``main`` branch or ask you to do so.
-  - After final integration testing, the changes will make their way into the ``main`` branch. If a problem is found
-    during integration, the merge commit will be removed from the ``integration`` branch and the :ref:`maintainers` will
-    ask you to create a new patch set to resolve the problem.
+- Typically, the :ref:`maintainers` will merge the changes into the target branch.
+
+- If the changes are not based on a sufficiently-recent commit, or if they cannot be automatically rebased, then the
+  :ref:`maintainers` may rebase it ask you to do so.
+
+- After final integration testing, the changes will make their way into the ``main`` branch. If a problem is found
+  during integration, the merge commit will be removed from the ``integration`` branch and the :ref:`maintainers` will
+  ask you to create a new patch set to resolve the problem.
 
 --------------
 
-.. _developer.trustedfirmware.org: https://developer.trustedfirmware.org
+.. _review.trustedfirmware.org: https://review.trustedfirmware.org
 .. _Git guidelines: http://git-scm.com/book/ch5-2.html
 .. _Gerrit Uploading Changes documentation: https://review.trustedfirmware.org/Documentation/user-upload.html
 .. _Gerrit Signed-off-by Lines guidelines: https://review.trustedfirmware.org/Documentation/user-signedoffby.html
 .. _Gerrit Change-Ids documentation: https://review.trustedfirmware.org/Documentation/user-changeid.html
 .. _`Tim Popes blog entry`: https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
-.. _`Trusted Firmware Security Center`: https://developer.trustedfirmware.org/w/collaboration/security_center/
+.. _`Trusted Firmware Security Center`: https://trusted-firmware-docs.readthedocs.io/en/latest/security_center/index.html
+.. _`Gerrit settings`: https://review.trustedfirmware.org/settings/
+.. _`Public keys section`: https://review.trustedfirmware.org/Documentation/user-upload.html#configure_ssh_public_keys
 
 *Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.*
 
