Doc: Added nested index structure
This patch adjusts the structure of documentation, making it
easier to organise and navigate.
* Modifies index.rst.in decoupled from cmake index.rst.
* Creates respective indexes in the documentation sub-directories
and links them to the master index
* External component documentation is preserved
* CMAKE build system is updated to automate the document listing
in the design_documents index instead of the master index.
Change-Id: I697b68e19dc57ecf7f36bc6dd8248fe345bdad61
Signed-off-by: Galanakis, Minos <minos.galanakis@arm.com>
diff --git a/docs/about/coding_guide.rst b/docs/about/coding_guide.rst
new file mode 100644
index 0000000..87c49c7
--- /dev/null
+++ b/docs/about/coding_guide.rst
@@ -0,0 +1,79 @@
+##############################
+Yet another coding standard :)
+##############################
+
+.. Warning::
+
+ Every rule has an exception so if you disagree or dislike then reach out!
+
+The coding style of TF-M project is based on
+`Linux coding style <https://www.kernel.org/doc/html/v4.10/process/coding-style.html>`__
+but there are updates for domain specific conventions as listed below.
+
+TF-M also reuses code from other SW projects, e.g. ``CMSIS_5``, which
+means some areas of code may have different styles. We use common sense approach
+and new code may inherit coding style from external projects but it needs to
+remain within clear scope.
+
+The guidance below is provided as a help. It isn't meant to be a definitive
+list.
+
+As implied in the :doc:`contributing guide </docs/processes/contributing>`
+maintainers have the right to decide on what's acceptable in case of any
+divergence.
+
+.. Warning::
+
+ Text files do not fall within these rules as they may require different formatting.``
+
+****************
+Consistent style
+****************
+The code needs to be consistent with itself, so if existing code in the file
+violates listed coding style rules then it is better to follow existing style
+in the file and not break consistency by following the rules listed here.
+
+You may need to add a comment in the commit description to clarify this.
+
+List of rules
+=============
+
+- Use 4 spaces indentation. No tabs.
+- Use ``lower_case_with_underscore`` for filenames, variable and function names.
+- Use standard types e.g. ``uint32_t``, ``uint16_t``, ``uint8_t``, ``int32_t``
+ etc.
+- Use ``uintptr_t`` type when representing addresses as numbers.
+- Use static for all private functions and variables.
+- Use void argument if your function doesn't contain any argument.
+- Use C90 ``/* */`` for comments rather than C99 ``//``
+- No trailing spaces in code.
+- Max 80 characters length. Text files are exception as stated above.
+- Open curly brace ``{`` at the same if/else/while/for/switch statement line.
+- Use curly braces ``{ }`` for one line statement bodies also.
+- Put open curly brace in the line below the function header.
+- Order function parameters so that input params are before output params.
+- Declare local variables at the beginning of the function.
+- Define macros in all caps i.e. ``CAPITAL_WITH_UNDERSCORE``.
+- Use typedefs **ONLY** for function prototype declarations.
+- Type definitions in ``lower_case_with_underscore`` ended by ``_t``.
+- Do not use typedef for other constructs as it obfuscates code.
+- Do not use bitfields.
+- Use static for all global variables to reduce the variable scope.
+- Use enumeration for error codes to keep the code readable.
+- Use descriptive variable and functions names.
+- Put the correct license header at the beginning of the file.
+- Keep the files (.h/.c) self-contained, i.e. put include dependencies in the
+ file.
+- Put appropriate header define guard in .h files: ``__HEADER_NAME__``.
+ Any divergence from this rules should be clearly documented.
+- In a .c file, #include it's own header file first.
+- Document all the public functions in the header file only.
+- Document all the private functions in the source file only.
+- Add "extern C " definition for C++ support in the header files.
+- In the switch statement, aligned cases with the switch keyword.
+- For enums, use upper case letters with digits and underscore only.
+- Do not code while eating.
+
+--------------
+
+*Copyright (c) 2018-2019, Arm Limited. All rights reserved.*
diff --git a/docs/about/dco.rst b/docs/about/dco.rst
new file mode 100644
index 0000000..7a5a4c3
--- /dev/null
+++ b/docs/about/dco.rst
@@ -0,0 +1,12 @@
+
+###############################
+Developer Certificate of Origin
+###############################
+
+.. include:: /dco.txt
+ :literal:
+
+
+-----------
+
+*Copyright (c) 2019, Arm Limited. All rights reserved.*
diff --git a/docs/about/index.rst b/docs/about/index.rst
new file mode 100644
index 0000000..d872bfa
--- /dev/null
+++ b/docs/about/index.rst
@@ -0,0 +1,13 @@
+About
+=====
+.. toctree::
+ :maxdepth: 1
+ :caption: Contents
+ :glob:
+ :numbered:
+
+ *
+
+--------------
+
+*Copyright (c) 2019, Arm Limited. All rights reserved.*
diff --git a/docs/about/maintainers.rst b/docs/about/maintainers.rst
new file mode 100644
index 0000000..468ed82
--- /dev/null
+++ b/docs/about/maintainers.rst
@@ -0,0 +1,77 @@
+Maintainers
+===========
+
+Trusted Firmware M is a community maintained project. Contributions can only
+be approved and merged by the maintainers listed below.
+Sub-maintainers' approval is required for their specific areas of ownership.
+
+Contributions must follow the instructions in
+:doc:`Contributing Guidelines </docs/processes/contributing>`.
+
+Maintainers
+-----------
+
+Abhishek Pandit
+ :email: `abhishek.pandit@arm.com <abhishek.pandit@arm.com>`__
+ :github: `abhishek-pandit <https://github.com/abhishek-pandit>`__
+
+Ashutosh Singh
+ :email: `ashutosh.singh@arm.com <ashutosh.singh@arm.com>`__
+ :github: `ashutoshksingh <https://github.com/ashutoshksingh>`__
+
+Miklos Balint
+ :email: `miklos.balint@arm.com <miklos.balint@arm.com>`__
+ :github: `wmnt <https://github.com/wmnt>`__
+
+Sub-maintainers
+---------------
+
+Bootloader
+~~~~~~~~~~
+
+Tamas Ban
+ :email: `Tamas.Ban@arm.com <Tamas.Ban@arm.com>`__
+ :github: `tamban01 <https://github.com/tamban01>`__
+
+Secure Storage
+~~~~~~~~~~~~~~
+
+Jamie Fox
+ :email: `jamie.fox@arm.com <jamie.fox@arm.com>`__
+ :github: `jf549 <https://github.com/jf549>`__
+
+Crypto
+~~~~~~
+
+Antonio de Angelis
+ :email: `Antonio.DeAngelis@arm.com <Antonio.DeAngelis@arm.com>`__
+ :github: `adeaarm <https://github.com/adeaarm>`__
+
+SPM & IPC
+~~~~~~~~~
+
+Ken Liu
+ :email: `Ken.Liu@arm.com <Ken.Liu@arm.com>`__
+ :github: `KenLSoft <https://github.com/KenLSoft>`__)
+
+Mate Toth-Pal
+ :email: `Mate.Toth-Pal@arm.com <Mate.Toth-Pal@arm.com>`__
+ :github: `matetothpal <https://github.com/matetothpal>`__)
+
+Audit Log
+~~~~~~~~~
+
+Antonio de Angelis
+ :email: `Antonio.DeAngelis@arm.com <Antonio.DeAngelis@arm.com>`__
+ :github: `adeaarm <https://github.com/adeaarm>`__
+
+Attestation
+~~~~~~~~~~~
+
+Tamas Ban
+ :email: `Tamas.Ban@arm.com <Tamas.Ban@arm.com>`__
+ :github: `tamban01 <https://github.com/tamban01>`__
+
+--------------
+
+*Copyright (c) 2017-2019, Arm Limited. All rights reserved.*