Add legal and skeleton documentation files.

Change-Id: I40c982c165881593d88215913309e3177436da1c
Signed-off-by: Gyorgy Szing <Gyorgy.Szing@arm.com>
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..21862f7
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,77 @@
+#
+# Copyright (c) 2019, Arm Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+# Trusted Firmware-A Unit Test Coding style spec for editors. (Modified LCS.)
+
+# References:
+# [EC]          http://editorconfig.org/
+# [CONT]        contributing.rst
+# [LCS]         Linux Coding Style
+#               (https://www.kernel.org/doc/html/v4.10/process/coding-style.html)
+
+
+root = true
+
+# set default to match [LCS] .c/.h settings.
+# This will also apply to .S, .mk, .sh, Makefile, .dts, etc.
+[*.{c,h,cpp,hpp}]
+# Not specified, but fits current ARM-TF sources.
+charset = utf-8
+
+# Not specified, but implicit for "LINUX coding style".
+end_of_line = lf
+
+# Override LCS on indentation settings.
+indent_size = 2
+indent_style = space
+tab_width = 2
+
+# Not specified by [LCS], but sensible
+insert_final_newline = true
+
+# [LCS] Chapter 2: Breaking long lines and strings
+#       "The limit on the length of lines is 80 columns"
+#   This is a "soft" requirement for Arm-TF, and should not be the sole
+#   reason for changes.
+max_line_length = 80
+
+# [LCS] Chapter 1: Indentation
+#       "Get a decent editor and don't leave whitespace at the end of lines."
+# [LCS] Chapter 3.1: Spaces
+#       "Do not leave trailing whitespace at the ends of lines."
+trim_trailing_whitespace = true
+
+#Makefiles must use tabs, so set indentation accordingly.
+[makefile, *.mk]
+indent_size = 4
+indent_style = tab
+tab_width = 4
+
+# Adjustment for existing .rst files with different format
+[*.{rst,md}]
+indent_size = 4
+indent_style = space
+max_line_length = 180
+# 180 only selected to prevent changes to existing text.
+tab_width = 4
+
+# Python code
+[*.py]
+charset = utf-8
+indent_style = space
+indent_size = 2
+indent_size = 2
+max_line_length = 180
+tab_width = 4
+
+#Cmake files
+[*.cmake, CMakeLists.txt]
+charset = utf-8
+indent_style = space
+indent_size = 2
+indent_size = 2
+max_line_length = 180
+tab_width = 4
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ce638ea
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,21 @@
+#

+# Copyright (c) 2019, Arm Limited and Contributors. All rights reserved.

+#

+# SPDX-License-Identifier: BSD-3-Clause

+#

+

+cmake_minimum_required(VERSION 3.7)

+#Ignore all build directoryes.

+*build*/

+

+##Python specific intermediate files

+# Byte-compiled / optimized / DLL files

+__pycache__/

+*.py[cod]

+*$py.class

+

+#Ignore Eclipse project files

+.project

+.cproject

+.settings

+.pydevproject

diff --git a/dco.txt b/dco.txt
new file mode 100644
index 0000000..8201f99
--- /dev/null
+++ b/dco.txt
@@ -0,0 +1,37 @@
+Developer Certificate of Origin
+Version 1.1
+
+Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
+1 Letterman Drive
+Suite D4700
+San Francisco, CA, 94129
+
+Everyone is permitted to copy and distribute verbatim copies of this
+license document, but changing it is not allowed.
+
+
+Developer's Certificate of Origin 1.1
+
+By making a contribution to this project, I certify that:
+
+(a) The contribution was created in whole or in part by me and I
+    have the right to submit it under the open source license
+    indicated in the file; or
+
+(b) The contribution is based upon previous work that, to the best
+    of my knowledge, is covered under an appropriate open source
+    license and I have the right under that license to submit that
+    work with modifications, whether created in whole or in part
+    by me, under the same open source license (unless I am
+    permitted to submit under a different license), as indicated
+    in the file; or
+
+(c) The contribution was provided directly to me by some other
+    person who certified (a), (b) or (c) and I have not modified
+    it.
+
+(d) I understand and agree that this project and the contribution
+    are public and that a record of the contribution (including all
+    personal information I submit with it, including my sign-off) is
+    maintained indefinitely and may be redistributed consistent with
+    this project or the open source license(s) involved.
diff --git a/doc/Makefile b/doc/Makefile
new file mode 100644
index 0000000..d4bb2cb
--- /dev/null
+++ b/doc/Makefile
@@ -0,0 +1,20 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line, and also
+# from the environment for the first two.
+SPHINXOPTS    ?=
+SPHINXBUILD   ?= sphinx-build
+SOURCEDIR     = .
+BUILDDIR      = _build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/doc/SphinxBuild.cmake b/doc/SphinxBuild.cmake
new file mode 100644
index 0000000..254d856
--- /dev/null
+++ b/doc/SphinxBuild.cmake
@@ -0,0 +1,18 @@
+#

