ci: add EL3 SPMC binaries
Generate binaries from upstream TF-A v2.8 release [1].
[1] https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/tag/?h=v2.8
Change-Id: Ibbd9e42c67eef0d1838403349566907f0b8e0aff
Signed-off-by: Shruti Gupta <shruti.gupta@arm.com>
diff --git a/linux-aarch64/trusted-firmware-a-el3-spmc/LICENSE b/linux-aarch64/trusted-firmware-a-el3-spmc/LICENSE
new file mode 100644
index 0000000..80f1118
--- /dev/null
+++ b/linux-aarch64/trusted-firmware-a-el3-spmc/LICENSE
@@ -0,0 +1,90 @@
+License
+=======
+
+The software is provided under a BSD-3-Clause license (below). Contributions to
+this project are accepted under the same license with developer sign-off as
+described in the :ref:`Contributor's Guide`.
+
+::
+
+ Copyright (c) [XXXX-]YYYY, <OWNER>. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ - Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ - Neither the name of Arm nor the names of its contributors may be used to
+ endorse or promote products derived from this software without specific
+ prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+SPDX Identifiers
+----------------
+
+Individual files contain the following tag instead of the full license text.
+
+::
+
+ SPDX-License-Identifier: BSD-3-Clause
+
+This enables machine processing of license information based on the SPDX
+License Identifiers that are here available: http://spdx.org/licenses/
+
+
+Other Projects
+--------------
+
+This project contains code from other projects as listed below. The original
+license text is included in those source files.
+
+- The libc source code is derived from `FreeBSD`_ and `SCC`_. FreeBSD uses
+ various BSD licenses, including BSD-3-Clause and BSD-2-Clause. The SCC code
+ is used under the BSD-3-Clause license with the author's permission.
+
+- The libfdt source code is disjunctively dual licensed
+ (GPL-2.0+ OR BSD-2-Clause). It is used by this project under the terms of
+ the BSD-2-Clause license. Any contributions to this code must be made under
+ the terms of both licenses.
+
+- The LLVM compiler-rt source code is disjunctively dual licensed
+ (NCSA OR MIT). It is used by this project under the terms of the NCSA
+ license (also known as the University of Illinois/NCSA Open Source License),
+ which is a permissive license compatible with BSD-3-Clause. Any
+ contributions to this code must be made under the terms of both licenses.
+
+- The zlib source code is licensed under the Zlib license, which is a
+ permissive license compatible with BSD-3-Clause.
+
+- Some STMicroelectronics platform source code is disjunctively dual licensed
+ (GPL-2.0+ OR BSD-3-Clause). It is used by this project under the terms of the
+ BSD-3-Clause license. Any contributions to this code must be made under the
+ terms of both licenses.
+
+- Some source files originating from the Linux source tree, which are
+ disjunctively dual licensed (GPL-2.0 OR MIT), are redistributed under the
+ terms of the MIT license. These files are:
+
+ - ``include/dt-bindings/interrupt-controller/arm-gic.h``
+ - ``include/dt-bindings/interrupt-controller/irq.h``
+
+ See the original `Linux MIT license`_.
+
+.. _FreeBSD: http://www.freebsd.org
+.. _Linux MIT license: https://raw.githubusercontent.com/torvalds/linux/master/LICENSES/preferred/MIT
+.. _SCC: http://www.simple-cc.org/
diff --git a/linux-aarch64/trusted-firmware-a-el3-spmc/METADATA b/linux-aarch64/trusted-firmware-a-el3-spmc/METADATA
new file mode 100644
index 0000000..b032f1b
--- /dev/null
+++ b/linux-aarch64/trusted-firmware-a-el3-spmc/METADATA
@@ -0,0 +1,16 @@
+name: "trusted-firmware-a"
+description: "Trusted Firmware-A (TF-A) provides a reference implementation of secure world software for Armv7-A and Armv8-A."
+
+third_party {
+ url {
+ type: HOMEPAGE
+ value: "https://www.trustedfirmware.org/projects/tf-a"
+ }
+ url {
+ type: GIT
+ value: "https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git"
+ }
+ version: "2.8"
+ last_upgrade_date { year: 2023 month: 01 day: 17 }
+ license_type: NOTICE
+}
diff --git a/linux-aarch64/trusted-firmware-a-el3-spmc/README.md b/linux-aarch64/trusted-firmware-a-el3-spmc/README.md
new file mode 100644
index 0000000..a4d1454
--- /dev/null
+++ b/linux-aarch64/trusted-firmware-a-el3-spmc/README.md
@@ -0,0 +1,27 @@
+# Trusted Firmware-A
+
+TF-A is built with command line options to include the SPMD (FF-A Secure Partition Manager
+Dispatcher) into the BL31 image.
+Additional options are provided to support SPMC running at EL3.
+PIE and RESET_TO_BL31 options are used as test configurations don't assume BL1/BL2 bootloaders
+usage.
+
+Pick patches [1] and [2]
+
+[1] https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/19740
+[2] https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/20259/1
+
+```
+$ make CROSS_COMPILE=aarch64-none-elf- PLAT=fvp SPD=spmd \
+ ARM_SPMC_MANIFEST_DTS=plat/arm/board/fvp/fdts/fvp_tsp_sp_manifest.dts \
+ SPMC_AT_EL3=1 SPMD_SPM_AT_SEL2=0 PRELOADED_BL33_BASE=0x80000000 \
+ ARM_LINUX_KERNEL_AS_BL33=1 ARM_PRELOADED_DTB_BASE=0x82000000 \
+ FVP_HW_CONFIG_DTS=fdts/fvp-base-gicv3-psci-1t.dts RESET_TO_BL31=1 \
+ BRANCH_PROTECTION=1 CTX_INCLUDE_PAUTH_REGS=1 ARM_ARCH_MINOR=5 \
+ ENABLE_PIE=1 V=1 DEBUG=1 all fip -j8
+
+$ cp build/fvp/debug/bl31.bin ../hafnium/prebuilts/linux-aarch64/trusted-firmware-a-el3-spmc/bl31.bin
+$ cp build/fvp/debug/bl32.bin ../hafnium/prebuilts/linux-aarch64/trusted-firmware-a-el3-spmc/bl32.bin
+$ cp build/fvp/debug/fdts/fvp_tsp_sp_manifest.dtb \
+ ../hafnium/prebuilts/linux-aarch64/trusted-firmware-a-el3-spmc/fdts/fvp_tsp_sp_manifest.dtb
+```
diff --git a/linux-aarch64/trusted-firmware-a-el3-spmc/bl31.bin b/linux-aarch64/trusted-firmware-a-el3-spmc/bl31.bin
new file mode 100644
index 0000000..f0c57b3
--- /dev/null
+++ b/linux-aarch64/trusted-firmware-a-el3-spmc/bl31.bin
Binary files differ
diff --git a/linux-aarch64/trusted-firmware-a-el3-spmc/bl32.bin b/linux-aarch64/trusted-firmware-a-el3-spmc/bl32.bin
new file mode 100644
index 0000000..6ec5a31
--- /dev/null
+++ b/linux-aarch64/trusted-firmware-a-el3-spmc/bl32.bin
Binary files differ
diff --git a/linux-aarch64/trusted-firmware-a-el3-spmc/fdts/fvp_tsp_sp_manifest.dtb b/linux-aarch64/trusted-firmware-a-el3-spmc/fdts/fvp_tsp_sp_manifest.dtb
new file mode 100644
index 0000000..a248a25
--- /dev/null
+++ b/linux-aarch64/trusted-firmware-a-el3-spmc/fdts/fvp_tsp_sp_manifest.dtb
Binary files differ