Docs: Update configuration docs

Update configuration docs to align with changes which decouples option
configuration and validation in config header files.

Convert header file config system diagrams in svg format
It is difficult to modify existing figures in header_file_system.rst and
kconfig_header_file_system.rst.
Re-draw those figures in svg format and enable developers to more easily
update the diagram.

Change-Id: If88a6a07104ef54de127ccb9149c5ff4792b3cdd
Signed-off-by: David Hu <david.hu@arm.com>
diff --git a/docs/configuration/header_file_system.rst b/docs/configuration/header_file_system.rst
index ff69df3..06c9982 100644
--- a/docs/configuration/header_file_system.rst
+++ b/docs/configuration/header_file_system.rst
@@ -8,22 +8,34 @@
 
 The following diagram shows how the system works.
 
-.. figure:: header_file_system.png
+.. figure:: header_file_config_diagram.svg
+  :align: center
 
-A ``config_tfm.h`` file collects customized configurations, including platform customized and
-project specific settings.
-Each component has a ``config_<comp_name>.h`` which includes the ``config_tfm.h`` first and then
-provides default values for each config option of the component as well as necessary validations
-on config dependencies.
-Source files then include component header files when necessary.
+Source files shall include ``config_tfm.h`` when necessary to fetch Component option settings.
+It is expected that all Component options are included in ``config_tfm.h`` to explicitly set values
+for each option.
+
+
+The ``config_tfm.h`` includes base configuration ``config_base.h``. Refer to
+:ref:`Base_configuration` for details of the base configurations.
 
 The ``config_tfm.h`` includes a customized project config file provided via compile definition
-``PROJECT_CONFIG_HEADER_FILE``.
-Users set the corresponding CMake variable ``PROJECT_CONFIG_HEADER_FILE`` with the full path of the
-configuration header file.
+``PROJECT_CONFIG_HEADER_FILE``. Customized Component options in the project config file overrides
+those configured in ``config_base.h``.
+The project config header file can be
+
+- Generated by the TF-M Kconfig system <kconfig_system>
+- One of the header files of Profiles <tf-m_profiles>, set via the ``TFM_PROFILE`` build option.
+- Manually customized profile based on pre-set profiles.
+
+Users set CMake variable ``PROJECT_CONFIG_HEADER_FILE`` with the full path of the configuration
+header file.
+
 A platform can adjust or place restriction on config options by providing a ``config_tfm_target.h``
 under the root folder of their platforms.
 If the build system finds the file, it sets the ``TARGET_CONFIG_HEADER_FILE`` compile definition.
+Platform specific option settings in ``TARGET_CONFIG_HEADER_FILE`` overrides those configured in
+``config_base.h``.
 
 .. code-block:: c
 
@@ -35,15 +47,10 @@
     #include TARGET_CONFIG_HEADER_FILE
     #endif
 
-The project config header file can be
+    #include "config_base.h"
 
-- Generated by the TF-M Kconfig system <kconfig_system>
-- One of the header files of Profiles <tf-m_profiles>, set via the ``TFM_PROFILE`` build option.
-- Manually customized profile based on pre-set profiles.
-
-It is expected that all Component options are included in the header file to explicitly set values
-for each option.
-Refer to :ref:`Base_configuration` for details the base configurations.
+Each component can implement a ``config_<comp_name>_check.h`` to validate component specific config
+dependencies. ``config_<comp_name>_check.h`` shall include ``config_tfm.h``
 
 --------------