qemu_v8: add support for Hafnium as S-EL2

Adds support for SPMC_AT_EL=2 where Hafnium is loaded at S-EL2 and
OP-TEE runs as an SP at S-EL1.

Hafnium requires both MTE and PAUTH support so make enable those
features in QEMU and TF-A as needed. The values $(MEMTAG) and $(PAUTH)
are not affected by the to allow independent configuration of OP-TEE
core.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
diff --git a/qemu_v8/optee_sp_manifest.dts b/qemu_v8/optee_sp_manifest.dts
new file mode 100644
index 0000000..024efe7
--- /dev/null
+++ b/qemu_v8/optee_sp_manifest.dts
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2020, Arm Limited. All rights reserved.
+ * Copyright (c) 2022, Linaro Limited
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * This file is a Partition Manifest (PM) for a minimal Secure Partition (SP)
+ * that has additional optional properties defined.
+ *
+ */
+
+/dts-v1/;
+
+/ {
+	compatible = "arm,ffa-manifest-1.0";
+
+	/* Properties */
+	description = "op-tee";
+	ffa-version = <0x00010000>; /* 31:16 - Major, 15:0 - Minor */
+	uuid = <0xe0786148 0xe311f8e7 0x02005ebc 0x1bc5d5a5>;
+	id = <1>;
+	execution-ctx-count = <8>;
+	exception-level = <2>; /* S-EL1 */
+	execution-state = <0>; /* AARCH64 */
+	load-address = <0xe300000>;
+	mem-size = <0xd00000>;	/* OP-TEE specific extension */
+	entrypoint-offset = <0x4000>;
+	xlat-granule = <0>; /* 4KiB */
+	boot-order = <0>;
+	messaging-method = <0x3>; /* Direct messaging only */
+	ns-interrupts-action = <1>; /* NS_ACTION_ME */
+
+	/* Boot protocol */
+	gp-register-num = <0x0>;
+
+	/* Boot Info */
+	boot-info {
+		compatible = "arm,ffa-manifest-boot-info";
+		ffa_manifest;
+	};
+
+	device-regions {
+		compatible = "arm,ffa-manifest-device-regions";
+
+		uart1 {
+			base-address = <0x00000000 0x09040000>;
+			pages-count = <1>;
+			attributes = <0x3>; /* read-write */
+			/* SPI, level-triggered, secure, priority=1 */
+			interrupts = <0x28 0xb01>;
+		};
+	};
+};