Initial commit for TF-A CI scripts

Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
diff --git a/run_config/coverity-misra.diff b/run_config/coverity-misra.diff
new file mode 100644
index 0000000..d053250
--- /dev/null
+++ b/run_config/coverity-misra.diff
@@ -0,0 +1,25 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+pre_tf_build() {
+	echo "Configure coverity to compare with trustedfirmware.org for MISRA defects."
+
+	append_hook_var "cov_options" " ${coverity_default_checkers[*]}"
+	append_hook_var "cov_options" \
+		" --coding-standard-config $ci_root/coverity/MISRA_c2012_1_ARM_TF.config"
+
+	# Branch description
+	set_hook_var "cov_checker" "misra"
+
+	set_hook_var "cov_golden_url" \
+		"${cov_golden_url-https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git}"
+
+	set_hook_var "cov_golden_ref" "${cov_golden_ref-integration}"
+
+	# Print comparison report
+	set_hook_var "cov_run_type" "branch-report-compare"
+}
diff --git a/run_config/coverity-misra.full b/run_config/coverity-misra.full
new file mode 100644
index 0000000..419859a
--- /dev/null
+++ b/run_config/coverity-misra.full
@@ -0,0 +1,21 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+pre_tf_build() {
+	echo "Configure coverity for full scan for MISRA defects."
+
+	append_hook_var "cov_options" " ${coverity_default_checkers[*]}"
+	append_hook_var "cov_options" \
+		" --coding-standard-config $ci_root/coverity/MISRA_c2012_1_ARM_TF.config"
+
+	# Branch description
+	set_hook_var "cov_checker" "misra"
+
+	# Print full report
+	append_hook_var "cov_report_options" " --all"
+	set_hook_var "cov_run_type" "branch-report-full"
+}
diff --git a/run_config/coverity-tf b/run_config/coverity-tf
new file mode 100644
index 0000000..eba0d0b
--- /dev/null
+++ b/run_config/coverity-tf
@@ -0,0 +1,16 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+test_setup() {
+	# Coverity scan only need to run on debug builds
+	echo "Building only in DEBUG mode."
+	set_hook_var "bin_mode" "debug"
+}
+
+pre_tf_build() {
+	wrapper="coverity" setup_tf_build_wrapper
+}
diff --git a/run_config/debug b/run_config/debug
new file mode 100644
index 0000000..4924c43
--- /dev/null
+++ b/run_config/debug
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_package() {
+	use_debug_bins
+}
+
diff --git a/run_config/fvp-aemv8a b/run_config/fvp-aemv8a
new file mode 100644
index 0000000..a40b921
--- /dev/null
+++ b/run_config/fvp-aemv8a
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="base-aemv8a" gen_model_params
+}
diff --git a/run_config/fvp-aemv8a.64only b/run_config/fvp-aemv8a.64only
new file mode 100644
index 0000000..92d4ad5
--- /dev/null
+++ b/run_config/fvp-aemv8a.64only
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	aarch64_only=1 model="base-aemv8a" gen_model_params
+}
diff --git a/run_config/fvp-aemv8a.8_3 b/run_config/fvp-aemv8a.8_3
new file mode 100644
index 0000000..e0b6c56
--- /dev/null
+++ b/run_config/fvp-aemv8a.8_3
@@ -0,0 +1,12 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="base-aemv8a" \
+	arch_version="8.3" \
+		gen_model_params
+}
diff --git a/run_config/fvp-aemv8a.8_4 b/run_config/fvp-aemv8a.8_4
new file mode 100644
index 0000000..13f733d
--- /dev/null
+++ b/run_config/fvp-aemv8a.8_4
@@ -0,0 +1,12 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="base-aemv8a" \
+	arch_version="8.4" \
+		gen_model_params
+}
diff --git a/run_config/fvp-aemv8a.aarch32 b/run_config/fvp-aemv8a.aarch32
new file mode 100644
index 0000000..aacf028
--- /dev/null
+++ b/run_config/fvp-aemv8a.aarch32
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	aarch32="1" model="base-aemv8a" gen_model_params
+}
diff --git a/run_config/fvp-aemv8a.assymetric b/run_config/fvp-aemv8a.assymetric
new file mode 100644
index 0000000..c374237
--- /dev/null
+++ b/run_config/fvp-aemv8a.assymetric
@@ -0,0 +1,18 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	arch_version="8.3" \
+		cluster_0_reg_reset="0xffffffff" \
+		cluster_0_has_el2="0" \
+		cluster_1_reg_reset="0xffffffff" \
+		cluster_1_has_el2="0" \
+		cluster_0_num_cores="2" \
+		cluster_1_num_cores="3" \
+		model="base-aemv8a" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "5"
+}
diff --git a/run_config/fvp-aemv8a.bl2_el3 b/run_config/fvp-aemv8a.bl2_el3
new file mode 100644
index 0000000..33f2873
--- /dev/null
+++ b/run_config/fvp-aemv8a.bl2_el3
@@ -0,0 +1,14 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	bl2_at_el3="1" \
+	bl2_addr="0x4022000" \
+		model="base-aemv8a" gen_model_params
+
+	uart="0" set_expect_variable "skip_early_boot_msgs" "1"
+}
diff --git a/run_config/fvp-aemv8a.el3payload b/run_config/fvp-aemv8a.el3payload
new file mode 100644
index 0000000..ec7e1e8
--- /dev/null
+++ b/run_config/fvp-aemv8a.el3payload
@@ -0,0 +1,12 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	pctl_startup="0.0.*.0,0.1.*.0" \
+		secure_ram_fill="1" \
+		model="base-aemv8a" gen_model_params
+}
diff --git a/run_config/fvp-aemv8a.fi b/run_config/fvp-aemv8a.fi
new file mode 100644
index 0000000..4d5b58a
--- /dev/null
+++ b/run_config/fvp-aemv8a.fi
@@ -0,0 +1,18 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+pre_tf_build() {
+	# Apply fault injection patches
+	apply_tf_patch "fault_inject/injected-fault-record-and-handler.patch"
+	apply_tf_patch "fault_inject/explicit-events.patch"
+	apply_tf_patch "fault_inject/fvp-fault-handlers.patch"
+}
+
+post_tf_archive() {
+	model="base-aemv8a" fault_inject="1" arch_version="8.4" \
+		gen_model_params
+}
diff --git a/run_config/fvp-aemv8a.memprotect b/run_config/fvp-aemv8a.memprotect
new file mode 100644
index 0000000..027e9ce
--- /dev/null
+++ b/run_config/fvp-aemv8a.memprotect
@@ -0,0 +1,23 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+	get_uboot_bin
+}
+
+post_fetch_tf_resource() {
+	image="$(mktempfile)"
+	printf '\1\0\0\0' > "$image"
+
+	preload_bl33="1" \
+	preload_bl33_bin="uboot.bin" \
+	reset_to_bl31="1" \
+	cache_state_modelled="0" \
+	memprotect="$image" \
+	memprotect_addr="0xBFC0000" \
+		model="base-aemv8a" gen_model_params
+}
diff --git a/run_config/fvp-aemv8a.nocm b/run_config/fvp-aemv8a.nocm
new file mode 100644
index 0000000..37595fd
--- /dev/null
+++ b/run_config/fvp-aemv8a.nocm
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	cache_state_modelled="0" model="base-aemv8a" gen_model_params
+}
diff --git a/run_config/fvp-aemv8a.pl33 b/run_config/fvp-aemv8a.pl33
new file mode 100644
index 0000000..4504ad4
--- /dev/null
+++ b/run_config/fvp-aemv8a.pl33
@@ -0,0 +1,17 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+	# Build FIP without any BL33 image (it is preloaded)
+	build_fip
+}
+
+post_fetch_tf_resource() {
+	preload_bl33="1" \
+	preload_bl33_bin="tftf.bin" \
+		model="base-aemv8a" gen_model_params
+}
diff --git a/run_config/fvp-aemv8a.rst31 b/run_config/fvp-aemv8a.rst31
new file mode 100644
index 0000000..46464b3
--- /dev/null
+++ b/run_config/fvp-aemv8a.rst31
@@ -0,0 +1,17 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+	get_uboot_bin
+}
+
+post_fetch_tf_resource() {
+	preload_bl33="1" \
+	preload_bl33_bin="uboot.bin" \
+	reset_to_bl31="1" \
+		model="base-aemv8a" gen_model_params
+}
diff --git a/run_config/fvp-aemv8a.singlecore b/run_config/fvp-aemv8a.singlecore
new file mode 100644
index 0000000..faf8615
--- /dev/null
+++ b/run_config/fvp-aemv8a.singlecore
@@ -0,0 +1,12 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="base-aemv8a" cluster_0_num_cores="1" cluster_1_num_cores="0" \
+		gen_model_params
+	uart="0" set_expect_variable "num_cpus" "1"
+}
diff --git a/run_config/fvp-aemv8a.sve b/run_config/fvp-aemv8a.sve
new file mode 100644
index 0000000..6740613
--- /dev/null
+++ b/run_config/fvp-aemv8a.sve
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	sve_plugin=1 \
+		model="base-aemv8a" gen_model_params
+}
diff --git a/run_config/fvp-aemv8a_revb b/run_config/fvp-aemv8a_revb
new file mode 100644
index 0000000..077dda7
--- /dev/null
+++ b/run_config/fvp-aemv8a_revb
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="base-aemv8a-revb" gen_model_params
+}
diff --git a/run_config/fvp-aemv8a_revb.aarch32 b/run_config/fvp-aemv8a_revb.aarch32
new file mode 100644
index 0000000..4155941
--- /dev/null
+++ b/run_config/fvp-aemv8a_revb.aarch32
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	aarch32="1" model="base-aemv8a-revb" gen_model_params
+}
diff --git a/run_config/fvp-aemv8a_revb.aarch32+8_4 b/run_config/fvp-aemv8a_revb.aarch32+8_4
new file mode 100644
index 0000000..6658cc8
--- /dev/null
+++ b/run_config/fvp-aemv8a_revb.aarch32+8_4
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	aarch32="1" model="base-aemv8a-revb" arch_version="8.4" \
+		gen_model_params
+}
diff --git a/run_config/fvp-aemv8a_revb.aarch32+bl2_el3 b/run_config/fvp-aemv8a_revb.aarch32+bl2_el3
new file mode 100644
index 0000000..6a70680
--- /dev/null
+++ b/run_config/fvp-aemv8a_revb.aarch32+bl2_el3
@@ -0,0 +1,15 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	bl2_at_el3="1" \
+	aarch32="1" \
+	bl2_addr="0x4022000" \
+		model="base-aemv8a-revb" gen_model_params
+
+	uart="0" set_expect_variable "skip_early_boot_msgs" "1"
+}
diff --git a/run_config/fvp-aemv8a_revb.aarch32+memprotect b/run_config/fvp-aemv8a_revb.aarch32+memprotect
new file mode 100644
index 0000000..6faeb37
--- /dev/null
+++ b/run_config/fvp-aemv8a_revb.aarch32+memprotect
@@ -0,0 +1,18 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	image=$(mktempfile)
+	printf '\1\0\0\0' > "$image"
+
+	aarch32="1" \
+	reset_to_spmin="1" \
+	cache_state_modelled="0" \
+	memprotect="$image" \
+	memprotect_addr="0xBFC0000" \
+		model="base-aemv8a-revb" gen_model_params
+}
diff --git a/run_config/fvp-aemv8a_revb.aarch32+regreset b/run_config/fvp-aemv8a_revb.aarch32+regreset
new file mode 100644
index 0000000..60e583b
--- /dev/null
+++ b/run_config/fvp-aemv8a_revb.aarch32+regreset
@@ -0,0 +1,13 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	cluster_0_reg_reset="0xffffffff" \
+		cluster_1_reg_reset="0xffffffff" \
+		aarch32=1 \
+		model="base-aemv8a-revb" gen_model_params
+}
diff --git a/run_config/fvp-aemv8a_revb.aarch32.gicv2 b/run_config/fvp-aemv8a_revb.aarch32.gicv2
new file mode 100644
index 0000000..0b4a5fa
--- /dev/null
+++ b/run_config/fvp-aemv8a_revb.aarch32.gicv2
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	gicv3_gicv2_only="1" cache_state_modelled=0 model="base-aemv8a-revb" aarch32="1" gen_model_params
+}
diff --git a/run_config/fvp-aemv8a_revb.asymetric b/run_config/fvp-aemv8a_revb.asymetric
new file mode 100644
index 0000000..b02577f
--- /dev/null
+++ b/run_config/fvp-aemv8a_revb.asymetric
@@ -0,0 +1,18 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	arch_version="8.3" \
+		cluster_0_reg_reset="0xffffffff" \
+		cluster_0_has_el2="0" \
+		cluster_1_reg_reset="0xffffffff" \
+		cluster_1_has_el2="0" \
+		cluster_0_num_cores="2" \
+		cluster_1_num_cores="3" \
+		model="base-aemv8a-revb" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "5"
+}
diff --git a/run_config/fvp-aemv8a_revb.gicv2 b/run_config/fvp-aemv8a_revb.gicv2
new file mode 100644
index 0000000..d628d5f
--- /dev/null
+++ b/run_config/fvp-aemv8a_revb.gicv2
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	gicv3_gicv2_only="1" \
+		model="base-aemv8a-revb" gen_model_params
+}
diff --git a/run_config/fvp-aemv8a_revb.latest b/run_config/fvp-aemv8a_revb.latest
new file mode 100644
index 0000000..2dfa674
--- /dev/null
+++ b/run_config/fvp-aemv8a_revb.latest
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="base-aemv8a-latest-revb" gen_model_params
+}
diff --git a/run_config/fvp-aemv8a_revb.rstspmin b/run_config/fvp-aemv8a_revb.rstspmin
new file mode 100644
index 0000000..be95323
--- /dev/null
+++ b/run_config/fvp-aemv8a_revb.rstspmin
@@ -0,0 +1,12 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	reset_to_spmin="1" \
+		aarch32="1" \
+		model="base-aemv8a-revb" gen_model_params
+}
diff --git a/run_config/fvp-cortexa32x4 b/run_config/fvp-cortexa32x4
new file mode 100644
index 0000000..d758385
--- /dev/null
+++ b/run_config/fvp-cortexa32x4
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="cortex-a32x4" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "4"
+}
diff --git a/run_config/fvp-cortexa32x4.rstspmin b/run_config/fvp-cortexa32x4.rstspmin
new file mode 100644
index 0000000..8329e32
--- /dev/null
+++ b/run_config/fvp-cortexa32x4.rstspmin
@@ -0,0 +1,12 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	reset_to_spmin="1" \
+		model="cortex-a32x4" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "4"
+}
diff --git a/run_config/fvp-cortexa35x4 b/run_config/fvp-cortexa35x4
new file mode 100644
index 0000000..799d704
--- /dev/null
+++ b/run_config/fvp-cortexa35x4
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="cortex-a35x4" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "4"
+}
diff --git a/run_config/fvp-cortexa53x4 b/run_config/fvp-cortexa53x4
new file mode 100644
index 0000000..d90f05a
--- /dev/null
+++ b/run_config/fvp-cortexa53x4
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="cortex-a53x4" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "4"
+}
diff --git a/run_config/fvp-cortexa55x4 b/run_config/fvp-cortexa55x4
new file mode 100644
index 0000000..3651771
--- /dev/null
+++ b/run_config/fvp-cortexa55x4
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="cortex-a55x4" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "4"
+}
diff --git a/run_config/fvp-cortexa55x4a75x4 b/run_config/fvp-cortexa55x4a75x4
new file mode 100644
index 0000000..b5d50ba
--- /dev/null
+++ b/run_config/fvp-cortexa55x4a75x4
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="cortex-a55x4-a75x4" gen_model_params
+}
diff --git a/run_config/fvp-cortexa57x1a53x1 b/run_config/fvp-cortexa57x1a53x1
new file mode 100644
index 0000000..29e6430
--- /dev/null
+++ b/run_config/fvp-cortexa57x1a53x1
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="cortex-a57x1-a53x1" gen_model_params
+        uart="0" set_expect_variable "num_cpus" "2"
+}
diff --git a/run_config/fvp-cortexa57x2a53x4 b/run_config/fvp-cortexa57x2a53x4
new file mode 100644
index 0000000..6dc4c5a
--- /dev/null
+++ b/run_config/fvp-cortexa57x2a53x4
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="cortex-a57x2-a53x4" gen_model_params
+        uart="0" set_expect_variable "num_cpus" "6"
+}
diff --git a/run_config/fvp-cortexa57x4 b/run_config/fvp-cortexa57x4
new file mode 100644
index 0000000..8fbae44
--- /dev/null
+++ b/run_config/fvp-cortexa57x4
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="cortex-a57x4" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "4"
+}
diff --git a/run_config/fvp-cortexa57x4a53x4 b/run_config/fvp-cortexa57x4a53x4
new file mode 100644
index 0000000..2647a86
--- /dev/null
+++ b/run_config/fvp-cortexa57x4a53x4
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="cortex-a57x4-a53x4" gen_model_params
+}
diff --git a/run_config/fvp-cortexa57x4a53x4.rst31 b/run_config/fvp-cortexa57x4a53x4.rst31
new file mode 100644
index 0000000..3f2f118
--- /dev/null
+++ b/run_config/fvp-cortexa57x4a53x4.rst31
@@ -0,0 +1,17 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+	get_uboot_bin
+}
+
+post_fetch_tf_resource() {
+	preload_bl33="1" \
+	preload_bl33_bin="uboot.bin" \
+	reset_to_bl31="1" \
+		model="cortex-a57x4-a53x4" gen_model_params
+}
diff --git a/run_config/fvp-cortexa72x4 b/run_config/fvp-cortexa72x4
new file mode 100644
index 0000000..ed02b14
--- /dev/null
+++ b/run_config/fvp-cortexa72x4
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="cortex-a72x4" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "4"
+}
diff --git a/run_config/fvp-cortexa72x4a53x4 b/run_config/fvp-cortexa72x4a53x4
new file mode 100644
index 0000000..6ea2326
--- /dev/null
+++ b/run_config/fvp-cortexa72x4a53x4
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="cortex-a72x4-a53x4" gen_model_params
+}
diff --git a/run_config/fvp-cortexa73x4 b/run_config/fvp-cortexa73x4
new file mode 100644
index 0000000..2696682
--- /dev/null
+++ b/run_config/fvp-cortexa73x4
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="cortex-a73x4" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "4"
+}
diff --git a/run_config/fvp-cortexa73x4a53x4 b/run_config/fvp-cortexa73x4a53x4
new file mode 100644
index 0000000..fd60505
--- /dev/null
+++ b/run_config/fvp-cortexa73x4a53x4
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="cortex-a73x4-a53x4" gen_model_params
+}
diff --git a/run_config/fvp-cortexa75x4 b/run_config/fvp-cortexa75x4
new file mode 100644
index 0000000..4c8cb1c
--- /dev/null
+++ b/run_config/fvp-cortexa75x4
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="cortex-a75x4" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "4"
+}
diff --git a/run_config/fvp-cortexa76x4 b/run_config/fvp-cortexa76x4
new file mode 100644
index 0000000..acba38b
--- /dev/null
+++ b/run_config/fvp-cortexa76x4
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="cortex-a76x4" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "4"
+}
diff --git a/run_config/fvp-dtb b/run_config/fvp-dtb
new file mode 100644
index 0000000..509c591
--- /dev/null
+++ b/run_config/fvp-dtb
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	dtb_type="fvp-base-gicv3-psci" get_dtb
+	update_fip_hw_config
+}
diff --git a/run_config/fvp-dtb.1t b/run_config/fvp-dtb.1t
new file mode 100644
index 0000000..90560f6
--- /dev/null
+++ b/run_config/fvp-dtb.1t
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	dtb_type="fvp-base-gicv3-psci-1t" get_dtb
+	update_fip_hw_config
+}
diff --git a/run_config/fvp-dtb.aarch32 b/run_config/fvp-dtb.aarch32
new file mode 100644
index 0000000..420d166
--- /dev/null
+++ b/run_config/fvp-dtb.aarch32
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	dtb_type="fvp-base-gicv3-psci-aarch32" get_dtb
+	update_fip_hw_config
+}
diff --git a/run_config/fvp-dtb.aarch32.gicv2 b/run_config/fvp-dtb.aarch32.gicv2
new file mode 100644
index 0000000..20cbbc3
--- /dev/null
+++ b/run_config/fvp-dtb.aarch32.gicv2
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	dtb_type="fvp-base-gicv2-psci-aarch32" get_dtb
+	update_fip_hw_config
+}
diff --git a/run_config/fvp-dtb.dyn b/run_config/fvp-dtb.dyn
new file mode 100644
index 0000000..45461ef
--- /dev/null
+++ b/run_config/fvp-dtb.dyn
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	dtb_type="fvp-base-gicv3-psci-dynamiq" get_dtb
+	update_fip_hw_config
+}
diff --git a/run_config/fvp-dtb.foundation b/run_config/fvp-dtb.foundation
new file mode 100644
index 0000000..e162ec2
--- /dev/null
+++ b/run_config/fvp-dtb.foundation
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	dtb_type="fvp-foundation-gicv3-psci" get_dtb
+	update_fip_hw_config
+}
diff --git a/run_config/fvp-dtb.gicv2 b/run_config/fvp-dtb.gicv2
new file mode 100644
index 0000000..3e7ef15
--- /dev/null
+++ b/run_config/fvp-dtb.gicv2
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	dtb_type="fvp-base-gicv2-psci" get_dtb
+	update_fip_hw_config
+}
diff --git a/run_config/fvp-dtb.sgm775 b/run_config/fvp-dtb.sgm775
new file mode 100644
index 0000000..b1fa3fc
--- /dev/null
+++ b/run_config/fvp-dtb.sgm775
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	dtb_type="sgm775" get_dtb
+}
diff --git a/run_config/fvp-el3payload b/run_config/fvp-el3payload
new file mode 100644
index 0000000..2310ec5
--- /dev/null
+++ b/run_config/fvp-el3payload
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	uart="0" file="el3-test-payload.exp" track_expect
+}
diff --git a/run_config/fvp-fip.sgi b/run_config/fvp-fip.sgi
new file mode 100644
index 0000000..468a188
--- /dev/null
+++ b/run_config/fvp-fip.sgi
@@ -0,0 +1,13 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+	url="$sgi_prebuilts/uefi.bin" fetch_file
+	archive_file "uefi.bin"
+
+	build_fip BL33="$archive/uefi.bin"
+}
diff --git a/run_config/fvp-fip.sgm b/run_config/fvp-fip.sgm
new file mode 100644
index 0000000..2e64845
--- /dev/null
+++ b/run_config/fvp-fip.sgm
@@ -0,0 +1,19 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+	url="$sgm_prebuilts/uboot.bin" fetch_file
+	archive_file "uboot.bin"
+
+	# Use SCP binary from SCP build if it exists, or fetch pre-built ones.
+	if [ ! -f "$archive/scp_ram.bin" ]; then
+		url="$sgm_prebuilts/scp_ram.bin" fetch_file
+		archive_file "scp_ram.bin"
+	fi
+
+	build_fip BL33="$archive/uboot.bin" SCP_BL2="$archive/scp_ram.bin"
+}
diff --git a/run_config/fvp-fip.tftf b/run_config/fvp-fip.tftf
new file mode 100644
index 0000000..5dc907d
--- /dev/null
+++ b/run_config/fvp-fip.tftf
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+	build_fip BL33="$archive/tftf.bin"
+}
diff --git a/run_config/fvp-fip.tftf+bl32 b/run_config/fvp-fip.tftf+bl32
new file mode 100644
index 0000000..c3c6ce7
--- /dev/null
+++ b/run_config/fvp-fip.tftf+bl32
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+	build_fip BL33="$archive/tftf.bin" BL32="$archive/bl32.bin"
+}
diff --git a/run_config/fvp-fip.uboot b/run_config/fvp-fip.uboot
new file mode 100644
index 0000000..34bc4e8
--- /dev/null
+++ b/run_config/fvp-fip.uboot
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+	get_uboot_bin
+	build_fip BL33="$archive/uboot.bin"
+}
diff --git a/run_config/fvp-fip.uboot+bl32 b/run_config/fvp-fip.uboot+bl32
new file mode 100644
index 0000000..35b6ad3
--- /dev/null
+++ b/run_config/fvp-fip.uboot+bl32
@@ -0,0 +1,12 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+	get_uboot_bin
+	get_optee_bin
+	build_fip BL33="$archive/uboot.bin" BL32="$archive/bl32.bin"
+}
diff --git a/run_config/fvp-fip.uboot32 b/run_config/fvp-fip.uboot32
new file mode 100644
index 0000000..4e5a03b
--- /dev/null
+++ b/run_config/fvp-fip.uboot32
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+	get_uboot32_bin
+	build_fip BL33="$archive/uboot.bin"
+}
diff --git a/run_config/fvp-fip.uefi b/run_config/fvp-fip.uefi
new file mode 100644
index 0000000..294c585
--- /dev/null
+++ b/run_config/fvp-fip.uefi
@@ -0,0 +1,13 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+
+	uefi_build_type="RELEASE" get_uefi_bin
+
+	build_fip BL33="$archive/uefi.bin"
+}
diff --git a/run_config/fvp-fip.uefi.debug b/run_config/fvp-fip.uefi.debug
new file mode 100644
index 0000000..d88f9b6
--- /dev/null
+++ b/run_config/fvp-fip.uefi.debug
@@ -0,0 +1,13 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+
+	get_uefi_bin
+
+	build_fip BL33="$archive/uefi.bin"
+}
diff --git a/run_config/fvp-foundationv8 b/run_config/fvp-foundationv8
new file mode 100644
index 0000000..cb68a31
--- /dev/null
+++ b/run_config/fvp-foundationv8
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="foundationv8" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "4"
+}
diff --git a/run_config/fvp-foundationv8.8_0 b/run_config/fvp-foundationv8.8_0
new file mode 100644
index 0000000..f30d208
--- /dev/null
+++ b/run_config/fvp-foundationv8.8_0
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="foundationv8" arch_version="8.0" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "4"
+}
diff --git a/run_config/fvp-foundationv8.8_1 b/run_config/fvp-foundationv8.8_1
new file mode 100644
index 0000000..cd53de2
--- /dev/null
+++ b/run_config/fvp-foundationv8.8_1
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="foundationv8" arch_version="8.1" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "4"
+}
diff --git a/run_config/fvp-foundationv8.8_2 b/run_config/fvp-foundationv8.8_2
new file mode 100644
index 0000000..fb8d965
--- /dev/null
+++ b/run_config/fvp-foundationv8.8_2
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="foundationv8" arch_version="8.2" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "4"
+}
diff --git a/run_config/fvp-foundationv8.8_3 b/run_config/fvp-foundationv8.8_3
new file mode 100644
index 0000000..54eaee4
--- /dev/null
+++ b/run_config/fvp-foundationv8.8_3
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="foundationv8" arch_version="8.3" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "4"
+}
diff --git a/run_config/fvp-foundationv8.8_4 b/run_config/fvp-foundationv8.8_4
new file mode 100644
index 0000000..e3b7b7e
--- /dev/null
+++ b/run_config/fvp-foundationv8.8_4
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="foundationv8" arch_version="8.4" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "4"
+}
diff --git a/run_config/fvp-linux b/run_config/fvp-linux
new file mode 100644
index 0000000..a94c46a
--- /dev/null
+++ b/run_config/fvp-linux
@@ -0,0 +1,12 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	kernel_type="fvp-busybox-uboot" get_kernel
+	initrd_type="default" get_initrd
+	uart="0" file="linux-rd-busybox.exp" track_expect
+}
diff --git a/run_config/fvp-linux.rootfs b/run_config/fvp-linux.rootfs
new file mode 100644
index 0000000..ea3fff5
--- /dev/null
+++ b/run_config/fvp-linux.rootfs
@@ -0,0 +1,13 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	kernel_type="fvp-oe-uboot" get_kernel
+	initrd_type="dummy-ramdisk" get_initrd
+	get_rootfs
+	uart="0" timeout="1800" file="linux-oe.exp" track_expect
+}
diff --git a/run_config/fvp-linux.rootfs+rst31 b/run_config/fvp-linux.rootfs+rst31
new file mode 100644
index 0000000..282170d
--- /dev/null
+++ b/run_config/fvp-linux.rootfs+rst31
@@ -0,0 +1,13 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	kernel_type="fvp-oe-uboot" get_kernel
+	initrd_type="dummy-ramdisk" get_initrd
+	get_rootfs
+	uart="0" timeout="1800" file="linux-oe-rst-bl31.exp" track_expect
+}
diff --git a/run_config/fvp-linux.rst31 b/run_config/fvp-linux.rst31
new file mode 100644
index 0000000..c68a06a
--- /dev/null
+++ b/run_config/fvp-linux.rst31
@@ -0,0 +1,13 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	kernel_type="fvp-busybox-uboot" get_kernel
+	initrd_type="default" get_initrd
+	uart="0" file="linux-rd-busybox.exp" track_expect
+	uart="0" set_expect_variable "skip_early_boot_msgs" "1"
+}
diff --git a/run_config/fvp-linux.sgi b/run_config/fvp-linux.sgi
new file mode 100644
index 0000000..24d34dc
--- /dev/null
+++ b/run_config/fvp-linux.sgi
@@ -0,0 +1,18 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	kernel_type="fvp-sgi-busybox" get_kernel
+	initrd_type="fvp-sgi-ramdisk" get_initrd
+	uart="0" file="linux-rd-busybox.exp" track_expect
+
+	url="$sgi_prebuilts/grub-busybox.img" saveas="busybox.bin" fetch_file
+	url="$sgi_prebuilts/ramdisk-busybox.img" saveas="ramdisk.bin" fetch_file
+
+	archive_file "busybox.bin"
+	archive_file "ramdisk.bin"
+}
diff --git a/run_config/fvp-linux.sgm b/run_config/fvp-linux.sgm
new file mode 100644
index 0000000..f93ad3e
--- /dev/null
+++ b/run_config/fvp-linux.sgm
@@ -0,0 +1,12 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	kernel_type="fvp-sgm-kernel" get_kernel
+	initrd_type="fvp-sgm-ramdisk" get_initrd
+	uart="0" file="linux-rd-busybox.exp" track_expect
+}
diff --git a/run_config/fvp-linux.stress b/run_config/fvp-linux.stress
new file mode 100644
index 0000000..793cdeb
--- /dev/null
+++ b/run_config/fvp-linux.stress
@@ -0,0 +1,15 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	kernel_type="fvp-oe-uboot" get_kernel
+	initrd_type="dummy-ramdisk" get_initrd
+	# No expect tracking as this is an interactive test (test_run=1)
+
+	tmp_dir="$(mktempdir)"
+	ln -s "${img_file:?}" "$archive/rootfs.bin"
+}
diff --git a/run_config/fvp-linux.uefi.busybox b/run_config/fvp-linux.uefi.busybox
new file mode 100644
index 0000000..50199fe
--- /dev/null
+++ b/run_config/fvp-linux.uefi.busybox
@@ -0,0 +1,14 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	uart="0" file="linux-rd-busybox.exp" track_expect
+
+	busybox_prebuilt=$css_downloads/sgi/sgi575
+	url="$busybox_prebuilt/grub-busybox.img" saveas="rootfs.bin" fetch_file
+	archive_file "rootfs.bin"
+}
diff --git a/run_config/fvp-linux32 b/run_config/fvp-linux32
new file mode 100644
index 0000000..b81f0a0
--- /dev/null
+++ b/run_config/fvp-linux32
@@ -0,0 +1,12 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	kernel_type="fvp-aarch32-zimage" get_kernel
+	initrd_type="aarch32-ramdisk" get_initrd
+	uart="0" file="linux-rd-busybox-aarch32.exp" track_expect
+}
diff --git a/run_config/fvp-linux32.rstspmin b/run_config/fvp-linux32.rstspmin
new file mode 100644
index 0000000..f9e09ff
--- /dev/null
+++ b/run_config/fvp-linux32.rstspmin
@@ -0,0 +1,12 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	kernel_type="fvp-aarch32-zimage" get_kernel
+	initrd_type="aarch32-ramdisk" get_initrd
+	uart="0" file="linux-rd-aarch32-rst-sp-min.exp" track_expect
+}
diff --git a/run_config/fvp-linux32.stress b/run_config/fvp-linux32.stress
new file mode 100644
index 0000000..1cc37a8
--- /dev/null
+++ b/run_config/fvp-linux32.stress
@@ -0,0 +1,15 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	kernel_type="fvp-oe-uboot32" get_kernel
+	initrd_type="dummy-ramdisk32" get_initrd
+	# No expect tracking as this is an interactive test (test_run=1)
+
+	tmp_dir="$(mktempdir)"
+	ln -s "${img_file:?}" "$archive/rootfs.bin"
+}
diff --git a/run_config/fvp-neoverse_n1x4 b/run_config/fvp-neoverse_n1x4
new file mode 100644
index 0000000..f28994c
--- /dev/null
+++ b/run_config/fvp-neoverse_n1x4
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_fetch_tf_resource() {
+	model="neoverse_n1" gen_model_params
+	uart="0" set_expect_variable "num_cpus" "4"
+}
diff --git a/run_config/fvp-optee b/run_config/fvp-optee
new file mode 100644
index 0000000..6b5964d
--- /dev/null
+++ b/run_config/fvp-optee
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+	get_optee_bin
+}
diff --git a/run_config/fvp-rde1edge b/run_config/fvp-rde1edge
new file mode 100644
index 0000000..3487603
--- /dev/null
+++ b/run_config/fvp-rde1edge
@@ -0,0 +1,24 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	url="$sgi_prebuilts/mcp-rom.bin" fetch_file
+	url="$sgi_prebuilts/scp-ram.bin" fetch_file
+	url="$sgi_prebuilts/scp-rom.bin" fetch_file
+
+
+	archive_file "mcp-rom.bin"
+	archive_file "scp-ram.bin"
+	archive_file "scp-rom.bin"
+}
+
+post_fetch_tf_resource() {
+	model="css-rde1edge" gen_model_params
+	set_run_env "ports_script" "$ci_root/model/css-sgi575-ports.awk"
+	set_run_env "num_uarts" "2"
+	uart="0" set_expect_variable "num_cpus" "32"
+}
diff --git a/run_config/fvp-rdn1edge b/run_config/fvp-rdn1edge
new file mode 100644
index 0000000..d1e5112
--- /dev/null
+++ b/run_config/fvp-rdn1edge
@@ -0,0 +1,31 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	#Fetch the pre-built SCP/MCP binaries if they haven't been built
+	if [ ! -f "$archive/mcp_rom.bin" ]; then
+		url="$sgi_prebuilts/mcp_rom.bin" fetch_file
+		archive_file "mcp_rom.bin"
+	fi
+	if [ ! -f "$archive/scp_ram.bin" ]; then
+		url="$sgi_prebuilts/scp_ram.bin" fetch_file
+		archive_file "scp_ram.bin"
+	fi
+	if [ ! -f "$archive/scp_rom.bin" ]; then
+		url="$sgi_prebuilts/scp_rom.bin" fetch_file
+		archive_file "scp_rom.bin"
+	fi
+
+	# Hold terminal_uart_aon
+	uart="2" file="hold_uart.exp" track_expect
+}
+
+post_fetch_tf_resource() {
+	model="css-rdn1edge" gen_model_params
+	set_run_env "ports_script" "$ci_root/model/css-sgi575-ports.awk"
+	set_run_env "num_uarts" "3"
+}
diff --git a/run_config/fvp-romlib b/run_config/fvp-romlib
new file mode 100644
index 0000000..0310866
--- /dev/null
+++ b/run_config/fvp-romlib
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+	fvp_romlib_runtime
+}
diff --git a/run_config/fvp-sgi575 b/run_config/fvp-sgi575
new file mode 100644
index 0000000..ddaad2d
--- /dev/null
+++ b/run_config/fvp-sgi575
@@ -0,0 +1,34 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	#Fetch the pre-built SCP/MCP binaries if they haven't been built
+	if [ ! -f "$archive/mcp_rom.bin" ]; then
+		url="$sgi_prebuilts/mcp_rom.bin" fetch_file
+		archive_file "mcp_rom.bin"
+	fi
+	if [ ! -f "$archive/scp_ram.bin" ]; then
+		url="$sgi_prebuilts/scp_ram.bin" fetch_file
+		archive_file "scp_ram.bin"
+	fi
+	if [ ! -f "$archive/scp_rom.bin" ]; then
+		url="$sgi_prebuilts/scp_rom.bin" fetch_file
+		archive_file "scp_rom.bin"
+	fi
+
+	url="$tfa_downloads/SGI-575_cmn600.yml" fetch_file
+	archive_file "SGI-575_cmn600.yml"
+
+	# Hold terminal_uart_aon
+	uart="2" file="hold_uart.exp" track_expect
+}
+
+post_fetch_tf_resource() {
+	model="css-sgi575" gen_model_params
+	set_run_env "ports_script" "$ci_root/model/css-sgi575-ports.awk"
+	set_run_env "num_uarts" "3"
+}
diff --git a/run_config/fvp-sgm775 b/run_config/fvp-sgm775
new file mode 100644
index 0000000..1a3286f
--- /dev/null
+++ b/run_config/fvp-sgm775
@@ -0,0 +1,20 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	# Use SCP binary from SCP build if it exists, or fetch pre-built ones.
+	if [ ! -f "$archive/scp_rom.bin" ]; then
+		url="$sgm_prebuilts/scp_rom.bin" fetch_file
+		archive_file "scp_rom.bin"
+	fi
+}
+
+post_fetch_tf_resource() {
+	model="css-sgm775" gen_model_params
+	set_run_env "ports_script" "$ci_root/model/css-sgi575-ports.awk"
+	set_run_env "num_uarts" "2"
+}
diff --git a/run_config/fvp-spm.edk2 b/run_config/fvp-spm.edk2
new file mode 100644
index 0000000..244f6f4
--- /dev/null
+++ b/run_config/fvp-spm.edk2
@@ -0,0 +1,23 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+	# Fetch EDK2 and pre-built partition files
+	url="$project_filer/ci-files/spm/FVP_AARCH64_EFI.fd" fetch_file
+	url="$project_filer/ci-files/spm/STANDALONESMM.fd" fetch_file
+
+	archive_file "FVP_AARCH64_EFI.fd"
+	archive_file "STANDALONESMM.fd"
+
+	build_fip BL33="$archive/FVP_AARCH64_EFI.fd" BL32="$archive/STANDALONESMM.fd"
+}
+
+fetch_tf_resource() {
+	# Expect scripts
+	uart="0" file="spm-edk2-uart0.exp" track_expect
+	uart="2" file="spm-edk2-uart2.exp" track_expect
+}
diff --git a/run_config/fvp-tftf b/run_config/fvp-tftf
new file mode 100644
index 0000000..1fc7594
--- /dev/null
+++ b/run_config/fvp-tftf
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	uart="0" file="tftf.exp" track_expect
+	uart="1" file="hold_uart.exp" track_expect
+}
diff --git a/run_config/fvp-tftf-spm b/run_config/fvp-tftf-spm
new file mode 100644
index 0000000..6139d05
--- /dev/null
+++ b/run_config/fvp-tftf-spm
@@ -0,0 +1,29 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+pre_tf_build() {
+	# Build sptool for this config
+	targets="all fiptool sptool" set_tf_build_targets
+}
+
+pre_tftf_build() {
+	# Build TFTF, Cactus and Ivy for this config
+	targets="tftf cactus ivy" set_tftf_build_targets
+}
+
+post_tf_build() {
+	# Build the Secure Partition package
+	trusted_firmware/tools/sptool/sptool				\
+		-o "$archive/bl32.bin"					\
+		-i "$archive/cactus.bin":"$archive/cactus.dtb"		\
+		-i "$archive/ivy.bin":"$archive/ivy.dtb"
+}
+
+post_fetch_tf_resource() {
+	uart="2" file="cactus.exp" track_expect
+	uart="3" file="ivy.exp" track_expect
+}
diff --git a/run_config/fvp-tftf.cactus_mm b/run_config/fvp-tftf.cactus_mm
new file mode 100644
index 0000000..2e98024
--- /dev/null
+++ b/run_config/fvp-tftf.cactus_mm
@@ -0,0 +1,23 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+pre_tftf_build() {
+	# Build TFTF and Cactus-MM images for this config
+	targets="tftf cactus_mm" set_tftf_build_targets
+}
+
+post_tf_build() {
+	# Rename cactus_mm.bin as bl32.bin
+	mv "$archive/cactus_mm.bin" "$archive/bl32.bin"
+}
+
+fetch_tf_resource() {
+	set_run_env "num_uarts" "3"
+	uart="0" file="tftf.exp" track_expect
+	uart="1" file="hold_uart.exp" track_expect
+	uart="2" file="hold_uart.exp" track_expect
+}
diff --git a/run_config/fvp-tftf.fault b/run_config/fvp-tftf.fault
new file mode 100644
index 0000000..3baba73
--- /dev/null
+++ b/run_config/fvp-tftf.fault
@@ -0,0 +1,12 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	# Hold UART0 but expect fault messages in UART1
+	uart="0" file="hold_uart.exp" track_expect
+	uart="1" set_primary="1" file="tftf_fault.exp" track_expect
+}
diff --git a/run_config/fvp-tftf.fwu b/run_config/fvp-tftf.fwu
new file mode 100644
index 0000000..05da538
--- /dev/null
+++ b/run_config/fvp-tftf.fwu
@@ -0,0 +1,28 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+pre_tftf_build() {
+	# Build TFTF and FWU images for this config
+	targets="tftf ns_bl1u ns_bl2u" set_tftf_build_targets
+}
+
+
+# Perform FWU steps after all build products have been archived.
+post_tf_build() {
+	fip_targets="fip fwu_fip" build_fip \
+		BL33="$archive/tftf.bin" \
+		NS_BL2U="$archive/ns_bl2u.bin"
+}
+
+post_tf_archive() {
+	echo "Backing up FIP..."
+	cp "$archive/fip.bin" "$archive/backup_fip.bin"
+}
+
+fetch_tf_resource() {
+	uart="0" timeout="900" file="tftf.exp" track_expect
+}
diff --git a/run_config/fvp-tftf.spm.quark b/run_config/fvp-tftf.spm.quark
new file mode 100644
index 0000000..4077d9c
--- /dev/null
+++ b/run_config/fvp-tftf.spm.quark
@@ -0,0 +1,25 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+pre_tf_build() {
+	# Build sptool for this config
+	targets="all fiptool sptool" set_tf_build_targets
+}
+
+pre_tftf_build() {
+	# Build TFTF and Quark for this config
+	targets="tftf quark" set_tftf_build_targets
+}
+
+post_tf_build() {
+	# Build the Secure Partition package
+	trusted_firmware/tools/sptool/sptool				\
+		-o "$archive/bl32.bin"					\
+		-i "$archive/quark.bin":"$archive/quark.dtb"
+
+	build_fip BL33="$archive/tftf.bin" BL32="$archive/bl32.bin"
+}
diff --git a/run_config/fvp-tspd b/run_config/fvp-tspd
new file mode 100644
index 0000000..66ee01d
--- /dev/null
+++ b/run_config/fvp-tspd
@@ -0,0 +1,10 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+fetch_tf_resource() {
+	uart="2" timeout="3600" file="tsp.exp" track_expect
+}
diff --git a/run_config/juno-linux.uboot b/run_config/juno-linux.uboot
new file mode 100644
index 0000000..e638b7f
--- /dev/null
+++ b/run_config/juno-linux.uboot
@@ -0,0 +1,17 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+	get_scp_bl2_bin
+	get_uboot_bin
+	build_fip BL33="$archive/uboot.bin" SCP_BL2="$archive/scp_bl2.bin"
+}
+
+post_fetch_tf_resource() {
+	gen_recovery_image "$archive/bl1.bin" "$archive/fip.bin"
+	payload_type="linux" gen_juno_yaml
+}
diff --git a/run_config/juno-linux.uboot+aarch32 b/run_config/juno-linux.uboot+aarch32
new file mode 100644
index 0000000..6422c65
--- /dev/null
+++ b/run_config/juno-linux.uboot+aarch32
@@ -0,0 +1,23 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+	get_scp_bl2_bin
+	get_uboot32_bin
+
+	# Building FIP for this config requries a BL32 built in AArch32, but
+	# we'll only build that later. An appropriate BL32 image must be updated
+	# in the FIP before the recovery image is built
+	local tmp_bl32="$(mktempfile)"
+	build_fip BL32="$tmp_bl32" BL33="$archive/uboot.bin" SCP_BL2="$archive/scp_bl2.bin"
+}
+
+post_fetch_tf_resource() {
+	gen_recovery_image32 "$archive/bl1.bin" "$archive/fip.bin"
+	bootloader_prompt="juno32#" linux_prompt="/\\s#" payload_type="linux" \
+		gen_juno_yaml
+}
diff --git a/run_config/juno-romlib b/run_config/juno-romlib
new file mode 100644
index 0000000..af0974a
--- /dev/null
+++ b/run_config/juno-romlib
@@ -0,0 +1,14 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_archive() {
+	# A combined BL1 and ROMLIB binary with the right alignment is
+	# needed for Juno when library at ROM is enabled (USE_ROMLIB=1)
+	# The combined binary bl1_romlib.bin has to be used instead of BL1
+	echo "Copying bl1_romlib.bin to bl1.bin."
+	mv "$archive/bl1_romlib.bin" "$archive/bl1.bin"
+}
diff --git a/run_config/juno-rt32 b/run_config/juno-rt32
new file mode 100644
index 0000000..fa63ad8
--- /dev/null
+++ b/run_config/juno-rt32
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_archive() {
+	config_file="$ci_root/tf_config/juno-aarch32-rst-to-sp-min" \
+		juno_aarch32_runtime
+}
diff --git a/run_config/juno-tftf b/run_config/juno-tftf
new file mode 100644
index 0000000..04b4ab9
--- /dev/null
+++ b/run_config/juno-tftf
@@ -0,0 +1,16 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+	get_scp_bl2_bin
+	build_fip BL33="$archive/tftf.bin" SCP_BL2="$archive/scp_bl2.bin"
+}
+
+post_fetch_tf_resource() {
+	gen_recovery_image "$archive/bl1.bin" "$archive/fip.bin"
+	payload_type="tftf" gen_juno_yaml
+}
diff --git a/run_config/juno-tftf+aarch32 b/run_config/juno-tftf+aarch32
new file mode 100644
index 0000000..29cdfa7
--- /dev/null
+++ b/run_config/juno-tftf+aarch32
@@ -0,0 +1,21 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_build() {
+	get_scp_bl2_bin
+
+	# Building FIP for this config requires a BL32 built in AArch32, but
+	# we'll only build that later. For now, provide a dummy file; we'll
+	# update the FIP with real BL32 image later.
+	local tmp_bl32="$(mktempfile)"
+	build_fip BL32="$tmp_bl32" BL33="$archive/tftf.bin" SCP_BL2="$archive/scp_bl2.bin"
+}
+
+post_fetch_tf_resource() {
+	gen_recovery_image32 "$archive/bl1.bin" "$archive/fip.bin"
+	payload_type="tftf" gen_juno_yaml
+}
diff --git a/run_config/juno-tftf-r1 b/run_config/juno-tftf-r1
new file mode 100644
index 0000000..e3e29cf
--- /dev/null
+++ b/run_config/juno-tftf-r1
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_archive() {
+	set_hook_var "juno_revision" "juno-r1"
+	echo "Choosing juno revision r1"
+}
diff --git a/run_config/juno-tftf-r2 b/run_config/juno-tftf-r2
new file mode 100644
index 0000000..79298b8
--- /dev/null
+++ b/run_config/juno-tftf-r2
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+post_tf_archive() {
+	set_hook_var "juno_revision" "juno-r2"
+	echo "Choosing juno revision r2"
+}
diff --git a/run_config/juno-tftf.fwu b/run_config/juno-tftf.fwu
new file mode 100644
index 0000000..dc9bccc
--- /dev/null
+++ b/run_config/juno-tftf.fwu
@@ -0,0 +1,34 @@
+#!/bin/bash
+#
+# Copyright (c) 2019, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+pre_tftf_build() {
+	# Build TFTF and FWU images for this config
+	targets="tftf ns_bl1u ns_bl2u" set_tftf_build_targets
+}
+
+# Perform FWU steps after all build products have been archived.
+post_tf_build() {
+	get_scp_bl2_bin
+	fip_targets="fip fwu_fip" build_fip \
+		BL33="$archive/tftf.bin" \
+		SCP_BL2="$archive/scp_bl2.bin" \
+		SCP_BL2U="$archive/scp_bl2.bin" \
+		NS_BL2U="$archive/ns_bl2u.bin"
+}
+
+post_tf_archive() {
+	echo "Backing up FIP..."
+	cp "$archive/fip.bin" "$archive/bkp_fip.bin"
+
+	image_txt="$ci_root/res/juno_fwu_images.txt" \
+		gen_recovery_image \
+		"$archive/bl1.bin" \
+		"$archive/fip.bin" \
+		"$archive/bkp_fip.bin" \
+		"$archive/fwu_fip.bin" \
+		"$archive/ns_bl1u.bin"
+}