+# Copyright (c) 2019, ARM Limited and Contributors. All rights reserved.

+#

+# SPDX-License-Identifier: BSD-3-Clause

+#

+

+# Minimal cmake script for running sphinx. Use as:

+# cmake -P SphinxBuild.cmake

+

+# Inputs:

+#   SPHINXOPTS : extra options for sphinx

+

+set(SPHINXBUILD "sphinx-build" CACHE PATH "Location of sphinx-build executable.")

+set(SPHNIX_BUILDDIR "_build" CACHE PATH "Directory to place sphinx outpot to.")

+

+exec_program(${SPHINXBUILD} ./

+             ARGS -M html ${CMAKE_CURRENT_LIST_DIR} ${SPHNIX_BUILDDIR} ${SPHINXOPTS}

+            )

diff --git a/doc/_static/TrustedFirmware-Logo_standard-white.png b/doc/_static/TrustedFirmware-Logo_standard-white.png
new file mode 100644
index 0000000..e7bff71
--- /dev/null
+++ b/doc/_static/TrustedFirmware-Logo_standard-white.png
Binary files differ
diff --git a/doc/_templates/.keep_me b/doc/_templates/.keep_me
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/doc/_templates/.keep_me
diff --git a/doc/build_instructions.rst b/doc/build_instructions.rst
new file mode 100644
index 0000000..5bc1149
--- /dev/null
+++ b/doc/build_instructions.rst
@@ -0,0 +1,12 @@
+Build Instructions

+==================

+

+TODO: add info here about:

+  * how to build the unit tests

+  * how to build documentation

+

+--------------

+

+*Copyright (c) 2019, Arm Limited and Contributors. All rights reserved.*

+

+SPDX-License-Identifier: BSD-3-Clause

diff --git a/doc/conf.py b/doc/conf.py
new file mode 100644
index 0000000..669fc46
--- /dev/null
+++ b/doc/conf.py
@@ -0,0 +1,96 @@
+# -*- coding: utf-8 -*-

+

+# -- Metadata about this file ------------------------------------------------

+__date__ = "08 October 2019"

+__copyright__ = "Copyright (c) 2019 ARM Limited; SPDX-License-Identifier: BSD-3-Clause"

+

+# Configuration file for the Sphinx documentation builder.

+

+# -- Path setup --------------------------------------------------------------

+

+# If extensions (or modules to document with autodoc) are in another directory,

+# add these directories to sys.path here. If the directory is relative to the

+# documentation root, use os.path.abspath to make it absolute, like shown here.

+#

+# import os

+# import sys

+# sys.path.insert(0, os.path.abspath('.'))

+

+# -- Project information -----------------------------------------------------

+project = 'TF-A Unit Tests'

+copyright = 'Copyright (c) 2019 ARM Limited'

+author = 'Imre Kis'

+

+# The full version, including alpha/beta/rc tags

+release = '0.0.1'

+

+

+# -- General configuration ---------------------------------------------------

+

+# Add any Sphinx extension module names here, as strings. They can be

+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom

+# ones.

+extensions = ['sphinx.ext.autosectionlabel', 'sphinxcontrib.plantuml']

+

+# Add any paths that contain templates here, relative to this directory.

+templates_path = ['_templates']

+

+# The suffix(es) of source filenames.

+source_suffix = '.rst'

+

+# The master toctree document.

+master_doc = 'index'

+

+# The language for content autogenerated by Sphinx. Refer to documentation

+# for a list of supported languages.

+#

+# This is also used if you do content translation via gettext catalogs.

+# Usually you set "language" from the command line for these cases.

+language = None

+

+

+# List of patterns, relative to source directory, that match files and

+# directories to ignore when looking for source files.

+# This pattern also affects html_static_path and html_extra_path.

+exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']

+

+# The name of the Pygments (syntax highlighting) style to use.

+pygments_style = 'sphinx'

+

+# Load the contents of the global substitutions file into the 'rst_prolog'

