diff --git a/docs/introduction/index.rst b/docs/introduction/index.rst
new file mode 100644
index 0000000..0fa3aae
--- /dev/null
+++ b/docs/introduction/index.rst
@@ -0,0 +1,14 @@
+Introduction
+============
+
+.. toctree::
+    :maxdepth: 1
+    :caption: Introduction
+    :glob:
+    :numbered:
+
+    readme
+
+--------------
+
+*Copyright (c) 2020, Arm Limited. All rights reserved.*
diff --git a/docs/introduction/readme.rst b/docs/introduction/readme.rst
new file mode 100644
index 0000000..610bddf
--- /dev/null
+++ b/docs/introduction/readme.rst
@@ -0,0 +1,154 @@
+##################
+Trusted Firmware M
+##################
+Trusted Firmware M provides a reference implementation of secure world software
+for Arm M-profile architecture.
+
+.. Note::
+    The software implementation contained in this project is designed to be a
+    reference implementation of the Platform Security Architecture (PSA).
+
+Terms ``TFM`` and ``TF-M`` are commonly used in documents and code and both
+refer to ``Trusted Firmware M.`` :doc:`Glossary </docs/reference/glossary>` has the list
+of terms and abbreviations.
+
+#######
+License
+#######
+The software is provided under a BSD-3-Clause :doc:`License </docs/contributing/lic>`.
+Contributions to this project are accepted under the same license with developer
+sign-off as described in the :doc:`Contributing Guidelines </docs/contributing/contributing>`.
+
+This project contains code from other projects as listed below. The code from
+external projects is limited to ``app``, ``bl2``, ``lib`` and ``platform``
+folders. The original license text is included in those source files.
+
+- The ``app`` folder contains files imported from CMSIS_5 project and the files
+  have Apache 2.0 license.
+- The ``bl2`` folder contains files imported from MCUBoot project and the files
+  have Apache 2.0 license.
+- The ``lib`` folder may contain 3rd party files with diverse licenses.
+- The ``platform`` folder currently contains platforms support imported from
+  the external project and the files may have different licenses.
+
+.. Note::
+    Any folder that contains or directly imports 3rd party code is kept in a
+    specific subfolder named ``ext`` so that it can be isolated if required.
+    The 'ext' folder can be seen in the folders above mentioned.
+
+#############
+Release Notes
+#############
+The :doc:`Change Log & Release Notes </docs/reference/changelog>` provides details of
+major features of the release and platforms supported.
+
+###############
+Getting Started
+###############
+
+************
+Prerequisite
+************
+Trusted Firmware M provides a reference implementation of PSA specifications.
+It is assumed that the reader is familiar with PSA concepts and terms. PSA
+specifications can be found at
+`Platform Security Architecture Resources <https://developer.arm.com/architectures/security-architectures/platform-security-architecture>`__.
+
+The current TF-M implementation specifically targets TrustZone for ARMv8-M so a
+good understanding of the v8-M architecture is also necessary. A good place to
+get started with ARMv8-M is
+`developer.arm.com <https://developer.arm.com/technologies/trustzone>`__.
+
+**********************
+Really getting started
+**********************
+Trusted Firmware M source code is available on
+`git.trustedfirmware.org <https://git.trustedfirmware.org/TF-M/trusted-firmware-m.git/>`__.
+
+To build & run TF-M:
+
+    - Follow the :doc:`SW requirements guide </docs/getting_started/tfm_sw_requirement>`
+      to set up your environment.
+    - Follow the
+      :doc:`Build instructions </docs/getting_started/tfm_build_instruction>` to compile
+      and build the TF-M source.
+    - Follow the :doc:`User guide </docs/getting_started/tfm_user_guide>` for information
+      on running the example.
+
+To port TF-M to a another system or OS, follow the
+:doc:`OS Integration Guide </docs/getting_started/tfm_integration_guide>`
+
+Please also see the :doc:`glossary </docs/reference/glossary>` of terms used in the project.
+
+:doc:`Contributing Guidelines </docs/contributing/contributing>` contains guidance on how to
+contribute to this project.
+
+Further documents can be found in the ``docs`` folder.
+
+###################
+Platforms supported
+###################
+    - Cortex-M55 system:
+
+        - `Fast model FVP_SSE300_MPS2.
+          <https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps>`_
+
+    - Cortex-M33 system:
+
+        - `FPGA image loaded on MPS2 board.
+          <https://developer.arm.com/products/system-design/development-boards/cortex-m-prototyping-systems/mps2>`_
+        - `Fast model FVP_MPS2_AEMv8M.
+          <https://developer.arm.com/products/system-design/fixed-virtual-platforms>`_
+        - `Musca-A test chip board.
+          <https://developer.arm.com/products/system-design/development-boards/iot-test-chips-and-boards/musca-a-test-chip-board>`_
+        - `Musca-B1 test chip board.
+          <https://developer.arm.com/products/system-design/development-boards/iot-test-chips-and-boards/musca-b-test-chip-board>`_
+        - `Musca-S1 test chip board.
+          <https://developer.arm.com/tools-and-software/development-boards/iot-test-chips-and-boards/musca-s1-test-chip-board>`_
+        - `FPGA image loaded on MPS3 board.
+          <https://developer.arm.com/tools-and-software/development-boards/fpga-prototyping-boards/mps3>`_
+        - `Arm DesignStart FPGA on AWS Cloud.
+          <https://developer.arm.com/docs/101965/0102/arm-designstart-fpga-on-cloud-arm-ds-getting-started>`_
+        - `NXP LPC55S69.
+          <https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/lpc5500-cortex-m33/lpcxpresso55s69-development-board:LPC55S69-EVK>`_
+        - `NUCLEO L552ZE Q.
+          <https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-nucleo-boards/nucleo-l552ze-q.html>`_
+        - `DISCO L562QE.
+          <https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-discovery-kits/stm32l562e-dk.html>`_
+
+    - Cortex-M23 system:
+
+        - `FPGA image loaded on MPS2 board.
+          <https://developer.arm.com/products/system-design/development-boards/cortex-m-prototyping-systems/mps2>`_
+
+    - Dual Core Cortex-M system:
+
+        - `Cypress PSoc64.
+          <https://www.cypress.com/documentation/product-brochures/cypress-psoc-64-secure-microcontrollers>`_
+
+####################
+Feedback and support
+####################
+For this release, feedback is requested via email to
+`tf-m@lists.trustedfirmware.org <tf-m@lists.trustedfirmware.org>`__.
+
+###############
+Version history
+###############
++-------------+--------------+--------------------+---------------+
+| Version     | Date         | Description        | PSA-arch tag  |
++=============+==============+====================+===============+
+| v1.0-beta   | 2019-02-15   | 1.0-beta release   |       -       |
++-------------+--------------+--------------------+---------------+
+| v1.0-RC1    | 2019-05-31   | 1.0-RC1 release    | v19.06_API0.9 |
++-------------+--------------+--------------------+---------------+
+| v1.0-RC2    | 2019-10-09   | 1.0-RC2 release    | v19.06_API0.9 |
++-------------+--------------+--------------------+---------------+
+| v1.0-RC3    | 2019-11-29   | 1.0-RC3 release    | v19.06_API0.9 |
++-------------+--------------+--------------------+---------------+
+| v1.0        | 2020-03-27   | 1.0 release        | v20.03_API1.0 |
++-------------+--------------+--------------------+---------------+
+
+--------------
+
+*Copyright (c) 2017-2020, Arm Limited. All rights reserved.*
