Add support for BL3-1 as a reset vector

This change adds optional reset vector support to BL3-1
which means BL3-1 entry point can detect cold/warm boot,
initialise primary cpu, set up cci and mail box.

When using BL3-1 as a reset vector it is assumed that
the BL3-1 platform code can determine the location of
the BL3-2 images, or load them as there are no parameters
that can be passed to BL3-1 at reset.

It also fixes the incorrect initialisation of mailbox
registers on the FVP platform

This feature can be enabled by building the code with
make variable RESET_TO_BL31 set as 1

Fixes ARM-software/TF-issues#133
Fixes ARM-software/TF-issues#20

Change-Id: I4e23939b1c518614b899f549f1e8d412538ee570
diff --git a/plat/fvp/platform.mk b/plat/fvp/platform.mk
index 511a25c..4de001b 100644
--- a/plat/fvp/platform.mk
+++ b/plat/fvp/platform.mk
@@ -45,7 +45,6 @@
 BL1_SOURCES		+=	drivers/arm/cci400/cci400.c			\
 				plat/common/aarch64/platform_up_stack.S		\
 				plat/fvp/bl1_plat_setup.c			\
-				plat/fvp/aarch64/bl1_plat_helpers.S		\
 				plat/fvp/aarch64/plat_common.c			\
 				plat/fvp/aarch64/plat_helpers.S
 
@@ -67,3 +66,8 @@
 				plat/fvp/aarch64/plat_helpers.S			\
 				plat/fvp/aarch64/plat_common.c			\
 				plat/fvp/drivers/pwrc/fvp_pwrc.c
+
+ifeq (${RESET_TO_BL31}, 1)
+	BL31_SOURCES		+=	drivers/arm/tzc400/tzc400.c		\
+					plat/fvp/plat_security.c
+endif