+# variable. This ensures that the substitutions are all inserted into each page.

+with open('global_substitutions.txt', 'r') as subs:

+  rst_prolog = subs.read()

+# Minimum version of sphinx required

+needs_sphinx = '2.0'

+

+# -- Options for HTML output -------------------------------------------------

+

+# Don't show the "Built with Sphinx" footer

+html_show_sphinx = False

+

+# Don't show copyright info in the footer (we have this content in the page)

+html_show_copyright = False

+

+# The theme to use for HTML and HTML Help pages.  See the documentation for

+# a list of builtin themes.

+html_theme = "sphinx_rtd_theme"

+

+# The logo to display in the sidebar

+html_logo = 'resources/TrustedFirmware-Logo_standard-white.png'

+

+# Options for the "sphinx-rtd-theme" theme

+html_theme_options = {

+    'collapse_navigation': False, # Can expand and collapse sidebar entries

+    'prev_next_buttons_location': 'both', # Top and bottom of the page

+    'style_external_links': True # Display an icon next to external links

+}

+

+# -- Options for autosectionlabel --------------------------------------------

+

+# Only generate automatic section labels for document titles

+autosectionlabel_maxdepth = 1

+

+# -- Options for plantuml ----------------------------------------------------

+

+plantuml_output_format = 'svg_img'

diff --git a/doc/contributing.rst b/doc/contributing.rst
new file mode 100644
index 0000000..9993d84
--- /dev/null
+++ b/doc/contributing.rst
@@ -0,0 +1,15 @@
+Contributing

+============

+

+TODO: add info here about:

+  * DCO and commit message format

+  * tf.org repo loc and how to set up loal repo

+  * link to coding style

+  * link to sw requirements

+  * link to build instructions

+

+--------------

+

+*Copyright (c) 2019, Arm Limited and Contributors. All rights reserved.*

+

+SPDX-License-Identifier: BSD-3-Clause

diff --git a/doc/global_substitutions.txt b/doc/global_substitutions.txt
new file mode 100644
index 0000000..18cc48a
--- /dev/null
+++ b/doc/global_substitutions.txt
@@ -0,0 +1,63 @@
+.. |AArch32| replace:: :term:`AArch32`
+.. |AArch64| replace:: :term:`AArch64`
+.. |API| replace:: :term:`API`
+.. |CoT| replace:: :term:`CoT`
+.. |COT| replace:: :term:`COT`
+.. |CSS| replace:: :term:`CSS`
+.. |CVE| replace:: :term:`CVE`
+.. |DS-5| replace:: :term:`DS-5`
+.. |DT| replace:: :term:`DT`
+.. |EL| replace:: :term:`EL`
+.. |EHF| replace:: :term:`EHF`
+.. |FDT| replace:: :term:`FDT`
+.. |FIP| replace:: :term:`FIP`
+.. |FVP| replace:: :term:`FVP`
+.. |FWU| replace:: :term:`FWU`
+.. |GIC| replace:: :term:`GIC`
+.. |ISA| replace:: :term:`ISA`
+.. |Linaro| replace:: :term:`Linaro`
+.. |MMU| replace:: :term:`MMU`
+.. |MPAM| replace:: :term:`MPAM`
+.. |MPIDR| replace:: :term:`MPIDR`
+.. |OEN| replace:: :term:`OEN`
+.. |OP-TEE| replace:: :term:`OP-TEE`
+.. |OTE| replace:: :term:`OTE`
+.. |PDD| replace:: :term:`PDD`
+.. |PMF| replace:: :term:`PMF`
+.. |PSCI| replace:: :term:`PSCI`
+.. |RAS| replace:: :term:`RAS`
+.. |ROT| replace:: :term:`ROT`
+.. |SCMI| replace:: :term:`SCMI`
+.. |SCP| replace:: :term:`SCP`
+.. |SDEI| replace:: :term:`SDEI`
+.. |SDS| replace:: :term:`SDS`
+.. |SEA| replace:: :term:`SEA`
+.. |SiP| replace:: :term:`SiP`
+.. |SIP| replace:: :term:`SIP`
+.. |SMC| replace:: :term:`SMC`
+.. |SMCCC| replace:: :term:`SMCCC`
+.. |SoC| replace:: :term:`SoC`
+.. |SP| replace:: :term:`SP`
+.. |SPCI| replace:: :term:`SPCI`
+.. |SPD| replace:: :term:`SPD`
+.. |SPM| replace:: :term:`SPM`
+.. |SVE| replace:: :term:`SVE`
+.. |TBB| replace:: :term:`TBB`
+.. |TBBR| replace:: :term:`TBBR`
+.. |TEE| replace:: :term:`TEE`
+.. |TF-A| replace:: :term:`TF-A`
+.. |TF-M| replace:: :term:`TF-M`
+.. |TLB| replace:: :term:`TLB`
+.. |TLK| replace:: :term:`TLK`
+.. |TSP| replace:: :term:`TSP`
+.. |TZC| replace:: :term:`TZC`
+.. |UEFI| replace:: :term:`UEFI`
+.. |WDOG| replace:: :term:`WDOG`
+.. |XLAT| replace:: :term:`XLAT`
+
+..
+    --------------
+
+    *Copyright (c) 2019, Arm Limited and Contributors. All rights reserved.*
+
+    SPDX-License-Identifier: BSD-3-Clause
\ No newline at end of file
diff --git a/doc/index.rst b/doc/index.rst
new file mode 100644
index 0000000..ff41bc7
--- /dev/null
+++ b/doc/index.rst
@@ -0,0 +1,17 @@
+Welcome to TF-A Unit Tests's documentation!

