#!/usr/bin/env bash
#
# Copyright (c) 2019-2022, 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_ram.bin" ]; then
		url="$scp_mcp_prebuilts/rdn1e1-mcp-bl2.bin" saveas="mcp_ram.bin" fetch_file
		archive_file "mcp_ram.bin"
	fi
	if [ ! -f "$archive/mcp_rom.bin" ]; then
		url="$scp_mcp_prebuilts/rdn1e1-mcp-bl1.bin" saveas="mcp_rom.bin" fetch_file
		archive_file "mcp_rom.bin"
	fi
	if [ ! -f "$archive/scp_ram.bin" ]; then
		url="$scp_mcp_prebuilts/rdn1e1-bl2.bin" saveas="scp_ram.bin" fetch_file
		archive_file "scp_ram.bin"
	fi
	if [ ! -f "$archive/scp_rom.bin" ]; then
		url="$scp_mcp_prebuilts/rdn1e1-bl1.bin" saveas="scp_rom.bin" fetch_file
		archive_file "scp_rom.bin"
	fi
}

generate_lava_job() {
	local model="css-rdn1edge"

	# Hold terminal_uart_aon
	uart="2" file="hold_uart.exp" track_expect

	set_run_env "ports_script" "$ci_root/model/css-sgi575-ports.awk"
	set_run_env "num_uarts" "3"

	model="$model" gen_model_params
	model="$model" gen_fvp_yaml
}
