Docs: Refine tfm_sw_requirement.rst

Simplify the tfm software requirement document and change the document
to 'tfm_getting_started.rst', let it more
suitable for new starter.

Signed-off-by: Summer Qin <summer.qin@arm.com>
Change-Id: I10379aa92ac2c6cd784f0fd1b1b5431243716d74
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>`
 
diff --git a/platform/ext/target/cypress/psoc64/cypress_psoc64_spec.rst b/platform/ext/target/cypress/psoc64/cypress_psoc64_spec.rst
index f55eeca..9d88b43 100644
--- a/platform/ext/target/cypress/psoc64/cypress_psoc64_spec.rst
+++ b/platform/ext/target/cypress/psoc64/cypress_psoc64_spec.rst
@@ -13,7 +13,7 @@
 policy_multi_CM0_CM4_tfm.json
 
 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>`.
 
 Please also make sure that all the source code are fetched by following
 :doc:`general building instruction </docs/technical_references/instructions/tfm_build_instruction>`.
diff --git a/readme.rst b/readme.rst
index 2745882..35a3f96 100644
--- a/readme.rst
+++ b/readme.rst
@@ -21,7 +21,7 @@
 * `PSA certified`_
 * `Documentation home`_
 * `Release notes`_
-* `Software requirements`_
+* `TF-M getting started`_
 * `Build instructions`_
 * `Run TF-M examples on Arm platforms`_
 * `Contribution guidelines`_
@@ -36,7 +36,7 @@
 .. _License: https://ci.trustedfirmware.org/view/TF-M/job/tf-m-build-docs-nightly/lastSuccessfulBuild/artifact/trusted-firmware-m/build/docs/user_guide/html/license.html
 .. _Contribution guidelines: https://ci.trustedfirmware.org/view/TF-M/job/tf-m-build-docs-nightly/lastSuccessfulBuild/artifact/trusted-firmware-m/build/docs/user_guide/html/docs/contributing/contributing_process.html
 .. _Build instructions: https://ci.trustedfirmware.org/view/TF-M/job/tf-m-build-docs-nightly/lastSuccessfulBuild/artifact/trusted-firmware-m/build/docs/user_guide/html/docs/technical_references/instructions/tfm_build_instruction.html
-.. _Software requirements: https://ci.trustedfirmware.org/view/TF-M/job/tf-m-build-docs-nightly/lastSuccessfulBuild/artifact/trusted-firmware-m/build/docs/user_guide/html/docs/getting_started/tfm_sw_requirement.html
+.. _TF-M getting started: https://ci.trustedfirmware.org/view/TF-M/job/tf-m-build-docs-nightly/lastSuccessfulBuild/artifact/trusted-firmware-m/build/docs/user_guide/html/docs/getting_started/tfm_getting_started.html
 .. _Run TF-M examples on Arm platforms: https://ci.trustedfirmware.org/view/TF-M/job/tf-m-build-docs-nightly/lastSuccessfulBuild/artifact/trusted-firmware-m/build/docs/user_guide/html/docs/technical_references/instructions/run_tfm_examples_on_arm_platforms.html
 .. _ARMv7-M and Armv8-M: https://developer.arm.com/architectures/cpu-architecture/m-profile
 .. _ARMv8-M Architecture: https://developer.arm.com/docs/100688/latest/an-introduction-to-the-armv8-m-architecture