+===========================================

+

+.. toctree::

+   :maxdepth: 2

+   :caption: Contents:

+

+   contributing

+   build_instructions

+   software_requirements

+   user_guide

+

+--------------

+

+*Copyright (c) 2019, Arm Limited and Contributors. All rights reserved.*

+

+SPDX-License-Identifier: BSD-3-Clause

diff --git a/doc/software_requirements.rst b/doc/software_requirements.rst
new file mode 100644
index 0000000..2cd19d1
--- /dev/null
+++ b/doc/software_requirements.rst
@@ -0,0 +1,13 @@
+Software Requirements

+=====================

+

+TODO: add info here about:

+  * what is needed to build and run unit tests

+  * list of supported dev env's

+  * setup instructions for windows and linux

+

+--------------

+

+*Copyright (c) 2019, Arm Limited and Contributors. All rights reserved.*

+

+SPDX-License-Identifier: BSD-3-Clause

diff --git a/doc/user_guide.rst b/doc/user_guide.rst
new file mode 100644
index 0000000..a3199d7
--- /dev/null
+++ b/doc/user_guide.rst
@@ -0,0 +1,10 @@
+User Guide

+==========

+

+TODO: add text here

+

+--------------

+

+*Copyright (c) 2019, Arm Limited and Contributors. All rights reserved.*

+

+SPDX-License-Identifier: BSD-3-Clause

diff --git a/license.rst b/license.rst
new file mode 100644
index 0000000..a5ca526
--- /dev/null
+++ b/license.rst
@@ -0,0 +1,34 @@
+Copyright (c) 2019, Arm Limited. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+-  Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+-  Redistributions in binary form must reproduce the above copyright notice, this
+   list of conditions and the following disclaimer in the documentation and/or
+   other materials provided with the distribution.
+-  Neither the name of ARM nor the names of its contributors may be used to
+   endorse or promote products derived from this software without specific prior
+   written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------
+
+*Note*:
+Individual files contain the following tag instead of the full license text.
+
+    SPDX-License-Identifier:    BSD-3-Clause
+
+This enables machine processing of license information based on the SPDX
+License Identifiers that are here available: http://spdx.org/licenses/
\ No newline at end of file
diff --git a/readme.rst b/readme.rst
new file mode 100644
index 0000000..4f39395
--- /dev/null
+++ b/readme.rst
@@ -0,0 +1,24 @@
+Trusted Firmware-A Unit Tests

+=============================

+

+This repository holds the unit tests of the TF-A project.

+

+The full documentation of this project is `Sphinx`_ based, lives in the *doc*

+sub-directory and is captured in reStructuredText_ format.

+

+For licensing information please refer to `license.rst`_

+

+Contributed content is accepted under the `Developer Certificate of Origin (DCO)`_

+and commit messages shall follow specific formatting  rules (for details

+please refer to the *Contributing* sections of the full documentation).

+

+.. _reStructuredText: http://docutils.sourceforge.net/rst.html

+.. _Sphinx: http://www.sphinx-doc.org/en/master/

+.. _`license.rst`: ./license.rst

+.. _`Developer Certificate of Origin (DCO)`: ./dco.txt

+

+--------------

+

+*Copyright (c) 2019, Arm Limited and Contributors. All rights reserved.*

+

+SPDX-License-Identifier: BSD-3-Clause