fvp: add Trusted Services support

Add support for building Secure Partitions implemented by the Trusted
Services project. The patch contains helper functions to invoke the TS
buildsystem in order to build SPs and include them into the OP-TEE bin.
It also adds a new top level Makefile which configures OP-TEE and TF-A
for the S-EL1 SPMC scenario on FVP platform.

Link: https://www.trustedfirmware.org/projects/trusted-services/
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Gyorgy Szing <gyorgy.szing@arm.com>
Signed-off-by: Balint Dobszay <balint.dobszay@arm.com>
diff --git a/fvp/spmc_manifest.dts b/fvp/spmc_manifest.dts
new file mode 100644
index 0000000..4bd1ee6
--- /dev/null
+++ b/fvp/spmc_manifest.dts
@@ -0,0 +1,35 @@
+/* SPDX-License-Identifier: BSD-3-Clause */
+/*
+ * Copyright (c) 2022, Arm Limited. All rights reserved.
+ */
+
+/dts-v1/;
+
+/ {
+	compatible = "arm,ffa-core-manifest-1.0";
+	#address-cells = <2>;
+	#size-cells = <1>;
+
+	attribute {
+		spmc_id = <0x8000>;
+		maj_ver = <0x1>;
+		min_ver = <0x0>;
+		exec_state = <0x0>;
+		load_address = <0x0 0x6000000>;
+		entrypoint = <0x0 0x6000000>;
+		binary_size = <0x80000>;
+	};
+
+/*
+ * This file will be preprocessed by TF-A's build system. If Measured Boot is
+ * enabled in TF-A's config, the build system will add the MEASURED_BOOT=1 macro
+ * to the preprocessor arguments.
+ */
+#if MEASURED_BOOT
+	tpm_event_log {
+		compatible = "arm,tpm_event_log";
+		tpm_event_log_addr = <0x0 0x0>;
+		tpm_event_log_size = <0x0>;
+	};
+#endif
+};