diff --git a/docs/contributing/contributing_process.rst b/docs/contributing/contributing_process.rst
index 002df7e..8bd7e52 100644
--- a/docs/contributing/contributing_process.rst
+++ b/docs/contributing/contributing_process.rst
@@ -26,7 +26,7 @@
 
   - Clone the TF-M code on your own machine from `TF-M git repository
     <https://git.trustedfirmware.org/TF-M/trusted-firmware-m.git>`_.
-  - Follow the :doc:`SW Requirements </docs/getting_started/tfm_sw_requirement>`,
+  - Follow the :doc:`TF-M getting started </docs/getting_started/tfm_getting_started>`,
     :doc:`Build Instructions </docs/technical_references/instructions/tfm_build_instruction>` and
     :doc:`Coding Guide </docs/contributing/coding_guide>` for the TF-M project.
   - Make your changes in logical chunks to help reviewers. Each commit should
diff --git a/docs/contributing/doc_guidelines.rst b/docs/contributing/doc_guidelines.rst
index 41f4e05..607097d 100644
--- a/docs/contributing/doc_guidelines.rst
+++ b/docs/contributing/doc_guidelines.rst
@@ -20,7 +20,7 @@
 
 - If the patch modifies a present file, the file's style should be followed
 - If creating a new file,
-  :doc:`integration guide </docs/getting_started/tfm_sw_requirement>` can be used as a reference.
+  :doc:`integration guide </docs/integration_guide/tfm_integration_guide>` can be used as a reference.
 - When a new style is to be expressed, consult the `Python Documentation Guidelines`_
 
 *************
@@ -186,7 +186,7 @@
    +--------------+--------------+-------------+
 
 Other types of tables such as list-tables and csv-tables are also permitted, as
-seen on :doc:`/docs/getting_started/tfm_sw_requirement` and
+seen on :doc:`/docs/getting_started/tfm_getting_started` and
 :doc:`/docs/releases/1.0`
 
 
@@ -236,7 +236,7 @@
 
 .. code-block:: restructuredtext
 
-    :doc:`integration guide </docs/getting_started/tfm_sw_requirement>`
+    :doc:`integration guide </docs/integration_guide/tfm_integration_guide>`
 
 The path is relative to the root of the Trusted Firmware-M code.
 
@@ -248,7 +248,7 @@
 
 .. code-block:: restructuredtext
 
-    :ref:`docs/getting_started/tfm_sw_requirement:Tool & Dependency overview`
+    :ref:`docs/getting_started/tfm_getting_started:Tool & Dependency overview`
 
 This can also be used to quickly scroll to the specific section of the current
 document. This technique can be used to add complex table in the bottom of a
diff --git a/docs/contributing/tfm_design_proposal_process.rst b/docs/contributing/tfm_design_proposal_process.rst
index 49ff7e7..0c10b7b 100644
--- a/docs/contributing/tfm_design_proposal_process.rst
+++ b/docs/contributing/tfm_design_proposal_process.rst
@@ -69,8 +69,8 @@
 available locally. Setting up the documentation tools will allow pre-viewing the
 documentation file in preparation.
 For information on what tools are needed please refer to
-:doc:`sw requirements </docs/getting_started/tfm_sw_requirement>`. To see how to get
-a local copy of the TF-M repository please see
+:doc:`TF-M getting started </docs/getting_started/tfm_getting_started>`. To see
+how to get a local copy of the TF-M repository please see
 :doc:`build instructions </docs/technical_references/instructions/tfm_build_instruction>`
 
 Process steps
diff --git a/docs/getting_started/index.rst b/docs/getting_started/index.rst
index 9ddb2d0..a3e729b 100644
--- a/docs/getting_started/index.rst
+++ b/docs/getting_started/index.rst
@@ -5,7 +5,7 @@
     :glob:
     :numbered:
 
-    tfm_sw_requirement
+    tfm_getting_started
 
 --------------
 
