#!/usr/bin/env bash
#
# Copyright (c) 2020-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/rdv1-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/rdv1-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/rdv1-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/rdv1-bl1.bin" saveas="scp_rom.bin" fetch_file
		archive_file "scp_rom.bin"
	fi
}

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

	uart="1" set_expect_variable "num_cpus" "16"

	# 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
}
