#!/usr/bin/env bash
#
# Copyright (c) 2020-2022, Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
test_setup() {
	# Only need to run on debug
	echo "Building only in DEBUG mode."
	set_hook_var "bin_mode" "debug"
}

pre_tf_build() {
	build_scmi_lib_scp_tools
}

post_tf_archive() {
	build_tf_for_scp_tools

	build_fip_for_scp_tools
}

post_fetch_tf_resource() {
	echo "archive.. $archive"

	path_bypass_rom="$scp_root/build/juno/GNU/$mode/firmware-scp_romfw_bypass/bin"
	cp "$path_bypass_rom/juno-bl1-bypass.bin" "$path_bypass_rom/scp_bl1.bin"
	archive_file "$path_bypass_rom/scp_bl1.bin"

	ls $archive

	gen_recovery_image \
		"$archive/bl1.bin" \
		"$archive/bl2.bin" \
		"$archive/bl31.bin" \
		"$archive/fip.bin" \
		"$archive/scp_bl1.bin"

	payload_type="scp_tests_scmi" juno_revision="juno-r0" gen_juno_yaml
}

post_package() {
	use_debug_bins
}