diff --git a/docs/getting_started/tfm_getting_started.rst b/docs/getting_started/tfm_getting_started.rst
new file mode 100644
index 0000000..b6c52a4
--- /dev/null
+++ b/docs/getting_started/tfm_getting_started.rst
@@ -0,0 +1,465 @@
+####################################
+Select and set up build environments
+####################################
+
+TF-M officially supports a limited set of build environments and setups. In
+this context, official support means that the environments listed below
+are actively used by team members and active developers, hence users should
+be able to recreate the same configurations by following the instructions
+described below. In case of problems, the TF-M team provides support
+only for these environments, but building in other environments can still be
+possible.
+
+The following environments are supported:
+
+.. tabs::
+
+    .. group-tab:: Linux
+
+        1. version supported:
+
+           Ubuntu 18.04 x64+
+
+        2. install dependencies:
+
+        .. code-block:: bash
+
+            sudo apt-get install -y git curl wget build-essential libssl-dev python3 \
+            python3-pip cmake make
+
+        3. verify cmake version:
+
+        .. code-block:: bash
+
+            cmake --version
+
+        .. note::
+
+            Please download cmake 3.15 or later version from https://cmake.org/download/.
+
+        4. add CMake path into environment:
+
+        .. code-block:: bash
+
+            export PATH=<CMake path>/bin:$PATH
+
+    .. group-tab:: Windows
+
+        1. version supported:
+
+           Windows 10 x64
+
+        2. install dependecies:
+
+        - Git client latest version (https://git-scm.com/download/win)
+        - CMake (`native Windows version <https://cmake.org/download/>`__)
+        - GNU make (http://gnuwin32.sourceforge.net/packages/make.htm)
+        - Python3 `(native Windows version) <https://www.python.org/downloads/>`__ and
+          the pip package manager (from Python 3.4 it's included)
+
+        3. add CMake path into environment:
+
+        .. code-block:: bash
+
+            set PATH=<CMake_Path>\bin;$PATH
+
+###########################
+Install python dependencies
+###########################
+
+Clone the TF-M source code, and then install the TF-M's additional Python
+dependencies.
+
+.. tabs::
+
+    .. group-tab:: Linux
+
+        1. get the TF-M source code:
+
+        .. code-block:: bash
+
+            cd <base folder>
+            git clone https://git.trustedfirmware.org/TF-M/trusted-firmware-m.git
+
+        2. TF-M's ``tools/requirements.txt`` file declares additional Python
+           dependencies. Install them with ``pip3``:
+
+        .. code-block:: bash
+
+            pip3 install --upgrade pip
+            cd trusted-firmware-m
+            pip3 install -r tools/requirements.txt
+
+    .. group-tab:: Windows
+
+        1. get the TF-M source code:
+
+        .. code-block:: bash
+
+            cd <base folder>
+            git clone https://git.trustedfirmware.org/TF-M/trusted-firmware-m.git
+
+        2. TF-M's ``tools/requirements.txt`` file declares additional Python
+           dependencies. Install them with ``pip3``:
+
+        .. code-block:: bash
+
+            cd trusted-firmware-m
+            pip3 install -r tools\requirements.txt
+
+###################
+Install a toolchain
+###################
+
+To compile TF-M code, at least one of the supported compiler toolchains have to
+be available in the build environment. The currently supported compiler
+versions are:
+
+    - Arm Compiler v6.10.1+
+
+      .. tabs::
+
+          .. group-tab:: Linux
+
+              - Download the standalone packages from `here <https://developer.arm.com/products/software-development-tools/compilers/arm-compiler/downloads/version-6>`__.
+              - Add Arm Compiler into environment:
+
+                .. code-block:: bash
+
+                    export PATH=<ARM_CLANG_PATH>/sw/ARMCompiler6.10.1/bin:$PATH
+                    export ARM_PRODUCT_PATH=<ARM_CLANG_PATH>/sw/mappings
+
+          .. group-tab:: Windows
+
+              - Download the standalone packages from `here <https://developer.arm.com/products/software-development-tools/compilers/arm-compiler/downloads/version-6>`__.
+              - Add Arm Compiler into environment:
+
+                .. code-block:: bash
+
+                    set PATH=<ARM_CLANG_PATH>\sw\ARMCompiler6.10.1\bin;$PATH
+                    set ARM_PRODUCT_PATH=<ARM_CLANG_PATH>\sw\mappings
+
+    - GNU Arm compiler v7.3.1+
+
+      .. tabs::
+
+          .. group-tab:: Linux
+
+              - Download the GNU Arm compiler from `here <https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads>`__.
+              - Add GNU Arm into environment:
+
+                .. code-block:: bash
+
+                    export PATH=<GNU_ARM_PATH>/bin:$PATH
+
+          .. group-tab:: Windows
+
+              - Download the GNU Arm compiler from `here <https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads>`__.
+              - Add GNU Arm into environment:
+
+                .. code-block:: bash
+
+                    export PATH=<GNU_ARM_PATH>\bin;$PATH
+
+      .. note::
+
+          GNU Arm compiler version *10-2020-q4-major* has an issue in CMSE
+          support. The bug is reported in `here <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99157>`__.
+          Select other GNU Arm compiler versions instead.
+
+    - IAR Arm compiler v8.42.x, v8.50.x
+
+      .. tabs::
+
+          .. group-tab:: Linux
+
+              - Download IAR build tools from `here <https://www.iar.com/iar-embedded-workbench/build-tools-for-linux/>`__.
+              - Add IAR Arm compiler into environment:
+
+                .. code-block:: bash
+
+                    export PATH=<IAR_COMPILER_PATH>/bin:$PATH
+
+          .. group-tab:: Windows
+
+              - Download IAR build tools from `here <https://www.iar.com/iar-embedded-workbench/#!?architecture=Arm>`__.
+              - Add IAR Arm compiler into environment:
+
+                .. code-block:: bash
+
+                    export PATH=<IAR_COMPILER_PATH>\bin;$PATH
+
+#############################
+Build AN521 regression sample
+#############################
+
+Here, we take building TF-M for AN521 platform with regression tests using GCC
+as an example:
+
+.. tabs::
+
+    .. group-tab:: Linux
+
+        .. code-block:: bash
+
+            cd trusted-firmware-m
+            cmake -S . -B cmake_build -DTFM_PLATFORM=arm/mps2/an521 -DTFM_TOOLCHAIN_FILE=toolchain_GNUARM.cmake -DCMAKE_BUILD_TYPE=Debug -DTEST_S=ON -DTEST_NS=ON
+            cmake --build cmake_build -- install
+
+        Alternately using traditional cmake syntax
+
+        .. code-block:: bash
+
+            cd trusted-firmware-m
+            mkdir cmake_build
+            cd cmake_build
+            cmake .. -DTFM_PLATFORM=arm/mps2/an521 -DTFM_TOOLCHAIN_FILE=../toolchain_GNUARM.cmake -DTEST_S=ON -DTEST_NS=ON
+            make install
+
+    .. group-tab:: Windows
+
+        .. code-block:: bash
+
+            cd trusted-firmware-m
+            cmake -G"Unix Makefiles" -S . -B cmake_build -DTFM_PLATFORM=arm/mps2/an521 -DTFM_TOOLCHAIN_FILE=toolchain_GNUARM.cmake -DCMAKE_BUILD_TYPE=Debug -DTEST_S=ON -DTEST_NS=ON
+            cmake --build cmake_build -- install
+
+        Alternately using traditional cmake syntax
+
+        .. code-block:: bash
+
+            cd trusted-firmware-m
+            mkdir cmake_build
+            cd cmake_build
+            cmake -G"Unix Makefiles" .. -DTFM_PLATFORM=arm/mps2/an521 -DTFM_TOOLCHAIN_FILE=../toolchain_GNUARM.cmake -DTEST_S=ON -DTEST_NS=ON
+            make install
+
+###########################
+Run AN521 regression sample
+###########################
+
+Run the sample code on SSE-200 Fast-Model, using FVP_MPS2_AEMv8M provided by
+Arm Development Studio.
+
+.. note::
+
+    Arm Development Studio is not essential to develop TF-M, you can skip this
+    section if don't want to try on Arm develop boards.
+
+.. tabs::
+
+    .. group-tab:: Linux
+
+        1. install Arm Development Studio to get the fast-model.
+
+           Download Arm Development Studio from `here <https://developer.arm.com/tools-and-software/embedded/arm-development-studio>`__.
+
+        2. Add ``bl2.axf`` and ``tfm_s_ns_signed.bin`` to symbol files in Debug
+           Configuration menu.
+
+        .. code-block:: bash
+
+            <DS_PATH>/sw/models/bin/FVP_MPS2_AEMv8M  \
+            --parameter fvp_mps2.platform_type=2 \
+            --parameter cpu0.baseline=0 \
+            --parameter cpu0.INITVTOR_S=0x10000000 \
+            --parameter cpu0.semihosting-enable=0 \
+            --parameter fvp_mps2.DISABLE_GATING=0 \
+            --parameter fvp_mps2.telnetterminal0.start_telnet=1 \
+            --parameter fvp_mps2.telnetterminal1.start_telnet=0 \
+            --parameter fvp_mps2.telnetterminal2.start_telnet=0 \
+            --parameter fvp_mps2.telnetterminal0.quiet=0 \
+            --parameter fvp_mps2.telnetterminal1.quiet=1 \
+            --parameter fvp_mps2.telnetterminal2.quiet=1 \
+            --application cpu0=<build_dir>/bin/bl2.axf \
+            --data cpu0=<build_dir>/bin/tfm_s_ns_signed.bin@0x10080000
+
+    .. group-tab:: Windows
+
+        1. install Arm Development Studio to get the fast-model.
+
+           Download Arm Development Studio from `here <https://developer.arm.com/tools-and-software/embedded/arm-development-studio>`__.
+
+        2. Add ``bl2.axf`` and ``tfm_s_ns_signed.bin`` to symbol files in Debug
+           Configuration menu.
+
+        .. code-block:: bash
+
+            <DS_PATH>\sw\models\bin\FVP_MPS2_AEMv8M  \
+            --parameter fvp_mps2.platform_type=2 \
+            --parameter cpu0.baseline=0 \
+            --parameter cpu0.INITVTOR_S=0x10000000 \
+            --parameter cpu0.semihosting-enable=0 \
+            --parameter fvp_mps2.DISABLE_GATING=0 \
+            --parameter fvp_mps2.telnetterminal0.start_telnet=1 \
+            --parameter fvp_mps2.telnetterminal1.start_telnet=0 \
+            --parameter fvp_mps2.telnetterminal2.start_telnet=0 \
+            --parameter fvp_mps2.telnetterminal0.quiet=0 \
+            --parameter fvp_mps2.telnetterminal1.quiet=1 \
+            --parameter fvp_mps2.telnetterminal2.quiet=1 \
+            --application cpu0=<build_dir>/bin/bl2.axf \
+            --data cpu0=<build_dir>/bin/tfm_s_ns_signed.bin@0x10080000
+
+After completing the procedure you should see the following messages on the
+DAPLink UART (baud 115200 8n1)::
+
+    [INF] Starting bootloader
+    [INF] Image 0: magic=good, copy_done=0xff, image_ok=0xff
+    [INF] Scratch: magic=bad, copy_done=0x5, image_ok=0x9
+    [INF] Boot source: primary slot
+    [INF] Swap type: none
+    [INF] Bootloader chainload address offset: 0x20000
+    [INF] Jumping to the first image slot
+    [Sec Thread] Secure image initializing!
+
+    #### Execute test suites for the protected storage service ####
+    Running Test Suite PS secure interface tests (TFM_PS_TEST_2XXX)...
+    > Executing 'TFM_PS_TEST_2001'
+      Description: 'Create interface'
+      TEST PASSED!
+    > Executing 'TFM_PS_TEST_2002'
+      Description: 'Get handle interface (DEPRECATED)'
+    This test is DEPRECATED and the test execution was SKIPPED
+      TEST PASSED!
+    > Executing 'TFM_PS_TEST_2003'
+      Description: 'Get handle with null handle pointer (DEPRECATED)'
+    This test is DEPRECATED and the test execution was SKIPPED
+      TEST PASSED!
+    > Executing 'TFM_PS_TEST_2004'
+      Description: 'Get attributes interface'
+      TEST PASSED!
+    > Executing 'TFM_PS_TEST_2005'
+      Description: 'Get attributes with null attributes struct pointer'
+    ....
+
+##########################
+Tool & Dependency overview
+##########################
+
+To build the TF-M firmware the following tools are needed:
+
+.. csv-table:: Tool dependencies
+   :header: "Name", "Version", "Component"
+
+   "C compiler",,"Firmware"
+   "CMake",,
+   "GNU Make",,
+   "tf-m-tests",CMake handles it,
+   "mbed-crypto",CMake handles it,
+   "MCUboot",CMake handles it,
+   "Python",3.x,"Firmware, User Guide"
+   "yaml",,"Firmware"
+   "pyasn1",,"Firmware"
+   "jinja2",,"Firmware"
+   "cryptography",,"Firmware"
+   "cbor",,"Firmware"
+   "click",,"Firmware"
+   "imgtool",,"Firmware"
+   "Doxygen",">1.8","Reference manual"
+   "Sphinx","=1.7.9","User Guide"
+   "sphinxcontrib-plantuml",,"User Guide"
+   "sphinxcontrib-svg2pdfconverter",,"User Guide"
+   "sphinx-rtd-theme",,"User Guide"
+   "sphinx-tabs",,"User Guide"
+   "Git",,
+   "PlantUML",">v1.2018.11","Reference Manual, User Guide"
+   "Graphviz dot",">v2.38.0","Reference manual"
+   "Java runtime environment (JRE)",">1.8","Reference Manual, User Guide"
+   "LaTex",,"pdf version of Reference Manual and User Guide"
+   "PdfLaTex",,"pdf version of Reference Manual and User Guide"
+
+Dependency chain:
+
+.. uml::
+
+   @startuml
+    skinparam state {
+      BackgroundColor #92AEE0
+      FontColor black
+      FontSize 16
+      AttributeFontColor black
+      AttributeFontSize 16
+      BackgroundColor<<pdf>> #A293E2
+      BackgroundColor<<doc>> #90DED6
+    }
+    state fw as "Firmware" : TF-M binary
+    state c_comp as "C Compiler" : C99
+    state gmake as "GNU make"
+    state u_guide as "User Guide" <<doc>>
+    state refman as "Reference Manual" <<doc>>
+    state rtd_theme as "sphinx-rtd-theme" <<doc>>
+    state tabs as "sphinx-tabs" <<doc>>
+    state sphnix_puml as "sphinxcontrib-plantuml" <<doc>>
+    state sphnix_svg as "sphinxcontrib-svg2pdfconverter" <<doc>>
+    state JRE as "JRE" <<doc>> : Java Runtime Environment
+    state gwiz as "Graphwiz dot" <<doc>>
+    state Sphinx as "Sphinx" <<doc>>
+    state m2r as "m2r" <<doc>>
+    state PlantUML as "PlantUML" <<doc>>
+    state LaTex as "LaTex" <<pdf>>
+    state PdfLaTex as "PdfLaTex" <<<<pdf>>>>
+    state Doxygen as "Doxygen" <<doc>>
+
+    [*] --> fw
+    fw --> c_comp
+    fw --> CMake
+    CMake --> gmake
+    fw --> cryptography
+    fw --> pyasn1
+    fw --> yaml
+    fw --> jinja2
+    fw --> cbor
+    fw --> click
+    fw --> imgtool
+    cryptography --> Python3
+    pyasn1 --> Python3
+    yaml --> Python3
+    jinja2 --> Python3
+    cbor --> Python3
+    click --> Python3
+    imgtool --> Python3
+
+    [*] --> u_guide
+    u_guide --> Sphinx
+    Sphinx --> m2r
+    Sphinx --> rtd_theme
+    Sphinx --> tabs
+    Sphinx --> sphnix_puml
+    Sphinx --> sphnix_svg
+    m2r --> Python3
+    rtd_theme --> Python3
+    tabs --> Python3
+    sphnix_puml --> Python3
+    sphnix_svg --> Python3
+    Sphinx --> PlantUML
+    PlantUML --> JRE
+    PlantUML --> gwiz
+    Sphinx --> LaTex
+    LaTex --> PdfLaTex
+
+    [*] --> refman
+    refman --> Doxygen
+    Doxygen --> PlantUML
+    Doxygen --> LaTex
+    state Legend {
+      state x as "For PDF generation only" <<pdf>>
+      state y as "For document generation only" <<doc>>
+      state z as "Mandatory"
+    }
+
+   @enduml
+
+##########
+Next steps
+##########
+
+Here are some next steps for exploring TF-M:
+
+    - Detailed :doc:`Build instructions </docs/technical_references/instructions/tfm_build_instruction>`.
+    - :doc:`IAR Build instructions </docs/technical_references/instructions/tfm_build_instruction_iar>`.
+    - Try other :doc:`Samples and Demos </docs/technical_references/instructions/run_tfm_examples_on_arm_platforms>`.
+    - :doc:`Documentation generation </docs/technical_references/instructions/documentation_generation>`.
+
+--------------
+
+*Copyright (c) 2017-2021, Arm Limited. All rights reserved.*
diff --git a/docs/getting_started/tfm_sw_requirement.rst b/docs/getting_started/tfm_sw_requirement.rst
deleted file mode 100644
index 7197259..0000000
--- a/docs/getting_started/tfm_sw_requirement.rst
+++ /dev/null
@@ -1,440 +0,0 @@
-#####################
-Software requirements
-#####################
-
-.. |KEIL_VERSION| replace:: v5.25.2
-.. |DEV_STUDIO_VERSION| replace:: 2019.1
-
-A quick reference table is included in the
-:ref:`docs/getting_started/tfm_sw_requirement:Tool & Dependency overview` section
-of this document.
-
-****************************
-Supported build environments
-****************************
-
-TF-M officially supports a limited set of build environments and setups. In
-this context, official support means that the environments listed below
-are actively used by team members and active developers, hence users should
-be able to recreate the same configurations by following the instructions
-described below. In case of problems, the TF-M team provides support
-only for these environments, but building in other environments can still be
-possible.
-
-The following environments are supported:
-
-    - Ubuntu 18.04 x64
-    - Windows 10 x64
-
-***********
-C compilers
-***********
-
-To compile TF-M code, at least one of the supported compiler toolchains have to
-be available in the build environment. The currently supported compiler
-versions are:
-
-    - Arm Compiler v6.10.1+
-    - GNU Arm compiler v7.3.1+
-    - IAR Arm compiler v8.42.x, v8.50.x
-
-.. Note::
-    - The Arm compilers above are provided via Keil uVision |KEIL_VERSION|
-      or greater and Arm Development Studio
-      |DEV_STUDIO_VERSION| or greater, or they can be downloaded as standalone
-      packages from
-      `here <https://developer.arm.com/products/software-development-tools/compilers/arm-compiler/downloads/version-6>`__.
-
-    - The GNU Arm compiler can be downloaded from
-      `here <https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads>`__.
-      On the page select *GNU Arm Embedded Toolchain: 7-2018-q2-update* or an
-      above version.
-
-    - GNU Arm compiler version *10-2020-q4-major* has an issue in CMSE support.
-      The bug is reported in `here <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99157>`__.
-      Select other GNU Arm compiler versions instead.
-
-    - The IAR Arm compilers above are provided via IAR Embedded Workbench (Windows) or
-      IAR build tools for linux.
-      For information, see
-      `here <https://www.iar.com/iar-embedded-workbench/#!?architecture=Arm>`__ or
-      `here <https://www.iar.com/iar-embedded-workbench/build-tools-for-linux/>`__.
-
-*****
-CMake
-*****
-
-The build-system is CMake based and supports the version 3.15 or higher.
-
-    - Please use the latest build version available.
-    - Recent versions of CMake can be downloaded from
-      https://cmake.org/download/, and older releases are available from
-      https://cmake.org/files.
-
-CMake handles all external dependencies, but if you wish to alter this
-behaviour, see :ref:`docs/technical_references/instructions/tfm_build_instruction:Manual
-dependency management`
-
-********
-GNU make
-********
-
-TF-M project builds using the "Unix Makefiles" generator of CMake
-and thus GNU make is needed for the build.
-
-    - On Linux please use the version available in your distribution.
-    - On Windows, GNU make v3.81 or higher shall work fine.
-
-CMake generators other than "Unix Makefiles" may work too, but are not
-officially supported. You may have a good luck with Ninja.
-
-********************************************
-Tools for configuring and programming boards
-********************************************
-
-Please follow a board secific documentation for building and programming
-tools.
-
-**************
-Typical setups
-**************
-
-This section lists steps to set-up TF-M build environment under Linux and Windows.
-Please also check the `Exceptions and special cases`_  chapter for any special
-requirements depending on the tools you are using.
-
-The build system can generate two documents: The Reference Manual and the
-User Guide. Both documents can be generated in HTML and PDF format.
-
-.. Note::
-    Support for document generation in the build environment is not mandatory.
-    Missing document generation tools will not block building the
-    TF-M firmware.
-
-Ubuntu
-======
-
-Setup needed tools for Ubuntu
------------------------------
-
-Tools required to build sources:
-
-    - Arm DS |DEV_STUDIO_VERSION| (Arm DS Ultimate Edition)
-      or GNU Arm compiler v7.3.1+
-    - Git tools v2.10.0
-    - CMake (see the `CMake`_ chapter)
-    - GNU Make (see the `GNU make`_ chapter)
-    - `SRecord v1.58 <http://srecord.sourceforge.net/download.html/>`__
-      (for Musca test chip boards)
-    - Python3 and the pip package manager (from Python 3.4 it's included)
-    - Python3 packages as listed in tools/requirements.txt file
-
-Tools required to generate documentation:
-
-    - Doxygen v1.8.0 or later - for reference manual
-    - Graphviz dot v2.38.0 or later
-    - PlantUML v1.2018.11 or later
-    - Java runtime environment 1.8 or later (for running PlantUML)
-    - LaTeX - for PDF generation only
-    - PdfLaTeX - for PDF generation only
-    - Python3 packages as listed in tools/requirements.txt - for user manual
-
-Download and install the required tools:
-
-.. code-block:: bash
-
-    sudo apt-get update
-    sudo apt-get install -y git curl wget build-essential libssl-dev python3 \
-    python3-pip doxygen graphviz default-jre doxygen-latex
-    mkdir ~/plantuml
-    curl -L http://sourceforge.net/projects/plantuml/files/plantuml.jar/download --output ~/plantuml/plantuml.jar
-
-Clone the TF-M Sources
-(see :ref:`Getting the source-code`),
-then
-
-.. code-block:: bash
-
-    pip3 install --upgrade pip
-    cd trusted-firmware-m
-    pip3 install -r tools/requirements.txt
-
-Finally, install C compiler (see `C compilers`_), CMake (see `CMake`_)
-and SRecord as required.
-
-Setup environment variables for Ubuntu
---------------------------------------
-
-To import CMake in your bash shell console:
-
-.. code-block:: bash
-
-    export PATH=<CMake path>/bin:$PATH
-
-To import Arm Compiler v6.13 in your bash shell console:
-
-.. code-block:: bash
-
-    export PATH=<ARM_DS_PATH>/sw/ARMCompiler6.13/bin:$PATH
-    export ARM_TOOL_VARIANT=ult
-    export ARM_PRODUCT_PATH=<ARM_DS_PATH>/sw/mappings
-    export ARMLMD_LICENSE_FILE=<LICENSE_FILE_PATH>
-
-To import GNU Arm in your bash shell console:
-
-.. code-block:: bash
-
-    export PATH=<bash path>/bin:$PATH
-
-To import IAR Arm compiler in your bash shell console:
-
-.. code-block:: bash
-
-    export PATH=<IAR compiler path>/bin:$PATH
-
-To import PLATUML:
-
-.. code-block:: bash
-
-    export PLANTUML_JAR_PATH=~/plantuml/plantuml.jar
-
-Windows
-=======
-
-Setup needed tools for Windows
-------------------------------
-
-Tools required to build sources:
-
-    - uVision |KEIL_VERSION| or Arm DS |DEV_STUDIO_VERSION| (Arm DS Ultimate Edition)
-      or GNU Arm compiler v7.3.1+
-    - Git client latest version (https://git-scm.com/download/win)
-    - CMake (`native Windows version <https://cmake.org/download/>`__,
-      see the `CMake`_ chapter)
-    - GNU make (http://gnuwin32.sourceforge.net/packages/make.htm)
-    - `SRecord v1.63 <https://sourceforge.net/projects/srecord/>`__ (for Musca test
-      chip boards)
-    - Python3 `(native Windows version) <https://www.python.org/downloads/>`__ and
-      the pip package manager (from Python 3.4 it's included)
-    - Python3 packages as listed in tools/requirements.txt file
-
-Tools required to generate documentation:
-
-    - `Doxygen v1.8.0
-      <https://sourceforge.net/projects/doxygen/files/snapshots/doxygen-1.8-svn/
-      windows/doxygenw20140924_1_8_8.zip/download>`__
-      or later - for reference manual
-    - `Graphviz dot v2.38.0
-      <https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi>`__
-      or later
-    - `PlantUML v1.2018.11
-      <http://sourceforge.net/projects/plantuml/files/plantuml.jar/download>`__
-      or later
-    - The Java runtime 1.8 or later (for running PlantUML) is part of the Arm DS
-      installation or can be downloaded from
-      `here <https://www.java.com/en/download/>`__
-    - LaTeX - for PDF generation only
-    - PdfLaTeX - for PDF generation only
-    - `MikTeX <https://miktex.org/download>`__ - for PDF generation only
-    - Python3 packages as listed in tools/requirements.txt - for user manual
-
-Download and install the required tools from above.
-
-Clone the TF-M Sources
-(see :ref:`Getting the source-code`),
-then
-
-.. code-block:: bash
-
-    cd trusted-firmware-m
-    pip install -r tools\requirements.txt
-
-Finally, install C compiler (see `C compilers`_), CMake (see `CMake`_)
-and SRecord as required.
-
-Setup environment variables for Windows
----------------------------------------
-Set the environment variables, assuming that:
-
-    - CMake, doxygen, dot, and MikTeX binaries are available on the PATH.
-    - Java JVM is used from Arm DS installation.
-    - plantuml.jar is available at c:\\plantuml\\plantuml.jar
-
-To import CMake to your PATH variable:
-
-.. code-block:: bash
-
-    set PATH=<CMake_Path>\bin;$PATH
-
-To import PLATUML:
-
-.. code-block:: bash
-
-    set PLANTUML_JAR_PATH=<plantuml_Path>\plantuml.jar
-
-To set PATH for ARMDS:
-
-.. code-block:: bash
-
-    set PATH=$PATH;<ARM_DS_PATH>\sw\java\bin
-
-There are several configurations depending on a toolset you are using.
-The typical cases are listed below.
-
-Armclang + Arm DS
-
-.. code-block:: bash
-
-    set PATH=<ARM_DS_PATH>\sw\ARMCompiler6.13\bin;$PATH
-    set ARM_PRODUCT_PATH=<ARM_DS_PATH>\sw\mappings
-    set ARM_TOOL_VARIANT=ult
-    set ARMLMD_LICENSE_FILE=<LICENSE_FILE_PATH>
-
-Armclang + Keil MDK Arm
-
-.. code-block:: bash
-
-    set PATH=<uVision path>\ARM\ARMCLANG\bin;$PATH
-
-GNU Arm
-
-.. code-block:: bash
-
-    set PATH=<GNU Arm path>\bin;$PATH
-
-****************************
-Exceptions and special cases
-****************************
-
-ArmClang
-========
-    - Arm compiler specific environment variable may need updating based on
-      specific products and licenses as explained in
-      `product-and-toolkit-configuration <https://developer.arm.com/products/software-development-tools/license-management/resources/product-and-toolkit-configuration>`__.
-
-MikTeX
-======
-    - When building the documentation the first time, MikTeX might prompt for
-      installing missing LaTeX components. Please allow the MikTeX package
-      manager to set-up these.
-
-**************************
-Tool & Dependency overview
-**************************
-
-To build the TF-M firmware the following tools are needed:
-
-.. csv-table:: Tool dependencies
-   :header: "Name", "Version", "Component"
-
-   "C compiler",See `C compilers`_,"Firmware"
-   "CMake",See `CMake`_,
-   "GNU Make",See `GNU make`_,
-   "tf-m-tests",`CMake`_ handles it,
-   "mbed-crypto",`CMake`_ handles it,
-   "MCUboot",`CMake`_ handles it,
-   "Python",3.x,"Firmware, User Guide"
-   "yaml",,"Firmware"
-   "pyasn1",,"Firmware"
-   "jinja2",,"Firmware"
-   "cryptography",,"Firmware"
-   "cbor",,"Firmware"
-   "click",,"Firmware"
-   "imgtool",,"Firmware"
-   "Doxygen",">1.8","Reference manual"
-   "Sphinx","=1.7.9","User Guide"
-   "sphinxcontrib-plantuml",,"User Guide"
-   "sphinxcontrib-svg2pdfconverter",,"User Guide"
-   "sphinx-rtd-theme",,"User Guide"
-   "sphinx-tabs",,"User Guide"
-   "Git",,
-   "PlantUML",">v1.2018.11","Reference Manual, User Guide"
-   "Graphviz dot",">v2.38.0","Reference manual"
-   "Java runtime environment (JRE)",">1.8","Reference Manual, User Guide"
-   "LaTex",,"pdf version of Reference Manual and User Guide"
-   "PdfLaTex",,"pdf version of Reference Manual and User Guide"
-
-Dependency chain:
-
-.. uml::
-
-   @startuml
-    skinparam state {
-      BackgroundColor #92AEE0
-      FontColor black
-      FontSize 16
-      AttributeFontColor black
-      AttributeFontSize 16
-      BackgroundColor<<pdf>> #A293E2
-      BackgroundColor<<doc>> #90DED6
-    }
-    state fw as "Firmware" : TF-M binary
-    state c_comp as "C Compiler" : C99
-    state gmake as "GNU make"
-    state u_guide as "User Guide" <<doc>>
-    state refman as "Reference Manual" <<doc>>
-    state rtd_theme as "sphinx-rtd-theme" <<doc>>
-    state tabs as "sphinx-tabs" <<doc>>
-    state sphnix_puml as "sphinxcontrib-plantuml" <<doc>>
-    state sphnix_svg as "sphinxcontrib-svg2pdfconverter" <<doc>>
-    state JRE as "JRE" <<doc>> : Java Runtime Environment
-    state gwiz as "Graphwiz dot" <<doc>>
-    state Sphinx as "Sphinx" <<doc>>
-    state m2r as "m2r" <<doc>>
-    state PlantUML as "PlantUML" <<doc>>
-    state LaTex as "LaTex" <<pdf>>
-    state PdfLaTex as "PdfLaTex" <<<<pdf>>>>
-    state Doxygen as "Doxygen" <<doc>>
-
-    [*] --> fw
-    fw --> c_comp
-    fw --> CMake
-    CMake --> gmake
-    fw --> cryptography
-    fw --> pyasn1
-    fw --> yaml
-    fw --> jinja2
-    fw --> cbor
-    fw --> click
-    fw --> imgtool
-    cryptography --> Python3
-    pyasn1 --> Python3
-    yaml --> Python3
-    jinja2 --> Python3
-    cbor --> Python3
-    click --> Python3
-    imgtool --> Python3
-
-    [*] --> u_guide
-    u_guide --> Sphinx
-    Sphinx --> m2r
-    Sphinx --> rtd_theme
-    Sphinx --> tabs
-    Sphinx --> sphnix_puml
-    Sphinx --> sphnix_svg
-    m2r --> Python3
-    rtd_theme --> Python3
-    tabs --> Python3
-    sphnix_puml --> Python3
-    sphnix_svg --> Python3
-    Sphinx --> PlantUML
-    PlantUML --> JRE
-    PlantUML --> gwiz
-    Sphinx --> LaTex
-    LaTex --> PdfLaTex
-
-    [*] --> refman
-    refman --> Doxygen
-    Doxygen --> PlantUML
-    Doxygen --> LaTex
-    state Legend {
-      state x as "For PDF generation only" <<pdf>>
-      state y as "For document generation only" <<doc>>
-      state z as "Mandatory"
-    }
-
-   @enduml
-
---------------
-
-*Copyright (c) 2017-2021, Arm Limited. All rights reserved.*
diff --git a/docs/introduction/readme.rst b/docs/introduction/readme.rst
index 2e67961..c3a3159 100644
--- a/docs/introduction/readme.rst
+++ b/docs/introduction/readme.rst
@@ -84,7 +84,7 @@
 
 To build & run TF-M:
 
-    - Follow the :doc:`SW requirements guide </docs/getting_started/tfm_sw_requirement>`
+    - Follow the :doc:`TF-M getting started </docs/getting_started/tfm_getting_started>`
       to set up your environment.
     - Follow the
       :doc:`Build instructions </docs/technical_references/instructions/tfm_build_instruction>`
diff --git a/docs/releases/1.3.0.rst b/docs/releases/1.3.0.rst
index a68dbc9..9e281cb 100644
--- a/docs/releases/1.3.0.rst
+++ b/docs/releases/1.3.0.rst
@@ -148,7 +148,7 @@
       | 10-2020-q4-major.
       | The support for CMSE feature is broken in version 10-2020-q4-major. The
       | fix will be available in future release version.
-      | A note is added in :ref:`docs/getting_started/tfm_sw_requirement:C compilers`.
+      | A note is added in :ref:`docs/getting_started/tfm_getting_started:Install a toolchain`.
     - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99157
 
 Reference
diff --git a/docs/technical_references/instructions/tfm_build_instruction.rst b/docs/technical_references/instructions/tfm_build_instruction.rst
index 116b5d1..49bdeff 100644
--- a/docs/technical_references/instructions/tfm_build_instruction.rst
+++ b/docs/technical_references/instructions/tfm_build_instruction.rst
@@ -2,7 +2,7 @@
 Build instructions
 ##################
 Please make sure you have all required software installed as explained in the
-:doc:`software requirements </docs/getting_started/tfm_sw_requirement>`.
+:doc:`TF-M getting started </docs/getting_started/tfm_getting_started>`.
 
 ****************
 TF-M build steps
@@ -31,7 +31,7 @@
 .. Note::
 
  - For building with Armclang compiler version 6.10.0+, please follow the note
-   in :doc:`software requirements </docs/getting_started/tfm_sw_requirement>`.
+   in :doc:`TF-M getting started </docs/getting_started/tfm_getting_started>`.
  - For building with the IAR toolchain, please see the notes in
    :doc:`IAR software requirements <tfm_build_instruction_iar>`
 
