Added script for setting up FVP and OP-TEE

The script will clone and download all needed Git's to run OP-TEE using
FVP (Foundation Models). The first time a user runs the script it will
acquire the needed software from various sources. This is followed by
configuring and building all needed components. In every sub-step there
will be a script created that could be used when building a component
later on.

There are some inter-dependencies between the software components. This
means that the developer using this setup must either now about the
inter-dependencies or if not sure, the developer could build everything
using two general helper scripts in the following order:
 1) build_secure.sh
 2) build_normal.sh

When a user needs to add new files to the root filesystem, he must
update the file "gen_rootfs/filelist-tee.txt".

Some developers might also have access to a Git containing tests
designed for testing OP-TEE functionality. In such case, the developer
can update the script so it matches the users login name (Linaro
account). If such access is granted there will also be tests built and
added by default when running this script.

Reviewed-by: Pascal Brand pascal.brand@linaro.org
Reviewed-by: Jens Wiklander jens.wiklander@linaro.org
"Dirty tests" renamed in "self tests"

Reviewed-by: Jens Wiklander jens.wiklander@linaro.org
Reviewed-by: Joakim Bech joakim.bech@linaro.org
Signed-off-by: Pascal Brand <pascal.brand@st.com>
Drivers gic and uart are optional

Platforms stm do not use gic and uart drivers, whereas vexpress (fvp / qemu)
does. So the conf.mk of the latter case defines the following:
    WITH_UART_DRV := y
    WITH_GIC_DRV := y

Reviewed-by: Joakim Bech joakim.bech@linaro.org
Reviewed-by: Jens Wiklander jens.wiklander@linaro.org
Signed-off-by: Pascal Brand <pascal.brand@st.com>
CFG_TEE_CORE_LOG_LEVEL=0 DEBUG=0 is now up in Travis

Reviewed-by: Jens Wiklander jens.wiklander@linaro.org
Signed-off-by: Pascal Brand <pascal.brand@st.com>
Remove SW version of the RNG which is not secure enough

Reviewed-by: Jens Wiklander jens.wiklander@linaro.org
Signed-off-by: Pascal Brand <pascal.brand@st.com>
Time initialization performed in init_teecore()

Time initialization was performed in specific platform initialization
main_init_helper() function. It is now performed in the generic arm32
initialization init_teecore() function.

Signed-off-by: Pascal Brand <pascal.brand@st.com>
Reviewed-by: Joakim Bech joakim.bech@linaro.org
Reviewed-by: Jens Wiklander jens.wiklander@linaro.org
plat-vexpress: build with -mfloat-abi=soft

OP-TEE on plat-vexpress does not support Neon. This patch prevents generating
Neon instructions when the cross-compiler is configured to use
'-mfloat-abi=hard' by default (such as arm-linux-gnueabihf-gcc).

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
various minor cleanups

- Remove unused assembly routines "secure_mmu_xxx".
- arm32/plat-stm:
  . move platform stm definitions of CFG_TEE_xxx configs from conf.mk to
    system_config.in
  . emit error in case some configuration variables are not defined
  .Remove deprecated macro _USE_SLAPORT_LIB
- Comment message format

Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Tested-by: Pascal Brand <pascal.brand@linaro.org>
CCM Authentication optimization

CCM   is now optimized. Instead of being computed twice,
libtomcrypt code has been optimized so that classical ccm_init, ccm_process,...
can be used incrementally (when the whole stream is not available when
starting the authentication).
CCM way of proceeding is now very closed to GCM authentication.

Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Tested-by: Pascal Brand <pascal.brand@linaro.org>