Docs: Add configuration section to the doc

+ Rebase and include ARoT-less profile

Signed-off-by: Anton Komlev <anton.komlev@arm.com>
Change-Id: If802fa15297fe25585c7523ad0827395d982c554
diff --git a/docs/configuration/index.rst b/docs/configuration/index.rst
new file mode 100644
index 0000000..7c2cc2d
--- /dev/null
+++ b/docs/configuration/index.rst
@@ -0,0 +1,80 @@
+#############
+Configuration
+#############
+
+.. Warning::
+
+    This is a temporay design document for review.
+    Once the design is settled down.
+    It will be converted to user/integration guides.
+
+.. toctree::
+    :maxdepth: 1
+    :glob:
+
+    profiles/index
+
+TF-M is a complex project having many configuration options to adjust project
+for a user needs. A user can select the desired set of services and fine-tune
+them to user's requirements. There are 2 types of configuration options:
+
+1. Building : to select which file or component to include into compilation.
+   These are options, usually used by a build system to enable/disable
+   modules, specify location of external dependency or other selection,
+   global to a project. These options shall be considered while adopting TF-M
+   to other build systems.
+   In the Base configuration table theses options have *Build* type.
+
+2. Component tuning : to adjust a particular parameter to a desired value.
+   Those options are local to a component or externally referenced when
+   components are coupled. Usually, such options are located in C header
+   file. The Header File Config System has more details about it.
+   In the Base configuration table theses options have *Component* type.
+
+.. Note::
+  Originally, TF-M used CMake variables for both building and component tuning
+  purposes. It was convenient to have a single system for both building and
+  component's configurations. To simplify and improve configurability and
+  better support build systems other than a CMake, TF-M introduced a header
+  file configuration and moved component options into a dedicated config headers.
+
+****************
+How to configure
+****************
+
+The default TF-M build includes the minimum set of components required in any
+project: SPM and a selected platform. This is not very useful for any product
+and desired services shall be enabled by a user. There are several independent
+ways to configure TF-M.
+
+1. Use profiles. There are 4 sets of predefined configurations for a elected
+   use cases, called profiles. A user can select a profile by providing
+   -DTFM_PROFILE=<profile file name>.
+   Each profiles represented by a pair of configuration files for
+   Building (CMake) options and Component options (.h file)
+
+2. A custom profile. Another method is to take a profile as a base and manually
+   modify desired options.
+
+3. Use KConfig system. This is recommended method especially for beginners.
+   KConfig ensurers that all selected options are consistent and valid. This
+   is new in v1.7.0 and it covers only SPM and PSA ervices. As an output
+   KConfig produces a pair of configuration files, similar to a profile.
+
+.. Note::
+   In contrast, before TF-M v1.7.0, the default build includes all possible
+   features. With growing functionality, such rich default build became
+   unpractical by not fitting into every platform and confusing of big
+   memory requirements.
+
+**********
+Priorities
+**********
+Note::
+
+   TODO: Need a secion on configuration Priorities
+
+
+--------------
+
+*Copyright (c) 2022, Arm Limited. All rights reserved.*
\ No newline at end of file