Open CI Scripts: Initial Commit

* build_helper: Python script which builds sets
of configurations from a json file input
* checkpatch: Bash scripts helping with running checkpatch
* cppcheck: Bash script helping with running cppcheck
* lava_helper: Python script which generates a lava job
definition and parses the output of a lava dispatcher
* tfm_ci_pylib: Generic Python module for Open CI
* configs: Directory storing reference configurations

Change-Id: Ibda0cbfeb5b004b35fef3c2af4cb5c012f2672b4
Signed-off-by: Galanakis, Minos <minos.galanakis@linaro.org>
diff --git a/doc/readme.dox b/doc/readme.dox
new file mode 100644
index 0000000..61dbf0c
--- /dev/null
+++ b/doc/readme.dox
@@ -0,0 +1,74 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2018-2019, Arm Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+/*! @mainpage TF-M CI Script Documentation
+
+@section Introduction
+This repository holds build scripts used by "Continuous Integration" jobs
+executed on Linaro Jenkins infrastructure.
+
+These script leave "provisioning" of the environment to the executor, and thus
+will not install compilers and other needed tools, clone repositories and so on.
+
+The intention is to make these tools execute fine not only on the Jenkins
+servers, but also on developer PC:s and thus these scripts provide both a
+"centralised" and a "distributed" CI environment.
+
+@section documenting Writing/maintaining this documentation
+This documentation is Doxygen based. Please use the makefile in this directory
+to generate html output.
+
+The Doxygen configuration is made in a way to process all files with a .sh or
+.dox extension. Still output will only be generated for documented files, i.e.
+files with a <em>\@file</em> tag.
+
+For details on how to instrument the shell scripts please refer to
+\ref pgSoxygenSh.
+
+@tableofcontents
+@section ReadmeS1 Building tf-m.
+
+Python build documents are preliminary and will be included in future revisions.
+
+Each Python script contains built-in help which can be accessed by -h, --help
+command line argument.
+
+In order to build all configurations use build_helper.py
+
+@code{.sh}
+# Will build all configurations to build-all-dir and
+# create a report in json format.
+
+./ci-scripts/build_helper/build_helper.py -b build-all-dir -r report.json
+@endcode
+
+
+@section ReadmeS2 Static analysis of TF-M.
+The CI system currently supports chakpatch and cppcheck to analyze TF-M source
+content.
+
+@subsection ReadmeS2S1 Cppcheck
+The script \ref run-cppcheck.sh can be used to execute cppcheck. For details
+please refer to the documentation of the script.
+
+The script \ref make_cppcheck_summary.sh can be used to genetare a summary of
+XML output files generated by cppcheck.
+
+@subsection ReadmeS2S2 Checkpatch
+The script \ref run-checkpatch.sh can be used to execute checkpatch. For details
+please refer to the documentation of the script.
+
+The script @ref make_checkpatch_summary.sh can be used to generate a summary
+report file of chackpatch results.
+
+@section pgindex_r1 Table of contents
+- @ref run-checkpatch.sh
+- @ref make_checkpatch_summary.sh
+- @ref run-cppcheck.sh
+- @ref make_cppcheck_summary.sh
+- @ref util_cmake.sh
+*/